cinap_lenrekadd hg and python4bb9e2215 years agoHistory
1265 lines · 43.8 KB · C
RawDownload
    The API returns NULL in case of an error. The caller is responsible   for decref'ing the returned objects. */ PyAPI_FUNC(PyObject*) PyUnicode_FromObject(    register PyObject *obj 	/* Object */    ); /* --- wchar_t support for platforms which support it --------------------- */ #ifdef HAVE_WCHAR_H /* Create a Unicode Object from the whcar_t buffer w of the given   size.    The buffer is copied into the new object. */ PyAPI_FUNC(PyObject*) PyUnicode_FromWideChar(    register const wchar_t *w,  /* wchar_t buffer */    Py_ssize_t size             /* size of buffer */    ); /* Copies the Unicode Object contents into the wchar_t buffer w.  At   most size wchar_t characters are copied.    Note that the resulting wchar_t string may or may not be   0-terminated.  It is the responsibility of the caller to make sure   that the wchar_t string is 0-terminated in case this is required by   the application.    Returns the number of wchar_t characters copied (excluding a   possibly trailing 0-termination character) or -1 in case of an   error. */ PyAPI_FUNC(Py_ssize_t) PyUnicode_AsWideChar(    PyUnicodeObject *unicode,   /* Unicode object */    register wchar_t *w,        /* wchar_t buffer */    Py_ssize_t size             /* size of buffer */    ); #endif /* --- Unicode ordinals --------------------------------------------------- */ /* Create a Unicode Object from the given Unicode code point ordinal.     The ordinal must be in range(0x10000) on narrow Python builds   (UCS2), and range(0x110000) on wide builds (UCS4). A ValueError is   raised in case it is not. */ PyAPI_FUNC(PyObject*) PyUnicode_FromOrdinal(int ordinal); /* === Builtin Codecs =====================================================     Many of these APIs take two arguments encoding and errors. These   parameters encoding and errors have the same semantics as the ones   of the builtin unicode() API.     Setting encoding to NULL causes the default encoding to be used.    Error handling is set by errors which may also be set to NULL   meaning to use the default handling defined for the codec. Default   error handling for all builtin codecs is "strict" (ValueErrors are   raised).    The codecs all use a similar interface. Only deviation from the   generic ones are documented. */ /* --- Manage the default encoding ---------------------------------------- */ /* Return a Python string holding the default encoded value of the   Unicode object.     The resulting string is cached in the Unicode object for subsequent   usage by this function. The cached version is needed to implement   the character buffer interface and will live (at least) as long as   the Unicode object itself.    The refcount of the string is *not* incremented.    *** Exported for internal use by the interpreter only !!! *** */ PyAPI_FUNC(PyObject *) _PyUnicode_AsDefaultEncodedString(    PyObject *, const char *); /* Returns the currently active default encoding.    The default encoding is currently implemented as run-time settable   process global.  This may change in future versions of the   interpreter to become a parameter which is managed on a per-thread   basis.    */ PyAPI_FUNC(const char*) PyUnicode_GetDefaultEncoding(void); /* Sets the currently active default encoding.    Returns 0 on success, -1 in case of an error.    */ PyAPI_FUNC(int) PyUnicode_SetDefaultEncoding(    const char *encoding	/* Encoding name in standard form */    ); /* --- Generic Codecs ----------------------------------------------------- */ /* Create a Unicode object by decoding the encoded string s of the   given size. */ PyAPI_FUNC(PyObject*) PyUnicode_Decode(    const char *s,              /* encoded string */    Py_ssize_t size,            /* size of buffer */    const char *encoding,       /* encoding */    const char *errors          /* error handling */    ); /* Encodes a Py_UNICODE buffer of the given size and returns a    Python string object. */ PyAPI_FUNC(PyObject*) PyUnicode_Encode(    const Py_UNICODE *s,        /* Unicode char buffer */    Py_ssize_t size,            /* number of Py_UNICODE chars to encode */    const char *encoding,       /* encoding */    const char *errors          /* error handling */    ); /* Encodes a Unicode object and returns the result as Python   object. */ PyAPI_FUNC(PyObject*) PyUnicode_AsEncodedObject(    PyObject *unicode,	 	/* Unicode object */    const char *encoding,	/* encoding */    const char *errors		/* error handling */    ); /* Encodes a Unicode object and returns the result as Python string   object. */ PyAPI_FUNC(PyObject*) PyUnicode_AsEncodedString(    PyObject *unicode,	 	/* Unicode object */    const char *encoding,	/* encoding */    const char *errors		/* error handling */    ); PyAPI_FUNC(PyObject*) PyUnicode_BuildEncodingMap(    PyObject* string            /* 256 character map */   );  /* --- UTF-7 Codecs ------------------------------------------------------- */ PyAPI_FUNC(PyObject*) PyUnicode_DecodeUTF7(    const char *string, 	/* UTF-7 encoded string */    Py_ssize_t length,	 	/* size of string */    const char *errors		/* error handling */    ); PyAPI_FUNC(PyObject*) PyUnicode_EncodeUTF7(    const Py_UNICODE *data, 	/* Unicode char buffer */    Py_ssize_t length,	 		/* number of Py_UNICODE chars to encode */    int encodeSetO,             /* force the encoder to encode characters in                                   Set O, as described in RFC2152 */    int encodeWhiteSpace,       /* force the encoder to encode space, tab,                                   carriage return and linefeed characters */    const char *errors		/* error handling */    ); /* --- UTF-8 Codecs ------------------------------------------------------- */ PyAPI_FUNC(PyObject*) PyUnicode_DecodeUTF8(    const char *string, 	/* UTF-8 encoded string */    Py_ssize_t length,	 	/* size of string */    const char *errors		/* error handling */    ); PyAPI_FUNC(PyObject*) PyUnicode_DecodeUTF8Stateful(    const char *string, 	/* UTF-8 encoded string */    Py_ssize_t length,	 	/* size of string */    const char *errors,		/* error handling */    Py_ssize_t *consumed		/* bytes consumed */    ); PyAPI_FUNC(PyObject*) PyUnicode_AsUTF8String(    PyObject *unicode	 	/* Unicode object */    ); PyAPI_FUNC(PyObject*) PyUnicode_EncodeUTF8(    const Py_UNICODE *data, 	/* Unicode char buffer */    Py_ssize_t length,	 		/* number of Py_UNICODE chars to encode */    const char *errors		/* error handling */    ); /* --- UTF-16 Codecs ------------------------------------------------------ */ /* Decodes length bytes from a UTF-16 encoded buffer string and returns   the corresponding Unicode object.    errors (if non-NULL) defines the error handling. It defaults   to "strict".     If byteorder is non-NULL, the decoder starts decoding using the   given byte order: 	*byteorder == -1: little endian	*byteorder == 0:  native order	*byteorder == 1:  big endian    In native mode, the first two bytes of the stream are checked for a   BOM mark. If found, the BOM mark is analysed, the byte order   adjusted and the BOM skipped.  In the other modes, no BOM mark   interpretation is done. After completion, *byteorder is set to the   current byte order at the end of input data.    If byteorder is NULL, the codec starts in native order mode. */ PyAPI_FUNC(PyObject*) PyUnicode_DecodeUTF16(    const char *string, 	/* UTF-16 encoded string */    Py_ssize_t length,	 	/* size of string */    const char *errors,		/* error handling */    int *byteorder		/* pointer to byteorder to use				   0=native;-1=LE,1=BE; updated on				   exit */    ); PyAPI_FUNC(PyObject*) PyUnicode_DecodeUTF16Stateful(    const char *string, 	/* UTF-16 encoded string */    Py_ssize_t length,	 	/* size of string */    const char *errors,		/* error handling */    int *byteorder,		/* pointer to byteorder to use				   0=native;-1=LE,1=BE; updated on				   exit */    Py_ssize_t *consumed		/* bytes consumed */    ); /* Returns a Python string using the UTF-16 encoding in native byte   order. The string always starts with a BOM mark.  */ PyAPI_FUNC(PyObject*) PyUnicode_AsUTF16String(    PyObject *unicode	 	/* Unicode object */    ); /* Returns a Python string object holding the UTF-16 encoded value of   the Unicode data.    If byteorder is not 0, output is written according to the following   byte order:    byteorder == -1: little endian   byteorder == 0:  native byte order (writes a BOM mark)   byteorder == 1:  big endian    If byteorder is 0, the output string will always start with the   Unicode BOM mark (U+FEFF). In the other two modes, no BOM mark is   prepended.    Note that Py_UNICODE data is being interpreted as UTF-16 reduced to   UCS-2. This trick makes it possible to add full UTF-16 capabilities   at a later point without compromising the APIs. */ PyAPI_FUNC(PyObject*) PyUnicode_EncodeUTF16(    const Py_UNICODE *data, 	/* Unicode char buffer */    Py_ssize_t length,	 		/* number of Py_UNICODE chars to encode */    const char *errors,		/* error handling */    int byteorder		/* byteorder to use 0=BOM+native;-1=LE,1=BE */    ); /* --- Unicode-Escape Codecs ---------------------------------------------- */ PyAPI_FUNC(PyObject*) PyUnicode_DecodeUnicodeEscape(    const char *string, 	/* Unicode-Escape encoded string */    Py_ssize_t length,	 	/* size of string */    const char *errors		/* error handling */    ); PyAPI_FUNC(PyObject*) PyUnicode_AsUnicodeEscapeString(    PyObject *unicode	 	/* Unicode object */    ); PyAPI_FUNC(PyObject*) PyUnicode_EncodeUnicodeEscape(    const Py_UNICODE *data, 	/* Unicode char buffer */    Py_ssize_t length	 		/* Number of Py_UNICODE chars to encode */    ); /* --- Raw-Unicode-Escape Codecs ------------------------------------------ */ PyAPI_FUNC(PyObject*) PyUnicode_DecodeRawUnicodeEscape(    const char *string, 	/* Raw-Unicode-Escape encoded string */    Py_ssize_t length,	 	/* size of string */    const char *errors		/* error handling */    ); PyAPI_FUNC(PyObject*) PyUnicode_AsRawUnicodeEscapeString(    PyObject *unicode	 	/* Unicode object */    ); PyAPI_FUNC(PyObject*) PyUnicode_EncodeRawUnicodeEscape(    const Py_UNICODE *data, 	/* Unicode char buffer */    Py_ssize_t length	 		/* Number of Py_UNICODE chars to encode */    ); /* --- Unicode Internal Codec ---------------------------------------------     Only for internal use in _codecsmodule.c */ PyObject *_PyUnicode_DecodeUnicodeInternal(    const char *string,    Py_ssize_t length,    const char *errors    ); /* --- Latin-1 Codecs -----------------------------------------------------     Note: Latin-1 corresponds to the first 256 Unicode ordinals. */ PyAPI_FUNC(PyObject*) PyUnicode_DecodeLatin1(    const char *string, 	/* Latin-1 encoded string */    Py_ssize_t length,	 	/* size of string */    const char *errors		/* error handling */    ); PyAPI_FUNC(PyObject*) PyUnicode_AsLatin1String(    PyObject *unicode	 	/* Unicode object */    ); PyAPI_FUNC(PyObject*) PyUnicode_EncodeLatin1(    const Py_UNICODE *data, 	/* Unicode char buffer */    Py_ssize_t length,	 		/* Number of Py_UNICODE chars to encode */    const char *errors		/* error handling */    ); /* --- ASCII Codecs -------------------------------------------------------     Only 7-bit ASCII data is excepted. All other codes generate errors. */ PyAPI_FUNC(PyObject*) PyUnicode_DecodeASCII(    const char *string, 	/* ASCII encoded string */    Py_ssize_t length,	 	/* size of string */    const char *errors		/* error handling */    ); PyAPI_FUNC(PyObject*) PyUnicode_AsASCIIString(    PyObject *unicode	 	/* Unicode object */    ); PyAPI_FUNC(PyObject*) PyUnicode_EncodeASCII(    const Py_UNICODE *data, 	/* Unicode char buffer */    Py_ssize_t length,	 		/* Number of Py_UNICODE chars to encode */    const char *errors		/* error handling */    ); /* --- Character Map Codecs -----------------------------------------------     This codec uses mappings to encode and decode characters.     Decoding mappings must map single string characters to single   Unicode characters, integers (which are then interpreted as Unicode   ordinals) or None (meaning "undefined mapping" and causing an   error).    Encoding mappings must map single Unicode characters to single   string characters, integers (which are then interpreted as Latin-1   ordinals) or None (meaning "undefined mapping" and causing an   error).    If a character lookup fails with a LookupError, the character is   copied as-is meaning that its ordinal value will be interpreted as   Unicode or Latin-1 ordinal resp. Because of this mappings only need   to contain those mappings which map characters to different code   points. */ PyAPI_FUNC(PyObject*) PyUnicode_DecodeCharmap(    const char *string, 	/* Encoded string */    Py_ssize_t length,	 	/* size of string */    PyObject *mapping,		/* character mapping 				   (char ordinal -> unicode ordinal) */    const char *errors		/* error handling */    ); PyAPI_FUNC(PyObject*) PyUnicode_AsCharmapString(    PyObject *unicode,	 	/* Unicode object */    PyObject *mapping		/* character mapping 				   (unicode ordinal -> char ordinal) */    ); PyAPI_FUNC(PyObject*) PyUnicode_EncodeCharmap(    const Py_UNICODE *data, 	/* Unicode char buffer */    Py_ssize_t length,	 	/* Number of Py_UNICODE chars to encode */    PyObject *mapping,		/* character mapping 				   (unicode ordinal -> char ordinal) */    const char *errors		/* error handling */    ); /* Translate a Py_UNICODE buffer of the given length by applying a   character mapping table to it and return the resulting Unicode   object.    The mapping table must map Unicode ordinal integers to Unicode   ordinal integers or None (causing deletion of the character).     Mapping tables may be dictionaries or sequences. Unmapped character   ordinals (ones which cause a LookupError) are left untouched and   are copied as-is. */ PyAPI_FUNC(PyObject *) PyUnicode_TranslateCharmap(    const Py_UNICODE *data, 	/* Unicode char buffer */    Py_ssize_t length,	 		/* Number of Py_UNICODE chars to encode */    PyObject *table,		/* Translate table */    const char *errors		/* error handling */    ); #ifdef MS_WIN32 /* --- MBCS codecs for Windows -------------------------------------------- */ PyAPI_FUNC(PyObject*) PyUnicode_DecodeMBCS(    const char *string,         /* MBCS encoded string */    Py_ssize_t length,              /* size of string */    const char *errors          /* error handling */    ); PyAPI_FUNC(PyObject*) PyUnicode_DecodeMBCSStateful(    const char *string,         /* MBCS encoded string */    Py_ssize_t length,          /* size of string */    const char *errors,         /* error handling */    Py_ssize_t *consumed        /* bytes consumed */    ); PyAPI_FUNC(PyObject*) PyUnicode_AsMBCSString(    PyObject *unicode           /* Unicode object */    ); PyAPI_FUNC(PyObject*) PyUnicode_EncodeMBCS(    const Py_UNICODE *data,     /* Unicode char buffer */    Py_ssize_t length,              /* Number of Py_UNICODE chars to encode */    const char *errors          /* error handling */    ); #endif /* MS_WIN32 */ /* --- Decimal Encoder ---------------------------------------------------- */ /* Takes a Unicode string holding a decimal value and writes it into   an output buffer using standard ASCII digit codes.    The output buffer has to provide at least length+1 bytes of storage   area. The output string is 0-terminated.    The encoder converts whitespace to ' ', decimal characters to their   corresponding ASCII digit and all other Latin-1 characters except   \0 as-is. Characters outside this range (Unicode ordinals 1-256)   are treated as errors. This includes embedded NULL bytes.    Error handling is defined by the errors argument:       NULL or "strict": raise a ValueError      "ignore": ignore the wrong characters (these are not copied to the		output buffer)      "replace": replaces illegal characters with '?'    Returns 0 on success, -1 on failure. */ PyAPI_FUNC(int) PyUnicode_EncodeDecimal(    Py_UNICODE *s,		/* Unicode buffer */    Py_ssize_t length,			/* Number of Py_UNICODE chars to encode */    char *output,		/* Output buffer; must have size >= length */    const char *errors		/* error handling */    ); /* --- Methods & Slots ----------------------------------------------------    These are capable of handling Unicode objects and strings on input   (we refer to them as strings in the descriptions) and return   Unicode objects or integers as apporpriate. */ /* Concat two strings giving a new Unicode string. */ 

Lines 501–1000 of 1265. Previous lines