From 42c6741e0a3bede0ed18626ae2e66b4f2a8bb37e Mon Sep 17 00:00:00 2001 From: YAMAMOTO Mitsuharu Date: Thu, 14 Apr 2005 09:25:01 +0000 Subject: [PATCH] [!TARGET_API_MAC_CARBON]: Include MacLocales.h. Don't include TextEncodingConverter.h. (mac_system_script_code, Vmac_system_locale): New variables. (syms_of_mac): Defvar them. (mac_get_system_locale): New function. --- src/ChangeLog | 17 +++++++++++++++++ src/mac.c | 40 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 57 insertions(+) diff --git a/src/ChangeLog b/src/ChangeLog index b8fcfe614e6..71ca06e93d2 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,20 @@ +2005-04-14 YAMAMOTO Mitsuharu + + * mac.c [!TARGET_API_MAC_CARBON]: Include MacLocales.h. Don't + include TextEncodingConverter.h. + (mac_system_script_code, Vmac_system_locale): New variables. + (syms_of_mac): Defvar them. + (mac_get_system_locale): New function. + + * macfns.c (x_set_name, x_set_title) [!TARGET_API_MAC_CARBON]: Use + ENCODE_SYSTEM to encode title bar string. + (x_create_tip_frame): Apply 2005-03-18 change for xfns.c. + (Fx_file_dialog) [TARGET_API_MAC_CARBON && !MAC_OSX]: Use + CFStringGetSystemEncoding to get system default string encoding. + + * macterm.c [!TARGET_API_MAC_CARBON]: Don't include + TextEncodingConverter.h. + 2005-04-13 Steven Tamm * macterm.c (syms_of_macterm): Remove redundant definition of diff --git a/src/mac.c b/src/mac.c index da6a61633dc..a11b097264c 100644 --- a/src/mac.c +++ b/src/mac.c @@ -49,6 +49,7 @@ Boston, MA 02111-1307, USA. */ #include #include #include +#include #endif /* not HAVE_CARBON */ #include @@ -67,6 +68,12 @@ Boston, MA 02111-1307, USA. */ Lisp_Object QCLIPBOARD; +/* The system script code. */ +static int mac_system_script_code; + +/* The system locale identifier string. */ +static Lisp_Object Vmac_system_locale; + /* An instance of the AppleScript component. */ static ComponentInstance as_scripting_component; /* The single script context used for all script executions. */ @@ -4167,6 +4174,29 @@ init_mac_osx_environment () } #endif /* MAC_OSX */ + +static Lisp_Object +mac_get_system_locale () +{ + OSErr err; + LangCode lang; + RegionCode region; + LocaleRef locale; + Str255 str; + + lang = GetScriptVariable (smSystemScript, smScriptLang); + region = GetScriptManagerVariable (smRegionCode); + err = LocaleRefFromLangOrRegionCode (lang, region, &locale); + if (err == noErr) + err = LocaleRefGetPartString (locale, kLocaleAllPartsMask, + sizeof (str), str); + if (err == noErr) + return build_string (str); + else + return Qnil; +} + + void syms_of_mac () { @@ -4197,6 +4227,16 @@ syms_of_mac () defsubr (&Sdo_applescript); defsubr (&Smac_file_name_to_posix); defsubr (&Sposix_file_name_to_mac); + + DEFVAR_INT ("mac-system-script-code", &mac_system_script_code, + doc: /* The system script code. */); + mac_system_script_code = (ScriptCode) GetScriptManagerVariable (smSysScript); + + DEFVAR_LISP ("mac-system-locale", &Vmac_system_locale, + doc: /* The system locale identifier string. +This is not a POSIX locale ID, but an ICU locale ID. So encoding +information is not included. */); + Vmac_system_locale = mac_get_system_locale (); } /* arch-tag: 29d30c1f-0c6b-4f88-8a6d-0558d7f9dbff -- 2.39.2