bits shared by the stringobject and unicodeobject implementations (and possibly other modules, in a not too distant future). the stuff in here is included into relevant places; see the individual source files for details. -------------------------------------------------------------------- the following defines used by the different modules: STRINGLIB_CHAR the type used to hold a character (char or Py_UNICODE) STRINGLIB_EMPTY a PyObject representing the empty string, only to be used if STRINGLIB_MUTABLE is 0 Py_ssize_t STRINGLIB_LEN(PyObject*) returns the length of the given string object (which must be of the right type) PyObject* STRINGLIB_NEW(STRINGLIB_CHAR*, Py_ssize_t) creates a new string object STRINGLIB_CHAR* STRINGLIB_STR(PyObject*) returns the pointer to the character data for the given string object (which must be of the right type) int STRINGLIB_CHECK_EXACT(PyObject *) returns true if the object is an instance of our type, not a subclass STRINGLIB_MUTABLE must be 0 or 1 to tell the cpp macros in stringlib code if the object being operated on is mutable or not