diff options
author | Eric Smith <eric@trueblade.com> | 2009-04-22 13:29:05 (GMT) |
---|---|---|
committer | Eric Smith <eric@trueblade.com> | 2009-04-22 13:29:05 (GMT) |
commit | aca19e6a740c424aec243a4721b18d12e9129aa7 (patch) | |
tree | 89b7a3d0e2b7246f483baba919002a24e95bb1d2 /Include/stringobject.h | |
parent | cbb530872354fb4eb3b8b5bbaa36db38a0d9a64a (diff) | |
download | cpython-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.h | 22 |
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). */ |