mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-02-01 03:53:33 +00:00
b420ed8248
This change gets the Python codebase into a state where it conforms to the conventions of this codebase. It's now possible to include headers from Python, without worrying about ordering. Python has traditionally solved that problem by "diamonding" everything in Python.h, but that's problematic since it means any change to any Python header invalidates all the build artifacts. Lastly it makes tooling not work. Since it is hard to explain to Emacs when I press C-c C-h to add an import line it shouldn't add the header that actually defines the symbol, and instead do follow the nonstandard Python convention. Progress has been made on letting Python load source code from the zip executable structure via the standard C library APIs. System calss now recognizes zip!FILENAME alternative URIs as equivalent to zip:FILENAME since Python uses colon as its delimiter. Some progress has been made on embedding the notice license terms into the Python object code. This is easier said than done since Python has an extremely complicated ownership story. - Some termios APIs have been added - Implement rewinddir() dirstream API - GetCpuCount() API added to Cosmopolitan Libc - More bugs in Cosmopolitan Libc have been fixed - zipobj.com now has flags for mangling the path - Fixed bug a priori with sendfile() on certain BSDs - Polyfill F_DUPFD and F_DUPFD_CLOEXEC across platforms - FIOCLEX / FIONCLEX now polyfilled for fast O_CLOEXEC changes - APE now supports a hybrid solution to no-self-modify for builds - Many BSD-only magnums added, e.g. O_SEARCH, O_SHLOCK, SF_NODISKIO
72 lines
3.3 KiB
C++
72 lines
3.3 KiB
C++
/* clang-format off */
|
|
/*
|
|
__ __ _
|
|
___\ \/ /_ __ __ _| |_
|
|
/ _ \\ /| '_ \ / _` | __|
|
|
| __// \| |_) | (_| | |_
|
|
\___/_/\_\ .__/ \__,_|\__|
|
|
|_| XML parser
|
|
|
|
Copyright (c) 1997-2000 Thai Open Source Software Center Ltd
|
|
Copyright (c) 2000-2017 Expat development team
|
|
Licensed under the MIT license:
|
|
|
|
Permission is hereby granted, free of charge, to any person obtaining
|
|
a copy of this software and associated documentation files (the
|
|
"Software"), to deal in the Software without restriction, including
|
|
without limitation the rights to use, copy, modify, merge, publish,
|
|
distribute, sublicense, and/or sell copies of the Software, and to permit
|
|
persons to whom the Software is furnished to do so, subject to the
|
|
following conditions:
|
|
|
|
The above copyright notice and this permission notice shall be included
|
|
in all copies or substantial portions of the Software.
|
|
|
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
|
|
NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
|
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
|
|
OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
|
|
USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
*/
|
|
|
|
enum {
|
|
BT_NONXML, /* e.g. noncharacter-FFFF */
|
|
BT_MALFORM, /* illegal, with regard to encoding */
|
|
BT_LT, /* less than = "<" */
|
|
BT_AMP, /* ampersand = "&" */
|
|
BT_RSQB, /* right square bracket = "[" */
|
|
BT_LEAD2, /* lead byte of a 2-byte UTF-8 character */
|
|
BT_LEAD3, /* lead byte of a 3-byte UTF-8 character */
|
|
BT_LEAD4, /* lead byte of a 4-byte UTF-8 character */
|
|
BT_TRAIL, /* trailing unit, e.g. second 16-bit unit of a 4-byte char. */
|
|
BT_CR, /* carriage return = "\r" */
|
|
BT_LF, /* line feed = "\n" */
|
|
BT_GT, /* greater than = ">" */
|
|
BT_QUOT, /* quotation character = "\"" */
|
|
BT_APOS, /* aposthrophe = "'" */
|
|
BT_EQUALS, /* equal sign = "=" */
|
|
BT_QUEST, /* question mark = "?" */
|
|
BT_EXCL, /* exclamation mark = "!" */
|
|
BT_SOL, /* solidus, slash = "/" */
|
|
BT_SEMI, /* semicolon = ";" */
|
|
BT_NUM, /* number sign = "#" */
|
|
BT_LSQB, /* left square bracket = "[" */
|
|
BT_S, /* white space, e.g. "\t", " "[, "\r"] */
|
|
BT_NMSTRT, /* non-hex name start letter = "G".."Z" + "g".."z" + "_" */
|
|
BT_COLON, /* colon = ":" */
|
|
BT_HEX, /* hex letter = "A".."F" + "a".."f" */
|
|
BT_DIGIT, /* digit = "0".."9" */
|
|
BT_NAME, /* dot and middle dot = "." + chr(0xb7) */
|
|
BT_MINUS, /* minus = "-" */
|
|
BT_OTHER, /* known not to be a name or name start character */
|
|
BT_NONASCII, /* might be a name or name start character */
|
|
BT_PERCNT, /* percent sign = "%" */
|
|
BT_LPAR, /* left parenthesis = "(" */
|
|
BT_RPAR, /* right parenthesis = "(" */
|
|
BT_AST, /* asterisk = "*" */
|
|
BT_PLUS, /* plus sign = "+" */
|
|
BT_COMMA, /* comma = "," */
|
|
BT_VERBAR /* vertical bar = "|" */
|
|
};
|