comparison lisp/mule/mule-cmds.el @ 3767:6b2ef948e140

[xemacs-hg @ 2006-12-29 18:09:38 by aidan] etc/ChangeLog addition: 2006-12-21 Aidan Kehoe <kehoea@parhasard.net> * unicode/unicode-consortium/8859-7.TXT: Update the mapping to the 2003 version of ISO 8859-7. lisp/ChangeLog addition: 2006-12-21 Aidan Kehoe <kehoea@parhasard.net> * mule/cyrillic.el: * mule/cyrillic.el (iso-8859-5): * mule/cyrillic.el (cyrillic-koi8-r-encode-table): Add syntax, case support for Cyrillic; make some parentheses more Lispy. * mule/european.el: Content moved to latin.el, file deleted. * mule/general-late.el: If Unicode tables are to be loaded at dump time, do it here, not in loadup.el. * mule/greek.el: Add syntax, case support for Greek. * mule/latin.el: Move the content of european.el here. Change the case table mappings to use hexadecimal codes, to make cross reference to the standards easier. In all cases, take character syntax from similar characters in Latin-1 , rather than deciding separately what syntax they should take. Add (incomplete) support for case with Turkish. Remove description of the character sets used from the language environments' doc strings, since now that we create variant language environments on the fly, such descriptions will often be inaccurate. Set the native-coding-system language info property while setting the other coding-system properties of the language. * mule/misc-lang.el (ipa): Remove the language environment. The International Phonetic _Alphabet_ is not a language, it's inane to have a corresponding language environment in XEmacs. * mule/mule-cmds.el (create-variant-language-environment): Also modify the coding-priority when creating a new language environment; document that. * mule/mule-cmds.el (get-language-environment-from-locale): Recognise that the 'native-coding-system language-info property can be a list, interpret it correctly when it is one. 2006-12-21 Aidan Kehoe <kehoea@parhasard.net> * coding.el (coding-system-category): Use the new 'unicode-type property for finding what sort of Unicode coding system subtype a coding system is, instead of the overshadowed 'type property. * dumped-lisp.el (preloaded-file-list): mule/european.el has been removed. * loadup.el (really-early-error-handler): Unicode tables loaded at dump time are now in mule/general-late.el. * simple.el (count-lines): Add some backslashes to to parentheses in docstrings to help fontification along. * simple.el (what-cursor-position): Wrap a line to fit in 80 characters. * unicode.el: Use the 'unicode-type property, not 'type, for setting the Unicode coding-system subtype. src/ChangeLog addition: 2006-12-21 Aidan Kehoe <kehoea@parhasard.net> * file-coding.c: Update the make-coding-system docstring to reflect unicode-type * general-slots.h: New symbol, unicode-type, since 'type was being overridden when accessing a coding system's Unicode subtype. * intl-win32.c: Backslash a few parentheses, to help fontification along. * intl-win32.c (complex_vars_of_intl_win32): Use the 'unicode-type symbol, not 'type, when creating the Microsoft Unicode coding system. * unicode.c (unicode_putprop): * unicode.c (unicode_getprop): * unicode.c (unicode_print): Using 'type as the property name when working out what Unicode subtype a given coding system is was broken, since there's a general coding system property called 'type. Change the former to use 'unicode-type instead.
author aidan
date Fri, 29 Dec 2006 18:09:51 +0000
parents 7a1c4c523603
children fbf54025c136
comparison
equal deleted inserted replaced
3766:a3dcf9d17a40 3767:6b2ef948e140
1066 The coding systems in question are those described in the 1066 The coding systems in question are those described in the
1067 `set-language-info' docstring with the property names of 1067 `set-language-info' docstring with the property names of
1068 `native-coding-system' and `coding-system'. The name of the new language 1068 `native-coding-system' and `coding-system'. The name of the new language
1069 environment is the name of the old language environment, followed by 1069 environment is the name of the old language environment, followed by
1070 CODING-SYSTEM in parentheses. Returns the name of the new language 1070 CODING-SYSTEM in parentheses. Returns the name of the new language
1071 environment.
1072
1073 This function also modifies the `coding-priority' of a language
1071 environment. " 1074 environment. "
1072 (check-coding-system coding-system) 1075 (check-coding-system coding-system)
1073 (if (symbolp langenv) (setq langenv (symbol-name langenv))) 1076 (if (symbolp langenv) (setq langenv (symbol-name langenv)))
1074 (unless (setq langenv 1077 (unless (setq langenv
1075 (assoc-ignore-case langenv language-info-alist)) 1078 (assoc-ignore-case langenv language-info-alist))
1081 (coding-system-name coding-system)))) 1084 (coding-system-name coding-system))))
1082 nil nil (car langenv)) 1085 nil nil (car langenv))
1083 (format "%s (%s)" (car langenv) 1086 (format "%s (%s)" (car langenv)
1084 (upcase (symbol-name (coding-system-name coding-system))))) 1087 (upcase (symbol-name (coding-system-name coding-system)))))
1085 (destructive-plist-to-alist 1088 (destructive-plist-to-alist
1086 (plist-put (plist-put (alist-to-plist (cdr langenv)) 'native-coding-system 1089 (plist-put
1087 coding-system) 'coding-system 1090 (plist-put
1088 (cons coding-system 1091 (plist-put (alist-to-plist (cdr langenv))
1089 (cdr (assoc 'coding-system (cdr langenv)))))))) 1092 'native-coding-system
1093 coding-system)
1094 'coding-system (cons coding-system
1095 (cdr (assoc 'coding-system (cdr langenv)))))
1096 'coding-priority (cons (coding-system-category coding-system)
1097 (cdr (assq 'coding-priority (cdr langenv))))))))
1090 1098
1091 (defun get-language-environment-from-locale (locale) 1099 (defun get-language-environment-from-locale (locale)
1092 "Convert LOCALE into a language environment. 1100 "Convert LOCALE into a language environment.
1093 LOCALE is a C library locale string, as returned by `current-locale'. 1101 LOCALE is a C library locale string, as returned by `current-locale'.
1094 Uses the `locale' property of the language environment." 1102 Uses the `locale' property of the language environment."
1097 (parse-posix-locale-string locale) 1105 (parse-posix-locale-string locale)
1098 (let ((case-fold-search t) 1106 (let ((case-fold-search t)
1099 (desired-coding-system 1107 (desired-coding-system
1100 (and charset (gethash (replace-in-string charset "[^a-z0-9]" "") 1108 (and charset (gethash (replace-in-string charset "[^a-z0-9]" "")
1101 posix-charset-to-coding-system-hash))) 1109 posix-charset-to-coding-system-hash)))
1102 lang locs) 1110 lang locs given-coding-system)
1103 (dolist (langcons language-info-alist) 1111 (dolist (langcons language-info-alist)
1104 (setq lang (car langcons) 1112 (setq lang (car langcons)
1105 locs (get-language-info lang 'locale)) 1113 locs (get-language-info lang 'locale))
1106 (dolist (loc (if (listp locs) locs (list locs))) 1114 (dolist (loc (if (listp locs) locs (list locs)))
1107 (cond ((functionp loc) 1115 (cond ((functionp loc)
1112 (string-match 1120 (string-match
1113 (format "^%s\\([^A-Za-z0-9]\\|$\\)" loc) 1121 (format "^%s\\([^A-Za-z0-9]\\|$\\)" loc)
1114 locale)) 1122 locale))
1115 (if (or (null desired-coding-system) 1123 (if (or (null desired-coding-system)
1116 (and desired-coding-system 1124 (and desired-coding-system
1117 (eq desired-coding-system 1125 (or (eq desired-coding-system
1118 (get-language-info 1126 (setq given-coding-system
1119 lang 1127 (get-language-info
1120 'native-coding-system)))) 1128 lang
1129 'native-coding-system)))
1130 (and (listp given-coding-system)
1131 (memq desired-coding-system
1132 given-coding-system)))))
1121 (return-from langenv lang) 1133 (return-from langenv lang)
1122 (return-from langenv 1134 (return-from langenv
1123 (create-variant-language-environment 1135 (create-variant-language-environment
1124 lang desired-coding-system)))))))))))) 1136 lang desired-coding-system))))))))))))
1125 1137