summaryrefslogtreecommitdiffstats
path: root/Objects/stringlib
diff options
context:
space:
mode:
authorEric Smith <eric@trueblade.com>2007-08-29 12:38:45 (GMT)
committerEric Smith <eric@trueblade.com>2007-08-29 12:38:45 (GMT)
commitb7f5ba16dbf86997257a25b11b09f0ebbd182559 (patch)
tree83aa151019b5f9ca3181f42d72f9acb2ae30ca97 /Objects/stringlib
parent39dce30b4c6749731911ca7ed518c2ea706c15ea (diff)
downloadcpython-b7f5ba16dbf86997257a25b11b09f0ebbd182559.zip
cpython-b7f5ba16dbf86997257a25b11b09f0ebbd182559.tar.gz
cpython-b7f5ba16dbf86997257a25b11b09f0ebbd182559.tar.bz2
Added conditional compilation for '()', which was an allowed sign code in a
previous version of PEP 3101. It's currently not compiled in, but I want to leave it because it might be useful in the future and it makes calc_number_widths() clearer. It justifies NumberFieldWidths.rsign and .n__rsign.
Diffstat (limited to 'Objects/stringlib')
-rw-r--r--Objects/stringlib/formatter.h9
1 files changed, 8 insertions, 1 deletions
diff --git a/Objects/stringlib/formatter.h b/Objects/stringlib/formatter.h
index 23a031d..5d06df4 100644
--- a/Objects/stringlib/formatter.h
+++ b/Objects/stringlib/formatter.h
@@ -13,6 +13,8 @@
be. These are the only non-static functions defined here.
*/
+#define ALLOW_PARENS_FOR_SIGN 0
+
/*
get_integer consumes 0 or more decimal digit characters from an
input string, updates *result with the corresponding positive
@@ -73,7 +75,8 @@ Py_LOCAL_INLINE(int)
is_sign_element(STRINGLIB_CHAR c)
{
switch (c) {
- case ' ': case '+': case '-': case '(':
+ case ' ': case '+': case '-':
+ case '(':
return 1;
default:
return 0;
@@ -132,9 +135,11 @@ parse_internal_render_format_spec(PyObject *format_spec,
if (end-ptr >= 1 && is_sign_element(ptr[0])) {
format->sign = ptr[0];
ptr++;
+#if ALLOW_PARENS_FOR_SIGN
if (end-ptr >= 1 && ptr[0] == ')') {
ptr++;
}
+#endif
}
/* The special case for 0-padding (backwards compat) */
@@ -247,6 +252,7 @@ calc_number_widths(NumberFieldWidths *r, STRINGLIB_CHAR actual_sign,
r->n_lsign = 1;
r->lsign = (actual_sign == '-' ? '-' : '+');
}
+#if ALLOW_PARENS_FOR_SIGN
else if (format->sign == '(') {
if (actual_sign == '-') {
r->n_lsign = 1;
@@ -255,6 +261,7 @@ calc_number_widths(NumberFieldWidths *r, STRINGLIB_CHAR actual_sign,
r->rsign = ')';
}
}
+#endif
else if (format->sign == ' ') {
r->n_lsign = 1;
r->lsign = (actual_sign == '-' ? '-' : ' ');