Thomas Wouters | 477c8d5 | 2006-05-27 19:21:47 +0000 | [diff] [blame] | 1 | bits shared by the stringobject and unicodeobject implementations (and |
| 2 | possibly other modules, in a not too distant future). |
| 3 | |
| 4 | the stuff in here is included into relevant places; see the individual |
| 5 | source files for details. |
| 6 | |
| 7 | -------------------------------------------------------------------- |
| 8 | the following defines used by the different modules: |
| 9 | |
| 10 | STRINGLIB_CHAR |
| 11 | |
| 12 | the type used to hold a character (char or Py_UNICODE) |
| 13 | |
| 14 | STRINGLIB_EMPTY |
| 15 | |
Benjamin Peterson | 5e55b3e | 2010-02-03 02:35:45 +0000 | [diff] [blame] | 16 | a PyObject representing the empty string, only to be used if |
| 17 | STRINGLIB_MUTABLE is 0 |
Thomas Wouters | 477c8d5 | 2006-05-27 19:21:47 +0000 | [diff] [blame] | 18 | |
Thomas Wouters | 477c8d5 | 2006-05-27 19:21:47 +0000 | [diff] [blame] | 19 | Py_ssize_t STRINGLIB_LEN(PyObject*) |
| 20 | |
| 21 | returns the length of the given string object (which must be of the |
| 22 | right type) |
| 23 | |
| 24 | PyObject* STRINGLIB_NEW(STRINGLIB_CHAR*, Py_ssize_t) |
| 25 | |
| 26 | creates a new string object |
| 27 | |
| 28 | STRINGLIB_CHAR* STRINGLIB_STR(PyObject*) |
| 29 | |
| 30 | returns the pointer to the character data for the given string |
| 31 | object (which must be of the right type) |
Gregory P. Smith | 60d241f | 2007-10-16 06:31:30 +0000 | [diff] [blame] | 32 | |
| 33 | int STRINGLIB_CHECK_EXACT(PyObject *) |
| 34 | |
Benjamin Peterson | 5e55b3e | 2010-02-03 02:35:45 +0000 | [diff] [blame] | 35 | returns true if the object is an instance of our type, not a subclass |
Gregory P. Smith | 60d241f | 2007-10-16 06:31:30 +0000 | [diff] [blame] | 36 | |
| 37 | STRINGLIB_MUTABLE |
| 38 | |
Benjamin Peterson | 5e55b3e | 2010-02-03 02:35:45 +0000 | [diff] [blame] | 39 | must be 0 or 1 to tell the cpp macros in stringlib code if the object |
| 40 | being operated on is mutable or not |