]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Added conditional compilation for '()', which was an allowed sign code in a
authorEric Smith <eric@trueblade.com>
Wed, 29 Aug 2007 12:38:45 +0000 (12:38 +0000)
committerEric Smith <eric@trueblade.com>
Wed, 29 Aug 2007 12:38:45 +0000 (12:38 +0000)
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.

Objects/stringlib/formatter.h

index 23a031d8255f21fd46fbcc62cf70d0432f48af4c..5d06df42f55a7719f31f1b5c760db7ce1e1b08cd 100644 (file)
@@ -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 == '-' ? '-' : ' ');