Patch #632973: Implement _getdefaultlocale for OS X.

This commit is contained in:
Martin v. Löwis 2002-11-26 09:05:36 +00:00
parent 318b7b920d
commit 52ea7e9244
2 changed files with 19 additions and 8 deletions

View File

@ -30,7 +30,7 @@ This software comes with no warranty. Use at your own risk.
#include <windows.h>
#endif
#ifdef macintosh
#if __APPLE__
#include "macglue.h"
#endif
@ -400,7 +400,7 @@ PyLocale_getdefaultlocale(PyObject* self)
}
#endif
#if defined(macintosh)
#if defined(__APPLE__)
static PyObject*
PyLocale_getdefaultlocale(PyObject* self)
{
@ -627,7 +627,7 @@ static struct PyMethodDef PyLocale_Methods[] = {
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

View File

@ -38,11 +38,22 @@ OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
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;