--- /dev/null
+#ifndef STRINGLIB_STRINGDEFS_H\r
+#define STRINGLIB_STRINGDEFS_H\r
+\r
+/* this is sort of a hack. there's at least one place (formatting\r
+ floats) where some stringlib code takes a different path if it's\r
+ compiled as unicode. */\r
+#define STRINGLIB_IS_UNICODE 0\r
+\r
+#define STRINGLIB_OBJECT PyStringObject\r
+#define STRINGLIB_CHAR char\r
+#define STRINGLIB_TYPE_NAME "string"\r
+#define STRINGLIB_PARSE_CODE "S"\r
+#define STRINGLIB_EMPTY nullstring\r
+#define STRINGLIB_ISSPACE Py_ISSPACE\r
+#define STRINGLIB_ISLINEBREAK(x) ((x == '\n') || (x == '\r'))\r
+#define STRINGLIB_ISDECIMAL(x) ((x >= '0') && (x <= '9'))\r
+#define STRINGLIB_TODECIMAL(x) (STRINGLIB_ISDECIMAL(x) ? (x - '0') : -1)\r
+#define STRINGLIB_TOUPPER Py_TOUPPER\r
+#define STRINGLIB_TOLOWER Py_TOLOWER\r
+#define STRINGLIB_FILL memset\r
+#define STRINGLIB_STR PyString_AS_STRING\r
+#define STRINGLIB_LEN PyString_GET_SIZE\r
+#define STRINGLIB_NEW PyString_FromStringAndSize\r
+#define STRINGLIB_RESIZE _PyString_Resize\r
+#define STRINGLIB_CHECK PyString_Check\r
+#define STRINGLIB_CHECK_EXACT PyString_CheckExact\r
+#define STRINGLIB_TOSTR PyObject_Str\r
+#define STRINGLIB_GROUPING _PyString_InsertThousandsGrouping\r
+#define STRINGLIB_GROUPING_LOCALE _PyString_InsertThousandsGroupingLocale\r
+\r
+#define STRINGLIB_WANT_CONTAINS_OBJ 1\r
+\r
+#endif /* !STRINGLIB_STRINGDEFS_H */\r