]> code.delx.au - gnu-emacs/blobdiff - lisp/international/mule-cmds.el
Merged from miles@gnu.org--gnu-2005 (patch 60-65, 246-265)
[gnu-emacs] / lisp / international / mule-cmds.el
index 5e9f3014dc28ca2ad82dbd93e1202addf86fac2e..cc39f39638d130ceff05dcd39b743a7de5676c19 100644 (file)
@@ -2395,6 +2395,15 @@ See also `locale-charset-language-names', `locale-language-names',
                    (= 0 (length locale))) ; nil or empty string
          (setq locale (getenv (pop vars))))))
 
+    (unless (or locale (not (fboundp 'mac-get-preference)))
+      (setq locale (mac-get-preference "AppleLocale"))
+      (unless locale
+       (let ((languages (mac-get-preference "AppleLanguages")))
+         (unless (= (length languages) 0) ; nil or empty vector
+           (setq locale (aref languages 0))))))
+    (unless (or locale (not (boundp 'mac-system-locale)))
+      (setq locale mac-system-locale))
+
     (when locale
 
       ;; Translate "swedish" into "sv_SE.ISO8859-1", and so on,
@@ -2425,7 +2434,8 @@ See also `locale-charset-language-names', `locale-language-names',
                 (when locale
                   (if (string-match "\\.\\([^@]+\\)" locale)
                       (locale-charset-to-coding-system
-                       (match-string 1 locale)))))))
+                       (match-string 1 locale))))
+                (and (eq system-type 'macos) mac-system-coding-system))))
 
        (if (consp language-name)
            ;; locale-language-names specify both lang-env and coding.