1 #ifndef Py_STRINGOBJECT_H
2 #define Py_STRINGOBJECT_H
7 /***********************************************************
8 Copyright 1991-1995 by Stichting Mathematisch Centrum, Amsterdam,
13 Permission to use, copy, modify, and distribute this software and its
14 documentation for any purpose and without fee is hereby granted,
15 provided that the above copyright notice appear in all copies and that
16 both that copyright notice and this permission notice appear in
17 supporting documentation, and that the names of Stichting Mathematisch
18 Centrum or CWI not be used in advertising or publicity pertaining to
19 distribution of the software without specific, written prior permission.
21 STICHTING MATHEMATISCH CENTRUM DISCLAIMS ALL WARRANTIES WITH REGARD TO
22 THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
23 FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH CENTRUM BE LIABLE
24 FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
25 WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
26 ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
27 OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
29 ******************************************************************/
31 /* String object interface */
34 Type PyStringObject represents a character string. An extra zero byte is
35 reserved at the end to ensure it is zero-terminated, but a size is
36 present so strings with null bytes in them can be represented. This
37 is an immutable object type.
39 There are functions to create new string objects, to test
40 an object for string-ness, and to get the
41 string value. The latter function returns a null pointer
42 if the object is not of the proper type.
43 There is a variant that takes an explicit size as well as a
44 variant that assumes a zero-terminated string. Note that none of the
45 functions should be applied to nil objects.
48 /* NB The type is revealed here only because it is used in dictobject.c */
58 extern DL_IMPORT(PyTypeObject
) PyString_Type
;
60 #define PyString_Check(op) ((op)->ob_type == &PyString_Type)
62 extern PyObject
*PyString_FromStringAndSize
Py_PROTO((char *, int));
63 extern PyObject
*PyString_FromString
Py_PROTO((char *));
64 extern int PyString_Size
Py_PROTO((PyObject
*));
65 extern char *PyString_AsString
Py_PROTO((PyObject
*));
66 extern void PyString_Concat
Py_PROTO((PyObject
**, PyObject
*));
67 extern void PyString_ConcatAndDel
Py_PROTO((PyObject
**, PyObject
*));
68 extern int _PyString_Resize
Py_PROTO((PyObject
**, int));
69 extern PyObject
*PyString_Format
Py_PROTO((PyObject
*, PyObject
*));
71 /* Macro, trading safety for speed */
72 #define PyString_AS_STRING(op) ((op)->ob_sval)
77 #endif /* !Py_STRINGOBJECT_H */