[Python-checkins] cpython (merge 3.2 -> default): (Merge 3.2) Issue #5905: time.strftime() is now using the locale encoding,

victor.stinner python-checkins at python.org
Fri Dec 9 20:19:12 CET 2011


http://hg.python.org/cpython/rev/bee7694988a4
changeset:   73905:bee7694988a4
parent:      73903:7ffe3d304487
parent:      73904:8620e6901e58
user:        Victor Stinner <victor.stinner at haypocalc.com>
date:        Fri Dec 09 20:21:17 2011 +0100
summary:
  (Merge 3.2) Issue #5905: time.strftime() is now using the locale encoding,
instead of UTF-8, if the wcsftime() function is not available.

files:
  Misc/NEWS            |   3 +++
  Modules/timemodule.c |  15 ++++-----------
  2 files changed, 7 insertions(+), 11 deletions(-)


diff --git a/Misc/NEWS b/Misc/NEWS
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -406,6 +406,9 @@
 Library
 -------
 
+- Issue #5905: time.strftime() is now using the locale encoding, instead of
+  UTF-8, if the wcsftime() function is not available.
+
 - Issue #8641: Update IDLE 3 syntax coloring to recognize b".." and not u"..".
   Patch by Tal Einat.
 
diff --git a/Modules/timemodule.c b/Modules/timemodule.c
--- a/Modules/timemodule.c
+++ b/Modules/timemodule.c
@@ -30,12 +30,6 @@
 #endif /* MS_WINDOWS */
 #endif /* !__WATCOMC__ || __QNX__ */
 
-#if defined(HAVE_MBCS)
-#  define TZNAME_ENCODING "mbcs"
-#else
-#  define TZNAME_ENCODING "utf-8"
-#endif
-
 #if defined(PYOS_OS2)
 #define INCL_DOS
 #define INCL_ERRORS
@@ -492,7 +486,7 @@
     fmt = format;
 #else
     /* Convert the unicode string to an ascii one */
-    format = PyUnicode_AsEncodedString(format_arg, TZNAME_ENCODING, NULL);
+    format = PyUnicode_EncodeFSDefault(format_arg);
     if (format == NULL)
         return NULL;
     fmt = PyBytes_AS_STRING(format);
@@ -536,8 +530,7 @@
 #ifdef HAVE_WCSFTIME
             ret = PyUnicode_FromWideChar(outbuf, buflen);
 #else
-            ret = PyUnicode_Decode(outbuf, buflen,
-                                   TZNAME_ENCODING, NULL);
+            ret = PyUnicode_DecodeFSDefaultAndSize(outbuf, buflen);
 #endif
             PyMem_Free(outbuf);
             break;
@@ -769,8 +762,8 @@
 #endif /* PYOS_OS2 */
 #endif
     PyModule_AddIntConstant(m, "daylight", daylight);
-    otz0 = PyUnicode_Decode(tzname[0], strlen(tzname[0]), TZNAME_ENCODING, NULL);
-    otz1 = PyUnicode_Decode(tzname[1], strlen(tzname[1]), TZNAME_ENCODING, NULL);
+    otz0 = PyUnicode_DecodeFSDefaultAndSize(tzname[0], strlen(tzname[0]));
+    otz1 = PyUnicode_DecodeFSDefaultAndSize(tzname[1], strlen(tzname[1]));
     PyModule_AddObject(m, "tzname", Py_BuildValue("(NN)", otz0, otz1));
 #else /* !HAVE_TZNAME || __GLIBC__ || __CYGWIN__*/
 #ifdef HAVE_STRUCT_TM_TM_ZONE

-- 
Repository URL: http://hg.python.org/cpython


More information about the Python-checkins mailing list