# HG changeset patch # User Richard M. Stallman # Date 895118113 0 # Node ID 9b0a64c31e1cc83c17366fa5ed1dff2e2644bfee # Parent cc1d878347526b022c5d0a35cdd87eb1e1ac51e9 (locale-translation-file-name): New variable. (command-line): Use it to decode locale aliases. diff -r cc1d87834752 -r 9b0a64c31e1c lisp/startup.el --- a/lisp/startup.el Thu May 14 03:54:50 1998 +0000 +++ b/lisp/startup.el Thu May 14 03:55:13 1998 +0000 @@ -329,6 +329,9 @@ string) :group 'auto-save) +(defvar locale-translation-file-name "/usr/share/locale/locale.alias" + "*File name for the system's file of locale-name aliases.") + (defvar init-file-debug nil) (defvar init-file-had-error nil) @@ -482,6 +485,17 @@ (and (not (equal string "")) string)) (let ((string (getenv "LANG"))) (and (not (equal string "")) string))))) + ;; Translate "swedish" into "sv_SE.ISO-8859-1", and so on, + ;; using the translation file that GNU/Linux systems have. + (and ctype + (not (string-match iso-8859-n-locale-regexp ctype)) + (file-exists-p locale-translation-file-name) + (with-temp-buffer + (insert-file-contents locale-translation-file-name) + (if (re-search-forward (concat "^" ctype "[ \t]*") nil t) + (setq ctype (buffer-substring (point) + (progn (end-of-line) (point))))))) + ;; Now see if the locale specifies an ISO 8859 character set. (when (and ctype (string-match iso-8859-n-locale-regexp ctype)) (let (charset (which (match-string 1 ctype)))