# HG changeset patch # User Kai Grojohann # Date 1048957902 0 # Node ID f49a20cb84edcf24b8ec3166f35c8a1445b5ca02 # Parent 810c2ac4b0642da4ea65e645a6b705f882e972f3 (utf-translate-cjk-mode): Minor mode, replaces variable utf-translate-cjk which must be set via Custom. diff -r 810c2ac4b064 -r f49a20cb84ed lisp/ChangeLog --- a/lisp/ChangeLog Sat Mar 29 16:34:35 2003 +0000 +++ b/lisp/ChangeLog Sat Mar 29 17:11:42 2003 +0000 @@ -1,5 +1,8 @@ 2003-03-29 Kai Gro,A_(Bjohann + * international/utf-8.el (utf-translate-cjk-mode): Minor mode, + replaces variable utf-translate-cjk which must be set via Custom. + * files.el (file-relative-name): If FILENAME and DIRECTORY are on different drives (on DOS/Windows) or use different handlers, do like `expand-file-name' on FILENAME and return an absolute name. diff -r 810c2ac4b064 -r f49a20cb84ed lisp/international/utf-8.el --- a/lisp/international/utf-8.el Sat Mar 29 16:34:35 2003 +0000 +++ b/lisp/international/utf-8.el Sat Mar 29 17:11:42 2003 +0000 @@ -190,7 +190,7 @@ :type 'boolean :group 'mule) -(defcustom utf-translate-cjk nil +(define-minor-mode utf-translate-cjk-mode "Whether the UTF based coding systems should decode/encode CJK characters. Enabling this loads tables which allow the coding systems mule-utf-8, mule-utf-16-le and mule-utf-16-be to encode characters in the charsets @@ -205,59 +205,59 @@ The tables are large (over 40000 entries), so this option is not the default. Also, installing them may be rather slow." - :set (lambda (s v) - (if v - ;; Fixme: Allow the use of the CJK charsets to be - ;; customized by reordering and possible omission. - (progn - ;; Redefine them with realistic initial sizes and a - ;; smallish rehash size to avoid wasting significant - ;; space after they're built. - (setq ucs-mule-cjk-to-unicode - (make-hash-table :test 'eq :size 43000 :rehash-size 1000) - ucs-unicode-to-mule-cjk - (make-hash-table :test 'eq :size 43000 :rehash-size 1000)) - ;; Load the files explicitly, to avoid having to keep - ;; around the large tables they contain (as well as the - ;; ones which get built). - (cond - ((string= "Korean" current-language-environment) - (load "subst-jis") - (load "subst-big5") - (load "subst-gb2312") - (load "subst-ksc")) - ((string= "Chinese-BIG5" current-language-environment) - (load "subst-jis") - (load "subst-ksc") - (load "subst-gb2312") - (load "subst-big5")) - ((string= "Chinese-GB" current-language-environment) - (load "subst-jis") - (load "subst-ksc") - (load "subst-big5") - (load "subst-gb2312")) - (t - (load "subst-ksc") - (load "subst-gb2312") - (load "subst-big5") - (load "subst-jis"))) ; jis covers as much as big5, gb2312 - (let ((table (make-char-table 'translation-table))) - (maphash (lambda (k v) - (aset table k t)) - ucs-mule-cjk-to-unicode) - (define-translation-hash-table 'utf-subst-table-for-decode - ucs-unicode-to-mule-cjk) - (define-translation-hash-table 'utf-subst-table-for-encode - ucs-mule-cjk-to-unicode)) - (define-translation-hash-table 'utf-subst-table-for-decode - (make-hash-table :test 'eq)) - (define-translation-hash-table 'utf-subst-table-for-encode - (make-hash-table :test 'eq)))) - (set-default s v)) + :init-value nil :version "21.4" :type 'boolean :set-after '(current-language-environment) - :group 'mule) + :group 'mule + :global t + (if utf-translate-cjk-mode + ;; Fixme: Allow the use of the CJK charsets to be + ;; customized by reordering and possible omission. + (progn + ;; Redefine them with realistic initial sizes and a + ;; smallish rehash size to avoid wasting significant + ;; space after they're built. + (setq ucs-mule-cjk-to-unicode + (make-hash-table :test 'eq :size 43000 :rehash-size 1000) + ucs-unicode-to-mule-cjk + (make-hash-table :test 'eq :size 43000 :rehash-size 1000)) + ;; Load the files explicitly, to avoid having to keep + ;; around the large tables they contain (as well as the + ;; ones which get built). + (cond + ((string= "Korean" current-language-environment) + (load "subst-jis") + (load "subst-big5") + (load "subst-gb2312") + (load "subst-ksc")) + ((string= "Chinese-BIG5" current-language-environment) + (load "subst-jis") + (load "subst-ksc") + (load "subst-gb2312") + (load "subst-big5")) + ((string= "Chinese-GB" current-language-environment) + (load "subst-jis") + (load "subst-ksc") + (load "subst-big5") + (load "subst-gb2312")) + (t + (load "subst-ksc") + (load "subst-gb2312") + (load "subst-big5") + (load "subst-jis"))) ; jis covers as much as big5, gb2312 + (let ((table (make-char-table 'translation-table))) + (maphash (lambda (k v) + (aset table k t)) + ucs-mule-cjk-to-unicode) + (define-translation-hash-table 'utf-subst-table-for-decode + ucs-unicode-to-mule-cjk) + (define-translation-hash-table 'utf-subst-table-for-encode + ucs-mule-cjk-to-unicode)) + (define-translation-hash-table 'utf-subst-table-for-decode + (make-hash-table :test 'eq)) + (define-translation-hash-table 'utf-subst-table-for-encode + (make-hash-table :test 'eq))))) (define-ccl-program ccl-decode-mule-utf-8 ;;