summaryrefslogtreecommitdiffstats
path: root/Include
diff options
context:
space:
mode:
authorEric Smith <eric@trueblade.com>2008-05-30 18:10:19 (GMT)
committerEric Smith <eric@trueblade.com>2008-05-30 18:10:19 (GMT)
commit4a7d76ddb51422e2adb0fb56afa5b82162837e52 (patch)
tree266a1c326d040ce45be22c4c785edec2f7f67f02 /Include
parenteb2c964aeb0ab0e3e01560c955cab95f8e3b92c2 (diff)
downloadcpython-4a7d76ddb51422e2adb0fb56afa5b82162837e52.zip
cpython-4a7d76ddb51422e2adb0fb56afa5b82162837e52.tar.gz
cpython-4a7d76ddb51422e2adb0fb56afa5b82162837e52.tar.bz2
Refactor and clean up str.format() code (and helpers) in advance of optimizations.
Diffstat (limited to 'Include')
-rw-r--r--Include/floatobject.h6
-rw-r--r--Include/formatter_unicode.h9
-rw-r--r--Include/longobject.h6
-rw-r--r--Include/unicodeobject.h6
4 files changed, 18 insertions, 9 deletions
diff --git a/Include/floatobject.h b/Include/floatobject.h
index 2021313..650d544 100644
--- a/Include/floatobject.h
+++ b/Include/floatobject.h
@@ -105,6 +105,12 @@ PyAPI_FUNC(double) _PyFloat_Unpack8(const unsigned char *p, int le);
/* free list api */
PyAPI_FUNC(void) PyFloat_CompactFreeList(size_t *, size_t *, size_t *);
+/* Format the object based on the format_spec, as defined in PEP 3101
+ (Advanced String Formatting). */
+PyAPI_FUNC(PyObject *) _PyFloat_FormatAdvanced(PyObject *obj,
+ Py_UNICODE *format_spec,
+ Py_ssize_t format_spec_len);
+
#ifdef __cplusplus
}
#endif
diff --git a/Include/formatter_unicode.h b/Include/formatter_unicode.h
deleted file mode 100644
index ccca883..0000000
--- a/Include/formatter_unicode.h
+++ /dev/null
@@ -1,9 +0,0 @@
-PyObject *
-unicode_unicode__format__(PyObject *self, PyObject *args);
-
-PyObject *
-unicode_long__format__(PyObject *self, PyObject *args);
-
-PyObject *
-unicode_float__format__(PyObject *self, PyObject *args);
-
diff --git a/Include/longobject.h b/Include/longobject.h
index 237e2e6..73ca951 100644
--- a/Include/longobject.h
+++ b/Include/longobject.h
@@ -127,6 +127,12 @@ PyAPI_FUNC(int) _PyLong_AsByteArray(PyLongObject* v,
appending a base prefix of 0[box] if base is 2, 8 or 16. */
PyAPI_FUNC(PyObject *) _PyLong_Format(PyObject *aa, int base);
+/* Format the object based on the format_spec, as defined in PEP 3101
+ (Advanced String Formatting). */
+PyAPI_FUNC(PyObject *) _PyLong_FormatAdvanced(PyObject *obj,
+ Py_UNICODE *format_spec,
+ Py_ssize_t format_spec_len);
+
/* These aren't really part of the long object, but they're handy. The
functions are in Python/mystrtoul.c.
*/
diff --git a/Include/unicodeobject.h b/Include/unicodeobject.h
index 79b9a8c..384cd55 100644
--- a/Include/unicodeobject.h
+++ b/Include/unicodeobject.h
@@ -571,6 +571,12 @@ PyAPI_FUNC(PyObject*) PyUnicode_FromObject(
PyAPI_FUNC(PyObject *) PyUnicode_FromFormatV(const char*, va_list);
PyAPI_FUNC(PyObject *) PyUnicode_FromFormat(const char*, ...);
+/* Format the object based on the format_spec, as defined in PEP 3101
+ (Advanced String Formatting). */
+PyAPI_FUNC(PyObject *) _PyUnicode_FormatAdvanced(PyObject *obj,
+ Py_UNICODE *format_spec,
+ Py_ssize_t format_spec_len);
+
PyAPI_FUNC(void) PyUnicode_InternInPlace(PyObject **);
PyAPI_FUNC(void) PyUnicode_InternImmortal(PyObject **);
PyAPI_FUNC(PyObject *) PyUnicode_InternFromString(const char *);