Fredrik Lundh | a50d201 | 2006-05-26 17:04:58 +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. |
Fredrik Lundh | 2d23d5b | 2006-05-27 10:05:10 +0000 | [diff] [blame] | 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 | |
Georg Brandl | aee9003 | 2010-01-17 12:14:42 +0000 | [diff] [blame] | 16 | a PyObject representing the empty string, only to be used if |
| 17 | STRINGLIB_MUTABLE is 0 |
Fredrik Lundh | 2d23d5b | 2006-05-27 10:05:10 +0000 | [diff] [blame] | 18 | |
Fredrik Lundh | 2d23d5b | 2006-05-27 10:05:10 +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) |
Antoine Pitrou | 6467213 | 2010-01-13 07:55:48 +0000 | [diff] [blame] | 32 | |
| 33 | int STRINGLIB_CHECK_EXACT(PyObject *) |
| 34 | |
Georg Brandl | aee9003 | 2010-01-17 12:14:42 +0000 | [diff] [blame] | 35 | returns true if the object is an instance of our type, not a subclass |
Antoine Pitrou | 6467213 | 2010-01-13 07:55:48 +0000 | [diff] [blame] | 36 | |
| 37 | STRINGLIB_MUTABLE |
| 38 | |
Georg Brandl | aee9003 | 2010-01-17 12:14:42 +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 |