summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEric Smith <eric@trueblade.com>2009-07-30 13:43:08 (GMT)
committerEric Smith <eric@trueblade.com>2009-07-30 13:43:08 (GMT)
commitbeddd709b291e60c099551345e480424a5991e2d (patch)
treed8089882f25a511be6b66dddd1d69f58637d59e3
parentc5e2bb97065f0255abf166dc0bca4cab70d33d68 (diff)
downloadcpython-beddd709b291e60c099551345e480424a5991e2d.zip
cpython-beddd709b291e60c099551345e480424a5991e2d.tar.gz
cpython-beddd709b291e60c099551345e480424a5991e2d.tar.bz2
Merged revisions 74269 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk ........ r74269 | eric.smith | 2009-07-30 09:39:44 -0400 (Thu, 30 Jul 2009) | 1 line Issue 6330: Fix --enable-unicode=ucs4. ........
-rw-r--r--Objects/stringlib/formatter.h23
1 files changed, 20 insertions, 3 deletions
diff --git a/Objects/stringlib/formatter.h b/Objects/stringlib/formatter.h
index 5cead66..c722460 100644
--- a/Objects/stringlib/formatter.h
+++ b/Objects/stringlib/formatter.h
@@ -32,7 +32,7 @@ unknown_presentation_type(STRINGLIB_CHAR presentation_type,
PyErr_Format(PyExc_ValueError,
"Unknown format code '%c' "
"for object of type '%.200s'",
- presentation_type,
+ (char)presentation_type,
type_name);
#if STRINGLIB_IS_UNICODE
else
@@ -44,6 +44,24 @@ unknown_presentation_type(STRINGLIB_CHAR presentation_type,
#endif
}
+static void
+invalid_comma_type(STRINGLIB_CHAR presentation_type)
+{
+#if STRINGLIB_IS_UNICODE
+ /* See comment in unknown_presentation_type */
+ if (presentation_type > 32 && presentation_type < 128)
+#endif
+ PyErr_Format(PyExc_ValueError,
+ "Cannot specify ',' with '%c'.",
+ (char)presentation_type);
+#if STRINGLIB_IS_UNICODE
+ else
+ PyErr_Format(PyExc_ValueError,
+ "Cannot specify ',' with '\\x%x'.",
+ (unsigned int)presentation_type);
+#endif
+}
+
/*
get_integer consumes 0 or more decimal digit characters from an
input string, updates *result with the corresponding positive
@@ -253,8 +271,7 @@ parse_internal_render_format_spec(STRINGLIB_CHAR *format_spec,
/* These are allowed. See PEP 378.*/
break;
default:
- PyErr_Format(PyExc_ValueError,
- "Cannot specify ',' with '%c'.", format->type);
+ invalid_comma_type(format->type);
return 0;
}
}