diff options
-rw-r--r-- | Misc/NEWS | 3 | ||||
-rw-r--r-- | Modules/timemodule.c | 15 |
2 files changed, 7 insertions, 11 deletions
@@ -406,6 +406,9 @@ Core and Builtins 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 index 52aade4..dff4641 100644 --- 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 @@ time_strftime(PyObject *self, PyObject *args) 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 @@ time_strftime(PyObject *self, PyObject *args) #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 @@ PyInit_timezone(PyObject *m) { #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 |