diff options
author | Martin v. Löwis <martin@v.loewis.de> | 2008-04-07 03:08:28 +0000 |
---|---|---|
committer | Martin v. Löwis <martin@v.loewis.de> | 2008-04-07 03:08:28 +0000 |
commit | d918e4e068f22c3e79c771c27be3c8f91a9e0446 (patch) | |
tree | 5e5c2f72880c5a520db3b2a5b22635ba42983716 /Objects/stringlib/formatter.h | |
parent | 295814e4634b7130dc0c58bc1a9d91c14cbe804a (diff) | |
download | cpython-git-d918e4e068f22c3e79c771c27be3c8f91a9e0446.tar.gz |
Bug #2388: Fix gcc warnings when compiling with --enable-unicode=ucs4.
Diffstat (limited to 'Objects/stringlib/formatter.h')
-rw-r--r-- | Objects/stringlib/formatter.h | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/Objects/stringlib/formatter.h b/Objects/stringlib/formatter.h index 3ca14fac81..531bc223ff 100644 --- a/Objects/stringlib/formatter.h +++ b/Objects/stringlib/formatter.h @@ -785,8 +785,19 @@ FORMAT_STRING(PyObject* value, PyObject* args) break; default: /* unknown */ - PyErr_Format(PyExc_ValueError, "Unknown conversion type %c", - format.type); + #if STRINGLIB_IS_UNICODE + /* If STRINGLIB_CHAR is Py_UNICODE, %c might be out-of-range, + hence the two cases. If it is char, gcc complains that the + condition below is always true, hence the ifdef. */ + if (format.type > 32 && format.type <128) + #endif + PyErr_Format(PyExc_ValueError, "Unknown conversion type %c", + (char)format.type); + #if STRINGLIB_IS_UNICODE + else + PyErr_Format(PyExc_ValueError, "Unknown conversion type '\\x%x'", + (unsigned int)format.type); + #endif goto done; } |