diff Objects/stringlib/string_format.h @ 42948:4ecbae07481f

Simplified tuple returned by string._formatter_parser to only have 4 elements. No need for old is_markup element, the same information is indicated by literal_string being None. Factored string.Formatter class to make subclasses easier to write.
author Eric Smith <eric@trueblade.com>
date Tue, 28 Aug 2007 11:15:20 +0000
parents 11ec4097fafe
children 0e510aff5e9a
line wrap: on
line diff
--- a/Objects/stringlib/string_format.h	Tue Aug 28 09:45:15 2007 +0000
+++ b/Objects/stringlib/string_format.h	Tue Aug 28 11:15:20 2007 +0000
@@ -979,17 +979,12 @@
         /* if 0, error has already been set, if 1, iterator is empty */
         return NULL;
     else {
-        PyObject *is_markup_bool = NULL;
         PyObject *literal_str = NULL;
         PyObject *field_name_str = NULL;
         PyObject *format_spec_str = NULL;
         PyObject *conversion_str = NULL;
         PyObject *tuple = NULL;
 
-        is_markup_bool = PyBool_FromLong(is_markup);
-        if (!is_markup_bool)
-            return NULL;
-
         if (is_markup) {
             /* field_name, format_spec, and conversion are returned */
             literal_str = Py_None;
@@ -1030,11 +1025,9 @@
             Py_INCREF(format_spec_str);
             Py_INCREF(conversion_str);
         }
-        tuple = PyTuple_Pack(5, is_markup_bool, literal_str,
-                             field_name_str, format_spec_str,
+        tuple = PyTuple_Pack(4, literal_str, field_name_str, format_spec_str,
                              conversion_str);
     error:
-        Py_XDECREF(is_markup_bool);
         Py_XDECREF(literal_str);
         Py_XDECREF(field_name_str);
         Py_XDECREF(format_spec_str);