[Python-checkins] r85852 - python/branches/py3k/Objects/unicodeobject.c

victor.stinner python-checkins at python.org
Wed Oct 27 02:25:46 CEST 2010


Author: victor.stinner
Date: Wed Oct 27 02:25:46 2010
New Revision: 85852
Log:
Simplify PyUnicode_Encode/DecodeFSDefault on Windows/Mac OS X
 * Windows always uses mbcs
 * Mac OS X always uses utf-8
Modified:
 python/branches/py3k/Objects/unicodeobject.c
Modified: python/branches/py3k/Objects/unicodeobject.c
==============================================================================
--- python/branches/py3k/Objects/unicodeobject.c	(original)
+++ python/branches/py3k/Objects/unicodeobject.c	Wed Oct 27 02:25:46 2010
@@ -1584,15 +1584,19 @@
 return NULL;
 }
 
-PyObject *PyUnicode_EncodeFSDefault(PyObject *unicode)
+PyObject *
+PyUnicode_EncodeFSDefault(PyObject *unicode)
 {
- if (Py_FileSystemDefaultEncoding) {
 #if defined(MS_WINDOWS) && defined(HAVE_USABLE_WCHAR_T)
- if (strcmp(Py_FileSystemDefaultEncoding, "mbcs") == 0)
- return PyUnicode_EncodeMBCS(PyUnicode_AS_UNICODE(unicode),
- PyUnicode_GET_SIZE(unicode),
- NULL);
-#endif
+ return PyUnicode_EncodeMBCS(PyUnicode_AS_UNICODE(unicode),
+ PyUnicode_GET_SIZE(unicode),
+ NULL);
+#elif defined(__APPLE__)
+ return PyUnicode_EncodeUTF8(PyUnicode_AS_UNICODE(unicode),
+ PyUnicode_GET_SIZE(unicode),
+ "surrogateescape");
+#else
+ if (Py_FileSystemDefaultEncoding) {
 return PyUnicode_AsEncodedString(unicode,
 Py_FileSystemDefaultEncoding,
 "surrogateescape");
@@ -1615,6 +1619,7 @@
 PyMem_Free(bytes);
 return bytes_obj;
 }
+#endif
 }
 
 PyObject *PyUnicode_AsEncodedString(PyObject *unicode,
@@ -1761,21 +1766,17 @@
 PyObject*
 PyUnicode_DecodeFSDefaultAndSize(const char *s, Py_ssize_t size)
 {
+#if defined(MS_WINDOWS) && defined(HAVE_USABLE_WCHAR_T)
+ return PyUnicode_DecodeMBCS(s, size, NULL);
+#elif defined(__APPLE__)
+ return PyUnicode_DecodeUTF8(s, size, "surrogateescape");
+#else
 /* During the early bootstrapping process, Py_FileSystemDefaultEncoding
 can be undefined. If it is case, decode using UTF-8. The following assumes
 that Py_FileSystemDefaultEncoding is set to a built-in encoding during the
 bootstrapping process where the codecs aren't ready yet.
 */
 if (Py_FileSystemDefaultEncoding) {
-#if defined(MS_WINDOWS) && defined(HAVE_USABLE_WCHAR_T)
- if (strcmp(Py_FileSystemDefaultEncoding, "mbcs") == 0) {
- return PyUnicode_DecodeMBCS(s, size, NULL);
- }
-#elif defined(__APPLE__)
- if (strcmp(Py_FileSystemDefaultEncoding, "utf-8") == 0) {
- return PyUnicode_DecodeUTF8(s, size, "surrogateescape");
- }
-#endif
 return PyUnicode_Decode(s, size,
 Py_FileSystemDefaultEncoding,
 "surrogateescape");
@@ -1799,6 +1800,7 @@
 PyMem_Free(wchar);
 return unicode;
 }
+#endif
 }
 
 


More information about the Python-checkins mailing list

AltStyle によって変換されたページ (->オリジナル) /