1024 # quicksort.awk --- Quicksort algorithm, with user-supplied # comparison function # # Arnold Robbins, arnold@skeeve.com, Public Domain # January 2009 # quicksort --- C.A.R. Hoare's quicksort algorithm. See Wikipedia # or almost any algorithms or computer science text. # # Adapted from K&R-II, page 110 function quicksort(data, left, right, less_than, i, last) { if (left >= right) # do nothing if array contains fewer return # than two elements quicksort_swap(data, left, int((left + right) / 2)) last = left for (i = left + 1; i <= right; i++) if (@less_than(data[i], data[left])) quicksort_swap(data, ++last, i) quicksort_swap(data, left, last) quicksort(data, left, last - 1, less_than) quicksort(data, last + 1, right, less_than) } # quicksort_swap --- helper function for quicksort, should really be inline function quicksort_swap(data, i, j, temp) { temp = data[i] data[i] = data[j] data[j] = temp } �/* * Copyright (C) Internet Systems Consortium, Inc. ("ISC") * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, you can obtain one at https://mozilla.org/MPL/2.0/. * * See the COPYRIGHT file distributed with this work for additional * information regarding copyright ownership. */ #ifndef ISCCFG_LOG_H #define ISCCFG_LOG_H 1 /*! \file isccfg/log.h */ #include #include LIBISCCFG_EXTERNAL_DATA extern isc_logcategory_t cfg_categories[]; LIBISCCFG_EXTERNAL_DATA extern isc_logmodule_t cfg_modules[]; #define CFG_LOGCATEGORY_CONFIG (&cfg_categories[0]) #define CFG_LOGMODULE_PARSER (&cfg_modules[0]) ISC_LANG_BEGINDECLS void cfg_log_init(isc_log_t *lctx); /*%< * Make the libisccfg categories and modules available for use with the * ISC logging library. * * Requires: *\li lctx is a valid logging context. * *\li cfg_log_init() is called only once. * * Ensures: * \li The categories and modules defined above are available for * use by isc_log_usechannnel() and isc_log_write(). */ ISC_LANG_ENDDECLS #endif /* ISCCFG_LOG_H */ #ˆl–Ãa¾”jhŠ�fàœ¸)‹FÿÄ ƒÎÃÂÁ -a çÂ=bã@s(ddlZddlmZGdd„deƒZdS)éNé)Ú MachineStatec@sDeZdZdZdd„Zdd„Zdd„Zdd „Zd d „Ze d d „ƒZ dS)ÚCodingStateMachinea– A state machine to verify a byte sequence for a particular encoding. For each byte the detector receives, it will feed that byte to every active state machine available, one byte at a time. The state machine changes its state based on its previous state and the byte it receives. There are 3 states in a state machine that are of interest to an auto-detector: START state: This is the state to start with, or a legal byte sequence (i.e. a valid code point) for character has been identified. ME state: This indicates that the state machine identified a byte sequence that is specific to the charset it is designed for and that there is no other possible encoding which can contain this byte sequence. This will to lead to an immediate positive answer for the detector. ERROR state: This indicates the state machine identified an illegal byte sequence for that encoding. This will lead to an immediate negative answer for this encoding. Detector will exclude this encoding from consideration from here on. cCs0||_d|_d|_d|_t t¡|_| ¡dS)Nr) Ú_modelÚ_curr_byte_posÚ_curr_char_lenÚ _curr_stateÚloggingZ getLoggerÚ__name__ÚloggerÚreset)ÚselfZsm©rú>/usr/lib/python3.9/site-packages/chardet/codingstatemachine.pyÚ__init__7s  zCodingStateMachine.__init__cCs tj|_dS©N)rÚSTARTr©