Patch #632973: Implement _getdefaultlocale for OS X.
diff --git a/Modules/_localemodule.c b/Modules/_localemodule.c
index ab86fa4..4b654d5 100644
--- a/Modules/_localemodule.c
+++ b/Modules/_localemodule.c
@@ -30,7 +30,7 @@
 #include <windows.h>
 #endif
 
-#ifdef macintosh
+#if __APPLE__
 #include "macglue.h"
 #endif
 
@@ -400,7 +400,7 @@
 }
 #endif
 
-#if defined(macintosh)
+#if defined(__APPLE__)
 static PyObject*
 PyLocale_getdefaultlocale(PyObject* self)
 {
@@ -627,7 +627,7 @@
    METH_VARARGS, strcoll__doc__},
   {"strxfrm", (PyCFunction) PyLocale_strxfrm, 
    METH_VARARGS, strxfrm__doc__},
-#if defined(MS_WINDOWS) || defined(macintosh)
+#if defined(MS_WINDOWS) || defined(__APPLE__)
   {"_getdefaultlocale", (PyCFunction) PyLocale_getdefaultlocale, METH_NOARGS},
 #endif
 #ifdef HAVE_LANGINFO_H
diff --git a/Python/mactoolboxglue.c b/Python/mactoolboxglue.c
index fc1d1af..6d39d57 100644
--- a/Python/mactoolboxglue.c
+++ b/Python/mactoolboxglue.c
@@ -38,11 +38,22 @@
 char *PyMac_getscript()
 {
 #if TARGET_API_MAC_OSX
-    /* We cannot use GetSysFont because it requires the window manager
-    ** There are other APIs to query the default 8 bit encoding, but
-    ** I don't know about them (yet).
-    */
-    return "ascii";
+    CFStringEncoding enc = CFStringGetSystemEncoding();
+    static CFStringRef name = NULL;
+    /* Return the code name for the encodings for which we have codecs. */
+    switch(enc) {
+    case kCFStringEncodingMacRoman: return "mac-roman";
+    case kCFStringEncodingMacGreek: return "mac-greek";
+    case kCFStringEncodingMacCyrillic: return "mac-cyrillic";
+    case kCFStringEncodingMacTurkish: return "mac-turkish";
+    case kCFStringEncodingMacIcelandic: return "mac-icelandic";
+    /* XXX which one is mac-latin2? */
+    }
+    if (!name) {
+        /* This leaks a an object. */
+        name = CFStringConvertEncodingToIANACharSetName(enc);
+    }
+    return CFStringGetCStringPtr(name, 0); 
 #else
    int font, script, lang;
     font = 0;