]> git.eshelyaron.com Git - emacs.git/commitdiff
[!TARGET_API_MAC_CARBON]: Include MacLocales.h. Don't include
authorYAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
Thu, 14 Apr 2005 09:25:01 +0000 (09:25 +0000)
committerYAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
Thu, 14 Apr 2005 09:25:01 +0000 (09:25 +0000)
TextEncodingConverter.h.
(mac_system_script_code, Vmac_system_locale): New variables.
(syms_of_mac): Defvar them.
(mac_get_system_locale): New function.

src/ChangeLog
src/mac.c

index b8fcfe614e6d9c7ec88e4f6a4b59f82a76915c19..71ca06e93d22f12258dd5a582b93ab3181ddf3d7 100644 (file)
@@ -1,3 +1,20 @@
+2005-04-14  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
+
+       * 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  <steventamm@mac.com>
 
        * macterm.c (syms_of_macterm): Remove redundant definition of
index da6a61633dcc1e69a5704d86526d7ff882ff3bf5..a11b097264c18b56cac77a27a16f862998cbba47 100644 (file)
--- a/src/mac.c
+++ b/src/mac.c
@@ -49,6 +49,7 @@ Boston, MA 02111-1307, USA.  */
 #include <Events.h>
 #include <Processes.h>
 #include <EPPC.h>
+#include <MacLocales.h>
 #endif /* not HAVE_CARBON */
 
 #include <utime.h>
@@ -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