Mercurial > cpython-lru_cache-weakref
annotate Include/unicodeobject.h @ 49955:878d40468c4e legacy-trunk
Issue #4384: Added logging integration with warnings module using captureWarnings(). This change includes a NullHandler which does nothing; it will be of use to library developers who want to avoid the "No handlers could be found for logger XXX" message which can appear if the library user doesn't configure logging.
| author | Vinay Sajip <vinay_sajip@yahoo.co.uk> |
|---|---|
| date | Wed, 03 Dec 2008 23:22:58 +0000 |
| parents | e1a88e8b9649 |
| children | df3923c36ec5 027a6f3ac874 |
| rev | line source |
|---|---|
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1 #ifndef Py_UNICODEOBJECT_H |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
2 #define Py_UNICODEOBJECT_H |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
3 |
|
44996
467c71f365fd
Add stdarg include for va_list to get this to compile on cygwin
Neal Norwitz <nnorwitz@gmail.com>
parents:
44945
diff
changeset
|
4 #include <stdarg.h> |
|
467c71f365fd
Add stdarg include for va_list to get this to compile on cygwin
Neal Norwitz <nnorwitz@gmail.com>
parents:
44945
diff
changeset
|
5 |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
6 /* |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
7 |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
8 Unicode implementation based on original code by Fredrik Lundh, |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
9 modified by Marc-Andre Lemburg (mal@lemburg.com) according to the |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
10 Unicode Integration Proposal (see file Misc/unicode.txt). |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
11 |
|
13828
254f8b7c4a83
Changing the CNRI copyright notice according to CNRI's instructions.
Guido van Rossum <guido@python.org>
parents:
13661
diff
changeset
|
12 Copyright (c) Corporation for National Research Initiatives. |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
13 |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
14 |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
15 Original header: |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
16 -------------------------------------------------------------------- |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
17 |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
18 * Yet another Unicode string type for Python. This type supports the |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
19 * 16-bit Basic Multilingual Plane (BMP) only. |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
20 * |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
21 * Written by Fredrik Lundh, January 1999. |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
22 * |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
23 * Copyright (c) 1999 by Secret Labs AB. |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
24 * Copyright (c) 1999 by Fredrik Lundh. |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
25 * |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
26 * fredrik@pythonware.com |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
27 * http://www.pythonware.com |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
28 * |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
29 * -------------------------------------------------------------------- |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
30 * This Unicode String Type is |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
31 * |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
32 * Copyright (c) 1999 by Secret Labs AB |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
33 * Copyright (c) 1999 by Fredrik Lundh |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
34 * |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
35 * By obtaining, using, and/or copying this software and/or its |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
36 * associated documentation, you agree that you have read, understood, |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
37 * and will comply with the following terms and conditions: |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
38 * |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
39 * Permission to use, copy, modify, and distribute this software and its |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
40 * associated documentation for any purpose and without fee is hereby |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
41 * granted, provided that the above copyright notice appears in all |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
42 * copies, and that both that copyright notice and this permission notice |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
43 * appear in supporting documentation, and that the name of Secret Labs |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
44 * AB or the author not be used in advertising or publicity pertaining to |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
45 * distribution of the software without specific, written prior |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
46 * permission. |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
47 * |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
48 * SECRET LABS AB AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
49 * THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
50 * FITNESS. IN NO EVENT SHALL SECRET LABS AB OR THE AUTHOR BE LIABLE FOR |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
51 * ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
52 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
53 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
54 * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
55 * -------------------------------------------------------------------- */ |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
56 |
| 19980 | 57 #include <ctype.h> |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
58 |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
59 /* === Internal API ======================================================= */ |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
60 |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
61 /* --- Internal Unicode Format -------------------------------------------- */ |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
62 |
|
19343
7257e87e0720
Patch #445762: Support --disable-unicode
Martin v. Löwis <martin@v.loewis.de>
parents:
19121
diff
changeset
|
63 #ifndef Py_USING_UNICODE |
|
7257e87e0720
Patch #445762: Support --disable-unicode
Martin v. Löwis <martin@v.loewis.de>
parents:
19121
diff
changeset
|
64 |
|
7257e87e0720
Patch #445762: Support --disable-unicode
Martin v. Löwis <martin@v.loewis.de>
parents:
19121
diff
changeset
|
65 #define PyUnicode_Check(op) 0 |
|
19849
bf0202dac441
Possibly the end of SF [#460020] bug or feature: unicode() and subclasses.
Tim Peters <tim.peters@gmail.com>
parents:
19589
diff
changeset
|
66 #define PyUnicode_CheckExact(op) 0 |
|
19343
7257e87e0720
Patch #445762: Support --disable-unicode
Martin v. Löwis <martin@v.loewis.de>
parents:
19121
diff
changeset
|
67 |
|
7257e87e0720
Patch #445762: Support --disable-unicode
Martin v. Löwis <martin@v.loewis.de>
parents:
19121
diff
changeset
|
68 #else |
|
7257e87e0720
Patch #445762: Support --disable-unicode
Martin v. Löwis <martin@v.loewis.de>
parents:
19121
diff
changeset
|
69 |
|
18296
22f85c6a6520
Make Unicode work a bit better on Windows...
Fredrik Lundh <fredrik@pythonware.com>
parents:
18292
diff
changeset
|
70 /* FIXME: MvL's new implementation assumes that Py_UNICODE_SIZE is |
|
22f85c6a6520
Make Unicode work a bit better on Windows...
Fredrik Lundh <fredrik@pythonware.com>
parents:
18292
diff
changeset
|
71 properly set, but the default rules below doesn't set it. I'll |
|
22f85c6a6520
Make Unicode work a bit better on Windows...
Fredrik Lundh <fredrik@pythonware.com>
parents:
18292
diff
changeset
|
72 sort this out some other day -- fredrik@pythonware.com */ |
|
22f85c6a6520
Make Unicode work a bit better on Windows...
Fredrik Lundh <fredrik@pythonware.com>
parents:
18292
diff
changeset
|
73 |
|
22f85c6a6520
Make Unicode work a bit better on Windows...
Fredrik Lundh <fredrik@pythonware.com>
parents:
18292
diff
changeset
|
74 #ifndef Py_UNICODE_SIZE |
|
22f85c6a6520
Make Unicode work a bit better on Windows...
Fredrik Lundh <fredrik@pythonware.com>
parents:
18292
diff
changeset
|
75 #error Must define Py_UNICODE_SIZE |
|
22f85c6a6520
Make Unicode work a bit better on Windows...
Fredrik Lundh <fredrik@pythonware.com>
parents:
18292
diff
changeset
|
76 #endif |
|
22f85c6a6520
Make Unicode work a bit better on Windows...
Fredrik Lundh <fredrik@pythonware.com>
parents:
18292
diff
changeset
|
77 |
|
18324
3ba7a358ce02
use Py_UNICODE_WIDE instead of USE_UCS4_STORAGE and Py_UNICODE_SIZE
Fredrik Lundh <fredrik@pythonware.com>
parents:
18298
diff
changeset
|
78 /* Setting Py_UNICODE_WIDE enables UCS-4 storage. Otherwise, Unicode |
|
3ba7a358ce02
use Py_UNICODE_WIDE instead of USE_UCS4_STORAGE and Py_UNICODE_SIZE
Fredrik Lundh <fredrik@pythonware.com>
parents:
18298
diff
changeset
|
79 strings are stored as UCS-2 (with limited support for UTF-16) */ |
|
3ba7a358ce02
use Py_UNICODE_WIDE instead of USE_UCS4_STORAGE and Py_UNICODE_SIZE
Fredrik Lundh <fredrik@pythonware.com>
parents:
18298
diff
changeset
|
80 |
|
3ba7a358ce02
use Py_UNICODE_WIDE instead of USE_UCS4_STORAGE and Py_UNICODE_SIZE
Fredrik Lundh <fredrik@pythonware.com>
parents:
18298
diff
changeset
|
81 #if Py_UNICODE_SIZE >= 4 |
|
3ba7a358ce02
use Py_UNICODE_WIDE instead of USE_UCS4_STORAGE and Py_UNICODE_SIZE
Fredrik Lundh <fredrik@pythonware.com>
parents:
18298
diff
changeset
|
82 #define Py_UNICODE_WIDE |
|
18292
ffbb9c918ac0
Support using UCS-4 as the Py_UNICODE type:
Martin v. Löwis <martin@v.loewis.de>
parents:
18280
diff
changeset
|
83 #endif |
|
18280
0632dcd69ea3
experimental UCS-4 support: added USE_UCS4_STORAGE define to
Fredrik Lundh <fredrik@pythonware.com>
parents:
17887
diff
changeset
|
84 |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
85 /* Set these flags if the platform has "wchar.h", "wctype.h" and the |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
86 wchar_t type is a 16-bit unsigned type */ |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
87 /* #define HAVE_WCHAR_H */ |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
88 /* #define HAVE_USABLE_WCHAR_T */ |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
89 |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
90 /* Defaults for various platforms */ |
|
18292
ffbb9c918ac0
Support using UCS-4 as the Py_UNICODE type:
Martin v. Löwis <martin@v.loewis.de>
parents:
18280
diff
changeset
|
91 #ifndef PY_UNICODE_TYPE |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
92 |
|
18280
0632dcd69ea3
experimental UCS-4 support: added USE_UCS4_STORAGE define to
Fredrik Lundh <fredrik@pythonware.com>
parents:
17887
diff
changeset
|
93 /* Windows has a usable wchar_t type (unless we're using UCS-4) */ |
|
18324
3ba7a358ce02
use Py_UNICODE_WIDE instead of USE_UCS4_STORAGE and Py_UNICODE_SIZE
Fredrik Lundh <fredrik@pythonware.com>
parents:
18298
diff
changeset
|
94 # if defined(MS_WIN32) && Py_UNICODE_SIZE == 2 |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
95 # define HAVE_USABLE_WCHAR_T |
|
18292
ffbb9c918ac0
Support using UCS-4 as the Py_UNICODE type:
Martin v. Löwis <martin@v.loewis.de>
parents:
18280
diff
changeset
|
96 # define PY_UNICODE_TYPE wchar_t |
|
ffbb9c918ac0
Support using UCS-4 as the Py_UNICODE type:
Martin v. Löwis <martin@v.loewis.de>
parents:
18280
diff
changeset
|
97 # endif |
|
ffbb9c918ac0
Support using UCS-4 as the Py_UNICODE type:
Martin v. Löwis <martin@v.loewis.de>
parents:
18280
diff
changeset
|
98 |
|
18324
3ba7a358ce02
use Py_UNICODE_WIDE instead of USE_UCS4_STORAGE and Py_UNICODE_SIZE
Fredrik Lundh <fredrik@pythonware.com>
parents:
18298
diff
changeset
|
99 # if defined(Py_UNICODE_WIDE) |
|
18292
ffbb9c918ac0
Support using UCS-4 as the Py_UNICODE type:
Martin v. Löwis <martin@v.loewis.de>
parents:
18280
diff
changeset
|
100 # define PY_UNICODE_TYPE Py_UCS4 |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
101 # endif |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
102 |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
103 #endif |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
104 |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
105 /* If the compiler provides a wchar_t type we try to support it |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
106 through the interface functions PyUnicode_FromWideChar() and |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
107 PyUnicode_AsWideChar(). */ |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
108 |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
109 #ifdef HAVE_USABLE_WCHAR_T |
|
13917
03fa40528d17
Added #fndef's to avoid compiler errors.
Marc-André Lemburg <mal@egenix.com>
parents:
13837
diff
changeset
|
110 # ifndef HAVE_WCHAR_H |
|
03fa40528d17
Added #fndef's to avoid compiler errors.
Marc-André Lemburg <mal@egenix.com>
parents:
13837
diff
changeset
|
111 # define HAVE_WCHAR_H |
|
03fa40528d17
Added #fndef's to avoid compiler errors.
Marc-André Lemburg <mal@egenix.com>
parents:
13837
diff
changeset
|
112 # endif |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
113 #endif |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
114 |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
115 #ifdef HAVE_WCHAR_H |
| 12074 | 116 /* Work around a cosmetic bug in BSDI 4.x wchar.h; thanks to Thomas Wouters */ |
| 117 # ifdef _HAVE_BSDI | |
| 118 # include <time.h> | |
| 119 # endif | |
| 19980 | 120 # include <wchar.h> |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
121 #endif |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
122 |
|
18292
ffbb9c918ac0
Support using UCS-4 as the Py_UNICODE type:
Martin v. Löwis <martin@v.loewis.de>
parents:
18280
diff
changeset
|
123 /* |
|
ffbb9c918ac0
Support using UCS-4 as the Py_UNICODE type:
Martin v. Löwis <martin@v.loewis.de>
parents:
18280
diff
changeset
|
124 * Use this typedef when you need to represent a UTF-16 surrogate pair |
|
ffbb9c918ac0
Support using UCS-4 as the Py_UNICODE type:
Martin v. Löwis <martin@v.loewis.de>
parents:
18280
diff
changeset
|
125 * as single unsigned integer. |
|
ffbb9c918ac0
Support using UCS-4 as the Py_UNICODE type:
Martin v. Löwis <martin@v.loewis.de>
parents:
18280
diff
changeset
|
126 */ |
|
ffbb9c918ac0
Support using UCS-4 as the Py_UNICODE type:
Martin v. Löwis <martin@v.loewis.de>
parents:
18280
diff
changeset
|
127 #if SIZEOF_INT >= 4 |
|
ffbb9c918ac0
Support using UCS-4 as the Py_UNICODE type:
Martin v. Löwis <martin@v.loewis.de>
parents:
18280
diff
changeset
|
128 typedef unsigned int Py_UCS4; |
|
ffbb9c918ac0
Support using UCS-4 as the Py_UNICODE type:
Martin v. Löwis <martin@v.loewis.de>
parents:
18280
diff
changeset
|
129 #elif SIZEOF_LONG >= 4 |
|
ffbb9c918ac0
Support using UCS-4 as the Py_UNICODE type:
Martin v. Löwis <martin@v.loewis.de>
parents:
18280
diff
changeset
|
130 typedef unsigned long Py_UCS4; |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
131 #endif |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
132 |
|
18292
ffbb9c918ac0
Support using UCS-4 as the Py_UNICODE type:
Martin v. Löwis <martin@v.loewis.de>
parents:
18280
diff
changeset
|
133 typedef PY_UNICODE_TYPE Py_UNICODE; |
|
13393
bcb14627b8f4
Bill Tutt: Added Py_UCS4 typedef to hold UCS4 values (these need
Marc-André Lemburg <mal@egenix.com>
parents:
13352
diff
changeset
|
134 |
|
18911
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
135 /* --- UCS-2/UCS-4 Name Mangling ------------------------------------------ */ |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
136 |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
137 /* Unicode API names are mangled to assure that UCS-2 and UCS-4 builds |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
138 produce different external names and thus cause import errors in |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
139 case Python interpreters and extensions with mixed compiled in |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
140 Unicode width assumptions are combined. */ |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
141 |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
142 #ifndef Py_UNICODE_WIDE |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
143 |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
144 # define PyUnicode_AsASCIIString PyUnicodeUCS2_AsASCIIString |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
145 # define PyUnicode_AsCharmapString PyUnicodeUCS2_AsCharmapString |
|
32551
f46d49e2e0f0
Allow string and unicode return types from .encode()/.decode()
Marc-André Lemburg <mal@egenix.com>
parents:
32197
diff
changeset
|
146 # define PyUnicode_AsEncodedObject PyUnicodeUCS2_AsEncodedObject |
|
18911
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
147 # define PyUnicode_AsEncodedString PyUnicodeUCS2_AsEncodedString |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
148 # define PyUnicode_AsLatin1String PyUnicodeUCS2_AsLatin1String |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
149 # define PyUnicode_AsRawUnicodeEscapeString PyUnicodeUCS2_AsRawUnicodeEscapeString |
|
42649
c916731321c0
Backport r57105 and r57145 from the py3k branch: UTF-32 codecs.
Walter Dörwald <walter@livinglogic.de>
parents:
42333
diff
changeset
|
150 # define PyUnicode_AsUTF32String PyUnicodeUCS2_AsUTF32String |
|
18911
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
151 # define PyUnicode_AsUTF16String PyUnicodeUCS2_AsUTF16String |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
152 # define PyUnicode_AsUTF8String PyUnicodeUCS2_AsUTF8String |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
153 # define PyUnicode_AsUnicode PyUnicodeUCS2_AsUnicode |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
154 # define PyUnicode_AsUnicodeEscapeString PyUnicodeUCS2_AsUnicodeEscapeString |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
155 # define PyUnicode_AsWideChar PyUnicodeUCS2_AsWideChar |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
156 # define PyUnicode_Compare PyUnicodeUCS2_Compare |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
157 # define PyUnicode_Concat PyUnicodeUCS2_Concat |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
158 # define PyUnicode_Contains PyUnicodeUCS2_Contains |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
159 # define PyUnicode_Count PyUnicodeUCS2_Count |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
160 # define PyUnicode_Decode PyUnicodeUCS2_Decode |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
161 # define PyUnicode_DecodeASCII PyUnicodeUCS2_DecodeASCII |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
162 # define PyUnicode_DecodeCharmap PyUnicodeUCS2_DecodeCharmap |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
163 # define PyUnicode_DecodeLatin1 PyUnicodeUCS2_DecodeLatin1 |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
164 # define PyUnicode_DecodeRawUnicodeEscape PyUnicodeUCS2_DecodeRawUnicodeEscape |
|
42649
c916731321c0
Backport r57105 and r57145 from the py3k branch: UTF-32 codecs.
Walter Dörwald <walter@livinglogic.de>
parents:
42333
diff
changeset
|
165 # define PyUnicode_DecodeUTF32 PyUnicodeUCS2_DecodeUTF32 |
|
c916731321c0
Backport r57105 and r57145 from the py3k branch: UTF-32 codecs.
Walter Dörwald <walter@livinglogic.de>
parents:
42333
diff
changeset
|
166 # define PyUnicode_DecodeUTF32Stateful PyUnicodeUCS2_DecodeUTF32Stateful |
|
18911
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
167 # define PyUnicode_DecodeUTF16 PyUnicodeUCS2_DecodeUTF16 |
|
33428
57478a13fbf6
SF patch #998993: The UTF-8 and the UTF-16 stateful decoders now support
Walter Dörwald <walter@livinglogic.de>
parents:
32951
diff
changeset
|
168 # define PyUnicode_DecodeUTF16Stateful PyUnicodeUCS2_DecodeUTF16Stateful |
|
18911
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
169 # define PyUnicode_DecodeUTF8 PyUnicodeUCS2_DecodeUTF8 |
|
33428
57478a13fbf6
SF patch #998993: The UTF-8 and the UTF-16 stateful decoders now support
Walter Dörwald <walter@livinglogic.de>
parents:
32951
diff
changeset
|
170 # define PyUnicode_DecodeUTF8Stateful PyUnicodeUCS2_DecodeUTF8Stateful |
|
18911
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
171 # define PyUnicode_DecodeUnicodeEscape PyUnicodeUCS2_DecodeUnicodeEscape |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
172 # define PyUnicode_Encode PyUnicodeUCS2_Encode |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
173 # define PyUnicode_EncodeASCII PyUnicodeUCS2_EncodeASCII |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
174 # define PyUnicode_EncodeCharmap PyUnicodeUCS2_EncodeCharmap |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
175 # define PyUnicode_EncodeDecimal PyUnicodeUCS2_EncodeDecimal |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
176 # define PyUnicode_EncodeLatin1 PyUnicodeUCS2_EncodeLatin1 |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
177 # define PyUnicode_EncodeRawUnicodeEscape PyUnicodeUCS2_EncodeRawUnicodeEscape |
|
42649
c916731321c0
Backport r57105 and r57145 from the py3k branch: UTF-32 codecs.
Walter Dörwald <walter@livinglogic.de>
parents:
42333
diff
changeset
|
178 # define PyUnicode_EncodeUTF32 PyUnicodeUCS2_EncodeUTF32 |
|
18911
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
179 # define PyUnicode_EncodeUTF16 PyUnicodeUCS2_EncodeUTF16 |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
180 # define PyUnicode_EncodeUTF8 PyUnicodeUCS2_EncodeUTF8 |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
181 # define PyUnicode_EncodeUnicodeEscape PyUnicodeUCS2_EncodeUnicodeEscape |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
182 # define PyUnicode_Find PyUnicodeUCS2_Find |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
183 # define PyUnicode_Format PyUnicodeUCS2_Format |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
184 # define PyUnicode_FromEncodedObject PyUnicodeUCS2_FromEncodedObject |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
185 # define PyUnicode_FromObject PyUnicodeUCS2_FromObject |
|
24753
27ae978bee58
Add name mangling for new PyUnicode_FromOrdinal() and fix declaration
Marc-André Lemburg <mal@egenix.com>
parents:
24752
diff
changeset
|
186 # define PyUnicode_FromOrdinal PyUnicodeUCS2_FromOrdinal |
|
18911
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
187 # define PyUnicode_FromUnicode PyUnicodeUCS2_FromUnicode |
|
44945
bbc719a8b58b
Backport of several functions from Python 3.0 to 2.6 including PyUnicode_FromString, PyUnicode_Format and PyLong_From/AsSsize_t. The functions are partly required for the backport of the bytearray type and _fileio module. They should also make it easier to port C to 3.0.
Christian Heimes <christian@cheimes.de>
parents:
44350
diff
changeset
|
188 # define PyUnicode_FromString PyUnicodeUCS2_FromString |
|
bbc719a8b58b
Backport of several functions from Python 3.0 to 2.6 including PyUnicode_FromString, PyUnicode_Format and PyLong_From/AsSsize_t. The functions are partly required for the backport of the bytearray type and _fileio module. They should also make it easier to port C to 3.0.
Christian Heimes <christian@cheimes.de>
parents:
44350
diff
changeset
|
189 # define PyUnicode_FromStringAndSize PyUnicodeUCS2_FromStringAndSize |
|
bbc719a8b58b
Backport of several functions from Python 3.0 to 2.6 including PyUnicode_FromString, PyUnicode_Format and PyLong_From/AsSsize_t. The functions are partly required for the backport of the bytearray type and _fileio module. They should also make it easier to port C to 3.0.
Christian Heimes <christian@cheimes.de>
parents:
44350
diff
changeset
|
190 # define PyUnicode_FromFormatV PyUnicodeUCS2_FromFormatV |
|
bbc719a8b58b
Backport of several functions from Python 3.0 to 2.6 including PyUnicode_FromString, PyUnicode_Format and PyLong_From/AsSsize_t. The functions are partly required for the backport of the bytearray type and _fileio module. They should also make it easier to port C to 3.0.
Christian Heimes <christian@cheimes.de>
parents:
44350
diff
changeset
|
191 # define PyUnicode_FromFormat PyUnicodeUCS2_FromFormat |
|
18911
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
192 # define PyUnicode_FromWideChar PyUnicodeUCS2_FromWideChar |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
193 # define PyUnicode_GetDefaultEncoding PyUnicodeUCS2_GetDefaultEncoding |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
194 # define PyUnicode_GetMax PyUnicodeUCS2_GetMax |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
195 # define PyUnicode_GetSize PyUnicodeUCS2_GetSize |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
196 # define PyUnicode_Join PyUnicodeUCS2_Join |
|
38335
f9332ad4287a
needforspeed: partition implementation, part two.
Fredrik Lundh <fredrik@pythonware.com>
parents:
38242
diff
changeset
|
197 # define PyUnicode_Partition PyUnicodeUCS2_Partition |
|
38390
76807902a2f5
needforspeed: added rpartition implementation
Fredrik Lundh <fredrik@pythonware.com>
parents:
38335
diff
changeset
|
198 # define PyUnicode_RPartition PyUnicodeUCS2_RPartition |
|
76807902a2f5
needforspeed: added rpartition implementation
Fredrik Lundh <fredrik@pythonware.com>
parents:
38335
diff
changeset
|
199 # define PyUnicode_RSplit PyUnicodeUCS2_RSplit |
|
18911
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
200 # define PyUnicode_Replace PyUnicodeUCS2_Replace |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
201 # define PyUnicode_Resize PyUnicodeUCS2_Resize |
|
39487
635b09b1f542
Slightly revised version of patch #1538956:
Marc-André Lemburg <mal@egenix.com>
parents:
38817
diff
changeset
|
202 # define PyUnicode_RichCompare PyUnicodeUCS2_RichCompare |
|
18911
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
203 # define PyUnicode_SetDefaultEncoding PyUnicodeUCS2_SetDefaultEncoding |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
204 # define PyUnicode_Split PyUnicodeUCS2_Split |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
205 # define PyUnicode_Splitlines PyUnicodeUCS2_Splitlines |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
206 # define PyUnicode_Tailmatch PyUnicodeUCS2_Tailmatch |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
207 # define PyUnicode_Translate PyUnicodeUCS2_Translate |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
208 # define PyUnicode_TranslateCharmap PyUnicodeUCS2_TranslateCharmap |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
209 # define _PyUnicode_AsDefaultEncodedString _PyUnicodeUCS2_AsDefaultEncodedString |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
210 # define _PyUnicode_Fini _PyUnicodeUCS2_Fini |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
211 # define _PyUnicode_Init _PyUnicodeUCS2_Init |
|
45341
65ae68c7aca3
Implemented Martin's suggestion to clear the free lists during the garbage collection of the highest generation.
Christian Heimes <christian@cheimes.de>
parents:
45053
diff
changeset
|
212 # define PyUnicode_ClearFreeList PyUnicodeUCS2_ClearFreelist |
|
18911
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
213 # define _PyUnicode_IsAlpha _PyUnicodeUCS2_IsAlpha |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
214 # define _PyUnicode_IsDecimalDigit _PyUnicodeUCS2_IsDecimalDigit |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
215 # define _PyUnicode_IsDigit _PyUnicodeUCS2_IsDigit |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
216 # define _PyUnicode_IsLinebreak _PyUnicodeUCS2_IsLinebreak |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
217 # define _PyUnicode_IsLowercase _PyUnicodeUCS2_IsLowercase |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
218 # define _PyUnicode_IsNumeric _PyUnicodeUCS2_IsNumeric |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
219 # define _PyUnicode_IsTitlecase _PyUnicodeUCS2_IsTitlecase |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
220 # define _PyUnicode_IsUppercase _PyUnicodeUCS2_IsUppercase |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
221 # define _PyUnicode_IsWhitespace _PyUnicodeUCS2_IsWhitespace |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
222 # define _PyUnicode_ToDecimalDigit _PyUnicodeUCS2_ToDecimalDigit |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
223 # define _PyUnicode_ToDigit _PyUnicodeUCS2_ToDigit |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
224 # define _PyUnicode_ToLowercase _PyUnicodeUCS2_ToLowercase |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
225 # define _PyUnicode_ToNumeric _PyUnicodeUCS2_ToNumeric |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
226 # define _PyUnicode_ToTitlecase _PyUnicodeUCS2_ToTitlecase |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
227 # define _PyUnicode_ToUppercase _PyUnicodeUCS2_ToUppercase |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
228 |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
229 #else |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
230 |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
231 # define PyUnicode_AsASCIIString PyUnicodeUCS4_AsASCIIString |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
232 # define PyUnicode_AsCharmapString PyUnicodeUCS4_AsCharmapString |
|
32551
f46d49e2e0f0
Allow string and unicode return types from .encode()/.decode()
Marc-André Lemburg <mal@egenix.com>
parents:
32197
diff
changeset
|
233 # define PyUnicode_AsEncodedObject PyUnicodeUCS4_AsEncodedObject |
|
18911
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
234 # define PyUnicode_AsEncodedString PyUnicodeUCS4_AsEncodedString |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
235 # define PyUnicode_AsLatin1String PyUnicodeUCS4_AsLatin1String |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
236 # define PyUnicode_AsRawUnicodeEscapeString PyUnicodeUCS4_AsRawUnicodeEscapeString |
|
42649
c916731321c0
Backport r57105 and r57145 from the py3k branch: UTF-32 codecs.
Walter Dörwald <walter@livinglogic.de>
parents:
42333
diff
changeset
|
237 # define PyUnicode_AsUTF32String PyUnicodeUCS4_AsUTF32String |
|
18911
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
238 # define PyUnicode_AsUTF16String PyUnicodeUCS4_AsUTF16String |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
239 # define PyUnicode_AsUTF8String PyUnicodeUCS4_AsUTF8String |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
240 # define PyUnicode_AsUnicode PyUnicodeUCS4_AsUnicode |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
241 # define PyUnicode_AsUnicodeEscapeString PyUnicodeUCS4_AsUnicodeEscapeString |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
242 # define PyUnicode_AsWideChar PyUnicodeUCS4_AsWideChar |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
243 # define PyUnicode_Compare PyUnicodeUCS4_Compare |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
244 # define PyUnicode_Concat PyUnicodeUCS4_Concat |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
245 # define PyUnicode_Contains PyUnicodeUCS4_Contains |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
246 # define PyUnicode_Count PyUnicodeUCS4_Count |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
247 # define PyUnicode_Decode PyUnicodeUCS4_Decode |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
248 # define PyUnicode_DecodeASCII PyUnicodeUCS4_DecodeASCII |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
249 # define PyUnicode_DecodeCharmap PyUnicodeUCS4_DecodeCharmap |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
250 # define PyUnicode_DecodeLatin1 PyUnicodeUCS4_DecodeLatin1 |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
251 # define PyUnicode_DecodeRawUnicodeEscape PyUnicodeUCS4_DecodeRawUnicodeEscape |
|
42649
c916731321c0
Backport r57105 and r57145 from the py3k branch: UTF-32 codecs.
Walter Dörwald <walter@livinglogic.de>
parents:
42333
diff
changeset
|
252 # define PyUnicode_DecodeUTF32 PyUnicodeUCS4_DecodeUTF32 |
|
c916731321c0
Backport r57105 and r57145 from the py3k branch: UTF-32 codecs.
Walter Dörwald <walter@livinglogic.de>
parents:
42333
diff
changeset
|
253 # define PyUnicode_DecodeUTF32Stateful PyUnicodeUCS4_DecodeUTF32Stateful |
|
18911
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
254 # define PyUnicode_DecodeUTF16 PyUnicodeUCS4_DecodeUTF16 |
|
33428
57478a13fbf6
SF patch #998993: The UTF-8 and the UTF-16 stateful decoders now support
Walter Dörwald <walter@livinglogic.de>
parents:
32951
diff
changeset
|
255 # define PyUnicode_DecodeUTF16Stateful PyUnicodeUCS4_DecodeUTF16Stateful |
|
18911
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
256 # define PyUnicode_DecodeUTF8 PyUnicodeUCS4_DecodeUTF8 |
|
33428
57478a13fbf6
SF patch #998993: The UTF-8 and the UTF-16 stateful decoders now support
Walter Dörwald <walter@livinglogic.de>
parents:
32951
diff
changeset
|
257 # define PyUnicode_DecodeUTF8Stateful PyUnicodeUCS4_DecodeUTF8Stateful |
|
18911
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
258 # define PyUnicode_DecodeUnicodeEscape PyUnicodeUCS4_DecodeUnicodeEscape |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
259 # define PyUnicode_Encode PyUnicodeUCS4_Encode |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
260 # define PyUnicode_EncodeASCII PyUnicodeUCS4_EncodeASCII |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
261 # define PyUnicode_EncodeCharmap PyUnicodeUCS4_EncodeCharmap |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
262 # define PyUnicode_EncodeDecimal PyUnicodeUCS4_EncodeDecimal |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
263 # define PyUnicode_EncodeLatin1 PyUnicodeUCS4_EncodeLatin1 |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
264 # define PyUnicode_EncodeRawUnicodeEscape PyUnicodeUCS4_EncodeRawUnicodeEscape |
|
42649
c916731321c0
Backport r57105 and r57145 from the py3k branch: UTF-32 codecs.
Walter Dörwald <walter@livinglogic.de>
parents:
42333
diff
changeset
|
265 # define PyUnicode_EncodeUTF32 PyUnicodeUCS4_EncodeUTF32 |
|
18911
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
266 # define PyUnicode_EncodeUTF16 PyUnicodeUCS4_EncodeUTF16 |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
267 # define PyUnicode_EncodeUTF8 PyUnicodeUCS4_EncodeUTF8 |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
268 # define PyUnicode_EncodeUnicodeEscape PyUnicodeUCS4_EncodeUnicodeEscape |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
269 # define PyUnicode_Find PyUnicodeUCS4_Find |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
270 # define PyUnicode_Format PyUnicodeUCS4_Format |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
271 # define PyUnicode_FromEncodedObject PyUnicodeUCS4_FromEncodedObject |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
272 # define PyUnicode_FromObject PyUnicodeUCS4_FromObject |
|
24753
27ae978bee58
Add name mangling for new PyUnicode_FromOrdinal() and fix declaration
Marc-André Lemburg <mal@egenix.com>
parents:
24752
diff
changeset
|
273 # define PyUnicode_FromOrdinal PyUnicodeUCS4_FromOrdinal |
|
18911
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
274 # define PyUnicode_FromUnicode PyUnicodeUCS4_FromUnicode |
|
44945
bbc719a8b58b
Backport of several functions from Python 3.0 to 2.6 including PyUnicode_FromString, PyUnicode_Format and PyLong_From/AsSsize_t. The functions are partly required for the backport of the bytearray type and _fileio module. They should also make it easier to port C to 3.0.
Christian Heimes <christian@cheimes.de>
parents:
44350
diff
changeset
|
275 # define PyUnicode_FromString PyUnicodeUCS4_FromString |
|
bbc719a8b58b
Backport of several functions from Python 3.0 to 2.6 including PyUnicode_FromString, PyUnicode_Format and PyLong_From/AsSsize_t. The functions are partly required for the backport of the bytearray type and _fileio module. They should also make it easier to port C to 3.0.
Christian Heimes <christian@cheimes.de>
parents:
44350
diff
changeset
|
276 # define PyUnicode_FromStringAndSize PyUnicodeUCS4_FromStringAndSize |
|
bbc719a8b58b
Backport of several functions from Python 3.0 to 2.6 including PyUnicode_FromString, PyUnicode_Format and PyLong_From/AsSsize_t. The functions are partly required for the backport of the bytearray type and _fileio module. They should also make it easier to port C to 3.0.
Christian Heimes <christian@cheimes.de>
parents:
44350
diff
changeset
|
277 # define PyUnicode_FromFormatV PyUnicodeUCS4_FromFormatV |
|
bbc719a8b58b
Backport of several functions from Python 3.0 to 2.6 including PyUnicode_FromString, PyUnicode_Format and PyLong_From/AsSsize_t. The functions are partly required for the backport of the bytearray type and _fileio module. They should also make it easier to port C to 3.0.
Christian Heimes <christian@cheimes.de>
parents:
44350
diff
changeset
|
278 # define PyUnicode_FromFormat PyUnicodeUCS4_FromFormat |
|
18911
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
279 # define PyUnicode_FromWideChar PyUnicodeUCS4_FromWideChar |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
280 # define PyUnicode_GetDefaultEncoding PyUnicodeUCS4_GetDefaultEncoding |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
281 # define PyUnicode_GetMax PyUnicodeUCS4_GetMax |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
282 # define PyUnicode_GetSize PyUnicodeUCS4_GetSize |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
283 # define PyUnicode_Join PyUnicodeUCS4_Join |
|
38335
f9332ad4287a
needforspeed: partition implementation, part two.
Fredrik Lundh <fredrik@pythonware.com>
parents:
38242
diff
changeset
|
284 # define PyUnicode_Partition PyUnicodeUCS4_Partition |
|
38390
76807902a2f5
needforspeed: added rpartition implementation
Fredrik Lundh <fredrik@pythonware.com>
parents:
38335
diff
changeset
|
285 # define PyUnicode_RPartition PyUnicodeUCS4_RPartition |
|
76807902a2f5
needforspeed: added rpartition implementation
Fredrik Lundh <fredrik@pythonware.com>
parents:
38335
diff
changeset
|
286 # define PyUnicode_RSplit PyUnicodeUCS4_RSplit |
|
18911
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
287 # define PyUnicode_Replace PyUnicodeUCS4_Replace |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
288 # define PyUnicode_Resize PyUnicodeUCS4_Resize |
|
39487
635b09b1f542
Slightly revised version of patch #1538956:
Marc-André Lemburg <mal@egenix.com>
parents:
38817
diff
changeset
|
289 # define PyUnicode_RichCompare PyUnicodeUCS4_RichCompare |
|
18911
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
290 # define PyUnicode_SetDefaultEncoding PyUnicodeUCS4_SetDefaultEncoding |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
291 # define PyUnicode_Split PyUnicodeUCS4_Split |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
292 # define PyUnicode_Splitlines PyUnicodeUCS4_Splitlines |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
293 # define PyUnicode_Tailmatch PyUnicodeUCS4_Tailmatch |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
294 # define PyUnicode_Translate PyUnicodeUCS4_Translate |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
295 # define PyUnicode_TranslateCharmap PyUnicodeUCS4_TranslateCharmap |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
296 # define _PyUnicode_AsDefaultEncodedString _PyUnicodeUCS4_AsDefaultEncodedString |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
297 # define _PyUnicode_Fini _PyUnicodeUCS4_Fini |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
298 # define _PyUnicode_Init _PyUnicodeUCS4_Init |
|
45341
65ae68c7aca3
Implemented Martin's suggestion to clear the free lists during the garbage collection of the highest generation.
Christian Heimes <christian@cheimes.de>
parents:
45053
diff
changeset
|
299 # define PyUnicode_ClearFreeList PyUnicodeUCS2_ClearFreelist |
|
18911
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
300 # define _PyUnicode_IsAlpha _PyUnicodeUCS4_IsAlpha |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
301 # define _PyUnicode_IsDecimalDigit _PyUnicodeUCS4_IsDecimalDigit |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
302 # define _PyUnicode_IsDigit _PyUnicodeUCS4_IsDigit |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
303 # define _PyUnicode_IsLinebreak _PyUnicodeUCS4_IsLinebreak |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
304 # define _PyUnicode_IsLowercase _PyUnicodeUCS4_IsLowercase |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
305 # define _PyUnicode_IsNumeric _PyUnicodeUCS4_IsNumeric |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
306 # define _PyUnicode_IsTitlecase _PyUnicodeUCS4_IsTitlecase |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
307 # define _PyUnicode_IsUppercase _PyUnicodeUCS4_IsUppercase |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
308 # define _PyUnicode_IsWhitespace _PyUnicodeUCS4_IsWhitespace |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
309 # define _PyUnicode_ToDecimalDigit _PyUnicodeUCS4_ToDecimalDigit |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
310 # define _PyUnicode_ToDigit _PyUnicodeUCS4_ToDigit |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
311 # define _PyUnicode_ToLowercase _PyUnicodeUCS4_ToLowercase |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
312 # define _PyUnicode_ToNumeric _PyUnicodeUCS4_ToNumeric |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
313 # define _PyUnicode_ToTitlecase _PyUnicodeUCS4_ToTitlecase |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
314 # define _PyUnicode_ToUppercase _PyUnicodeUCS4_ToUppercase |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
315 |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
316 |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
317 #endif |
|
55b45b47fc48
As discussed on python-dev: this patch adds name mangling to
Marc-André Lemburg <mal@egenix.com>
parents:
18887
diff
changeset
|
318 |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
319 /* --- Internal Unicode Operations ---------------------------------------- */ |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
320 |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
321 /* If you want Python to use the compiler's wctype.h functions instead |
|
12025
7994d9db7f4d
On 17-Mar-2000, Marc-Andre Lemburg said:
Barry Warsaw <barry@python.org>
parents:
12002
diff
changeset
|
322 of the ones supplied with Python, define WANT_WCTYPE_FUNCTIONS or |
|
33864
6b61af083493
SF patch #1056231: typo in comment (unicodeobject.h)
Raymond Hettinger <python@rcn.com>
parents:
33428
diff
changeset
|
323 configure Python using --with-wctype-functions. This reduces the |
|
12025
7994d9db7f4d
On 17-Mar-2000, Marc-Andre Lemburg said:
Barry Warsaw <barry@python.org>
parents:
12002
diff
changeset
|
324 interpreter's code size. */ |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
325 |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
326 #if defined(HAVE_USABLE_WCHAR_T) && defined(WANT_WCTYPE_FUNCTIONS) |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
327 |
| 19980 | 328 #include <wctype.h> |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
329 |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
330 #define Py_UNICODE_ISSPACE(ch) iswspace(ch) |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
331 |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
332 #define Py_UNICODE_ISLOWER(ch) iswlower(ch) |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
333 #define Py_UNICODE_ISUPPER(ch) iswupper(ch) |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
334 #define Py_UNICODE_ISTITLE(ch) _PyUnicode_IsTitlecase(ch) |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
335 #define Py_UNICODE_ISLINEBREAK(ch) _PyUnicode_IsLinebreak(ch) |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
336 |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
337 #define Py_UNICODE_TOLOWER(ch) towlower(ch) |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
338 #define Py_UNICODE_TOUPPER(ch) towupper(ch) |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
339 #define Py_UNICODE_TOTITLE(ch) _PyUnicode_ToTitlecase(ch) |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
340 |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
341 #define Py_UNICODE_ISDECIMAL(ch) _PyUnicode_IsDecimalDigit(ch) |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
342 #define Py_UNICODE_ISDIGIT(ch) _PyUnicode_IsDigit(ch) |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
343 #define Py_UNICODE_ISNUMERIC(ch) _PyUnicode_IsNumeric(ch) |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
344 |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
345 #define Py_UNICODE_TODECIMAL(ch) _PyUnicode_ToDecimalDigit(ch) |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
346 #define Py_UNICODE_TODIGIT(ch) _PyUnicode_ToDigit(ch) |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
347 #define Py_UNICODE_TONUMERIC(ch) _PyUnicode_ToNumeric(ch) |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
348 |
|
13352
d88535ccaee5
Modified the ISALPHA and ISALNUM macros to use the new lookup APIs
Marc-André Lemburg <mal@egenix.com>
parents:
13320
diff
changeset
|
349 #define Py_UNICODE_ISALPHA(ch) iswalpha(ch) |
|
d88535ccaee5
Modified the ISALPHA and ISALNUM macros to use the new lookup APIs
Marc-André Lemburg <mal@egenix.com>
parents:
13320
diff
changeset
|
350 |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
351 #else |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
352 |
|
45053
26278796d4da
Patch #1970 by Antoine Pitrou: Speedup unicode whitespace and linebreak detection. The speedup is about 25% for split() (571 / 457 usec) and 35% (175 / 127 usec )for splitlines()
Christian Heimes <christian@cheimes.de>
parents:
44996
diff
changeset
|
353 /* Since splitting on whitespace is an important use case, and whitespace |
|
26278796d4da
Patch #1970 by Antoine Pitrou: Speedup unicode whitespace and linebreak detection. The speedup is about 25% for split() (571 / 457 usec) and 35% (175 / 127 usec )for splitlines()
Christian Heimes <christian@cheimes.de>
parents:
44996
diff
changeset
|
354 in most situations is solely ASCII whitespace, we optimize for the common |
|
26278796d4da
Patch #1970 by Antoine Pitrou: Speedup unicode whitespace and linebreak detection. The speedup is about 25% for split() (571 / 457 usec) and 35% (175 / 127 usec )for splitlines()
Christian Heimes <christian@cheimes.de>
parents:
44996
diff
changeset
|
355 case by using a quick look-up table with an inlined check. |
|
26278796d4da
Patch #1970 by Antoine Pitrou: Speedup unicode whitespace and linebreak detection. The speedup is about 25% for split() (571 / 457 usec) and 35% (175 / 127 usec )for splitlines()
Christian Heimes <christian@cheimes.de>
parents:
44996
diff
changeset
|
356 */ |
|
49502
e1a88e8b9649
Merged revisions 66891 via svnmerge from
Amaury Forgeot d'Arc <amauryfa@gmail.com>
parents:
47392
diff
changeset
|
357 PyAPI_DATA(const unsigned char) _Py_ascii_whitespace[]; |
|
45053
26278796d4da
Patch #1970 by Antoine Pitrou: Speedup unicode whitespace and linebreak detection. The speedup is about 25% for split() (571 / 457 usec) and 35% (175 / 127 usec )for splitlines()
Christian Heimes <christian@cheimes.de>
parents:
44996
diff
changeset
|
358 |
|
26278796d4da
Patch #1970 by Antoine Pitrou: Speedup unicode whitespace and linebreak detection. The speedup is about 25% for split() (571 / 457 usec) and 35% (175 / 127 usec )for splitlines()
Christian Heimes <christian@cheimes.de>
parents:
44996
diff
changeset
|
359 #define Py_UNICODE_ISSPACE(ch) \ |
|
26278796d4da
Patch #1970 by Antoine Pitrou: Speedup unicode whitespace and linebreak detection. The speedup is about 25% for split() (571 / 457 usec) and 35% (175 / 127 usec )for splitlines()
Christian Heimes <christian@cheimes.de>
parents:
44996
diff
changeset
|
360 ((ch) < 128U ? _Py_ascii_whitespace[(ch)] : _PyUnicode_IsWhitespace(ch)) |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
361 |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
362 #define Py_UNICODE_ISLOWER(ch) _PyUnicode_IsLowercase(ch) |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
363 #define Py_UNICODE_ISUPPER(ch) _PyUnicode_IsUppercase(ch) |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
364 #define Py_UNICODE_ISTITLE(ch) _PyUnicode_IsTitlecase(ch) |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
365 #define Py_UNICODE_ISLINEBREAK(ch) _PyUnicode_IsLinebreak(ch) |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
366 |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
367 #define Py_UNICODE_TOLOWER(ch) _PyUnicode_ToLowercase(ch) |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
368 #define Py_UNICODE_TOUPPER(ch) _PyUnicode_ToUppercase(ch) |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
369 #define Py_UNICODE_TOTITLE(ch) _PyUnicode_ToTitlecase(ch) |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
370 |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
371 #define Py_UNICODE_ISDECIMAL(ch) _PyUnicode_IsDecimalDigit(ch) |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
372 #define Py_UNICODE_ISDIGIT(ch) _PyUnicode_IsDigit(ch) |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
373 #define Py_UNICODE_ISNUMERIC(ch) _PyUnicode_IsNumeric(ch) |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
374 |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
375 #define Py_UNICODE_TODECIMAL(ch) _PyUnicode_ToDecimalDigit(ch) |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
376 #define Py_UNICODE_TODIGIT(ch) _PyUnicode_ToDigit(ch) |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
377 #define Py_UNICODE_TONUMERIC(ch) _PyUnicode_ToNumeric(ch) |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
378 |
|
13352
d88535ccaee5
Modified the ISALPHA and ISALNUM macros to use the new lookup APIs
Marc-André Lemburg <mal@egenix.com>
parents:
13320
diff
changeset
|
379 #define Py_UNICODE_ISALPHA(ch) _PyUnicode_IsAlpha(ch) |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
380 |
|
13352
d88535ccaee5
Modified the ISALPHA and ISALNUM macros to use the new lookup APIs
Marc-André Lemburg <mal@egenix.com>
parents:
13320
diff
changeset
|
381 #endif |
|
13320
67a04816ea50
Added new Py_UNICODE_ISALPHA() and Py_UNICODE_ISALNUM() macros
Marc-André Lemburg <mal@egenix.com>
parents:
12956
diff
changeset
|
382 |
|
67a04816ea50
Added new Py_UNICODE_ISALPHA() and Py_UNICODE_ISALNUM() macros
Marc-André Lemburg <mal@egenix.com>
parents:
12956
diff
changeset
|
383 #define Py_UNICODE_ISALNUM(ch) \ |
|
67a04816ea50
Added new Py_UNICODE_ISALPHA() and Py_UNICODE_ISALNUM() macros
Marc-André Lemburg <mal@egenix.com>
parents:
12956
diff
changeset
|
384 (Py_UNICODE_ISALPHA(ch) || \ |
|
67a04816ea50
Added new Py_UNICODE_ISALPHA() and Py_UNICODE_ISALNUM() macros
Marc-André Lemburg <mal@egenix.com>
parents:
12956
diff
changeset
|
385 Py_UNICODE_ISDECIMAL(ch) || \ |
|
67a04816ea50
Added new Py_UNICODE_ISALPHA() and Py_UNICODE_ISALNUM() macros
Marc-André Lemburg <mal@egenix.com>
parents:
12956
diff
changeset
|
386 Py_UNICODE_ISDIGIT(ch) || \ |
|
67a04816ea50
Added new Py_UNICODE_ISALPHA() and Py_UNICODE_ISALNUM() macros
Marc-André Lemburg <mal@egenix.com>
parents:
12956
diff
changeset
|
387 Py_UNICODE_ISNUMERIC(ch)) |
|
67a04816ea50
Added new Py_UNICODE_ISALPHA() and Py_UNICODE_ISALNUM() macros
Marc-André Lemburg <mal@egenix.com>
parents:
12956
diff
changeset
|
388 |
|
38457
551814e4b471
needforspeed: added Py_MEMCPY macro (currently tuned for Visual C only),
Fredrik Lundh <fredrik@pythonware.com>
parents:
38390
diff
changeset
|
389 #define Py_UNICODE_COPY(target, source, length) \ |
|
551814e4b471
needforspeed: added Py_MEMCPY macro (currently tuned for Visual C only),
Fredrik Lundh <fredrik@pythonware.com>
parents:
38390
diff
changeset
|
390 Py_MEMCPY((target), (source), (length)*sizeof(Py_UNICODE)) |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
391 |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
392 #define Py_UNICODE_FILL(target, value, length) do\ |
|
38239
604af867c65f
needforspeed: use memcpy for "long" strings; use a better algorithm
Fredrik Lundh <fredrik@pythonware.com>
parents:
38238
diff
changeset
|
393 {Py_ssize_t i_; Py_UNICODE *t_ = (target); Py_UNICODE v_ = (value);\ |
|
604af867c65f
needforspeed: use memcpy for "long" strings; use a better algorithm
Fredrik Lundh <fredrik@pythonware.com>
parents:
38238
diff
changeset
|
394 for (i_ = 0; i_ < (length); i_++) t_[i_] = v_;\ |
|
38238
feb00df91922
needforspeed: speed up unicode repeat, unicode string copy
Fredrik Lundh <fredrik@pythonware.com>
parents:
36501
diff
changeset
|
395 } while (0) |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
396 |
|
38242
0de9a789de39
needforspeed: check first *and* last character before doing a full memcmp
Fredrik Lundh <fredrik@pythonware.com>
parents:
38239
diff
changeset
|
397 /* check if substring matches at given offset. the offset must be |
|
0de9a789de39
needforspeed: check first *and* last character before doing a full memcmp
Fredrik Lundh <fredrik@pythonware.com>
parents:
38239
diff
changeset
|
398 valid, and the substring must not be empty */ |
|
0de9a789de39
needforspeed: check first *and* last character before doing a full memcmp
Fredrik Lundh <fredrik@pythonware.com>
parents:
38239
diff
changeset
|
399 #define Py_UNICODE_MATCH(string, offset, substring) \ |
|
0de9a789de39
needforspeed: check first *and* last character before doing a full memcmp
Fredrik Lundh <fredrik@pythonware.com>
parents:
38239
diff
changeset
|
400 ((*((string)->str + (offset)) == *((substring)->str)) && \ |
|
0de9a789de39
needforspeed: check first *and* last character before doing a full memcmp
Fredrik Lundh <fredrik@pythonware.com>
parents:
38239
diff
changeset
|
401 ((*((string)->str + (offset) + (substring)->length-1) == *((substring)->str + (substring)->length-1))) && \ |
|
0de9a789de39
needforspeed: check first *and* last character before doing a full memcmp
Fredrik Lundh <fredrik@pythonware.com>
parents:
38239
diff
changeset
|
402 !memcmp((string)->str + (offset), (substring)->str, (substring)->length*sizeof(Py_UNICODE))) |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
403 |
|
12025
7994d9db7f4d
On 17-Mar-2000, Marc-Andre Lemburg said:
Barry Warsaw <barry@python.org>
parents:
12002
diff
changeset
|
404 #ifdef __cplusplus |
|
7994d9db7f4d
On 17-Mar-2000, Marc-Andre Lemburg said:
Barry Warsaw <barry@python.org>
parents:
12002
diff
changeset
|
405 extern "C" { |
|
7994d9db7f4d
On 17-Mar-2000, Marc-Andre Lemburg said:
Barry Warsaw <barry@python.org>
parents:
12002
diff
changeset
|
406 #endif |
|
7994d9db7f4d
On 17-Mar-2000, Marc-Andre Lemburg said:
Barry Warsaw <barry@python.org>
parents:
12002
diff
changeset
|
407 |
|
45341
65ae68c7aca3
Implemented Martin's suggestion to clear the free lists during the garbage collection of the highest generation.
Christian Heimes <christian@cheimes.de>
parents:
45053
diff
changeset
|
408 PyAPI_FUNC(int) PyUnicode_ClearFreeList(void); |
|
65ae68c7aca3
Implemented Martin's suggestion to clear the free lists during the garbage collection of the highest generation.
Christian Heimes <christian@cheimes.de>
parents:
45053
diff
changeset
|
409 |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
410 /* --- Unicode Type ------------------------------------------------------- */ |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
411 |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
412 typedef struct { |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
413 PyObject_HEAD |
|
36501
7fdc639bc5b4
Merge ssize_t branch.
Martin v. Löwis <martin@v.loewis.de>
parents:
35808
diff
changeset
|
414 Py_ssize_t length; /* Length of raw Unicode data in buffer */ |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
415 Py_UNICODE *str; /* Raw Unicode buffer */ |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
416 long hash; /* Hash value; -1 if not set */ |
|
13837
2badb322355f
This patch finalizes the move from UTF-8 to a default encoding in
Marc-André Lemburg <mal@egenix.com>
parents:
13828
diff
changeset
|
417 PyObject *defenc; /* (Default) Encoded version as Python |
|
2badb322355f
This patch finalizes the move from UTF-8 to a default encoding in
Marc-André Lemburg <mal@egenix.com>
parents:
13828
diff
changeset
|
418 string, or NULL; this is used for |
|
2badb322355f
This patch finalizes the move from UTF-8 to a default encoding in
Marc-André Lemburg <mal@egenix.com>
parents:
13828
diff
changeset
|
419 implementing the buffer protocol */ |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
420 } PyUnicodeObject; |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
421 |
|
24752
c1eb668525e1
Excise DL_EXPORT from Include.
Mark Hammond <mhammond@skippinet.com.au>
parents:
24737
diff
changeset
|
422 PyAPI_DATA(PyTypeObject) PyUnicode_Type; |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
423 |
|
40908
d01bd37bf5ce
Variation of patch # 1624059 to speed up checking if an object is a subclass
Neal Norwitz <nnorwitz@gmail.com>
parents:
39487
diff
changeset
|
424 #define PyUnicode_Check(op) \ |
|
44350
26384b8180c7
#1629: Renamed Py_Size, Py_Type and Py_Refcnt to Py_SIZE, Py_TYPE and Py_REFCNT. Macros for b/w compatibility are available.
Christian Heimes <christian@cheimes.de>
parents:
43932
diff
changeset
|
425 PyType_FastSubclass(Py_TYPE(op), Py_TPFLAGS_UNICODE_SUBCLASS) |
|
26384b8180c7
#1629: Renamed Py_Size, Py_Type and Py_Refcnt to Py_SIZE, Py_TYPE and Py_REFCNT. Macros for b/w compatibility are available.
Christian Heimes <christian@cheimes.de>
parents:
43932
diff
changeset
|
426 #define PyUnicode_CheckExact(op) (Py_TYPE(op) == &PyUnicode_Type) |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
427 |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
428 /* Fast access macros */ |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
429 #define PyUnicode_GET_SIZE(op) \ |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
430 (((PyUnicodeObject *)(op))->length) |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
431 #define PyUnicode_GET_DATA_SIZE(op) \ |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
432 (((PyUnicodeObject *)(op))->length * sizeof(Py_UNICODE)) |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
433 #define PyUnicode_AS_UNICODE(op) \ |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
434 (((PyUnicodeObject *)(op))->str) |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
435 #define PyUnicode_AS_DATA(op) \ |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
436 ((const char *)((PyUnicodeObject *)(op))->str) |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
437 |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
438 /* --- Constants ---------------------------------------------------------- */ |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
439 |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
440 /* This Unicode character will be used as replacement character during |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
441 decoding if the errors argument is set to "replace". Note: the |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
442 Unicode character U+FFFD is the official REPLACEMENT CHARACTER in |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
443 Unicode 3.0. */ |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
444 |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
445 #define Py_UNICODE_REPLACEMENT_CHARACTER ((Py_UNICODE) 0xFFFD) |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
446 |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
447 /* === Public API ========================================================= */ |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
448 |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
449 /* --- Plain Py_UNICODE --------------------------------------------------- */ |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
450 |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
451 /* Create a Unicode Object from the Py_UNICODE buffer u of the given |
|
17618
b44ba7c01217
This patch originated from an idea by Martin v. Loewis who submitted a
Marc-André Lemburg <mal@egenix.com>
parents:
13917
diff
changeset
|
452 size. |
|
b44ba7c01217
This patch originated from an idea by Martin v. Loewis who submitted a
Marc-André Lemburg <mal@egenix.com>
parents:
13917
diff
changeset
|
453 |
|
b44ba7c01217
This patch originated from an idea by Martin v. Loewis who submitted a
Marc-André Lemburg <mal@egenix.com>
parents:
13917
diff
changeset
|
454 u may be NULL which causes the contents to be undefined. It is the |
|
b44ba7c01217
This patch originated from an idea by Martin v. Loewis who submitted a
Marc-André Lemburg <mal@egenix.com>
parents:
13917
diff
changeset
|
455 user's responsibility to fill in the needed data afterwards. Note |
|
b44ba7c01217
This patch originated from an idea by Martin v. Loewis who submitted a
Marc-André Lemburg <mal@egenix.com>
parents:
13917
diff
changeset
|
456 that modifying the Unicode object contents after construction is |
|
b44ba7c01217
This patch originated from an idea by Martin v. Loewis who submitted a
Marc-André Lemburg <mal@egenix.com>
parents:
13917
diff
changeset
|
457 only allowed if u was set to NULL. |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
458 |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
459 The buffer is copied into the new object. */ |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
460 |
|
24752
c1eb668525e1
Excise DL_EXPORT from Include.
Mark Hammond <mhammond@skippinet.com.au>
parents:
24737
diff
changeset
|
461 PyAPI_FUNC(PyObject*) PyUnicode_FromUnicode( |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
462 const Py_UNICODE *u, /* Unicode buffer */ |
|
36501
7fdc639bc5b4
Merge ssize_t branch.
Martin v. Löwis <martin@v.loewis.de>
parents:
35808
diff
changeset
|
463 Py_ssize_t size /* size of buffer */ |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
464 ); |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
465 |
|
44945
bbc719a8b58b
Backport of several functions from Python 3.0 to 2.6 including PyUnicode_FromString, PyUnicode_Format and PyLong_From/AsSsize_t. The functions are partly required for the backport of the bytearray type and _fileio module. They should also make it easier to port C to 3.0.
Christian Heimes <christian@cheimes.de>
parents:
44350
diff
changeset
|
466 /* Similar to PyUnicode_FromUnicode(), but u points to Latin-1 encoded bytes */ |
|
bbc719a8b58b
Backport of several functions from Python 3.0 to 2.6 including PyUnicode_FromString, PyUnicode_Format and PyLong_From/AsSsize_t. The functions are partly required for the backport of the bytearray type and _fileio module. They should also make it easier to port C to 3.0.
Christian Heimes <christian@cheimes.de>
parents:
44350
diff
changeset
|
467 PyAPI_FUNC(PyObject*) PyUnicode_FromStringAndSize( |
|
bbc719a8b58b
Backport of several functions from Python 3.0 to 2.6 including PyUnicode_FromString, PyUnicode_Format and PyLong_From/AsSsize_t. The functions are partly required for the backport of the bytearray type and _fileio module. They should also make it easier to port C to 3.0.
Christian Heimes <christian@cheimes.de>
parents:
44350
diff
changeset
|
468 const char *u, /* char buffer */ |
|
bbc719a8b58b
Backport of several functions from Python 3.0 to 2.6 including PyUnicode_FromString, PyUnicode_Format and PyLong_From/AsSsize_t. The functions are partly required for the backport of the bytearray type and _fileio module. They should also make it easier to port C to 3.0.
Christian Heimes <christian@cheimes.de>
parents:
44350
diff
changeset
|
469 Py_ssize_t size /* size of buffer */ |
|
bbc719a8b58b
Backport of several functions from Python 3.0 to 2.6 including PyUnicode_FromString, PyUnicode_Format and PyLong_From/AsSsize_t. The functions are partly required for the backport of the bytearray type and _fileio module. They should also make it easier to port C to 3.0.
Christian Heimes <christian@cheimes.de>
parents:
44350
diff
changeset
|
470 ); |
|
bbc719a8b58b
Backport of several functions from Python 3.0 to 2.6 including PyUnicode_FromString, PyUnicode_Format and PyLong_From/AsSsize_t. The functions are partly required for the backport of the bytearray type and _fileio module. They should also make it easier to port C to 3.0.
Christian Heimes <christian@cheimes.de>
parents:
44350
diff
changeset
|
471 |
|
bbc719a8b58b
Backport of several functions from Python 3.0 to 2.6 including PyUnicode_FromString, PyUnicode_Format and PyLong_From/AsSsize_t. The functions are partly required for the backport of the bytearray type and _fileio module. They should also make it easier to port C to 3.0.
Christian Heimes <christian@cheimes.de>
parents:
44350
diff
changeset
|
472 /* Similar to PyUnicode_FromUnicode(), but u points to null-terminated |
|
bbc719a8b58b
Backport of several functions from Python 3.0 to 2.6 including PyUnicode_FromString, PyUnicode_Format and PyLong_From/AsSsize_t. The functions are partly required for the backport of the bytearray type and _fileio module. They should also make it easier to port C to 3.0.
Christian Heimes <christian@cheimes.de>
parents:
44350
diff
changeset
|
473 Latin-1 encoded bytes */ |
|
bbc719a8b58b
Backport of several functions from Python 3.0 to 2.6 including PyUnicode_FromString, PyUnicode_Format and PyLong_From/AsSsize_t. The functions are partly required for the backport of the bytearray type and _fileio module. They should also make it easier to port C to 3.0.
Christian Heimes <christian@cheimes.de>
parents:
44350
diff
changeset
|
474 PyAPI_FUNC(PyObject*) PyUnicode_FromString( |
|
bbc719a8b58b
Backport of several functions from Python 3.0 to 2.6 including PyUnicode_FromString, PyUnicode_Format and PyLong_From/AsSsize_t. The functions are partly required for the backport of the bytearray type and _fileio module. They should also make it easier to port C to 3.0.
Christian Heimes <christian@cheimes.de>
parents:
44350
diff
changeset
|
475 const char *u /* string */ |
|
bbc719a8b58b
Backport of several functions from Python 3.0 to 2.6 including PyUnicode_FromString, PyUnicode_Format and PyLong_From/AsSsize_t. The functions are partly required for the backport of the bytearray type and _fileio module. They should also make it easier to port C to 3.0.
Christian Heimes <christian@cheimes.de>
parents:
44350
diff
changeset
|
476 ); |
|
bbc719a8b58b
Backport of several functions from Python 3.0 to 2.6 including PyUnicode_FromString, PyUnicode_Format and PyLong_From/AsSsize_t. The functions are partly required for the backport of the bytearray type and _fileio module. They should also make it easier to port C to 3.0.
Christian Heimes <christian@cheimes.de>
parents:
44350
diff
changeset
|
477 |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
478 /* Return a read-only pointer to the Unicode object's internal |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
479 Py_UNICODE buffer. */ |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
480 |
|
24752
c1eb668525e1
Excise DL_EXPORT from Include.
Mark Hammond <mhammond@skippinet.com.au>
parents:
24737
diff
changeset
|
481 PyAPI_FUNC(Py_UNICODE *) PyUnicode_AsUnicode( |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
482 PyObject *unicode /* Unicode object */ |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
483 ); |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
484 |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
485 /* Get the length of the Unicode object. */ |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
486 |
|
36501
7fdc639bc5b4
Merge ssize_t branch.
Martin v. Löwis <martin@v.loewis.de>
parents:
35808
diff
changeset
|
487 PyAPI_FUNC(Py_ssize_t) PyUnicode_GetSize( |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
488 PyObject *unicode /* Unicode object */ |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
489 ); |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
490 |
|
18298
982163c4e9d2
Encode surrogates in UTF-8 even for a wide Py_UNICODE.
Martin v. Löwis <martin@v.loewis.de>
parents:
18296
diff
changeset
|
491 /* Get the maximum ordinal for a Unicode character. */ |
|
24752
c1eb668525e1
Excise DL_EXPORT from Include.
Mark Hammond <mhammond@skippinet.com.au>
parents:
24737
diff
changeset
|
492 PyAPI_FUNC(Py_UNICODE) PyUnicode_GetMax(void); |
|
18298
982163c4e9d2
Encode surrogates in UTF-8 even for a wide Py_UNICODE.
Martin v. Löwis <martin@v.loewis.de>
parents:
18296
diff
changeset
|
493 |
|
12326
9488e4fdafe4
Marc-Andre Lemburg: New exported API PyUnicode_Resize().
Guido van Rossum <guido@python.org>
parents:
12248
diff
changeset
|
494 /* Resize an already allocated Unicode object to the new size length. |
|
9488e4fdafe4
Marc-Andre Lemburg: New exported API PyUnicode_Resize().
Guido van Rossum <guido@python.org>
parents:
12248
diff
changeset
|
495 |
|
9488e4fdafe4
Marc-Andre Lemburg: New exported API PyUnicode_Resize().
Guido van Rossum <guido@python.org>
parents:
12248
diff
changeset
|
496 *unicode is modified to point to the new (resized) object and 0 |
|
9488e4fdafe4
Marc-Andre Lemburg: New exported API PyUnicode_Resize().
Guido van Rossum <guido@python.org>
parents:
12248
diff
changeset
|
497 returned on success. |
|
9488e4fdafe4
Marc-Andre Lemburg: New exported API PyUnicode_Resize().
Guido van Rossum <guido@python.org>
parents:
12248
diff
changeset
|
498 |
|
9488e4fdafe4
Marc-Andre Lemburg: New exported API PyUnicode_Resize().
Guido van Rossum <guido@python.org>
parents:
12248
diff
changeset
|
499 This API may only be called by the function which also called the |
|
9488e4fdafe4
Marc-Andre Lemburg: New exported API PyUnicode_Resize().
Guido van Rossum <guido@python.org>
parents:
12248
diff
changeset
|
500 Unicode constructor. The refcount on the object must be 1. Otherwise, |
|
9488e4fdafe4
Marc-Andre Lemburg: New exported API PyUnicode_Resize().
Guido van Rossum <guido@python.org>
parents:
12248
diff
changeset
|
501 an error is returned. |
|
9488e4fdafe4
Marc-Andre Lemburg: New exported API PyUnicode_Resize().
Guido van Rossum <guido@python.org>
parents:
12248
diff
changeset
|
502 |
|
9488e4fdafe4
Marc-Andre Lemburg: New exported API PyUnicode_Resize().
Guido van Rossum <guido@python.org>
parents:
12248
diff
changeset
|
503 Error handling is implemented as follows: an exception is set, -1 |
|
9488e4fdafe4
Marc-Andre Lemburg: New exported API PyUnicode_Resize().
Guido van Rossum <guido@python.org>
parents:
12248
diff
changeset
|
504 is returned and *unicode left untouched. |
|
9488e4fdafe4
Marc-Andre Lemburg: New exported API PyUnicode_Resize().
Guido van Rossum <guido@python.org>
parents:
12248
diff
changeset
|
505 |
|
9488e4fdafe4
Marc-Andre Lemburg: New exported API PyUnicode_Resize().
Guido van Rossum <guido@python.org>
parents:
12248
diff
changeset
|
506 */ |
|
9488e4fdafe4
Marc-Andre Lemburg: New exported API PyUnicode_Resize().
Guido van Rossum <guido@python.org>
parents:
12248
diff
changeset
|
507 |
|
24752
c1eb668525e1
Excise DL_EXPORT from Include.
Mark Hammond <mhammond@skippinet.com.au>
parents:
24737
diff
changeset
|
508 PyAPI_FUNC(int) PyUnicode_Resize( |
|
12326
9488e4fdafe4
Marc-Andre Lemburg: New exported API PyUnicode_Resize().
Guido van Rossum <guido@python.org>
parents:
12248
diff
changeset
|
509 PyObject **unicode, /* Pointer to the Unicode object */ |
|
36501
7fdc639bc5b4
Merge ssize_t branch.
Martin v. Löwis <martin@v.loewis.de>
parents:
35808
diff
changeset
|
510 Py_ssize_t length /* New length */ |
|
12326
9488e4fdafe4
Marc-Andre Lemburg: New exported API PyUnicode_Resize().
Guido van Rossum <guido@python.org>
parents:
12248
diff
changeset
|
511 ); |
|
9488e4fdafe4
Marc-Andre Lemburg: New exported API PyUnicode_Resize().
Guido van Rossum <guido@python.org>
parents:
12248
diff
changeset
|
512 |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
513 /* Coerce obj to an Unicode object and return a reference with |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
514 *incremented* refcount. |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
515 |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
516 Coercion is done in the following way: |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
517 |
|
20554
0336ee5b46d4
SF patch #470578: Fixes to synchronize unicode() and str()
Guido van Rossum <guido@python.org>
parents:
19998
diff
changeset
|
518 1. String and other char buffer compatible objects are decoded |
|
12643
06ff966f69d5
M.-A. Lemburg <mal@lemburg.com>:
Fred Drake <fdrake@acm.org>
parents:
12372
diff
changeset
|
519 under the assumptions that they contain data using the current |
|
06ff966f69d5
M.-A. Lemburg <mal@lemburg.com>:
Fred Drake <fdrake@acm.org>
parents:
12372
diff
changeset
|
520 default encoding. Decoding is done in "strict" mode. |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
521 |
|
20554
0336ee5b46d4
SF patch #470578: Fixes to synchronize unicode() and str()
Guido van Rossum <guido@python.org>
parents:
19998
diff
changeset
|
522 2. All other objects (including Unicode objects) raise an |
|
0336ee5b46d4
SF patch #470578: Fixes to synchronize unicode() and str()
Guido van Rossum <guido@python.org>
parents:
19998
diff
changeset
|
523 exception. |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
524 |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
525 The API returns NULL in case of an error. The caller is responsible |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
526 for decref'ing the returned objects. |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
527 |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
528 */ |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
529 |
|
24752
c1eb668525e1
Excise DL_EXPORT from Include.
Mark Hammond <mhammond@skippinet.com.au>
parents:
24737
diff
changeset
|
530 PyAPI_FUNC(PyObject*) PyUnicode_FromEncodedObject( |
|
13401
8f1a2deeb9b0
Added new API PyUnicode_FromEncodedObject() which supports decoding
Marc-André Lemburg <mal@egenix.com>
parents:
13393
diff
changeset
|
531 register PyObject *obj, /* Object */ |
|
8f1a2deeb9b0
Added new API PyUnicode_FromEncodedObject() which supports decoding
Marc-André Lemburg <mal@egenix.com>
parents:
13393
diff
changeset
|
532 const char *encoding, /* encoding */ |
|
8f1a2deeb9b0
Added new API PyUnicode_FromEncodedObject() which supports decoding
Marc-André Lemburg <mal@egenix.com>
parents:
13393
diff
changeset
|
533 const char *errors /* error handling */ |
|
8f1a2deeb9b0
Added new API PyUnicode_FromEncodedObject() which supports decoding
Marc-André Lemburg <mal@egenix.com>
parents:
13393
diff
changeset
|
534 ); |
|
8f1a2deeb9b0
Added new API PyUnicode_FromEncodedObject() which supports decoding
Marc-André Lemburg <mal@egenix.com>
parents:
13393
diff
changeset
|
535 |
|
20554
0336ee5b46d4
SF patch #470578: Fixes to synchronize unicode() and str()
Guido van Rossum <guido@python.org>
parents:
19998
diff
changeset
|
536 /* Coerce obj to an Unicode object and return a reference with |
|
13401
8f1a2deeb9b0
Added new API PyUnicode_FromEncodedObject() which supports decoding
Marc-André Lemburg <mal@egenix.com>
parents:
13393
diff
changeset
|
537 *incremented* refcount. |
|
20554
0336ee5b46d4
SF patch #470578: Fixes to synchronize unicode() and str()
Guido van Rossum <guido@python.org>
parents:
19998
diff
changeset
|
538 |
|
0336ee5b46d4
SF patch #470578: Fixes to synchronize unicode() and str()
Guido van Rossum <guido@python.org>
parents:
19998
diff
changeset
|
539 Unicode objects are passed back as-is (subclasses are converted to |
|
0336ee5b46d4
SF patch #470578: Fixes to synchronize unicode() and str()
Guido van Rossum <guido@python.org>
parents:
19998
diff
changeset
|
540 true Unicode objects), all other objects are delegated to |
|
0336ee5b46d4
SF patch #470578: Fixes to synchronize unicode() and str()
Guido van Rossum <guido@python.org>
parents:
19998
diff
changeset
|
541 PyUnicode_FromEncodedObject(obj, NULL, "strict") which results in |
|
0336ee5b46d4
SF patch #470578: Fixes to synchronize unicode() and str()
Guido van Rossum <guido@python.org>
parents:
19998
diff
changeset
|
542 using the default encoding as basis for decoding the object. |
|
13401
8f1a2deeb9b0
Added new API PyUnicode_FromEncodedObject() which supports decoding
Marc-André Lemburg <mal@egenix.com>
parents:
13393
diff
changeset
|
543 |
|
8f1a2deeb9b0
Added new API PyUnicode_FromEncodedObject() which supports decoding
Marc-André Lemburg <mal@egenix.com>
parents:
13393
diff
changeset
|
544 The API returns NULL in case of an error. The caller is responsible |
|
8f1a2deeb9b0
Added new API PyUnicode_FromEncodedObject() which supports decoding
Marc-André Lemburg <mal@egenix.com>
parents:
13393
diff
changeset
|
545 for decref'ing the returned objects. |
|
8f1a2deeb9b0
Added new API PyUnicode_FromEncodedObject() which supports decoding
Marc-André Lemburg <mal@egenix.com>
parents:
13393
diff
changeset
|
546 |
|
8f1a2deeb9b0
Added new API PyUnicode_FromEncodedObject() which supports decoding
Marc-André Lemburg <mal@egenix.com>
parents:
13393
diff
changeset
|
547 */ |
|
8f1a2deeb9b0
Added new API PyUnicode_FromEncodedObject() which supports decoding
Marc-André Lemburg <mal@egenix.com>
parents:
13393
diff
changeset
|
548 |
|
24752
c1eb668525e1
Excise DL_EXPORT from Include.
Mark Hammond <mhammond@skippinet.com.au>
parents:
24737
diff
changeset
|
549 PyAPI_FUNC(PyObject*) PyUnicode_FromObject( |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
550 register PyObject *obj /* Object */ |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
551 ); |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
552 |
|
44945
bbc719a8b58b
Backport of several functions from Python 3.0 to 2.6 including PyUnicode_FromString, PyUnicode_Format and PyLong_From/AsSsize_t. The functions are partly required for the backport of the bytearray type and _fileio module. They should also make it easier to port C to 3.0.
Christian Heimes <christian@cheimes.de>
parents:
44350
diff
changeset
|
553 PyAPI_FUNC(PyObject *) PyUnicode_FromFormatV(const char*, va_list); |
|
bbc719a8b58b
Backport of several functions from Python 3.0 to 2.6 including PyUnicode_FromString, PyUnicode_Format and PyLong_From/AsSsize_t. The functions are partly required for the backport of the bytearray type and _fileio module. They should also make it easier to port C to 3.0.
Christian Heimes <christian@cheimes.de>
parents:
44350
diff
changeset
|
554 PyAPI_FUNC(PyObject *) PyUnicode_FromFormat(const char*, ...); |
|
bbc719a8b58b
Backport of several functions from Python 3.0 to 2.6 including PyUnicode_FromString, PyUnicode_Format and PyLong_From/AsSsize_t. The functions are partly required for the backport of the bytearray type and _fileio module. They should also make it easier to port C to 3.0.
Christian Heimes <christian@cheimes.de>
parents:
44350
diff
changeset
|
555 |
|
47392
47ef9a806ce9
Refactor and clean up str.format() code (and helpers) in advance of optimizations.
Eric Smith <eric@trueblade.com>
parents:
45341
diff
changeset
|
556 /* Format the object based on the format_spec, as defined in PEP 3101 |
|
47ef9a806ce9
Refactor and clean up str.format() code (and helpers) in advance of optimizations.
Eric Smith <eric@trueblade.com>
parents:
45341
diff
changeset
|
557 (Advanced String Formatting). */ |
|
47ef9a806ce9
Refactor and clean up str.format() code (and helpers) in advance of optimizations.
Eric Smith <eric@trueblade.com>
parents:
45341
diff
changeset
|
558 PyAPI_FUNC(PyObject *) _PyUnicode_FormatAdvanced(PyObject *obj, |
|
47ef9a806ce9
Refactor and clean up str.format() code (and helpers) in advance of optimizations.
Eric Smith <eric@trueblade.com>
parents:
45341
diff
changeset
|
559 Py_UNICODE *format_spec, |
|
47ef9a806ce9
Refactor and clean up str.format() code (and helpers) in advance of optimizations.
Eric Smith <eric@trueblade.com>
parents:
45341
diff
changeset
|
560 Py_ssize_t format_spec_len); |
|
47ef9a806ce9
Refactor and clean up str.format() code (and helpers) in advance of optimizations.
Eric Smith <eric@trueblade.com>
parents:
45341
diff
changeset
|
561 |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
562 /* --- wchar_t support for platforms which support it --------------------- */ |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
563 |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
564 #ifdef HAVE_WCHAR_H |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
565 |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
566 /* Create a Unicode Object from the whcar_t buffer w of the given |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
567 size. |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
568 |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
569 The buffer is copied into the new object. */ |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
570 |
|
24752
c1eb668525e1
Excise DL_EXPORT from Include.
Mark Hammond <mhammond@skippinet.com.au>
parents:
24737
diff
changeset
|
571 PyAPI_FUNC(PyObject*) PyUnicode_FromWideChar( |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
572 register const wchar_t *w, /* wchar_t buffer */ |
|
36501
7fdc639bc5b4
Merge ssize_t branch.
Martin v. Löwis <martin@v.loewis.de>
parents:
35808
diff
changeset
|
573 Py_ssize_t size /* size of buffer */ |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
574 ); |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
575 |
|
34016
264e45baacd5
Correct the handling of 0-termination of PyUnicode_AsWideChar()
Marc-André Lemburg <mal@egenix.com>
parents:
33864
diff
changeset
|
576 /* Copies the Unicode Object contents into the wchar_t buffer w. At |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
577 most size wchar_t characters are copied. |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
578 |
|
34016
264e45baacd5
Correct the handling of 0-termination of PyUnicode_AsWideChar()
Marc-André Lemburg <mal@egenix.com>
parents:
33864
diff
changeset
|
579 Note that the resulting wchar_t string may or may not be |
|
264e45baacd5
Correct the handling of 0-termination of PyUnicode_AsWideChar()
Marc-André Lemburg <mal@egenix.com>
parents:
33864
diff
changeset
|
580 0-terminated. It is the responsibility of the caller to make sure |
|
264e45baacd5
Correct the handling of 0-termination of PyUnicode_AsWideChar()
Marc-André Lemburg <mal@egenix.com>
parents:
33864
diff
changeset
|
581 that the wchar_t string is 0-terminated in case this is required by |
|
264e45baacd5
Correct the handling of 0-termination of PyUnicode_AsWideChar()
Marc-André Lemburg <mal@egenix.com>
parents:
33864
diff
changeset
|
582 the application. |
|
264e45baacd5
Correct the handling of 0-termination of PyUnicode_AsWideChar()
Marc-André Lemburg <mal@egenix.com>
parents:
33864
diff
changeset
|
583 |
|
264e45baacd5
Correct the handling of 0-termination of PyUnicode_AsWideChar()
Marc-André Lemburg <mal@egenix.com>
parents:
33864
diff
changeset
|
584 Returns the number of wchar_t characters copied (excluding a |
|
264e45baacd5
Correct the handling of 0-termination of PyUnicode_AsWideChar()
Marc-André Lemburg <mal@egenix.com>
parents:
33864
diff
changeset
|
585 possibly trailing 0-termination character) or -1 in case of an |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
586 error. */ |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
587 |
|
36501
7fdc639bc5b4
Merge ssize_t branch.
Martin v. Löwis <martin@v.loewis.de>
parents:
35808
diff
changeset
|
588 PyAPI_FUNC(Py_ssize_t) PyUnicode_AsWideChar( |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
589 PyUnicodeObject *unicode, /* Unicode object */ |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
590 register wchar_t *w, /* wchar_t buffer */ |
|
36501
7fdc639bc5b4
Merge ssize_t branch.
Martin v. Löwis <martin@v.loewis.de>
parents:
35808
diff
changeset
|
591 Py_ssize_t size /* size of buffer */ |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
592 ); |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
593 |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
594 #endif |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
595 |
|
24737
eaa87632b1e8
Add C API PyUnicode_FromOrdinal() which exposes unichr() at C level.
Marc-André Lemburg <mal@egenix.com>
parents:
23561
diff
changeset
|
596 /* --- Unicode ordinals --------------------------------------------------- */ |
|
eaa87632b1e8
Add C API PyUnicode_FromOrdinal() which exposes unichr() at C level.
Marc-André Lemburg <mal@egenix.com>
parents:
23561
diff
changeset
|
597 |
|
eaa87632b1e8
Add C API PyUnicode_FromOrdinal() which exposes unichr() at C level.
Marc-André Lemburg <mal@egenix.com>
parents:
23561
diff
changeset
|
598 /* Create a Unicode Object from the given Unicode code point ordinal. |
|
eaa87632b1e8
Add C API PyUnicode_FromOrdinal() which exposes unichr() at C level.
Marc-André Lemburg <mal@egenix.com>
parents:
23561
diff
changeset
|
599 |
|
eaa87632b1e8
Add C API PyUnicode_FromOrdinal() which exposes unichr() at C level.
Marc-André Lemburg <mal@egenix.com>
parents:
23561
diff
changeset
|
600 The ordinal must be in range(0x10000) on narrow Python builds |
|
eaa87632b1e8
Add C API PyUnicode_FromOrdinal() which exposes unichr() at C level.
Marc-André Lemburg <mal@egenix.com>
parents:
23561
diff
changeset
|
601 (UCS2), and range(0x110000) on wide builds (UCS4). A ValueError is |
|
eaa87632b1e8
Add C API PyUnicode_FromOrdinal() which exposes unichr() at C level.
Marc-André Lemburg <mal@egenix.com>
parents:
23561
diff
changeset
|
602 raised in case it is not. |
|
eaa87632b1e8
Add C API PyUnicode_FromOrdinal() which exposes unichr() at C level.
Marc-André Lemburg <mal@egenix.com>
parents:
23561
diff
changeset
|
603 |
|
eaa87632b1e8
Add C API PyUnicode_FromOrdinal() which exposes unichr() at C level.
Marc-André Lemburg <mal@egenix.com>
parents:
23561
diff
changeset
|
604 */ |
|
eaa87632b1e8
Add C API PyUnicode_FromOrdinal() which exposes unichr() at C level.
Marc-André Lemburg <mal@egenix.com>
parents:
23561
diff
changeset
|
605 |
|
24753
27ae978bee58
Add name mangling for new PyUnicode_FromOrdinal() and fix declaration
Marc-André Lemburg <mal@egenix.com>
parents:
24752
diff
changeset
|
606 PyAPI_FUNC(PyObject*) PyUnicode_FromOrdinal(int ordinal); |
|
24737
eaa87632b1e8
Add C API PyUnicode_FromOrdinal() which exposes unichr() at C level.
Marc-André Lemburg <mal@egenix.com>
parents:
23561
diff
changeset
|
607 |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
608 /* === Builtin Codecs ===================================================== |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
609 |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
610 Many of these APIs take two arguments encoding and errors. These |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
611 parameters encoding and errors have the same semantics as the ones |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
612 of the builtin unicode() API. |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
613 |
|
12643
06ff966f69d5
M.-A. Lemburg <mal@lemburg.com>:
Fred Drake <fdrake@acm.org>
parents:
12372
diff
changeset
|
614 Setting encoding to NULL causes the default encoding to be used. |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
615 |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
616 Error handling is set by errors which may also be set to NULL |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
617 meaning to use the default handling defined for the codec. Default |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
618 error handling for all builtin codecs is "strict" (ValueErrors are |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
619 raised). |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
620 |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
621 The codecs all use a similar interface. Only deviation from the |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
622 generic ones are documented. |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
623 |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
624 */ |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
625 |
|
12643
06ff966f69d5
M.-A. Lemburg <mal@lemburg.com>:
Fred Drake <fdrake@acm.org>
parents:
12372
diff
changeset
|
626 /* --- Manage the default encoding ---------------------------------------- */ |
|
06ff966f69d5
M.-A. Lemburg <mal@lemburg.com>:
Fred Drake <fdrake@acm.org>
parents:
12372
diff
changeset
|
627 |
|
18887
9b291ca6546c
Add _PyUnicode_AsDefaultEncodedString to unicodeobject.h.
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
18332
diff
changeset
|
628 /* Return a Python string holding the default encoded value of the |
|
9b291ca6546c
Add _PyUnicode_AsDefaultEncodedString to unicodeobject.h.
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
18332
diff
changeset
|
629 Unicode object. |
|
9b291ca6546c
Add _PyUnicode_AsDefaultEncodedString to unicodeobject.h.
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
18332
diff
changeset
|
630 |
|
9b291ca6546c
Add _PyUnicode_AsDefaultEncodedString to unicodeobject.h.
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
18332
diff
changeset
|
631 The resulting string is cached in the Unicode object for subsequent |
|
9b291ca6546c
Add _PyUnicode_AsDefaultEncodedString to unicodeobject.h.
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
18332
diff
changeset
|
632 usage by this function. The cached version is needed to implement |
|
9b291ca6546c
Add _PyUnicode_AsDefaultEncodedString to unicodeobject.h.
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
18332
diff
changeset
|
633 the character buffer interface and will live (at least) as long as |
|
9b291ca6546c
Add _PyUnicode_AsDefaultEncodedString to unicodeobject.h.
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
18332
diff
changeset
|
634 the Unicode object itself. |
|
9b291ca6546c
Add _PyUnicode_AsDefaultEncodedString to unicodeobject.h.
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
18332
diff
changeset
|
635 |
|
9b291ca6546c
Add _PyUnicode_AsDefaultEncodedString to unicodeobject.h.
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
18332
diff
changeset
|
636 The refcount of the string is *not* incremented. |
|
9b291ca6546c
Add _PyUnicode_AsDefaultEncodedString to unicodeobject.h.
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
18332
diff
changeset
|
637 |
|
9b291ca6546c
Add _PyUnicode_AsDefaultEncodedString to unicodeobject.h.
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
18332
diff
changeset
|
638 *** Exported for internal use by the interpreter only !!! *** |
|
9b291ca6546c
Add _PyUnicode_AsDefaultEncodedString to unicodeobject.h.
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
18332
diff
changeset
|
639 |
|
9b291ca6546c
Add _PyUnicode_AsDefaultEncodedString to unicodeobject.h.
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
18332
diff
changeset
|
640 */ |
|
9b291ca6546c
Add _PyUnicode_AsDefaultEncodedString to unicodeobject.h.
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
18332
diff
changeset
|
641 |
|
24752
c1eb668525e1
Excise DL_EXPORT from Include.
Mark Hammond <mhammond@skippinet.com.au>
parents:
24737
diff
changeset
|
642 PyAPI_FUNC(PyObject *) _PyUnicode_AsDefaultEncodedString( |
|
18887
9b291ca6546c
Add _PyUnicode_AsDefaultEncodedString to unicodeobject.h.
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
18332
diff
changeset
|
643 PyObject *, const char *); |
|
9b291ca6546c
Add _PyUnicode_AsDefaultEncodedString to unicodeobject.h.
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
18332
diff
changeset
|
644 |
|
12643
06ff966f69d5
M.-A. Lemburg <mal@lemburg.com>:
Fred Drake <fdrake@acm.org>
parents:
12372
diff
changeset
|
645 /* Returns the currently active default encoding. |
|
06ff966f69d5
M.-A. Lemburg <mal@lemburg.com>:
Fred Drake <fdrake@acm.org>
parents:
12372
diff
changeset
|
646 |
|
06ff966f69d5
M.-A. Lemburg <mal@lemburg.com>:
Fred Drake <fdrake@acm.org>
parents:
12372
diff
changeset
|
647 The default encoding is currently implemented as run-time settable |
|
06ff966f69d5
M.-A. Lemburg <mal@lemburg.com>:
Fred Drake <fdrake@acm.org>
parents:
12372
diff
changeset
|
648 process global. This may change in future versions of the |
|
06ff966f69d5
M.-A. Lemburg <mal@lemburg.com>:
Fred Drake <fdrake@acm.org>
parents:
12372
diff
changeset
|
649 interpreter to become a parameter which is managed on a per-thread |
|
06ff966f69d5
M.-A. Lemburg <mal@lemburg.com>:
Fred Drake <fdrake@acm.org>
parents:
12372
diff
changeset
|
650 basis. |
|
06ff966f69d5
M.-A. Lemburg <mal@lemburg.com>:
Fred Drake <fdrake@acm.org>
parents:
12372
diff
changeset
|
651 |
|
06ff966f69d5
M.-A. Lemburg <mal@lemburg.com>:
Fred Drake <fdrake@acm.org>
parents:
12372
diff
changeset
|
652 */ |
|
06ff966f69d5
M.-A. Lemburg <mal@lemburg.com>:
Fred Drake <fdrake@acm.org>
parents:
12372
diff
changeset
|
653 |
|
24752
c1eb668525e1
Excise DL_EXPORT from Include.
Mark Hammond <mhammond@skippinet.com.au>
parents:
24737
diff
changeset
|
654 PyAPI_FUNC(const char*) PyUnicode_GetDefaultEncoding(void); |
|
12643
06ff966f69d5
M.-A. Lemburg <mal@lemburg.com>:
Fred Drake <fdrake@acm.org>
parents:
12372
diff
changeset
|
655 |
|
06ff966f69d5
M.-A. Lemburg <mal@lemburg.com>:
Fred Drake <fdrake@acm.org>
parents:
12372
diff
changeset
|
656 /* Sets the currently active default encoding. |
|
06ff966f69d5
M.-A. Lemburg <mal@lemburg.com>:
Fred Drake <fdrake@acm.org>
parents:
12372
diff
changeset
|
657 |
|
06ff966f69d5
M.-A. Lemburg <mal@lemburg.com>:
Fred Drake <fdrake@acm.org>
parents:
12372
diff
changeset
|
658 Returns 0 on success, -1 in case of an error. |
|
06ff966f69d5
M.-A. Lemburg <mal@lemburg.com>:
Fred Drake <fdrake@acm.org>
parents:
12372
diff
changeset
|
659 |
|
06ff966f69d5
M.-A. Lemburg <mal@lemburg.com>:
Fred Drake <fdrake@acm.org>
parents:
12372
diff
changeset
|
660 */ |
|
06ff966f69d5
M.-A. Lemburg <mal@lemburg.com>:
Fred Drake <fdrake@acm.org>
parents:
12372
diff
changeset
|
661 |
|
24752
c1eb668525e1
Excise DL_EXPORT from Include.
Mark Hammond <mhammond@skippinet.com.au>
parents:
24737
diff
changeset
|
662 PyAPI_FUNC(int) PyUnicode_SetDefaultEncoding( |
|
12643
06ff966f69d5
M.-A. Lemburg <mal@lemburg.com>:
Fred Drake <fdrake@acm.org>
parents:
12372
diff
changeset
|
663 const char *encoding /* Encoding name in standard form */ |
|
06ff966f69d5
M.-A. Lemburg <mal@lemburg.com>:
Fred Drake <fdrake@acm.org>
parents:
12372
diff
changeset
|
664 ); |
|
06ff966f69d5
M.-A. Lemburg <mal@lemburg.com>:
Fred Drake <fdrake@acm.org>
parents:
12372
diff
changeset
|
665 |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
666 /* --- Generic Codecs ----------------------------------------------------- */ |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
667 |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
668 /* Create a Unicode object by decoding the encoded string s of the |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
669 given size. */ |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
670 |
|
24752
c1eb668525e1
Excise DL_EXPORT from Include.
Mark Hammond <mhammond@skippinet.com.au>
parents:
24737
diff
changeset
|
671 PyAPI_FUNC(PyObject*) PyUnicode_Decode( |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
672 const char *s, /* encoded string */ |
|
36501
7fdc639bc5b4
Merge ssize_t branch.
Martin v. Löwis <martin@v.loewis.de>
parents:
35808
diff
changeset
|
673 Py_ssize_t size, /* size of buffer */ |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
674 const char *encoding, /* encoding */ |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
675 const char *errors /* error handling */ |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
676 ); |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
677 |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
678 /* Encodes a Py_UNICODE buffer of the given size and returns a |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
679 Python string object. */ |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
680 |
|
24752
c1eb668525e1
Excise DL_EXPORT from Include.
Mark Hammond <mhammond@skippinet.com.au>
parents:
24737
diff
changeset
|
681 PyAPI_FUNC(PyObject*) PyUnicode_Encode( |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
682 const Py_UNICODE *s, /* Unicode char buffer */ |
|
36501
7fdc639bc5b4
Merge ssize_t branch.
Martin v. Löwis <martin@v.loewis.de>
parents:
35808
diff
changeset
|
683 Py_ssize_t size, /* number of Py_UNICODE chars to encode */ |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
684 const char *encoding, /* encoding */ |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
685 const char *errors /* error handling */ |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
686 ); |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
687 |
|
32551
f46d49e2e0f0
Allow string and unicode return types from .encode()/.decode()
Marc-André Lemburg <mal@egenix.com>
parents:
32197
diff
changeset
|
688 /* Encodes a Unicode object and returns the result as Python |
|
f46d49e2e0f0
Allow string and unicode return types from .encode()/.decode()
Marc-André Lemburg <mal@egenix.com>
parents:
32197
diff
changeset
|
689 object. */ |
|
f46d49e2e0f0
Allow string and unicode return types from .encode()/.decode()
Marc-André Lemburg <mal@egenix.com>
parents:
32197
diff
changeset
|
690 |
|
f46d49e2e0f0
Allow string and unicode return types from .encode()/.decode()
Marc-André Lemburg <mal@egenix.com>
parents:
32197
diff
changeset
|
691 PyAPI_FUNC(PyObject*) PyUnicode_AsEncodedObject( |
|
f46d49e2e0f0
Allow string and unicode return types from .encode()/.decode()
Marc-André Lemburg <mal@egenix.com>
parents:
32197
diff
changeset
|
692 PyObject *unicode, /* Unicode object */ |
|
f46d49e2e0f0
Allow string and unicode return types from .encode()/.decode()
Marc-André Lemburg <mal@egenix.com>
parents:
32197
diff
changeset
|
693 const char *encoding, /* encoding */ |
|
f46d49e2e0f0
Allow string and unicode return types from .encode()/.decode()
Marc-André Lemburg <mal@egenix.com>
parents:
32197
diff
changeset
|
694 const char *errors /* error handling */ |
|
f46d49e2e0f0
Allow string and unicode return types from .encode()/.decode()
Marc-André Lemburg <mal@egenix.com>
parents:
32197
diff
changeset
|
695 ); |
|
f46d49e2e0f0
Allow string and unicode return types from .encode()/.decode()
Marc-André Lemburg <mal@egenix.com>
parents:
32197
diff
changeset
|
696 |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
697 /* Encodes a Unicode object and returns the result as Python string |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
698 object. */ |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
699 |
|
24752
c1eb668525e1
Excise DL_EXPORT from Include.
Mark Hammond <mhammond@skippinet.com.au>
parents:
24737
diff
changeset
|
700 PyAPI_FUNC(PyObject*) PyUnicode_AsEncodedString( |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
701 PyObject *unicode, /* Unicode object */ |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
702 const char *encoding, /* encoding */ |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
703 const char *errors /* error handling */ |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
704 ); |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
705 |
|
38586
9e0b050ce46f
Patch #1359618: Speed-up charmap encoder.
Martin v. Löwis <martin@v.loewis.de>
parents:
38457
diff
changeset
|
706 PyAPI_FUNC(PyObject*) PyUnicode_BuildEncodingMap( |
|
9e0b050ce46f
Patch #1359618: Speed-up charmap encoder.
Martin v. Löwis <martin@v.loewis.de>
parents:
38457
diff
changeset
|
707 PyObject* string /* 256 character map */ |
|
9e0b050ce46f
Patch #1359618: Speed-up charmap encoder.
Martin v. Löwis <martin@v.loewis.de>
parents:
38457
diff
changeset
|
708 ); |
|
9e0b050ce46f
Patch #1359618: Speed-up charmap encoder.
Martin v. Löwis <martin@v.loewis.de>
parents:
38457
diff
changeset
|
709 |
|
9e0b050ce46f
Patch #1359618: Speed-up charmap encoder.
Martin v. Löwis <martin@v.loewis.de>
parents:
38457
diff
changeset
|
710 |
|
19998
8a0c97453df4
Patch #435971: UTF-7 codec by Brian Quinlan.
Marc-André Lemburg <mal@egenix.com>
parents:
19980
diff
changeset
|
711 /* --- UTF-7 Codecs ------------------------------------------------------- */ |
|
8a0c97453df4
Patch #435971: UTF-7 codec by Brian Quinlan.
Marc-André Lemburg <mal@egenix.com>
parents:
19980
diff
changeset
|
712 |
|
24752
c1eb668525e1
Excise DL_EXPORT from Include.
Mark Hammond <mhammond@skippinet.com.au>
parents:
24737
diff
changeset
|
713 PyAPI_FUNC(PyObject*) PyUnicode_DecodeUTF7( |
|
19998
8a0c97453df4
Patch #435971: UTF-7 codec by Brian Quinlan.
Marc-André Lemburg <mal@egenix.com>
parents:
19980
diff
changeset
|
714 const char *string, /* UTF-7 encoded string */ |
|
36501
7fdc639bc5b4
Merge ssize_t branch.
Martin v. Löwis <martin@v.loewis.de>
parents:
35808
diff
changeset
|
715 Py_ssize_t length, /* size of string */ |
|
19998
8a0c97453df4
Patch #435971: UTF-7 codec by Brian Quinlan.
Marc-André Lemburg <mal@egenix.com>
parents:
19980
diff
changeset
|
716 const char *errors /* error handling */ |
|
8a0c97453df4
Patch #435971: UTF-7 codec by Brian Quinlan.
Marc-André Lemburg <mal@egenix.com>
parents:
19980
diff
changeset
|
717 ); |
|
8a0c97453df4
Patch #435971: UTF-7 codec by Brian Quinlan.
Marc-André Lemburg <mal@egenix.com>
parents:
19980
diff
changeset
|
718 |
|
43932
e8ac1ae4503c
The incremental decoder for utf-7 must preserve its state between calls.
Amaury Forgeot d'Arc <amauryfa@gmail.com>
parents:
42649
diff
changeset
|
719 PyAPI_FUNC(PyObject*) PyUnicode_DecodeUTF7Stateful( |
|
e8ac1ae4503c
The incremental decoder for utf-7 must preserve its state between calls.
Amaury Forgeot d'Arc <amauryfa@gmail.com>
parents:
42649
diff
changeset
|
720 const char *string, /* UTF-7 encoded string */ |
|
e8ac1ae4503c
The incremental decoder for utf-7 must preserve its state between calls.
Amaury Forgeot d'Arc <amauryfa@gmail.com>
parents:
42649
diff
changeset
|
721 Py_ssize_t length, /* size of string */ |
|
e8ac1ae4503c
The incremental decoder for utf-7 must preserve its state between calls.
Amaury Forgeot d'Arc <amauryfa@gmail.com>
parents:
42649
diff
changeset
|
722 const char *errors, /* error handling */ |
|
e8ac1ae4503c
The incremental decoder for utf-7 must preserve its state between calls.
Amaury Forgeot d'Arc <amauryfa@gmail.com>
parents:
42649
diff
changeset
|
723 Py_ssize_t *consumed /* bytes consumed */ |
|
e8ac1ae4503c
The incremental decoder for utf-7 must preserve its state between calls.
Amaury Forgeot d'Arc <amauryfa@gmail.com>
parents:
42649
diff
changeset
|
724 ); |
|
e8ac1ae4503c
The incremental decoder for utf-7 must preserve its state between calls.
Amaury Forgeot d'Arc <amauryfa@gmail.com>
parents:
42649
diff
changeset
|
725 |
|
24752
c1eb668525e1
Excise DL_EXPORT from Include.
Mark Hammond <mhammond@skippinet.com.au>
parents:
24737
diff
changeset
|
726 PyAPI_FUNC(PyObject*) PyUnicode_EncodeUTF7( |
|
19998
8a0c97453df4
Patch #435971: UTF-7 codec by Brian Quinlan.
Marc-André Lemburg <mal@egenix.com>
parents:
19980
diff
changeset
|
727 const Py_UNICODE *data, /* Unicode char buffer */ |
|
36501
7fdc639bc5b4
Merge ssize_t branch.
Martin v. Löwis <martin@v.loewis.de>
parents:
35808
diff
changeset
|
728 Py_ssize_t length, /* number of Py_UNICODE chars to encode */ |
|
19998
8a0c97453df4
Patch #435971: UTF-7 codec by Brian Quinlan.
Marc-André Lemburg <mal@egenix.com>
parents:
19980
diff
changeset
|
729 int encodeSetO, /* force the encoder to encode characters in |
|
8a0c97453df4
Patch #435971: UTF-7 codec by Brian Quinlan.
Marc-André Lemburg <mal@egenix.com>
parents:
19980
diff
changeset
|
730 Set O, as described in RFC2152 */ |
|
8a0c97453df4
Patch #435971: UTF-7 codec by Brian Quinlan.
Marc-André Lemburg <mal@egenix.com>
parents:
19980
diff
changeset
|
731 int encodeWhiteSpace, /* force the encoder to encode space, tab, |
|
8a0c97453df4
Patch #435971: UTF-7 codec by Brian Quinlan.
Marc-André Lemburg <mal@egenix.com>
parents:
19980
diff
changeset
|
732 carriage return and linefeed characters */ |
|
8a0c97453df4
Patch #435971: UTF-7 codec by Brian Quinlan.
Marc-André Lemburg <mal@egenix.com>
parents:
19980
diff
changeset
|
733 const char *errors /* error handling */ |
|
8a0c97453df4
Patch #435971: UTF-7 codec by Brian Quinlan.
Marc-André Lemburg <mal@egenix.com>
parents:
19980
diff
changeset
|
734 ); |
|
8a0c97453df4
Patch #435971: UTF-7 codec by Brian Quinlan.
Marc-André Lemburg <mal@egenix.com>
parents:
19980
diff
changeset
|
735 |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
736 /* --- UTF-8 Codecs ------------------------------------------------------- */ |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
737 |
|
24752
c1eb668525e1
Excise DL_EXPORT from Include.
Mark Hammond <mhammond@skippinet.com.au>
parents:
24737
diff
changeset
|
738 PyAPI_FUNC(PyObject*) PyUnicode_DecodeUTF8( |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
739 const char *string, /* UTF-8 encoded string */ |
|
36501
7fdc639bc5b4
Merge ssize_t branch.
Martin v. Löwis <martin@v.loewis.de>
parents:
35808
diff
changeset
|
740 Py_ssize_t length, /* size of string */ |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
741 const char *errors /* error handling */ |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
742 ); |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
743 |
|
33428
57478a13fbf6
SF patch #998993: The UTF-8 and the UTF-16 stateful decoders now support
Walter Dörwald <walter@livinglogic.de>
parents:
32951
diff
changeset
|
744 PyAPI_FUNC(PyObject*) PyUnicode_DecodeUTF8Stateful( |
|
57478a13fbf6
SF patch #998993: The UTF-8 and the UTF-16 stateful decoders now support
Walter Dörwald <walter@livinglogic.de>
parents:
32951
diff
changeset
|
745 const char *string, /* UTF-8 encoded string */ |
|
36501
7fdc639bc5b4
Merge ssize_t branch.
Martin v. Löwis <martin@v.loewis.de>
parents:
35808
diff
changeset
|
746 Py_ssize_t length, /* size of string */ |
|
33428
57478a13fbf6
SF patch #998993: The UTF-8 and the UTF-16 stateful decoders now support
Walter Dörwald <walter@livinglogic.de>
parents:
32951
diff
changeset
|
747 const char *errors, /* error handling */ |
|
36501
7fdc639bc5b4
Merge ssize_t branch.
Martin v. Löwis <martin@v.loewis.de>
parents:
35808
diff
changeset
|
748 Py_ssize_t *consumed /* bytes consumed */ |
|
33428
57478a13fbf6
SF patch #998993: The UTF-8 and the UTF-16 stateful decoders now support
Walter Dörwald <walter@livinglogic.de>
parents:
32951
diff
changeset
|
749 ); |
|
57478a13fbf6
SF patch #998993: The UTF-8 and the UTF-16 stateful decoders now support
Walter Dörwald <walter@livinglogic.de>
parents:
32951
diff
changeset
|
750 |
|
24752
c1eb668525e1
Excise DL_EXPORT from Include.
Mark Hammond <mhammond@skippinet.com.au>
parents:
24737
diff
changeset
|
751 PyAPI_FUNC(PyObject*) PyUnicode_AsUTF8String( |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
752 PyObject *unicode /* Unicode object */ |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
753 ); |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
754 |
|
24752
c1eb668525e1
Excise DL_EXPORT from Include.
Mark Hammond <mhammond@skippinet.com.au>
parents:
24737
diff
changeset
|
755 PyAPI_FUNC(PyObject*) PyUnicode_EncodeUTF8( |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
756 const Py_UNICODE *data, /* Unicode char buffer */ |
|
36501
7fdc639bc5b4
Merge ssize_t branch.
Martin v. Löwis <martin@v.loewis.de>
parents:
35808
diff
changeset
|
757 Py_ssize_t length, /* number of Py_UNICODE chars to encode */ |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
758 const char *errors /* error handling */ |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
759 ); |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
760 |
|
42649
c916731321c0
Backport r57105 and r57145 from the py3k branch: UTF-32 codecs.
Walter Dörwald <walter@livinglogic.de>
parents:
42333
diff
changeset
|
761 /* --- UTF-32 Codecs ------------------------------------------------------ */ |
|
c916731321c0
Backport r57105 and r57145 from the py3k branch: UTF-32 codecs.
Walter Dörwald <walter@livinglogic.de>
parents:
42333
diff
changeset
|
762 |
|
c916731321c0
Backport r57105 and r57145 from the py3k branch: UTF-32 codecs.
Walter Dörwald <walter@livinglogic.de>
parents:
42333
diff
changeset
|
763 /* Decodes length bytes from a UTF-32 encoded buffer string and returns |
|
c916731321c0
Backport r57105 and r57145 from the py3k branch: UTF-32 codecs.
Walter Dörwald <walter@livinglogic.de>
parents:
42333
diff
changeset
|
764 the corresponding Unicode object. |
|
c916731321c0
Backport r57105 and r57145 from the py3k branch: UTF-32 codecs.
Walter Dörwald <walter@livinglogic.de>
parents:
42333
diff
changeset
|
765 |
|
c916731321c0
Backport r57105 and r57145 from the py3k branch: UTF-32 codecs.
Walter Dörwald <walter@livinglogic.de>
parents:
42333
diff
changeset
|
766 errors (if non-NULL) defines the error handling. It defaults |
|
c916731321c0
Backport r57105 and r57145 from the py3k branch: UTF-32 codecs.
Walter Dörwald <walter@livinglogic.de>
parents:
42333
diff
changeset
|
767 to "strict". |
|
c916731321c0
Backport r57105 and r57145 from the py3k branch: UTF-32 codecs.
Walter Dörwald <walter@livinglogic.de>
parents:
42333
diff
changeset
|
768 |
|
c916731321c0
Backport r57105 and r57145 from the py3k branch: UTF-32 codecs.
Walter Dörwald <walter@livinglogic.de>
parents:
42333
diff
changeset
|
769 If byteorder is non-NULL, the decoder starts decoding using the |
|
c916731321c0
Backport r57105 and r57145 from the py3k branch: UTF-32 codecs.
Walter Dörwald <walter@livinglogic.de>
parents:
42333
diff
changeset
|
770 given byte order: |
|
c916731321c0
Backport r57105 and r57145 from the py3k branch: UTF-32 codecs.
Walter Dörwald <walter@livinglogic.de>
parents:
42333
diff
changeset
|
771 |
|
c916731321c0
Backport r57105 and r57145 from the py3k branch: UTF-32 codecs.
Walter Dörwald <walter@livinglogic.de>
parents:
42333
diff
changeset
|
772 *byteorder == -1: little endian |
|
c916731321c0
Backport r57105 and r57145 from the py3k branch: UTF-32 codecs.
Walter Dörwald <walter@livinglogic.de>
parents:
42333
diff
changeset
|
773 *byteorder == 0: native order |
|
c916731321c0
Backport r57105 and r57145 from the py3k branch: UTF-32 codecs.
Walter Dörwald <walter@livinglogic.de>
parents:
42333
diff
changeset
|
774 *byteorder == 1: big endian |
|
c916731321c0
Backport r57105 and r57145 from the py3k branch: UTF-32 codecs.
Walter Dörwald <walter@livinglogic.de>
parents:
42333
diff
changeset
|
775 |
|
c916731321c0
Backport r57105 and r57145 from the py3k branch: UTF-32 codecs.
Walter Dörwald <walter@livinglogic.de>
parents:
42333
diff
changeset
|
776 In native mode, the first four bytes of the stream are checked for a |
|
c916731321c0
Backport r57105 and r57145 from the py3k branch: UTF-32 codecs.
Walter Dörwald <walter@livinglogic.de>
parents:
42333
diff
changeset
|
777 BOM mark. If found, the BOM mark is analysed, the byte order |
|
c916731321c0
Backport r57105 and r57145 from the py3k branch: UTF-32 codecs.
Walter Dörwald <walter@livinglogic.de>
parents:
42333
diff
changeset
|
778 adjusted and the BOM skipped. In the other modes, no BOM mark |
|
c916731321c0
Backport r57105 and r57145 from the py3k branch: UTF-32 codecs.
Walter Dörwald <walter@livinglogic.de>
parents:
42333
diff
changeset
|
779 interpretation is done. After completion, *byteorder is set to the |
|
c916731321c0
Backport r57105 and r57145 from the py3k branch: UTF-32 codecs.
Walter Dörwald <walter@livinglogic.de>
parents:
42333
diff
changeset
|
780 current byte order at the end of input data. |
|
c916731321c0
Backport r57105 and r57145 from the py3k branch: UTF-32 codecs.
Walter Dörwald <walter@livinglogic.de>
parents:
42333
diff
changeset
|
781 |
|
c916731321c0
Backport r57105 and r57145 from the py3k branch: UTF-32 codecs.
Walter Dörwald <walter@livinglogic.de>
parents:
42333
diff
changeset
|
782 If byteorder is NULL, the codec starts in native order mode. |
|
c916731321c0
Backport r57105 and r57145 from the py3k branch: UTF-32 codecs.
Walter Dörwald <walter@livinglogic.de>
parents:
42333
diff
changeset
|
783 |
|
c916731321c0
Backport r57105 and r57145 from the py3k branch: UTF-32 codecs.
Walter Dörwald <walter@livinglogic.de>
parents:
42333
diff
changeset
|
784 */ |
|
c916731321c0
Backport r57105 and r57145 from the py3k branch: UTF-32 codecs.
Walter Dörwald <walter@livinglogic.de>
parents:
42333
diff
changeset
|
785 |
|
c916731321c0
Backport r57105 and r57145 from the py3k branch: UTF-32 codecs.
Walter Dörwald <walter@livinglogic.de>
parents:
42333
diff
changeset
|
786 PyAPI_FUNC(PyObject*) PyUnicode_DecodeUTF32( |
|
c916731321c0
Backport r57105 and r57145 from the py3k branch: UTF-32 codecs.
Walter Dörwald <walter@livinglogic.de>
parents:
42333
diff
changeset
|
787 const char *string, /* UTF-32 encoded string */ |
|
c916731321c0
Backport r57105 and r57145 from the py3k branch: UTF-32 codecs.
Walter Dörwald <walter@livinglogic.de>
parents:
42333
diff
changeset
|
788 Py_ssize_t length, /* size of string */ |
|
c916731321c0
Backport r57105 and r57145 from the py3k branch: UTF-32 codecs.
Walter Dörwald <walter@livinglogic.de>
parents:
42333
diff
changeset
|
789 const char *errors, /* error handling */ |
|
c916731321c0
Backport r57105 and r57145 from the py3k branch: UTF-32 codecs.
Walter Dörwald <walter@livinglogic.de>
parents:
42333
diff
changeset
|
790 int *byteorder /* pointer to byteorder to use |
|
c916731321c0
Backport r57105 and r57145 from the py3k branch: UTF-32 codecs.
Walter Dörwald <walter@livinglogic.de>
parents:
42333
diff
changeset
|
791 0=native;-1=LE,1=BE; updated on |
|
c916731321c0
Backport r57105 and r57145 from the py3k branch: UTF-32 codecs.
Walter Dörwald <walter@livinglogic.de>
parents:
42333
diff
changeset
|
792 exit */ |
|
c916731321c0
Backport r57105 and r57145 from the py3k branch: UTF-32 codecs.
Walter Dörwald <walter@livinglogic.de>
parents:
42333
diff
changeset
|
793 ); |
|
c916731321c0
Backport r57105 and r57145 from the py3k branch: UTF-32 codecs.
Walter Dörwald <walter@livinglogic.de>
parents:
42333
diff
changeset
|
794 |
|
c916731321c0
Backport r57105 and r57145 from the py3k branch: UTF-32 codecs.
Walter Dörwald <walter@livinglogic.de>
parents:
42333
diff
changeset
|
795 PyAPI_FUNC(PyObject*) PyUnicode_DecodeUTF32Stateful( |
|
c916731321c0
Backport r57105 and r57145 from the py3k branch: UTF-32 codecs.
Walter Dörwald <walter@livinglogic.de>
parents:
42333
diff
changeset
|
796 const char *string, /* UTF-32 encoded string */ |
|
c916731321c0
Backport r57105 and r57145 from the py3k branch: UTF-32 codecs.
Walter Dörwald <walter@livinglogic.de>
parents:
42333
diff
changeset
|
797 Py_ssize_t length, /* size of string */ |
|
c916731321c0
Backport r57105 and r57145 from the py3k branch: UTF-32 codecs.
Walter Dörwald <walter@livinglogic.de>
parents:
42333
diff
changeset
|
798 const char *errors, /* error handling */ |
|
c916731321c0
Backport r57105 and r57145 from the py3k branch: UTF-32 codecs.
Walter Dörwald <walter@livinglogic.de>
parents:
42333
diff
changeset
|
799 int *byteorder, /* pointer to byteorder to use |
|
c916731321c0
Backport r57105 and r57145 from the py3k branch: UTF-32 codecs.
Walter Dörwald <walter@livinglogic.de>
parents:
42333
diff
changeset
|
800 0=native;-1=LE,1=BE; updated on |
|
c916731321c0
Backport r57105 and r57145 from the py3k branch: UTF-32 codecs.
Walter Dörwald <walter@livinglogic.de>
parents:
42333
diff
changeset
|
801 exit */ |
|
c916731321c0
Backport r57105 and r57145 from the py3k branch: UTF-32 codecs.
Walter Dörwald <walter@livinglogic.de>
parents:
42333
diff
changeset
|
802 Py_ssize_t *consumed /* bytes consumed */ |
|
c916731321c0
Backport r57105 and r57145 from the py3k branch: UTF-32 codecs.
Walter Dörwald <walter@livinglogic.de>
parents:
42333
diff
changeset
|
803 ); |
|
c916731321c0
Backport r57105 and r57145 from the py3k branch: UTF-32 codecs.
Walter Dörwald <walter@livinglogic.de>
parents:
42333
diff
changeset
|
804 |
|
c916731321c0
Backport r57105 and r57145 from the py3k branch: UTF-32 codecs.
Walter Dörwald <walter@livinglogic.de>
parents:
42333
diff
changeset
|
805 /* Returns a Python string using the UTF-32 encoding in native byte |
|
c916731321c0
Backport r57105 and r57145 from the py3k branch: UTF-32 codecs.
Walter Dörwald <walter@livinglogic.de>
parents:
42333
diff
changeset
|
806 order. The string always starts with a BOM mark. */ |
|
c916731321c0
Backport r57105 and r57145 from the py3k branch: UTF-32 codecs.
Walter Dörwald <walter@livinglogic.de>
parents:
42333
diff
changeset
|
807 |
|
c916731321c0
Backport r57105 and r57145 from the py3k branch: UTF-32 codecs.
Walter Dörwald <walter@livinglogic.de>
parents:
42333
diff
changeset
|
808 PyAPI_FUNC(PyObject*) PyUnicode_AsUTF32String( |
|
c916731321c0
Backport r57105 and r57145 from the py3k branch: UTF-32 codecs.
Walter Dörwald <walter@livinglogic.de>
parents:
42333
diff
changeset
|
809 PyObject *unicode /* Unicode object */ |
|
c916731321c0
Backport r57105 and r57145 from the py3k branch: UTF-32 codecs.
Walter Dörwald <walter@livinglogic.de>
parents:
42333
diff
changeset
|
810 ); |
|
c916731321c0
Backport r57105 and r57145 from the py3k branch: UTF-32 codecs.
Walter Dörwald <walter@livinglogic.de>
parents:
42333
diff
changeset
|
811 |
|
c916731321c0
Backport r57105 and r57145 from the py3k branch: UTF-32 codecs.
Walter Dörwald <walter@livinglogic.de>
parents:
42333
diff
changeset
|
812 /* Returns a Python string object holding the UTF-32 encoded value of |
|
c916731321c0
Backport r57105 and r57145 from the py3k branch: UTF-32 codecs.
Walter Dörwald <walter@livinglogic.de>
parents:
42333
diff
changeset
|
813 the Unicode data. |
|
c916731321c0
Backport r57105 and r57145 from the py3k branch: UTF-32 codecs.
Walter Dörwald <walter@livinglogic.de>
parents:
42333
diff
changeset
|
814 |
|
c916731321c0
Backport r57105 and r57145 from the py3k branch: UTF-32 codecs.
Walter Dörwald <walter@livinglogic.de>
parents:
42333
diff
changeset
|
815 If byteorder is not 0, output is written according to the following |
|
c916731321c0
Backport r57105 and r57145 from the py3k branch: UTF-32 codecs.
Walter Dörwald <walter@livinglogic.de>
parents:
42333
diff
changeset
|
816 byte order: |
|
c916731321c0
Backport r57105 and r57145 from the py3k branch: UTF-32 codecs.
Walter Dörwald <walter@livinglogic.de>
parents:
42333
diff
changeset
|
817 |
|
c916731321c0
Backport r57105 and r57145 from the py3k branch: UTF-32 codecs.
Walter Dörwald <walter@livinglogic.de>
parents:
42333
diff
changeset
|
818 byteorder == -1: little endian |
|
c916731321c0
Backport r57105 and r57145 from the py3k branch: UTF-32 codecs.
Walter Dörwald <walter@livinglogic.de>
parents:
42333
diff
changeset
|
819 byteorder == 0: native byte order (writes a BOM mark) |
|
c916731321c0
Backport r57105 and r57145 from the py3k branch: UTF-32 codecs.
Walter Dörwald <walter@livinglogic.de>
parents:
42333
diff
changeset
|
820 byteorder == 1: big endian |
|
c916731321c0
Backport r57105 and r57145 from the py3k branch: UTF-32 codecs.
Walter Dörwald <walter@livinglogic.de>
parents:
42333
diff
changeset
|
821 |
|
c916731321c0
Backport r57105 and r57145 from the py3k branch: UTF-32 codecs.
Walter Dörwald <walter@livinglogic.de>
parents:
42333
diff
changeset
|
822 If byteorder is 0, the output string will always start with the |
|
c916731321c0
Backport r57105 and r57145 from the py3k branch: UTF-32 codecs.
Walter Dörwald <walter@livinglogic.de>
parents:
42333
diff
changeset
|
823 Unicode BOM mark (U+FEFF). In the other two modes, no BOM mark is |
|
c916731321c0
Backport r57105 and r57145 from the py3k branch: UTF-32 codecs.
Walter Dörwald <walter@livinglogic.de>
parents:
42333
diff
changeset
|
824 prepended. |
|
c916731321c0
Backport r57105 and r57145 from the py3k branch: UTF-32 codecs.
Walter Dörwald <walter@livinglogic.de>
parents:
42333
diff
changeset
|
825 |
|
c916731321c0
Backport r57105 and r57145 from the py3k branch: UTF-32 codecs.
Walter Dörwald <walter@livinglogic.de>
parents:
42333
diff
changeset
|
826 */ |
|
c916731321c0
Backport r57105 and r57145 from the py3k branch: UTF-32 codecs.
Walter Dörwald <walter@livinglogic.de>
parents:
42333
diff
changeset
|
827 |
|
c916731321c0
Backport r57105 and r57145 from the py3k branch: UTF-32 codecs.
Walter Dörwald <walter@livinglogic.de>
parents:
42333
diff
changeset
|
828 PyAPI_FUNC(PyObject*) PyUnicode_EncodeUTF32( |
|
c916731321c0
Backport r57105 and r57145 from the py3k branch: UTF-32 codecs.
Walter Dörwald <walter@livinglogic.de>
parents:
42333
diff
changeset
|
829 const Py_UNICODE *data, /* Unicode char buffer */ |
|
c916731321c0
Backport r57105 and r57145 from the py3k branch: UTF-32 codecs.
Walter Dörwald <walter@livinglogic.de>
parents:
42333
diff
changeset
|
830 Py_ssize_t length, /* number of Py_UNICODE chars to encode */ |
|
c916731321c0
Backport r57105 and r57145 from the py3k branch: UTF-32 codecs.
Walter Dörwald <walter@livinglogic.de>
parents:
42333
diff
changeset
|
831 const char *errors, /* error handling */ |
|
c916731321c0
Backport r57105 and r57145 from the py3k branch: UTF-32 codecs.
Walter Dörwald <walter@livinglogic.de>
parents:
42333
diff
changeset
|
832 int byteorder /* byteorder to use 0=BOM+native;-1=LE,1=BE */ |
|
c916731321c0
Backport r57105 and r57145 from the py3k branch: UTF-32 codecs.
Walter Dörwald <walter@livinglogic.de>
parents:
42333
diff
changeset
|
833 ); |
|
c916731321c0
Backport r57105 and r57145 from the py3k branch: UTF-32 codecs.
Walter Dörwald <walter@livinglogic.de>
parents:
42333
diff
changeset
|
834 |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
835 /* --- UTF-16 Codecs ------------------------------------------------------ */ |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
836 |
|
12248
70154e2e9c89
Marc-Andre's third try at this bulk patch seems to work (except that
Guido van Rossum <guido@python.org>
parents:
12074
diff
changeset
|
837 /* Decodes length bytes from a UTF-16 encoded buffer string and returns |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
838 the corresponding Unicode object. |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
839 |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
840 errors (if non-NULL) defines the error handling. It defaults |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
841 to "strict". |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
842 |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
843 If byteorder is non-NULL, the decoder starts decoding using the |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
844 given byte order: |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
845 |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
846 *byteorder == -1: little endian |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
847 *byteorder == 0: native order |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
848 *byteorder == 1: big endian |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
849 |
|
17887
fd5f83188778
This patch changes the behaviour of the UTF-16 codec family. Only the
Marc-André Lemburg <mal@egenix.com>
parents:
17618
diff
changeset
|
850 In native mode, the first two bytes of the stream are checked for a |
|
fd5f83188778
This patch changes the behaviour of the UTF-16 codec family. Only the
Marc-André Lemburg <mal@egenix.com>
parents:
17618
diff
changeset
|
851 BOM mark. If found, the BOM mark is analysed, the byte order |
|
fd5f83188778
This patch changes the behaviour of the UTF-16 codec family. Only the
Marc-André Lemburg <mal@egenix.com>
parents:
17618
diff
changeset
|
852 adjusted and the BOM skipped. In the other modes, no BOM mark |
|
fd5f83188778
This patch changes the behaviour of the UTF-16 codec family. Only the
Marc-André Lemburg <mal@egenix.com>
parents:
17618
diff
changeset
|
853 interpretation is done. After completion, *byteorder is set to the |
|
fd5f83188778
This patch changes the behaviour of the UTF-16 codec family. Only the
Marc-André Lemburg <mal@egenix.com>
parents:
17618
diff
changeset
|
854 current byte order at the end of input data. |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
855 |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
856 If byteorder is NULL, the codec starts in native order mode. |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
857 |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
858 */ |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
859 |
|
24752
c1eb668525e1
Excise DL_EXPORT from Include.
Mark Hammond <mhammond@skippinet.com.au>
parents:
24737
diff
changeset
|
860 PyAPI_FUNC(PyObject*) PyUnicode_DecodeUTF16( |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
861 const char *string, /* UTF-16 encoded string */ |
|
36501
7fdc639bc5b4
Merge ssize_t branch.
Martin v. Löwis <martin@v.loewis.de>
parents:
35808
diff
changeset
|
862 Py_ssize_t length, /* size of string */ |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
863 const char *errors, /* error handling */ |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
864 int *byteorder /* pointer to byteorder to use |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
865 0=native;-1=LE,1=BE; updated on |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
866 exit */ |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
867 ); |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
868 |
|
33428
57478a13fbf6
SF patch #998993: The UTF-8 and the UTF-16 stateful decoders now support
Walter Dörwald <walter@livinglogic.de>
parents:
32951
diff
changeset
|
869 PyAPI_FUNC(PyObject*) PyUnicode_DecodeUTF16Stateful( |
|
57478a13fbf6
SF patch #998993: The UTF-8 and the UTF-16 stateful decoders now support
Walter Dörwald <walter@livinglogic.de>
parents:
32951
diff
changeset
|
870 const char *string, /* UTF-16 encoded string */ |
|
36501
7fdc639bc5b4
Merge ssize_t branch.
Martin v. Löwis <martin@v.loewis.de>
parents:
35808
diff
changeset
|
871 Py_ssize_t length, /* size of string */ |
|
33428
57478a13fbf6
SF patch #998993: The UTF-8 and the UTF-16 stateful decoders now support
Walter Dörwald <walter@livinglogic.de>
parents:
32951
diff
changeset
|
872 const char *errors, /* error handling */ |
|
57478a13fbf6
SF patch #998993: The UTF-8 and the UTF-16 stateful decoders now support
Walter Dörwald <walter@livinglogic.de>
parents:
32951
diff
changeset
|
873 int *byteorder, /* pointer to byteorder to use |
|
57478a13fbf6
SF patch #998993: The UTF-8 and the UTF-16 stateful decoders now support
Walter Dörwald <walter@livinglogic.de>
parents:
32951
diff
changeset
|
874 0=native;-1=LE,1=BE; updated on |
|
57478a13fbf6
SF patch #998993: The UTF-8 and the UTF-16 stateful decoders now support
Walter Dörwald <walter@livinglogic.de>
parents:
32951
diff
changeset
|
875 exit */ |
|
36501
7fdc639bc5b4
Merge ssize_t branch.
Martin v. Löwis <martin@v.loewis.de>
parents:
35808
diff
changeset
|
876 Py_ssize_t *consumed /* bytes consumed */ |
|
33428
57478a13fbf6
SF patch #998993: The UTF-8 and the UTF-16 stateful decoders now support
Walter Dörwald <walter@livinglogic.de>
parents:
32951
diff
changeset
|
877 ); |
|
57478a13fbf6
SF patch #998993: The UTF-8 and the UTF-16 stateful decoders now support
Walter Dörwald <walter@livinglogic.de>
parents:
32951
diff
changeset
|
878 |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
879 /* Returns a Python string using the UTF-16 encoding in native byte |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
880 order. The string always starts with a BOM mark. */ |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
881 |
|
24752
c1eb668525e1
Excise DL_EXPORT from Include.
Mark Hammond <mhammond@skippinet.com.au>
parents:
24737
diff
changeset
|
882 PyAPI_FUNC(PyObject*) PyUnicode_AsUTF16String( |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
883 PyObject *unicode /* Unicode object */ |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
884 ); |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
885 |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
886 /* Returns a Python string object holding the UTF-16 encoded value of |
|
12248
70154e2e9c89
Marc-Andre's third try at this bulk patch seems to work (except that
Guido van Rossum <guido@python.org>
parents:
12074
diff
changeset
|
887 the Unicode data. |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
888 |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
889 If byteorder is not 0, output is written according to the following |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
890 byte order: |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
891 |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
892 byteorder == -1: little endian |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
893 byteorder == 0: native byte order (writes a BOM mark) |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
894 byteorder == 1: big endian |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
895 |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
896 If byteorder is 0, the output string will always start with the |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
897 Unicode BOM mark (U+FEFF). In the other two modes, no BOM mark is |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
898 prepended. |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
899 |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
900 Note that Py_UNICODE data is being interpreted as UTF-16 reduced to |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
901 UCS-2. This trick makes it possible to add full UTF-16 capabilities |
|
13620
5b727ab37092
Spelling fixes supplied by Rob W. W. Hooft. All these are fixes in either
Thomas Wouters <thomas@python.org>
parents:
13401
diff
changeset
|
902 at a later point without compromising the APIs. |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
903 |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
904 */ |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
905 |
|
24752
c1eb668525e1
Excise DL_EXPORT from Include.
Mark Hammond <mhammond@skippinet.com.au>
parents:
24737
diff
changeset
|
906 PyAPI_FUNC(PyObject*) PyUnicode_EncodeUTF16( |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
907 const Py_UNICODE *data, /* Unicode char buffer */ |
|
36501
7fdc639bc5b4
Merge ssize_t branch.
Martin v. Löwis <martin@v.loewis.de>
parents:
35808
diff
changeset
|
908 Py_ssize_t length, /* number of Py_UNICODE chars to encode */ |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
909 const char *errors, /* error handling */ |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
910 int byteorder /* byteorder to use 0=BOM+native;-1=LE,1=BE */ |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
911 ); |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
912 |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
913 /* --- Unicode-Escape Codecs ---------------------------------------------- */ |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
914 |
|
24752
c1eb668525e1
Excise DL_EXPORT from Include.
Mark Hammond <mhammond@skippinet.com.au>
parents:
24737
diff
changeset
|
915 PyAPI_FUNC(PyObject*) PyUnicode_DecodeUnicodeEscape( |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
916 const char *string, /* Unicode-Escape encoded string */ |
|
36501
7fdc639bc5b4
Merge ssize_t branch.
Martin v. Löwis <martin@v.loewis.de>
parents:
35808
diff
changeset
|
917 Py_ssize_t length, /* size of string */ |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
918 const char *errors /* error handling */ |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
919 ); |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
920 |
|
24752
c1eb668525e1
Excise DL_EXPORT from Include.
Mark Hammond <mhammond@skippinet.com.au>
parents:
24737
diff
changeset
|
921 PyAPI_FUNC(PyObject*) PyUnicode_AsUnicodeEscapeString( |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
922 PyObject *unicode /* Unicode object */ |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
923 ); |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
924 |
|
24752
c1eb668525e1
Excise DL_EXPORT from Include.
Mark Hammond <mhammond@skippinet.com.au>
parents:
24737
diff
changeset
|
925 PyAPI_FUNC(PyObject*) PyUnicode_EncodeUnicodeEscape( |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
926 const Py_UNICODE *data, /* Unicode char buffer */ |
|
36501
7fdc639bc5b4
Merge ssize_t branch.
Martin v. Löwis <martin@v.loewis.de>
parents:
35808
diff
changeset
|
927 Py_ssize_t length /* Number of Py_UNICODE chars to encode */ |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
928 ); |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
929 |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
930 /* --- Raw-Unicode-Escape Codecs ------------------------------------------ */ |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
931 |
|
24752
c1eb668525e1
Excise DL_EXPORT from Include.
Mark Hammond <mhammond@skippinet.com.au>
parents:
24737
diff
changeset
|
932 PyAPI_FUNC(PyObject*) PyUnicode_DecodeRawUnicodeEscape( |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
933 const char *string, /* Raw-Unicode-Escape encoded string */ |
|
36501
7fdc639bc5b4
Merge ssize_t branch.
Martin v. Löwis <martin@v.loewis.de>
parents:
35808
diff
changeset
|
934 Py_ssize_t length, /* size of string */ |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
935 const char *errors /* error handling */ |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
936 ); |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
937 |
|
24752
c1eb668525e1
Excise DL_EXPORT from Include.
Mark Hammond <mhammond@skippinet.com.au>
parents:
24737
diff
changeset
|
938 PyAPI_FUNC(PyObject*) PyUnicode_AsRawUnicodeEscapeString( |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
939 PyObject *unicode /* Unicode object */ |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
940 ); |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
941 |
|
24752
c1eb668525e1
Excise DL_EXPORT from Include.
Mark Hammond <mhammond@skippinet.com.au>
parents:
24737
diff
changeset
|
942 PyAPI_FUNC(PyObject*) PyUnicode_EncodeRawUnicodeEscape( |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
943 const Py_UNICODE *data, /* Unicode char buffer */ |
|
36501
7fdc639bc5b4
Merge ssize_t branch.
Martin v. Löwis <martin@v.loewis.de>
parents:
35808
diff
changeset
|
944 Py_ssize_t length /* Number of Py_UNICODE chars to encode */ |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
945 ); |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
946 |
| 35485 | 947 /* --- Unicode Internal Codec --------------------------------------------- |
| 948 | |
| 949 Only for internal use in _codecsmodule.c */ | |
| 950 | |
| 951 PyObject *_PyUnicode_DecodeUnicodeInternal( | |
| 952 const char *string, | |
|
36501
7fdc639bc5b4
Merge ssize_t branch.
Martin v. Löwis <martin@v.loewis.de>
parents:
35808
diff
changeset
|
953 Py_ssize_t length, |
| 35485 | 954 const char *errors |
| 955 ); | |
| 956 | |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
957 /* --- Latin-1 Codecs ----------------------------------------------------- |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
958 |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
959 Note: Latin-1 corresponds to the first 256 Unicode ordinals. |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
960 |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
961 */ |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
962 |
|
24752
c1eb668525e1
Excise DL_EXPORT from Include.
Mark Hammond <mhammond@skippinet.com.au>
parents:
24737
diff
changeset
|
963 PyAPI_FUNC(PyObject*) PyUnicode_DecodeLatin1( |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
964 const char *string, /* Latin-1 encoded string */ |
|
36501
7fdc639bc5b4
Merge ssize_t branch.
Martin v. Löwis <martin@v.loewis.de>
parents:
35808
diff
changeset
|
965 Py_ssize_t length, /* size of string */ |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
966 const char *errors /* error handling */ |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
967 ); |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
968 |
|
24752
c1eb668525e1
Excise DL_EXPORT from Include.
Mark Hammond <mhammond@skippinet.com.au>
parents:
24737
diff
changeset
|
969 PyAPI_FUNC(PyObject*) PyUnicode_AsLatin1String( |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
970 PyObject *unicode /* Unicode object */ |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
971 ); |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
972 |
|
24752
c1eb668525e1
Excise DL_EXPORT from Include.
Mark Hammond <mhammond@skippinet.com.au>
parents:
24737
diff
changeset
|
973 PyAPI_FUNC(PyObject*) PyUnicode_EncodeLatin1( |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
974 const Py_UNICODE *data, /* Unicode char buffer */ |
|
36501
7fdc639bc5b4
Merge ssize_t branch.
Martin v. Löwis <martin@v.loewis.de>
parents:
35808
diff
changeset
|
975 Py_ssize_t length, /* Number of Py_UNICODE chars to encode */ |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
976 const char *errors /* error handling */ |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
977 ); |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
978 |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
979 /* --- ASCII Codecs ------------------------------------------------------- |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
980 |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
981 Only 7-bit ASCII data is excepted. All other codes generate errors. |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
982 |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
983 */ |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
984 |
|
24752
c1eb668525e1
Excise DL_EXPORT from Include.
Mark Hammond <mhammond@skippinet.com.au>
parents:
24737
diff
changeset
|
985 PyAPI_FUNC(PyObject*) PyUnicode_DecodeASCII( |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
986 const char *string, /* ASCII encoded string */ |
|
36501
7fdc639bc5b4
Merge ssize_t branch.
Martin v. Löwis <martin@v.loewis.de>
parents:
35808
diff
changeset
|
987 Py_ssize_t length, /* size of string */ |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
988 const char *errors /* error handling */ |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
989 ); |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
990 |
|
24752
c1eb668525e1
Excise DL_EXPORT from Include.
Mark Hammond <mhammond@skippinet.com.au>
parents:
24737
diff
changeset
|
991 PyAPI_FUNC(PyObject*) PyUnicode_AsASCIIString( |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
992 PyObject *unicode /* Unicode object */ |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
993 ); |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
994 |
|
24752
c1eb668525e1
Excise DL_EXPORT from Include.
Mark Hammond <mhammond@skippinet.com.au>
parents:
24737
diff
changeset
|
995 PyAPI_FUNC(PyObject*) PyUnicode_EncodeASCII( |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
996 const Py_UNICODE *data, /* Unicode char buffer */ |
|
36501
7fdc639bc5b4
Merge ssize_t branch.
Martin v. Löwis <martin@v.loewis.de>
parents:
35808
diff
changeset
|
997 Py_ssize_t length, /* Number of Py_UNICODE chars to encode */ |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
998 const char *errors /* error handling */ |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
999 ); |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1000 |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1001 /* --- Character Map Codecs ----------------------------------------------- |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1002 |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1003 This codec uses mappings to encode and decode characters. |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1004 |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1005 Decoding mappings must map single string characters to single |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1006 Unicode characters, integers (which are then interpreted as Unicode |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1007 ordinals) or None (meaning "undefined mapping" and causing an |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1008 error). |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1009 |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1010 Encoding mappings must map single Unicode characters to single |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1011 string characters, integers (which are then interpreted as Latin-1 |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1012 ordinals) or None (meaning "undefined mapping" and causing an |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1013 error). |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1014 |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1015 If a character lookup fails with a LookupError, the character is |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1016 copied as-is meaning that its ordinal value will be interpreted as |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1017 Unicode or Latin-1 ordinal resp. Because of this mappings only need |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1018 to contain those mappings which map characters to different code |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1019 points. |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1020 |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1021 */ |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1022 |
|
24752
c1eb668525e1
Excise DL_EXPORT from Include.
Mark Hammond <mhammond@skippinet.com.au>
parents:
24737
diff
changeset
|
1023 PyAPI_FUNC(PyObject*) PyUnicode_DecodeCharmap( |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1024 const char *string, /* Encoded string */ |
|
36501
7fdc639bc5b4
Merge ssize_t branch.
Martin v. Löwis <martin@v.loewis.de>
parents:
35808
diff
changeset
|
1025 Py_ssize_t length, /* size of string */ |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1026 PyObject *mapping, /* character mapping |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1027 (char ordinal -> unicode ordinal) */ |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1028 const char *errors /* error handling */ |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1029 ); |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1030 |
|
24752
c1eb668525e1
Excise DL_EXPORT from Include.
Mark Hammond <mhammond@skippinet.com.au>
parents:
24737
diff
changeset
|
1031 PyAPI_FUNC(PyObject*) PyUnicode_AsCharmapString( |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1032 PyObject *unicode, /* Unicode object */ |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1033 PyObject *mapping /* character mapping |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1034 (unicode ordinal -> char ordinal) */ |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1035 ); |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1036 |
|
24752
c1eb668525e1
Excise DL_EXPORT from Include.
Mark Hammond <mhammond@skippinet.com.au>
parents:
24737
diff
changeset
|
1037 PyAPI_FUNC(PyObject*) PyUnicode_EncodeCharmap( |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1038 const Py_UNICODE *data, /* Unicode char buffer */ |
|
36501
7fdc639bc5b4
Merge ssize_t branch.
Martin v. Löwis <martin@v.loewis.de>
parents:
35808
diff
changeset
|
1039 Py_ssize_t length, /* Number of Py_UNICODE chars to encode */ |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1040 PyObject *mapping, /* character mapping |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1041 (unicode ordinal -> char ordinal) */ |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1042 const char *errors /* error handling */ |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1043 ); |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1044 |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1045 /* Translate a Py_UNICODE buffer of the given length by applying a |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1046 character mapping table to it and return the resulting Unicode |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1047 object. |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1048 |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1049 The mapping table must map Unicode ordinal integers to Unicode |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1050 ordinal integers or None (causing deletion of the character). |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1051 |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1052 Mapping tables may be dictionaries or sequences. Unmapped character |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1053 ordinals (ones which cause a LookupError) are left untouched and |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1054 are copied as-is. |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1055 |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1056 */ |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1057 |
|
24752
c1eb668525e1
Excise DL_EXPORT from Include.
Mark Hammond <mhammond@skippinet.com.au>
parents:
24737
diff
changeset
|
1058 PyAPI_FUNC(PyObject *) PyUnicode_TranslateCharmap( |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1059 const Py_UNICODE *data, /* Unicode char buffer */ |
|
36501
7fdc639bc5b4
Merge ssize_t branch.
Martin v. Löwis <martin@v.loewis.de>
parents:
35808
diff
changeset
|
1060 Py_ssize_t length, /* Number of Py_UNICODE chars to encode */ |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1061 PyObject *table, /* Translate table */ |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1062 const char *errors /* error handling */ |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1063 ); |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1064 |
|
12066
86cffe50fb17
Prototypes added for MBCS codecs. (Win32 only.)
Guido van Rossum <guido@python.org>
parents:
12025
diff
changeset
|
1065 #ifdef MS_WIN32 |
| 12074 | 1066 |
|
12066
86cffe50fb17
Prototypes added for MBCS codecs. (Win32 only.)
Guido van Rossum <guido@python.org>
parents:
12025
diff
changeset
|
1067 /* --- MBCS codecs for Windows -------------------------------------------- */ |
| 12074 | 1068 |
|
24752
c1eb668525e1
Excise DL_EXPORT from Include.
Mark Hammond <mhammond@skippinet.com.au>
parents:
24737
diff
changeset
|
1069 PyAPI_FUNC(PyObject*) PyUnicode_DecodeMBCS( |
|
12066
86cffe50fb17
Prototypes added for MBCS codecs. (Win32 only.)
Guido van Rossum <guido@python.org>
parents:
12025
diff
changeset
|
1070 const char *string, /* MBCS encoded string */ |
|
36501
7fdc639bc5b4
Merge ssize_t branch.
Martin v. Löwis <martin@v.loewis.de>
parents:
35808
diff
changeset
|
1071 Py_ssize_t length, /* size of string */ |
|
12066
86cffe50fb17
Prototypes added for MBCS codecs. (Win32 only.)
Guido van Rossum <guido@python.org>
parents:
12025
diff
changeset
|
1072 const char *errors /* error handling */ |
|
86cffe50fb17
Prototypes added for MBCS codecs. (Win32 only.)
Guido van Rossum <guido@python.org>
parents:
12025
diff
changeset
|
1073 ); |
|
86cffe50fb17
Prototypes added for MBCS codecs. (Win32 only.)
Guido van Rossum <guido@python.org>
parents:
12025
diff
changeset
|
1074 |
|
38817
549c547700af
Patch #1455898: Incremental mode for "mbcs" codec.
Martin v. Löwis <martin@v.loewis.de>
parents:
38586
diff
changeset
|
1075 PyAPI_FUNC(PyObject*) PyUnicode_DecodeMBCSStateful( |
|
549c547700af
Patch #1455898: Incremental mode for "mbcs" codec.
Martin v. Löwis <martin@v.loewis.de>
parents:
38586
diff
changeset
|
1076 const char *string, /* MBCS encoded string */ |
|
549c547700af
Patch #1455898: Incremental mode for "mbcs" codec.
Martin v. Löwis <martin@v.loewis.de>
parents:
38586
diff
changeset
|
1077 Py_ssize_t length, /* size of string */ |
|
549c547700af
Patch #1455898: Incremental mode for "mbcs" codec.
Martin v. Löwis <martin@v.loewis.de>
parents:
38586
diff
changeset
|
1078 const char *errors, /* error handling */ |
|
549c547700af
Patch #1455898: Incremental mode for "mbcs" codec.
Martin v. Löwis <martin@v.loewis.de>
parents:
38586
diff
changeset
|
1079 Py_ssize_t *consumed /* bytes consumed */ |
|
549c547700af
Patch #1455898: Incremental mode for "mbcs" codec.
Martin v. Löwis <martin@v.loewis.de>
parents:
38586
diff
changeset
|
1080 ); |
|
549c547700af
Patch #1455898: Incremental mode for "mbcs" codec.
Martin v. Löwis <martin@v.loewis.de>
parents:
38586
diff
changeset
|
1081 |
|
24752
c1eb668525e1
Excise DL_EXPORT from Include.
Mark Hammond <mhammond@skippinet.com.au>
parents:
24737
diff
changeset
|
1082 PyAPI_FUNC(PyObject*) PyUnicode_AsMBCSString( |
|
12066
86cffe50fb17
Prototypes added for MBCS codecs. (Win32 only.)
Guido van Rossum <guido@python.org>
parents:
12025
diff
changeset
|
1083 PyObject *unicode /* Unicode object */ |
|
86cffe50fb17
Prototypes added for MBCS codecs. (Win32 only.)
Guido van Rossum <guido@python.org>
parents:
12025
diff
changeset
|
1084 ); |
|
86cffe50fb17
Prototypes added for MBCS codecs. (Win32 only.)
Guido van Rossum <guido@python.org>
parents:
12025
diff
changeset
|
1085 |
|
24752
c1eb668525e1
Excise DL_EXPORT from Include.
Mark Hammond <mhammond@skippinet.com.au>
parents:
24737
diff
changeset
|
1086 PyAPI_FUNC(PyObject*) PyUnicode_EncodeMBCS( |
|
12066
86cffe50fb17
Prototypes added for MBCS codecs. (Win32 only.)
Guido van Rossum <guido@python.org>
parents:
12025
diff
changeset
|
1087 const Py_UNICODE *data, /* Unicode char buffer */ |
|
36501
7fdc639bc5b4
Merge ssize_t branch.
Martin v. Löwis <martin@v.loewis.de>
parents:
35808
diff
changeset
|
1088 Py_ssize_t length, /* Number of Py_UNICODE chars to encode */ |
|
12066
86cffe50fb17
Prototypes added for MBCS codecs. (Win32 only.)
Guido van Rossum <guido@python.org>
parents:
12025
diff
changeset
|
1089 const char *errors /* error handling */ |
|
86cffe50fb17
Prototypes added for MBCS codecs. (Win32 only.)
Guido van Rossum <guido@python.org>
parents:
12025
diff
changeset
|
1090 ); |
|
86cffe50fb17
Prototypes added for MBCS codecs. (Win32 only.)
Guido van Rossum <guido@python.org>
parents:
12025
diff
changeset
|
1091 |
| 12074 | 1092 #endif /* MS_WIN32 */ |
|
12066
86cffe50fb17
Prototypes added for MBCS codecs. (Win32 only.)
Guido van Rossum <guido@python.org>
parents:
12025
diff
changeset
|
1093 |
|
12248
70154e2e9c89
Marc-Andre's third try at this bulk patch seems to work (except that
Guido van Rossum <guido@python.org>
parents:
12074
diff
changeset
|
1094 /* --- Decimal Encoder ---------------------------------------------------- */ |
|
70154e2e9c89
Marc-Andre's third try at this bulk patch seems to work (except that
Guido van Rossum <guido@python.org>
parents:
12074
diff
changeset
|
1095 |
|
70154e2e9c89
Marc-Andre's third try at this bulk patch seems to work (except that
Guido van Rossum <guido@python.org>
parents:
12074
diff
changeset
|
1096 /* Takes a Unicode string holding a decimal value and writes it into |
|
70154e2e9c89
Marc-Andre's third try at this bulk patch seems to work (except that
Guido van Rossum <guido@python.org>
parents:
12074
diff
changeset
|
1097 an output buffer using standard ASCII digit codes. |
|
70154e2e9c89
Marc-Andre's third try at this bulk patch seems to work (except that
Guido van Rossum <guido@python.org>
parents:
12074
diff
changeset
|
1098 |
|
70154e2e9c89
Marc-Andre's third try at this bulk patch seems to work (except that
Guido van Rossum <guido@python.org>
parents:
12074
diff
changeset
|
1099 The output buffer has to provide at least length+1 bytes of storage |
|
70154e2e9c89
Marc-Andre's third try at this bulk patch seems to work (except that
Guido van Rossum <guido@python.org>
parents:
12074
diff
changeset
|
1100 area. The output string is 0-terminated. |
|
70154e2e9c89
Marc-Andre's third try at this bulk patch seems to work (except that
Guido van Rossum <guido@python.org>
parents:
12074
diff
changeset
|
1101 |
|
70154e2e9c89
Marc-Andre's third try at this bulk patch seems to work (except that
Guido van Rossum <guido@python.org>
parents:
12074
diff
changeset
|
1102 The encoder converts whitespace to ' ', decimal characters to their |
|
70154e2e9c89
Marc-Andre's third try at this bulk patch seems to work (except that
Guido van Rossum <guido@python.org>
parents:
12074
diff
changeset
|
1103 corresponding ASCII digit and all other Latin-1 characters except |
|
70154e2e9c89
Marc-Andre's third try at this bulk patch seems to work (except that
Guido van Rossum <guido@python.org>
parents:
12074
diff
changeset
|
1104 \0 as-is. Characters outside this range (Unicode ordinals 1-256) |
|
70154e2e9c89
Marc-Andre's third try at this bulk patch seems to work (except that
Guido van Rossum <guido@python.org>
parents:
12074
diff
changeset
|
1105 are treated as errors. This includes embedded NULL bytes. |
|
70154e2e9c89
Marc-Andre's third try at this bulk patch seems to work (except that
Guido van Rossum <guido@python.org>
parents:
12074
diff
changeset
|
1106 |
|
70154e2e9c89
Marc-Andre's third try at this bulk patch seems to work (except that
Guido van Rossum <guido@python.org>
parents:
12074
diff
changeset
|
1107 Error handling is defined by the errors argument: |
|
70154e2e9c89
Marc-Andre's third try at this bulk patch seems to work (except that
Guido van Rossum <guido@python.org>
parents:
12074
diff
changeset
|
1108 |
|
70154e2e9c89
Marc-Andre's third try at this bulk patch seems to work (except that
Guido van Rossum <guido@python.org>
parents:
12074
diff
changeset
|
1109 NULL or "strict": raise a ValueError |
|
70154e2e9c89
Marc-Andre's third try at this bulk patch seems to work (except that
Guido van Rossum <guido@python.org>
parents:
12074
diff
changeset
|
1110 "ignore": ignore the wrong characters (these are not copied to the |
|
70154e2e9c89
Marc-Andre's third try at this bulk patch seems to work (except that
Guido van Rossum <guido@python.org>
parents:
12074
diff
changeset
|
1111 output buffer) |
|
70154e2e9c89
Marc-Andre's third try at this bulk patch seems to work (except that
Guido van Rossum <guido@python.org>
parents:
12074
diff
changeset
|
1112 "replace": replaces illegal characters with '?' |
|
70154e2e9c89
Marc-Andre's third try at this bulk patch seems to work (except that
Guido van Rossum <guido@python.org>
parents:
12074
diff
changeset
|
1113 |
|
70154e2e9c89
Marc-Andre's third try at this bulk patch seems to work (except that
Guido van Rossum <guido@python.org>
parents:
12074
diff
changeset
|
1114 Returns 0 on success, -1 on failure. |
|
70154e2e9c89
Marc-Andre's third try at this bulk patch seems to work (except that
Guido van Rossum <guido@python.org>
parents:
12074
diff
changeset
|
1115 |
|
70154e2e9c89
Marc-Andre's third try at this bulk patch seems to work (except that
Guido van Rossum <guido@python.org>
parents:
12074
diff
changeset
|
1116 */ |
|
70154e2e9c89
Marc-Andre's third try at this bulk patch seems to work (except that
Guido van Rossum <guido@python.org>
parents:
12074
diff
changeset
|
1117 |
|
24752
c1eb668525e1
Excise DL_EXPORT from Include.
Mark Hammond <mhammond@skippinet.com.au>
parents:
24737
diff
changeset
|
1118 PyAPI_FUNC(int) PyUnicode_EncodeDecimal( |
|
12248
70154e2e9c89
Marc-Andre's third try at this bulk patch seems to work (except that
Guido van Rossum <guido@python.org>
parents:
12074
diff
changeset
|
1119 Py_UNICODE *s, /* Unicode buffer */ |
|
36501
7fdc639bc5b4
Merge ssize_t branch.
Martin v. Löwis <martin@v.loewis.de>
parents:
35808
diff
changeset
|
1120 Py_ssize_t length, /* Number of Py_UNICODE chars to encode */ |
|
12248
70154e2e9c89
Marc-Andre's third try at this bulk patch seems to work (except that
Guido van Rossum <guido@python.org>
parents:
12074
diff
changeset
|
1121 char *output, /* Output buffer; must have size >= length */ |
|
70154e2e9c89
Marc-Andre's third try at this bulk patch seems to work (except that
Guido van Rossum <guido@python.org>
parents:
12074
diff
changeset
|
1122 const char *errors /* error handling */ |
|
70154e2e9c89
Marc-Andre's third try at this bulk patch seems to work (except that
Guido van Rossum <guido@python.org>
parents:
12074
diff
changeset
|
1123 ); |
|
70154e2e9c89
Marc-Andre's third try at this bulk patch seems to work (except that
Guido van Rossum <guido@python.org>
parents:
12074
diff
changeset
|
1124 |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1125 /* --- Methods & Slots ---------------------------------------------------- |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1126 |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1127 These are capable of handling Unicode objects and strings on input |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1128 (we refer to them as strings in the descriptions) and return |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1129 Unicode objects or integers as apporpriate. */ |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1130 |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1131 /* Concat two strings giving a new Unicode string. */ |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1132 |
|
24752
c1eb668525e1
Excise DL_EXPORT from Include.
Mark Hammond <mhammond@skippinet.com.au>
parents:
24737
diff
changeset
|
1133 PyAPI_FUNC(PyObject*) PyUnicode_Concat( |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1134 PyObject *left, /* Left string */ |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1135 PyObject *right /* Right string */ |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1136 ); |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1137 |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1138 /* Split a string giving a list of Unicode strings. |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1139 |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1140 If sep is NULL, splitting will be done at all whitespace |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1141 substrings. Otherwise, splits occur at the given separator. |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1142 |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1143 At most maxsplit splits will be done. If negative, no limit is set. |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1144 |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1145 Separators are not included in the resulting list. |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1146 |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1147 */ |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1148 |
|
24752
c1eb668525e1
Excise DL_EXPORT from Include.
Mark Hammond <mhammond@skippinet.com.au>
parents:
24737
diff
changeset
|
1149 PyAPI_FUNC(PyObject*) PyUnicode_Split( |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1150 PyObject *s, /* String to split */ |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1151 PyObject *sep, /* String separator */ |
|
36501
7fdc639bc5b4
Merge ssize_t branch.
Martin v. Löwis <martin@v.loewis.de>
parents:
35808
diff
changeset
|
1152 Py_ssize_t maxsplit /* Maxsplit count */ |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1153 ); |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1154 |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1155 /* Dito, but split at line breaks. |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1156 |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1157 CRLF is considered to be one line break. Line breaks are not |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1158 included in the resulting list. */ |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1159 |
|
24752
c1eb668525e1
Excise DL_EXPORT from Include.
Mark Hammond <mhammond@skippinet.com.au>
parents:
24737
diff
changeset
|
1160 PyAPI_FUNC(PyObject*) PyUnicode_Splitlines( |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1161 PyObject *s, /* String to split */ |
| 12372 | 1162 int keepends /* If true, line end markers are included */ |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1163 ); |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1164 |
|
38335
f9332ad4287a
needforspeed: partition implementation, part two.
Fredrik Lundh <fredrik@pythonware.com>
parents:
38242
diff
changeset
|
1165 /* Partition a string using a given separator. */ |
|
f9332ad4287a
needforspeed: partition implementation, part two.
Fredrik Lundh <fredrik@pythonware.com>
parents:
38242
diff
changeset
|
1166 |
|
f9332ad4287a
needforspeed: partition implementation, part two.
Fredrik Lundh <fredrik@pythonware.com>
parents:
38242
diff
changeset
|
1167 PyAPI_FUNC(PyObject*) PyUnicode_Partition( |
|
f9332ad4287a
needforspeed: partition implementation, part two.
Fredrik Lundh <fredrik@pythonware.com>
parents:
38242
diff
changeset
|
1168 PyObject *s, /* String to partition */ |
|
f9332ad4287a
needforspeed: partition implementation, part two.
Fredrik Lundh <fredrik@pythonware.com>
parents:
38242
diff
changeset
|
1169 PyObject *sep /* String separator */ |
|
f9332ad4287a
needforspeed: partition implementation, part two.
Fredrik Lundh <fredrik@pythonware.com>
parents:
38242
diff
changeset
|
1170 ); |
|
f9332ad4287a
needforspeed: partition implementation, part two.
Fredrik Lundh <fredrik@pythonware.com>
parents:
38242
diff
changeset
|
1171 |
|
38390
76807902a2f5
needforspeed: added rpartition implementation
Fredrik Lundh <fredrik@pythonware.com>
parents:
38335
diff
changeset
|
1172 /* Partition a string using a given separator, searching from the end of the |
|
76807902a2f5
needforspeed: added rpartition implementation
Fredrik Lundh <fredrik@pythonware.com>
parents:
38335
diff
changeset
|
1173 string. */ |
|
76807902a2f5
needforspeed: added rpartition implementation
Fredrik Lundh <fredrik@pythonware.com>
parents:
38335
diff
changeset
|
1174 |
|
76807902a2f5
needforspeed: added rpartition implementation
Fredrik Lundh <fredrik@pythonware.com>
parents:
38335
diff
changeset
|
1175 PyAPI_FUNC(PyObject*) PyUnicode_RPartition( |
|
76807902a2f5
needforspeed: added rpartition implementation
Fredrik Lundh <fredrik@pythonware.com>
parents:
38335
diff
changeset
|
1176 PyObject *s, /* String to partition */ |
|
76807902a2f5
needforspeed: added rpartition implementation
Fredrik Lundh <fredrik@pythonware.com>
parents:
38335
diff
changeset
|
1177 PyObject *sep /* String separator */ |
|
76807902a2f5
needforspeed: added rpartition implementation
Fredrik Lundh <fredrik@pythonware.com>
parents:
38335
diff
changeset
|
1178 ); |
|
76807902a2f5
needforspeed: added rpartition implementation
Fredrik Lundh <fredrik@pythonware.com>
parents:
38335
diff
changeset
|
1179 |
|
31199
504943c89193
Add rsplit method for str and unicode builtin types.
Hye-Shik Chang <hyeshik@gmail.com>
parents:
24753
diff
changeset
|
1180 /* Split a string giving a list of Unicode strings. |
|
504943c89193
Add rsplit method for str and unicode builtin types.
Hye-Shik Chang <hyeshik@gmail.com>
parents:
24753
diff
changeset
|
1181 |
|
504943c89193
Add rsplit method for str and unicode builtin types.
Hye-Shik Chang <hyeshik@gmail.com>
parents:
24753
diff
changeset
|
1182 If sep is NULL, splitting will be done at all whitespace |
|
504943c89193
Add rsplit method for str and unicode builtin types.
Hye-Shik Chang <hyeshik@gmail.com>
parents:
24753
diff
changeset
|
1183 substrings. Otherwise, splits occur at the given separator. |
|
504943c89193
Add rsplit method for str and unicode builtin types.
Hye-Shik Chang <hyeshik@gmail.com>
parents:
24753
diff
changeset
|
1184 |
|
504943c89193
Add rsplit method for str and unicode builtin types.
Hye-Shik Chang <hyeshik@gmail.com>
parents:
24753
diff
changeset
|
1185 At most maxsplit splits will be done. But unlike PyUnicode_Split |
|
504943c89193
Add rsplit method for str and unicode builtin types.
Hye-Shik Chang <hyeshik@gmail.com>
parents:
24753
diff
changeset
|
1186 PyUnicode_RSplit splits from the end of the string. If negative, |
|
504943c89193
Add rsplit method for str and unicode builtin types.
Hye-Shik Chang <hyeshik@gmail.com>
parents:
24753
diff
changeset
|
1187 no limit is set. |
|
504943c89193
Add rsplit method for str and unicode builtin types.
Hye-Shik Chang <hyeshik@gmail.com>
parents:
24753
diff
changeset
|
1188 |
|
504943c89193
Add rsplit method for str and unicode builtin types.
Hye-Shik Chang <hyeshik@gmail.com>
parents:
24753
diff
changeset
|
1189 Separators are not included in the resulting list. |
|
504943c89193
Add rsplit method for str and unicode builtin types.
Hye-Shik Chang <hyeshik@gmail.com>
parents:
24753
diff
changeset
|
1190 |
|
504943c89193
Add rsplit method for str and unicode builtin types.
Hye-Shik Chang <hyeshik@gmail.com>
parents:
24753
diff
changeset
|
1191 */ |
|
504943c89193
Add rsplit method for str and unicode builtin types.
Hye-Shik Chang <hyeshik@gmail.com>
parents:
24753
diff
changeset
|
1192 |
|
504943c89193
Add rsplit method for str and unicode builtin types.
Hye-Shik Chang <hyeshik@gmail.com>
parents:
24753
diff
changeset
|
1193 PyAPI_FUNC(PyObject*) PyUnicode_RSplit( |
|
504943c89193
Add rsplit method for str and unicode builtin types.
Hye-Shik Chang <hyeshik@gmail.com>
parents:
24753
diff
changeset
|
1194 PyObject *s, /* String to split */ |
|
504943c89193
Add rsplit method for str and unicode builtin types.
Hye-Shik Chang <hyeshik@gmail.com>
parents:
24753
diff
changeset
|
1195 PyObject *sep, /* String separator */ |
|
36501
7fdc639bc5b4
Merge ssize_t branch.
Martin v. Löwis <martin@v.loewis.de>
parents:
35808
diff
changeset
|
1196 Py_ssize_t maxsplit /* Maxsplit count */ |
|
31199
504943c89193
Add rsplit method for str and unicode builtin types.
Hye-Shik Chang <hyeshik@gmail.com>
parents:
24753
diff
changeset
|
1197 ); |
|
504943c89193
Add rsplit method for str and unicode builtin types.
Hye-Shik Chang <hyeshik@gmail.com>
parents:
24753
diff
changeset
|
1198 |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1199 /* Translate a string by applying a character mapping table to it and |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1200 return the resulting Unicode object. |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1201 |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1202 The mapping table must map Unicode ordinal integers to Unicode |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1203 ordinal integers or None (causing deletion of the character). |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1204 |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1205 Mapping tables may be dictionaries or sequences. Unmapped character |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1206 ordinals (ones which cause a LookupError) are left untouched and |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1207 are copied as-is. |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1208 |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1209 */ |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1210 |
|
24752
c1eb668525e1
Excise DL_EXPORT from Include.
Mark Hammond <mhammond@skippinet.com.au>
parents:
24737
diff
changeset
|
1211 PyAPI_FUNC(PyObject *) PyUnicode_Translate( |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1212 PyObject *str, /* String */ |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1213 PyObject *table, /* Translate table */ |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1214 const char *errors /* error handling */ |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1215 ); |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1216 |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1217 /* Join a sequence of strings using the given separator and return |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1218 the resulting Unicode string. */ |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1219 |
|
24752
c1eb668525e1
Excise DL_EXPORT from Include.
Mark Hammond <mhammond@skippinet.com.au>
parents:
24737
diff
changeset
|
1220 PyAPI_FUNC(PyObject*) PyUnicode_Join( |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1221 PyObject *separator, /* Separator string */ |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1222 PyObject *seq /* Sequence object */ |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1223 ); |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1224 |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1225 /* Return 1 if substr matches str[start:end] at the given tail end, 0 |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1226 otherwise. */ |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1227 |
|
36501
7fdc639bc5b4
Merge ssize_t branch.
Martin v. Löwis <martin@v.loewis.de>
parents:
35808
diff
changeset
|
1228 PyAPI_FUNC(Py_ssize_t) PyUnicode_Tailmatch( |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1229 PyObject *str, /* String */ |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1230 PyObject *substr, /* Prefix or Suffix string */ |
|
36501
7fdc639bc5b4
Merge ssize_t branch.
Martin v. Löwis <martin@v.loewis.de>
parents:
35808
diff
changeset
|
1231 Py_ssize_t start, /* Start index */ |
|
7fdc639bc5b4
Merge ssize_t branch.
Martin v. Löwis <martin@v.loewis.de>
parents:
35808
diff
changeset
|
1232 Py_ssize_t end, /* Stop index */ |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1233 int direction /* Tail end: -1 prefix, +1 suffix */ |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1234 ); |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1235 |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1236 /* Return the first position of substr in str[start:end] using the |
|
23561
c5e8f89fd358
Fix for bug [ 561796 ] string.find causes lazy error
Marc-André Lemburg <mal@egenix.com>
parents:
23225
diff
changeset
|
1237 given search direction or -1 if not found. -2 is returned in case |
|
c5e8f89fd358
Fix for bug [ 561796 ] string.find causes lazy error
Marc-André Lemburg <mal@egenix.com>
parents:
23225
diff
changeset
|
1238 an error occurred and an exception is set. */ |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1239 |
|
36501
7fdc639bc5b4
Merge ssize_t branch.
Martin v. Löwis <martin@v.loewis.de>
parents:
35808
diff
changeset
|
1240 PyAPI_FUNC(Py_ssize_t) PyUnicode_Find( |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1241 PyObject *str, /* String */ |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1242 PyObject *substr, /* Substring to find */ |
|
36501
7fdc639bc5b4
Merge ssize_t branch.
Martin v. Löwis <martin@v.loewis.de>
parents:
35808
diff
changeset
|
1243 Py_ssize_t start, /* Start index */ |
|
7fdc639bc5b4
Merge ssize_t branch.
Martin v. Löwis <martin@v.loewis.de>
parents:
35808
diff
changeset
|
1244 Py_ssize_t end, /* Stop index */ |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1245 int direction /* Find direction: +1 forward, -1 backward */ |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1246 ); |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1247 |
|
12025
7994d9db7f4d
On 17-Mar-2000, Marc-Andre Lemburg said:
Barry Warsaw <barry@python.org>
parents:
12002
diff
changeset
|
1248 /* Count the number of occurrences of substr in str[start:end]. */ |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1249 |
|
36501
7fdc639bc5b4
Merge ssize_t branch.
Martin v. Löwis <martin@v.loewis.de>
parents:
35808
diff
changeset
|
1250 PyAPI_FUNC(Py_ssize_t) PyUnicode_Count( |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1251 PyObject *str, /* String */ |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1252 PyObject *substr, /* Substring to count */ |
|
36501
7fdc639bc5b4
Merge ssize_t branch.
Martin v. Löwis <martin@v.loewis.de>
parents:
35808
diff
changeset
|
1253 Py_ssize_t start, /* Start index */ |
|
7fdc639bc5b4
Merge ssize_t branch.
Martin v. Löwis <martin@v.loewis.de>
parents:
35808
diff
changeset
|
1254 Py_ssize_t end /* Stop index */ |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1255 ); |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1256 |
|
12025
7994d9db7f4d
On 17-Mar-2000, Marc-Andre Lemburg said:
Barry Warsaw <barry@python.org>
parents:
12002
diff
changeset
|
1257 /* Replace at most maxcount occurrences of substr in str with replstr |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1258 and return the resulting Unicode object. */ |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1259 |
|
24752
c1eb668525e1
Excise DL_EXPORT from Include.
Mark Hammond <mhammond@skippinet.com.au>
parents:
24737
diff
changeset
|
1260 PyAPI_FUNC(PyObject *) PyUnicode_Replace( |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1261 PyObject *str, /* String */ |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1262 PyObject *substr, /* Substring to find */ |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1263 PyObject *replstr, /* Substring to replace */ |
|
36501
7fdc639bc5b4
Merge ssize_t branch.
Martin v. Löwis <martin@v.loewis.de>
parents:
35808
diff
changeset
|
1264 Py_ssize_t maxcount /* Max. number of replacements to apply; |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1265 -1 = all */ |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1266 ); |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1267 |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1268 /* Compare two strings and return -1, 0, 1 for less than, equal, |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1269 greater than resp. */ |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1270 |
|
24752
c1eb668525e1
Excise DL_EXPORT from Include.
Mark Hammond <mhammond@skippinet.com.au>
parents:
24737
diff
changeset
|
1271 PyAPI_FUNC(int) PyUnicode_Compare( |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1272 PyObject *left, /* Left string */ |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1273 PyObject *right /* Right string */ |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1274 ); |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1275 |
|
39487
635b09b1f542
Slightly revised version of patch #1538956:
Marc-André Lemburg <mal@egenix.com>
parents:
38817
diff
changeset
|
1276 /* Rich compare two strings and return one of the following: |
|
635b09b1f542
Slightly revised version of patch #1538956:
Marc-André Lemburg <mal@egenix.com>
parents:
38817
diff
changeset
|
1277 |
|
635b09b1f542
Slightly revised version of patch #1538956:
Marc-André Lemburg <mal@egenix.com>
parents:
38817
diff
changeset
|
1278 - NULL in case an exception was raised |
|
635b09b1f542
Slightly revised version of patch #1538956:
Marc-André Lemburg <mal@egenix.com>
parents:
38817
diff
changeset
|
1279 - Py_True or Py_False for successfuly comparisons |
|
635b09b1f542
Slightly revised version of patch #1538956:
Marc-André Lemburg <mal@egenix.com>
parents:
38817
diff
changeset
|
1280 - Py_NotImplemented in case the type combination is unknown |
|
635b09b1f542
Slightly revised version of patch #1538956:
Marc-André Lemburg <mal@egenix.com>
parents:
38817
diff
changeset
|
1281 |
|
635b09b1f542
Slightly revised version of patch #1538956:
Marc-André Lemburg <mal@egenix.com>
parents:
38817
diff
changeset
|
1282 Note that Py_EQ and Py_NE comparisons can cause a UnicodeWarning in |
|
635b09b1f542
Slightly revised version of patch #1538956:
Marc-André Lemburg <mal@egenix.com>
parents:
38817
diff
changeset
|
1283 case the conversion of the arguments to Unicode fails with a |
|
635b09b1f542
Slightly revised version of patch #1538956:
Marc-André Lemburg <mal@egenix.com>
parents:
38817
diff
changeset
|
1284 UnicodeDecodeError. |
|
635b09b1f542
Slightly revised version of patch #1538956:
Marc-André Lemburg <mal@egenix.com>
parents:
38817
diff
changeset
|
1285 |
|
635b09b1f542
Slightly revised version of patch #1538956:
Marc-André Lemburg <mal@egenix.com>
parents:
38817
diff
changeset
|
1286 Possible values for op: |
|
635b09b1f542
Slightly revised version of patch #1538956:
Marc-André Lemburg <mal@egenix.com>
parents:
38817
diff
changeset
|
1287 |
|
635b09b1f542
Slightly revised version of patch #1538956:
Marc-André Lemburg <mal@egenix.com>
parents:
38817
diff
changeset
|
1288 Py_GT, Py_GE, Py_EQ, Py_NE, Py_LT, Py_LE |
|
635b09b1f542
Slightly revised version of patch #1538956:
Marc-André Lemburg <mal@egenix.com>
parents:
38817
diff
changeset
|
1289 |
|
635b09b1f542
Slightly revised version of patch #1538956:
Marc-André Lemburg <mal@egenix.com>
parents:
38817
diff
changeset
|
1290 */ |
|
635b09b1f542
Slightly revised version of patch #1538956:
Marc-André Lemburg <mal@egenix.com>
parents:
38817
diff
changeset
|
1291 |
|
635b09b1f542
Slightly revised version of patch #1538956:
Marc-André Lemburg <mal@egenix.com>
parents:
38817
diff
changeset
|
1292 PyAPI_FUNC(PyObject *) PyUnicode_RichCompare( |
|
635b09b1f542
Slightly revised version of patch #1538956:
Marc-André Lemburg <mal@egenix.com>
parents:
38817
diff
changeset
|
1293 PyObject *left, /* Left string */ |
|
635b09b1f542
Slightly revised version of patch #1538956:
Marc-André Lemburg <mal@egenix.com>
parents:
38817
diff
changeset
|
1294 PyObject *right, /* Right string */ |
|
635b09b1f542
Slightly revised version of patch #1538956:
Marc-André Lemburg <mal@egenix.com>
parents:
38817
diff
changeset
|
1295 int op /* Operation: Py_EQ, Py_NE, Py_GT, etc. */ |
|
635b09b1f542
Slightly revised version of patch #1538956:
Marc-André Lemburg <mal@egenix.com>
parents:
38817
diff
changeset
|
1296 ); |
|
635b09b1f542
Slightly revised version of patch #1538956:
Marc-André Lemburg <mal@egenix.com>
parents:
38817
diff
changeset
|
1297 |
|
13620
5b727ab37092
Spelling fixes supplied by Rob W. W. Hooft. All these are fixes in either
Thomas Wouters <thomas@python.org>
parents:
13401
diff
changeset
|
1298 /* Apply a argument tuple or dictionary to a format string and return |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1299 the resulting Unicode string. */ |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1300 |
|
24752
c1eb668525e1
Excise DL_EXPORT from Include.
Mark Hammond <mhammond@skippinet.com.au>
parents:
24737
diff
changeset
|
1301 PyAPI_FUNC(PyObject *) PyUnicode_Format( |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1302 PyObject *format, /* Format string */ |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1303 PyObject *args /* Argument tuple or dictionary */ |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1304 ); |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1305 |
|
12002
d50fa3670b66
Marc-Andre Lemburg: add declaration for PyUnicode_Contains().
Guido van Rossum <guido@python.org>
parents:
11962
diff
changeset
|
1306 /* Checks whether element is contained in container and return 1/0 |
|
d50fa3670b66
Marc-Andre Lemburg: add declaration for PyUnicode_Contains().
Guido van Rossum <guido@python.org>
parents:
11962
diff
changeset
|
1307 accordingly. |
|
d50fa3670b66
Marc-Andre Lemburg: add declaration for PyUnicode_Contains().
Guido van Rossum <guido@python.org>
parents:
11962
diff
changeset
|
1308 |
|
d50fa3670b66
Marc-Andre Lemburg: add declaration for PyUnicode_Contains().
Guido van Rossum <guido@python.org>
parents:
11962
diff
changeset
|
1309 element has to coerce to an one element Unicode string. -1 is |
|
d50fa3670b66
Marc-Andre Lemburg: add declaration for PyUnicode_Contains().
Guido van Rossum <guido@python.org>
parents:
11962
diff
changeset
|
1310 returned in case of an error. */ |
|
d50fa3670b66
Marc-Andre Lemburg: add declaration for PyUnicode_Contains().
Guido van Rossum <guido@python.org>
parents:
11962
diff
changeset
|
1311 |
|
24752
c1eb668525e1
Excise DL_EXPORT from Include.
Mark Hammond <mhammond@skippinet.com.au>
parents:
24737
diff
changeset
|
1312 PyAPI_FUNC(int) PyUnicode_Contains( |
|
12002
d50fa3670b66
Marc-Andre Lemburg: add declaration for PyUnicode_Contains().
Guido van Rossum <guido@python.org>
parents:
11962
diff
changeset
|
1313 PyObject *container, /* Container string */ |
|
d50fa3670b66
Marc-Andre Lemburg: add declaration for PyUnicode_Contains().
Guido van Rossum <guido@python.org>
parents:
11962
diff
changeset
|
1314 PyObject *element /* Element string */ |
|
d50fa3670b66
Marc-Andre Lemburg: add declaration for PyUnicode_Contains().
Guido van Rossum <guido@python.org>
parents:
11962
diff
changeset
|
1315 ); |
|
d50fa3670b66
Marc-Andre Lemburg: add declaration for PyUnicode_Contains().
Guido van Rossum <guido@python.org>
parents:
11962
diff
changeset
|
1316 |
|
23225
e639e34ef901
Apply patch diff.txt from SF feature request
Walter Dörwald <walter@livinglogic.de>
parents:
20554
diff
changeset
|
1317 /* Externally visible for str.strip(unicode) */ |
|
24752
c1eb668525e1
Excise DL_EXPORT from Include.
Mark Hammond <mhammond@skippinet.com.au>
parents:
24737
diff
changeset
|
1318 PyAPI_FUNC(PyObject *) _PyUnicode_XStrip( |
|
23225
e639e34ef901
Apply patch diff.txt from SF feature request
Walter Dörwald <walter@livinglogic.de>
parents:
20554
diff
changeset
|
1319 PyUnicodeObject *self, |
|
e639e34ef901
Apply patch diff.txt from SF feature request
Walter Dörwald <walter@livinglogic.de>
parents:
20554
diff
changeset
|
1320 int striptype, |
|
e639e34ef901
Apply patch diff.txt from SF feature request
Walter Dörwald <walter@livinglogic.de>
parents:
20554
diff
changeset
|
1321 PyObject *sepobj |
|
e639e34ef901
Apply patch diff.txt from SF feature request
Walter Dörwald <walter@livinglogic.de>
parents:
20554
diff
changeset
|
1322 ); |
|
e639e34ef901
Apply patch diff.txt from SF feature request
Walter Dörwald <walter@livinglogic.de>
parents:
20554
diff
changeset
|
1323 |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1324 /* === Characters Type APIs =============================================== */ |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1325 |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1326 /* These should not be used directly. Use the Py_UNICODE_IS* and |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1327 Py_UNICODE_TO* macros instead. |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1328 |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1329 These APIs are implemented in Objects/unicodectype.c. |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1330 |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1331 */ |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1332 |
|
24752
c1eb668525e1
Excise DL_EXPORT from Include.
Mark Hammond <mhammond@skippinet.com.au>
parents:
24737
diff
changeset
|
1333 PyAPI_FUNC(int) _PyUnicode_IsLowercase( |
|
18332
49acc8ac60c2
removed "register const" from scalar arguments to the unicode
Fredrik Lundh <fredrik@pythonware.com>
parents:
18324
diff
changeset
|
1334 Py_UNICODE ch /* Unicode character */ |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1335 ); |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1336 |
|
24752
c1eb668525e1
Excise DL_EXPORT from Include.
Mark Hammond <mhammond@skippinet.com.au>
parents:
24737
diff
changeset
|
1337 PyAPI_FUNC(int) _PyUnicode_IsUppercase( |
|
18332
49acc8ac60c2
removed "register const" from scalar arguments to the unicode
Fredrik Lundh <fredrik@pythonware.com>
parents:
18324
diff
changeset
|
1338 Py_UNICODE ch /* Unicode character */ |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1339 ); |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1340 |
|
24752
c1eb668525e1
Excise DL_EXPORT from Include.
Mark Hammond <mhammond@skippinet.com.au>
parents:
24737
diff
changeset
|
1341 PyAPI_FUNC(int) _PyUnicode_IsTitlecase( |
|
18332
49acc8ac60c2
removed "register const" from scalar arguments to the unicode
Fredrik Lundh <fredrik@pythonware.com>
parents:
18324
diff
changeset
|
1342 Py_UNICODE ch /* Unicode character */ |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1343 ); |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1344 |
|
24752
c1eb668525e1
Excise DL_EXPORT from Include.
Mark Hammond <mhammond@skippinet.com.au>
parents:
24737
diff
changeset
|
1345 PyAPI_FUNC(int) _PyUnicode_IsWhitespace( |
|
35808
c2a98ba371c8
_PyUnicode_IsWhitespace(),
Tim Peters <tim.peters@gmail.com>
parents:
35485
diff
changeset
|
1346 const Py_UNICODE ch /* Unicode character */ |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1347 ); |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1348 |
|
24752
c1eb668525e1
Excise DL_EXPORT from Include.
Mark Hammond <mhammond@skippinet.com.au>
parents:
24737
diff
changeset
|
1349 PyAPI_FUNC(int) _PyUnicode_IsLinebreak( |
|
35808
c2a98ba371c8
_PyUnicode_IsWhitespace(),
Tim Peters <tim.peters@gmail.com>
parents:
35485
diff
changeset
|
1350 const Py_UNICODE ch /* Unicode character */ |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1351 ); |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1352 |
|
24752
c1eb668525e1
Excise DL_EXPORT from Include.
Mark Hammond <mhammond@skippinet.com.au>
parents:
24737
diff
changeset
|
1353 PyAPI_FUNC(Py_UNICODE) _PyUnicode_ToLowercase( |
|
18332
49acc8ac60c2
removed "register const" from scalar arguments to the unicode
Fredrik Lundh <fredrik@pythonware.com>
parents:
18324
diff
changeset
|
1354 Py_UNICODE ch /* Unicode character */ |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1355 ); |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1356 |
|
24752
c1eb668525e1
Excise DL_EXPORT from Include.
Mark Hammond <mhammond@skippinet.com.au>
parents:
24737
diff
changeset
|
1357 PyAPI_FUNC(Py_UNICODE) _PyUnicode_ToUppercase( |
|
18332
49acc8ac60c2
removed "register const" from scalar arguments to the unicode
Fredrik Lundh <fredrik@pythonware.com>
parents:
18324
diff
changeset
|
1358 Py_UNICODE ch /* Unicode character */ |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1359 ); |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1360 |
|
24752
c1eb668525e1
Excise DL_EXPORT from Include.
Mark Hammond <mhammond@skippinet.com.au>
parents:
24737
diff
changeset
|
1361 PyAPI_FUNC(Py_UNICODE) _PyUnicode_ToTitlecase( |
|
18332
49acc8ac60c2
removed "register const" from scalar arguments to the unicode
Fredrik Lundh <fredrik@pythonware.com>
parents:
18324
diff
changeset
|
1362 Py_UNICODE ch /* Unicode character */ |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1363 ); |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1364 |
|
24752
c1eb668525e1
Excise DL_EXPORT from Include.
Mark Hammond <mhammond@skippinet.com.au>
parents:
24737
diff
changeset
|
1365 PyAPI_FUNC(int) _PyUnicode_ToDecimalDigit( |
|
18332
49acc8ac60c2
removed "register const" from scalar arguments to the unicode
Fredrik Lundh <fredrik@pythonware.com>
parents:
18324
diff
changeset
|
1366 Py_UNICODE ch /* Unicode character */ |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1367 ); |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1368 |
|
24752
c1eb668525e1
Excise DL_EXPORT from Include.
Mark Hammond <mhammond@skippinet.com.au>
parents:
24737
diff
changeset
|
1369 PyAPI_FUNC(int) _PyUnicode_ToDigit( |
|
18332
49acc8ac60c2
removed "register const" from scalar arguments to the unicode
Fredrik Lundh <fredrik@pythonware.com>
parents:
18324
diff
changeset
|
1370 Py_UNICODE ch /* Unicode character */ |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1371 ); |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1372 |
|
24752
c1eb668525e1
Excise DL_EXPORT from Include.
Mark Hammond <mhammond@skippinet.com.au>
parents:
24737
diff
changeset
|
1373 PyAPI_FUNC(double) _PyUnicode_ToNumeric( |
|
18332
49acc8ac60c2
removed "register const" from scalar arguments to the unicode
Fredrik Lundh <fredrik@pythonware.com>
parents:
18324
diff
changeset
|
1374 Py_UNICODE ch /* Unicode character */ |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1375 ); |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1376 |
|
24752
c1eb668525e1
Excise DL_EXPORT from Include.
Mark Hammond <mhammond@skippinet.com.au>
parents:
24737
diff
changeset
|
1377 PyAPI_FUNC(int) _PyUnicode_IsDecimalDigit( |
|
18332
49acc8ac60c2
removed "register const" from scalar arguments to the unicode
Fredrik Lundh <fredrik@pythonware.com>
parents:
18324
diff
changeset
|
1378 Py_UNICODE ch /* Unicode character */ |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1379 ); |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1380 |
|
24752
c1eb668525e1
Excise DL_EXPORT from Include.
Mark Hammond <mhammond@skippinet.com.au>
parents:
24737
diff
changeset
|
1381 PyAPI_FUNC(int) _PyUnicode_IsDigit( |
|
18332
49acc8ac60c2
removed "register const" from scalar arguments to the unicode
Fredrik Lundh <fredrik@pythonware.com>
parents:
18324
diff
changeset
|
1382 Py_UNICODE ch /* Unicode character */ |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1383 ); |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1384 |
|
24752
c1eb668525e1
Excise DL_EXPORT from Include.
Mark Hammond <mhammond@skippinet.com.au>
parents:
24737
diff
changeset
|
1385 PyAPI_FUNC(int) _PyUnicode_IsNumeric( |
|
18332
49acc8ac60c2
removed "register const" from scalar arguments to the unicode
Fredrik Lundh <fredrik@pythonware.com>
parents:
18324
diff
changeset
|
1386 Py_UNICODE ch /* Unicode character */ |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1387 ); |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1388 |
|
24752
c1eb668525e1
Excise DL_EXPORT from Include.
Mark Hammond <mhammond@skippinet.com.au>
parents:
24737
diff
changeset
|
1389 PyAPI_FUNC(int) _PyUnicode_IsAlpha( |
|
18332
49acc8ac60c2
removed "register const" from scalar arguments to the unicode
Fredrik Lundh <fredrik@pythonware.com>
parents:
18324
diff
changeset
|
1390 Py_UNICODE ch /* Unicode character */ |
|
13352
d88535ccaee5
Modified the ISALPHA and ISALNUM macros to use the new lookup APIs
Marc-André Lemburg <mal@egenix.com>
parents:
13320
diff
changeset
|
1391 ); |
|
d88535ccaee5
Modified the ISALPHA and ISALNUM macros to use the new lookup APIs
Marc-André Lemburg <mal@egenix.com>
parents:
13320
diff
changeset
|
1392 |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1393 #ifdef __cplusplus |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1394 } |
|
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1395 #endif |
|
19343
7257e87e0720
Patch #445762: Support --disable-unicode
Martin v. Löwis <martin@v.loewis.de>
parents:
19121
diff
changeset
|
1396 #endif /* Py_USING_UNICODE */ |
|
11962
be98e055e39d
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1397 #endif /* !Py_UNICODEOBJECT_H */ |
