diff options
-rw-r--r-- | Include/pymactoolbox.h | 1 | ||||
-rw-r--r-- | Modules/_localemodule.c | 28 | ||||
-rw-r--r-- | Python/mactoolboxglue.c | 24 |
3 files changed, 26 insertions, 27 deletions
diff --git a/Include/pymactoolbox.h b/Include/pymactoolbox.h index a1e2a6f..403ddf5 100644 --- a/Include/pymactoolbox.h +++ b/Include/pymactoolbox.h @@ -13,7 +13,6 @@ /* ** Helper routines for error codes and such. */ -char *PyMac_getscript(void); /* Get the default encoding for our 8bit character set */ char *PyMac_StrError(int); /* strerror with mac errors */ extern PyObject *PyMac_OSErrException; /* Exception for OSErr */ PyObject *PyMac_GetOSErrException(void); /* Initialize & return it */ diff --git a/Modules/_localemodule.c b/Modules/_localemodule.c index 0ab79cb..0f8a71a 100644 --- a/Modules/_localemodule.c +++ b/Modules/_localemodule.c @@ -30,7 +30,7 @@ This software comes with no warranty. Use at your own risk. #endif #if defined(__APPLE__) -#include "pymactoolbox.h" +#include <CoreFoundation/CoreFoundation.h> #endif #if defined(MS_WINDOWS) @@ -406,10 +406,34 @@ PyLocale_getdefaultlocale(PyObject* self) #endif #if defined(__APPLE__) +/* +** Find out what the current script is. +** Donated by Fredrik Lund. +*/ +static char *mac_getscript(void) +{ + 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 (char *)CFStringGetCStringPtr(name, 0); +} + static PyObject* PyLocale_getdefaultlocale(PyObject* self) { - return Py_BuildValue("Os", Py_None, PyMac_getscript()); + return Py_BuildValue("Os", Py_None, mac_getscript()); } #endif diff --git a/Python/mactoolboxglue.c b/Python/mactoolboxglue.c index 7308ae4..ba15062 100644 --- a/Python/mactoolboxglue.c +++ b/Python/mactoolboxglue.c @@ -27,30 +27,6 @@ OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. #include "pymactoolbox.h" -/* -** Find out what the current script is. -** Donated by Fredrik Lund. -*/ -char *PyMac_getscript() -{ - 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 (char *)CFStringGetCStringPtr(name, 0); -} - /* Like strerror() but for Mac OS error numbers */ char *PyMac_StrError(int err) { |