summaryrefslogtreecommitdiffstats
path: root/Include/stringobject.h
diff options
context:
space:
mode:
authorEric Smith <eric@trueblade.com>2009-04-22 13:29:05 (GMT)
committerEric Smith <eric@trueblade.com>2009-04-22 13:29:05 (GMT)
commitaca19e6a740c424aec243a4721b18d12e9129aa7 (patch)
tree89b7a3d0e2b7246f483baba919002a24e95bb1d2 /Include/stringobject.h
parentcbb530872354fb4eb3b8b5bbaa36db38a0d9a64a (diff)
downloadcpython-aca19e6a740c424aec243a4721b18d12e9129aa7.zip
cpython-aca19e6a740c424aec243a4721b18d12e9129aa7.tar.gz
cpython-aca19e6a740c424aec243a4721b18d12e9129aa7.tar.bz2
Backport of some of the work in r71665 to trunk. This reworks much of
int, long, and float __format__(), and it keeps their implementation in sync with py3k. Also added PyOS_double_to_string. This is the "fallback" version that's also available in trunk, and should be kept in sync with that code. I'll add an issue to document PyOS_double_to_string in the C API. There are many internal cleanups. Externally visible changes include: - Implement PEP 378, Format Specifier for Thousands Separator, for floats, ints, and longs. - Issue #5515: 'n' formatting for ints, longs, and floats handles leading zero formatting poorly. - Issue #5772: For float.__format__, don't add a trailing ".0" if we're using no type code and we have an exponent.
Diffstat (limited to 'Include/stringobject.h')
-rw-r--r--Include/stringobject.h22
1 files changed, 16 insertions, 6 deletions
diff --git a/Include/stringobject.h b/Include/stringobject.h
index d9f1840..18b5b41 100644
--- a/Include/stringobject.h
+++ b/Include/stringobject.h
@@ -177,16 +177,26 @@ PyAPI_FUNC(int) PyString_AsStringAndSize(
strings) */
);
+
/* Using the current locale, insert the thousands grouping
into the string pointed to by buffer. For the argument descriptions,
see Objects/stringlib/localeutil.h */
+PyAPI_FUNC(Py_ssize_t) _PyString_InsertThousandsGroupingLocale(char *buffer,
+ Py_ssize_t n_buffer,
+ char *digits,
+ Py_ssize_t n_digits,
+ Py_ssize_t min_width);
-PyAPI_FUNC(int) _PyString_InsertThousandsGrouping(char *buffer,
- Py_ssize_t n_buffer,
- Py_ssize_t n_digits,
- Py_ssize_t buf_size,
- Py_ssize_t *count,
- int append_zero_char);
+/* Using explicit passed-in values, insert the thousands grouping
+ into the string pointed to by buffer. For the argument descriptions,
+ see Objects/stringlib/localeutil.h */
+PyAPI_FUNC(Py_ssize_t) _PyString_InsertThousandsGrouping(char *buffer,
+ Py_ssize_t n_buffer,
+ char *digits,
+ Py_ssize_t n_digits,
+ Py_ssize_t min_width,
+ const char *grouping,
+ const char *thousands_sep);
/* Format the object based on the format_spec, as defined in PEP 3101
(Advanced String Formatting). */