Mercurial > cpython-lru_cache-weakref
annotate Include/stringobject.h @ 58973:db86bf39ccaa legacy-trunk
Issue 7970: When email.Parser.Parser parses a MIME message of type
message/rfc822 it turns it into an object whose body consists of
a list containing a single Message object. HeaderParser, on the
other hand, just copies the body as a string. Generator.flatten
has a special handler for the message mime type that expected the
body to be the one item list. This fails if the message was parsed
by HeaderParser. So we now check to see if the body is a string
first, and if so just we just emit it.
| author | R. David Murray <rdmurray@bitdance.com> |
|---|---|
| date | Sun, 21 Feb 2010 04:23:00 +0000 |
| parents | c5e0d9beebf9 |
| children | b36cb4602e21 |
| rev | line source |
|---|---|
|
47578
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
1 |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
2 /* String (str/bytes) object interface */ |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
3 |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
4 #ifndef Py_STRINGOBJECT_H |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
5 #define Py_STRINGOBJECT_H |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
6 #ifdef __cplusplus |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
7 extern "C" { |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
8 #endif |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
9 |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
10 #include <stdarg.h> |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
11 |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
12 /* |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
13 Type PyStringObject represents a character string. An extra zero byte is |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
14 reserved at the end to ensure it is zero-terminated, but a size is |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
15 present so strings with null bytes in them can be represented. This |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
16 is an immutable object type. |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
17 |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
18 There are functions to create new string objects, to test |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
19 an object for string-ness, and to get the |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
20 string value. The latter function returns a null pointer |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
21 if the object is not of the proper type. |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
22 There is a variant that takes an explicit size as well as a |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
23 variant that assumes a zero-terminated string. Note that none of the |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
24 functions should be applied to nil objects. |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
25 */ |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
26 |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
27 /* Caching the hash (ob_shash) saves recalculation of a string's hash value. |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
28 Interning strings (ob_sstate) tries to ensure that only one string |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
29 object with a given value exists, so equality tests can be one pointer |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
30 comparison. This is generally restricted to strings that "look like" |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
31 Python identifiers, although the intern() builtin can be used to force |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
32 interning of any string. |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
33 Together, these sped the interpreter by up to 20%. */ |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
34 |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
35 typedef struct { |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
36 PyObject_VAR_HEAD |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
37 long ob_shash; |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
38 int ob_sstate; |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
39 char ob_sval[1]; |
|
33856
60c60dc75c77
Wrote down the invariants of some common objects whose structure is
Armin Rigo <arigo@tunes.org>
parents:
29726
diff
changeset
|
40 |
|
47578
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
41 /* Invariants: |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
42 * ob_sval contains space for 'ob_size+1' elements. |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
43 * ob_sval[ob_size] == 0. |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
44 * ob_shash is the hash of the string or -1 if not computed yet. |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
45 * ob_sstate != 0 iff the string object is in stringobject.c's |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
46 * 'interned' dictionary; in this case the two references |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
47 * from 'interned' to this object are *not counted* in ob_refcnt. |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
48 */ |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
49 } PyStringObject; |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
50 |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
51 #define SSTATE_NOT_INTERNED 0 |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
52 #define SSTATE_INTERNED_MORTAL 1 |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
53 #define SSTATE_INTERNED_IMMORTAL 2 |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
54 |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
55 PyAPI_DATA(PyTypeObject) PyBaseString_Type; |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
56 PyAPI_DATA(PyTypeObject) PyString_Type; |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
57 |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
58 #define PyString_Check(op) \ |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
59 PyType_FastSubclass(Py_TYPE(op), Py_TPFLAGS_STRING_SUBCLASS) |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
60 #define PyString_CheckExact(op) (Py_TYPE(op) == &PyString_Type) |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
61 |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
62 PyAPI_FUNC(PyObject *) PyString_FromStringAndSize(const char *, Py_ssize_t); |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
63 PyAPI_FUNC(PyObject *) PyString_FromString(const char *); |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
64 PyAPI_FUNC(PyObject *) PyString_FromFormatV(const char*, va_list) |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
65 Py_GCC_ATTRIBUTE((format(printf, 1, 0))); |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
66 PyAPI_FUNC(PyObject *) PyString_FromFormat(const char*, ...) |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
67 Py_GCC_ATTRIBUTE((format(printf, 1, 2))); |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
68 PyAPI_FUNC(Py_ssize_t) PyString_Size(PyObject *); |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
69 PyAPI_FUNC(char *) PyString_AsString(PyObject *); |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
70 PyAPI_FUNC(PyObject *) PyString_Repr(PyObject *, int); |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
71 PyAPI_FUNC(void) PyString_Concat(PyObject **, PyObject *); |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
72 PyAPI_FUNC(void) PyString_ConcatAndDel(PyObject **, PyObject *); |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
73 PyAPI_FUNC(int) _PyString_Resize(PyObject **, Py_ssize_t); |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
74 PyAPI_FUNC(int) _PyString_Eq(PyObject *, PyObject*); |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
75 PyAPI_FUNC(PyObject *) PyString_Format(PyObject *, PyObject *); |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
76 PyAPI_FUNC(PyObject *) _PyString_FormatLong(PyObject*, int, int, |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
77 int, char**, int*); |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
78 PyAPI_FUNC(PyObject *) PyString_DecodeEscape(const char *, Py_ssize_t, |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
79 const char *, Py_ssize_t, |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
80 const char *); |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
81 |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
82 PyAPI_FUNC(void) PyString_InternInPlace(PyObject **); |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
83 PyAPI_FUNC(void) PyString_InternImmortal(PyObject **); |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
84 PyAPI_FUNC(PyObject *) PyString_InternFromString(const char *); |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
85 PyAPI_FUNC(void) _Py_ReleaseInternedStrings(void); |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
86 |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
87 /* Use only if you know it's a string */ |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
88 #define PyString_CHECK_INTERNED(op) (((PyStringObject *)(op))->ob_sstate) |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
89 |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
90 /* Macro, trading safety for speed */ |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
91 #define PyString_AS_STRING(op) (((PyStringObject *)(op))->ob_sval) |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
92 #define PyString_GET_SIZE(op) Py_SIZE(op) |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
93 |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
94 /* _PyString_Join(sep, x) is like sep.join(x). sep must be PyStringObject*, |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
95 x must be an iterable object. */ |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
96 PyAPI_FUNC(PyObject *) _PyString_Join(PyObject *sep, PyObject *x); |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
97 |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
98 /* --- Generic Codecs ----------------------------------------------------- */ |
|
18129
9d533ae574d2
SF bug 433228: repr(list) woes when len(list) big.
Tim Peters <tim.peters@gmail.com>
parents:
17964
diff
changeset
|
99 |
|
47578
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
100 /* Create an object by decoding the encoded string s of the |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
101 given size. */ |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
102 |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
103 PyAPI_FUNC(PyObject*) PyString_Decode( |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
104 const char *s, /* encoded string */ |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
105 Py_ssize_t size, /* size of buffer */ |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
106 const char *encoding, /* encoding */ |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
107 const char *errors /* error handling */ |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
108 ); |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
109 |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
110 /* Encodes a char buffer of the given size and returns a |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
111 Python object. */ |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
112 |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
113 PyAPI_FUNC(PyObject*) PyString_Encode( |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
114 const char *s, /* string char buffer */ |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
115 Py_ssize_t size, /* number of chars to encode */ |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
116 const char *encoding, /* encoding */ |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
117 const char *errors /* error handling */ |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
118 ); |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
119 |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
120 /* Encodes a string object and returns the result as Python |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
121 object. */ |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
122 |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
123 PyAPI_FUNC(PyObject*) PyString_AsEncodedObject( |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
124 PyObject *str, /* string object */ |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
125 const char *encoding, /* encoding */ |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
126 const char *errors /* error handling */ |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
127 ); |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
128 |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
129 /* Encodes a string object and returns the result as Python string |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
130 object. |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
131 |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
132 If the codec returns an Unicode object, the object is converted |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
133 back to a string using the default encoding. |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
134 |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
135 DEPRECATED - use PyString_AsEncodedObject() instead. */ |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
136 |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
137 PyAPI_FUNC(PyObject*) PyString_AsEncodedString( |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
138 PyObject *str, /* string object */ |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
139 const char *encoding, /* encoding */ |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
140 const char *errors /* error handling */ |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
141 ); |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
142 |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
143 /* Decodes a string object and returns the result as Python |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
144 object. */ |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
145 |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
146 PyAPI_FUNC(PyObject*) PyString_AsDecodedObject( |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
147 PyObject *str, /* string object */ |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
148 const char *encoding, /* encoding */ |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
149 const char *errors /* error handling */ |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
150 ); |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
151 |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
152 /* Decodes a string object and returns the result as Python string |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
153 object. |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
154 |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
155 If the codec returns an Unicode object, the object is converted |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
156 back to a string using the default encoding. |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
157 |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
158 DEPRECATED - use PyString_AsDecodedObject() instead. */ |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
159 |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
160 PyAPI_FUNC(PyObject*) PyString_AsDecodedString( |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
161 PyObject *str, /* string object */ |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
162 const char *encoding, /* encoding */ |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
163 const char *errors /* error handling */ |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
164 ); |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
165 |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
166 /* Provides access to the internal data buffer and size of a string |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
167 object or the default encoded version of an Unicode object. Passing |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
168 NULL as *len parameter will force the string buffer to be |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
169 0-terminated (passing a string with embedded NULL characters will |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
170 cause an exception). */ |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
171 |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
172 PyAPI_FUNC(int) PyString_AsStringAndSize( |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
173 register PyObject *obj, /* string or Unicode object */ |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
174 register char **s, /* pointer to buffer variable */ |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
175 register Py_ssize_t *len /* pointer to length variable or NULL |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
176 (only possible for 0-terminated |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
177 strings) */ |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
178 ); |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
179 |
|
53312
c5e0d9beebf9
Backport of some of the work in r71665 to trunk. This reworks much of
Eric Smith <eric@trueblade.com>
parents:
47815
diff
changeset
|
180 |
|
47578
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
181 /* Using the current locale, insert the thousands grouping |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
182 into the string pointed to by buffer. For the argument descriptions, |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
183 see Objects/stringlib/localeutil.h */ |
|
53312
c5e0d9beebf9
Backport of some of the work in r71665 to trunk. This reworks much of
Eric Smith <eric@trueblade.com>
parents:
47815
diff
changeset
|
184 PyAPI_FUNC(Py_ssize_t) _PyString_InsertThousandsGroupingLocale(char *buffer, |
|
c5e0d9beebf9
Backport of some of the work in r71665 to trunk. This reworks much of
Eric Smith <eric@trueblade.com>
parents:
47815
diff
changeset
|
185 Py_ssize_t n_buffer, |
|
c5e0d9beebf9
Backport of some of the work in r71665 to trunk. This reworks much of
Eric Smith <eric@trueblade.com>
parents:
47815
diff
changeset
|
186 char *digits, |
|
c5e0d9beebf9
Backport of some of the work in r71665 to trunk. This reworks much of
Eric Smith <eric@trueblade.com>
parents:
47815
diff
changeset
|
187 Py_ssize_t n_digits, |
|
c5e0d9beebf9
Backport of some of the work in r71665 to trunk. This reworks much of
Eric Smith <eric@trueblade.com>
parents:
47815
diff
changeset
|
188 Py_ssize_t min_width); |
|
47578
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
189 |
|
53312
c5e0d9beebf9
Backport of some of the work in r71665 to trunk. This reworks much of
Eric Smith <eric@trueblade.com>
parents:
47815
diff
changeset
|
190 /* Using explicit passed-in values, insert the thousands grouping |
|
c5e0d9beebf9
Backport of some of the work in r71665 to trunk. This reworks much of
Eric Smith <eric@trueblade.com>
parents:
47815
diff
changeset
|
191 into the string pointed to by buffer. For the argument descriptions, |
|
c5e0d9beebf9
Backport of some of the work in r71665 to trunk. This reworks much of
Eric Smith <eric@trueblade.com>
parents:
47815
diff
changeset
|
192 see Objects/stringlib/localeutil.h */ |
|
c5e0d9beebf9
Backport of some of the work in r71665 to trunk. This reworks much of
Eric Smith <eric@trueblade.com>
parents:
47815
diff
changeset
|
193 PyAPI_FUNC(Py_ssize_t) _PyString_InsertThousandsGrouping(char *buffer, |
|
c5e0d9beebf9
Backport of some of the work in r71665 to trunk. This reworks much of
Eric Smith <eric@trueblade.com>
parents:
47815
diff
changeset
|
194 Py_ssize_t n_buffer, |
|
c5e0d9beebf9
Backport of some of the work in r71665 to trunk. This reworks much of
Eric Smith <eric@trueblade.com>
parents:
47815
diff
changeset
|
195 char *digits, |
|
c5e0d9beebf9
Backport of some of the work in r71665 to trunk. This reworks much of
Eric Smith <eric@trueblade.com>
parents:
47815
diff
changeset
|
196 Py_ssize_t n_digits, |
|
c5e0d9beebf9
Backport of some of the work in r71665 to trunk. This reworks much of
Eric Smith <eric@trueblade.com>
parents:
47815
diff
changeset
|
197 Py_ssize_t min_width, |
|
c5e0d9beebf9
Backport of some of the work in r71665 to trunk. This reworks much of
Eric Smith <eric@trueblade.com>
parents:
47815
diff
changeset
|
198 const char *grouping, |
|
c5e0d9beebf9
Backport of some of the work in r71665 to trunk. This reworks much of
Eric Smith <eric@trueblade.com>
parents:
47815
diff
changeset
|
199 const char *thousands_sep); |
|
47578
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
200 |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
201 /* Format the object based on the format_spec, as defined in PEP 3101 |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
202 (Advanced String Formatting). */ |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
203 PyAPI_FUNC(PyObject *) _PyBytes_FormatAdvanced(PyObject *obj, |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
204 char *format_spec, |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
205 Py_ssize_t format_spec_len); |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
206 |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
207 #ifdef __cplusplus |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
208 } |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
209 #endif |
|
acddb00b1de5
swap stringobject.h and bytesobject.h contents to make sense. PyString in
Gregory P. Smith <greg@mad-scientist.com>
parents:
47527
diff
changeset
|
210 #endif /* !Py_STRINGOBJECT_H */ |
