[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] Changes to emacs/src/mac.c
From: |
YAMAMOTO Mitsuharu |
Subject: |
[Emacs-diffs] Changes to emacs/src/mac.c |
Date: |
Thu, 14 Apr 2005 05:25:01 -0400 |
Index: emacs/src/mac.c
diff -c emacs/src/mac.c:1.31 emacs/src/mac.c:1.32
*** emacs/src/mac.c:1.31 Wed Apr 6 02:23:37 2005
--- emacs/src/mac.c Thu Apr 14 09:25:01 2005
***************
*** 49,54 ****
--- 49,55 ----
#include <Events.h>
#include <Processes.h>
#include <EPPC.h>
+ #include <MacLocales.h>
#endif /* not HAVE_CARBON */
#include <utime.h>
***************
*** 67,72 ****
--- 68,79 ----
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,4172 ****
--- 4174,4202 ----
}
#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,4202 ****
--- 4227,4242 ----
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