mirror of
https://github.com/python/cpython.git
synced 2024-11-26 19:34:19 +08:00
Patch #632973: Implement _getdefaultlocale for OS X.
This commit is contained in:
parent
318b7b920d
commit
52ea7e9244
@ -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
|
||||
|
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user