]> granicus.if.org Git - python/commitdiff
Merged revisions 74687 via svnmerge from
authorRonald Oussoren <ronaldoussoren@mac.com>
Sun, 6 Sep 2009 14:01:46 +0000 (14:01 +0000)
committerRonald Oussoren <ronaldoussoren@mac.com>
Sun, 6 Sep 2009 14:01:46 +0000 (14:01 +0000)
svn+ssh://pythondev@svn.python.org/python/branches/py3k

........
  r74687 | ronald.oussoren | 2009-09-06 15:59:02 +0200 (Sun, 06 Sep 2009) | 3 lines

  Fix for issue 6393: Python crashes on OSX when $LANG is set to some (but
  not all) invalid values due to an invalid result from nl_langinfo
........

Lib/locale.py

index f6d174c859934701679d8acfad784a1984d3bb06..54d4c0e2e9ed317ef413b4a5afa640c08768de70 100644 (file)
@@ -567,10 +567,22 @@ else:
                 except Error:
                     pass
                 result = nl_langinfo(CODESET)
+                if not result and sys.platform == 'darwin':
+                    # nl_langinfo can return an empty string
+                    # when the setting has an invalid value.
+                    # Default to UTF-8 in that case because
+                    # UTF-8 is the default charset on OSX and
+                    # returning nothing will crash the
+                    # interpreter.
+                    result = 'UTF-8'
+
                 setlocale(LC_CTYPE, oldloc)
                 return result
             else:
-                return nl_langinfo(CODESET)
+                result = nl_langinfo(CODESET)
+                if not result and sys.platform == 'darwin':
+                    # See above for explanation
+                    result = 'UTF-8'
 
 
 ### Database