Show
Ignore:
Timestamp:
07/16/06 08:36:52 (2 years ago)
Author:
miyoshi
Message:

Sync up with Emacs CVS HEAD.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/lisp/international/mule-cmds.el

    r4091 r4111  
    11291129  (set-language-info-internal lang-env key info) 
    11301130  (if (equal lang-env current-language-environment) 
    1131       (set-language-environment lang-env))) 
     1131      (cond ((eq key 'coding-priority) 
     1132             (set-language-environment-coding-systems lang-env)) 
     1133            ((eq key 'input-method) 
     1134             (set-language-environment-input-method lang-env)) 
     1135            ((eq key 'nonascii-translation) 
     1136             (set-language-environment-nonascii-translation lang-env)) 
     1137            ((eq key 'charset) 
     1138             (set-language-environment-charset lang-env)) 
     1139            ((eq key 'overriding-fontspec) 
     1140             (set-language-environment-fontset lang-env)) 
     1141            ((and (not default-enable-multibyte-characters) 
     1142                  (or (eq key 'unibyte-syntax) (eq key 'unibyte-display))) 
     1143             (set-language-environment-unibyte lang-env))))) 
    11321144 
    11331145(defun set-language-info-internal (lang-env key info) 
     
    18391851        (run-hooks 'exit-language-environment-hook) 
    18401852        (if (functionp func) (funcall func)))) 
    1841   (let ((default-eol-type (coding-system-eol-type 
    1842                            default-buffer-file-coding-system))) 
    1843     (reset-language-environment) 
    1844  
    1845     ;; The features might set up coding systems. 
    1846     (let ((required-features (get-language-info language-name 'features))) 
    1847       (while required-features 
    1848         (require (car required-features)) 
    1849         (setq required-features (cdr required-features)))) 
    1850  
    1851     (setq current-language-environment language-name) 
    1852     (set-language-environment-coding-systems language-name default-eol-type)) 
    1853   (let ((input-method (get-language-info language-name 'input-method))) 
    1854     (when input-method 
    1855       (setq default-input-method input-method) 
    1856       (if input-method-history 
    1857           (setq input-method-history 
    1858                 (cons input-method 
    1859                       (delete input-method input-method-history)))))) 
    1860   (let ((nonascii (get-language-info language-name 'nonascii-translation)) 
    1861         (dos-table 
    1862          (if (eq window-system 'pc) 
    1863              (intern 
    1864               (format "cp%d-nonascii-translation-table" dos-codepage))))) 
    1865     (cond 
    1866      ((char-table-p nonascii) 
    1867       (setq nonascii-translation-table nonascii)) 
    1868      ((and (eq window-system 'pc) (boundp dos-table)) 
    1869       ;; DOS terminals' default is to use a special non-ASCII translation 
    1870       ;; table as appropriate for the installed codepage. 
    1871       (setq nonascii-translation-table (symbol-value dos-table))) 
    1872      ((charsetp nonascii) 
    1873       (setq nonascii-insert-offset (- (make-char nonascii) 128))))) 
    1874  
    1875   ;; Unibyte setups if necessary. 
    1876   (unless default-enable-multibyte-characters 
    1877     ;; Syntax and case table. 
    1878     (let ((syntax (get-language-info language-name 'unibyte-syntax))) 
    1879       (if syntax 
    1880           (let ((set-case-syntax-set-multibyte nil)) 
    1881             (load syntax nil t)) 
    1882         ;; No information for syntax and case.  Reset to the defaults. 
    1883         (let ((syntax-table (standard-syntax-table)) 
    1884               (standard-table (standard-case-table)) 
    1885               (case-table (make-char-table 'case-table)) 
    1886               (ch (if (eq window-system 'pc) 128 160))) 
    1887           (while (< ch 256) 
    1888             (modify-syntax-entry ch " " syntax-table) 
    1889             (setq ch (1+ ch))) 
    1890           (dotimes (i 128) 
    1891             (aset case-table i (aref standard-table i))) 
    1892           (set-char-table-extra-slot case-table 0 nil) 
    1893           (set-char-table-extra-slot case-table 1 nil) 
    1894           (set-char-table-extra-slot case-table 2 nil) 
    1895           (set-standard-case-table case-table)) 
    1896         (let ((list (buffer-list))) 
    1897           (while list 
    1898             (with-current-buffer (car list) 
    1899               (set-case-table (standard-case-table))) 
    1900             (setq list (cdr list)))))) 
    1901     (set-display-table-and-terminal-coding-system language-name)) 
    1902  
     1853 
     1854  (reset-language-environment) 
     1855  ;; The features might set up coding systems. 
    19031856  (let ((required-features (get-language-info language-name 'features))) 
    19041857    (while required-features 
     
    19061859      (setq required-features (cdr required-features)))) 
    19071860 
    1908   ;; Don't invoke fontset-related functions if fontsets aren't 
    1909   ;; supported in this build of Emacs. 
    1910   (when (fboundp 'fontset-list) 
    1911     (let ((overriding-fontspec (get-language-info language-name 
    1912                                                   'overriding-fontspec))) 
    1913       (if overriding-fontspec 
    1914           (set-overriding-fontspec-internal overriding-fontspec)))) 
     1861  (setq current-language-environment language-name) 
     1862 
     1863  (set-language-environment-coding-systems language-name) 
     1864  (set-language-environment-input-method language-name) 
     1865  (set-language-environment-nonascii-translation language-name) 
     1866  (set-language-environment-charset language-name) 
     1867  (set-language-environment-fontset language-name) 
     1868  ;; Unibyte setups if necessary. 
     1869  (unless default-enable-multibyte-characters 
     1870    (set-language-environment-unibyte language-name)) 
    19151871 
    19161872  (let ((func (get-language-info language-name 'setup-function))) 
    19171873    (if (functionp func) 
    19181874        (funcall func))) 
    1919   (if (and utf-translate-cjk-mode 
    1920            (not (eq utf-translate-cjk-lang-env language-name)) 
    1921            (catch 'tag 
    1922              (dolist (charset (get-language-info language-name 'charset)) 
    1923                (if (memq charset utf-translate-cjk-charsets) 
    1924                    (throw 'tag t))) 
    1925              nil)) 
    1926       (utf-translate-cjk-load-tables)) 
     1875 
    19271876 
    19281877  ;;; for meadow 
     
    19591908        (aset standard-display-table 146 [39])))) 
    19601909 
    1961 (defun set-language-environment-coding-systems (language-name 
    1962                                                 &optional eol-type) 
    1963   "Do various coding system setups for language environment LANGUAGE-NAME. 
    1964  
    1965 The optional arg EOL-TYPE specifies the eol-type of the default value 
    1966 of `buffer-file-coding-system' set by this function." 
     1910(defun set-language-environment-coding-systems (language-name) 
     1911  "Do various coding system setups for language environment LANGUAGE-NAME." 
    19671912  (let* ((priority (get-language-info language-name 'coding-priority)) 
    1968          (default-coding (car priority))) 
     1913         (default-coding (car priority)) 
     1914         (eol-type (coding-system-eol-type default-buffer-file-coding-system))) 
    19691915    (if priority 
    19701916        (let ((categories (mapcar 'coding-system-category priority))) 
     
    19801926          ;; Changing the binding of a coding category requires this call. 
    19811927          (update-coding-systems-internal))))) 
     1928 
     1929(defun set-language-environment-input-method (language-name) 
     1930  "Do various input method setups for language environment LANGUAGE-NAME." 
     1931  (let ((input-method (get-language-info language-name 'input-method))) 
     1932    (when input-method 
     1933      (setq default-input-method input-method) 
     1934      (if input-method-history 
     1935          (setq input-method-history 
     1936                (cons input-method 
     1937                      (delete input-method input-method-history))))))) 
     1938 
     1939(defun set-language-environment-nonascii-translation (language-name) 
     1940  "Do unibyte/multibyte translation setup for language environment LANGUAGE-NAME." 
     1941  (let ((nonascii (get-language-info language-name 'nonascii-translation)) 
     1942        (dos-table 
     1943         (if (eq window-system 'pc) 
     1944             (intern 
     1945              (format "cp%d-nonascii-translation-table" dos-codepage))))) 
     1946    (cond 
     1947     ((char-table-p nonascii) 
     1948      (setq nonascii-translation-table nonascii)) 
     1949     ((and (eq window-system 'pc) (boundp dos-table)) 
     1950      ;; DOS terminals' default is to use a special non-ASCII translation 
     1951      ;; table as appropriate for the installed codepage. 
     1952      (setq nonascii-translation-table (symbol-value dos-table))) 
     1953     ((charsetp nonascii) 
     1954      (setq nonascii-insert-offset (- (make-char nonascii) 128)))))) 
     1955 
     1956(defun set-language-environment-charset (language-name) 
     1957  "Do various charset setups for language environment LANGUAGE-NAME." 
     1958  (if (and utf-translate-cjk-mode 
     1959           (not (eq utf-translate-cjk-lang-env language-name)) 
     1960           (catch 'tag 
     1961             (dolist (charset (get-language-info language-name 'charset)) 
     1962               (if (memq charset utf-translate-cjk-charsets) 
     1963                   (throw 'tag t))) 
     1964             nil)) 
     1965      (utf-translate-cjk-load-tables))) 
     1966 
     1967(defun set-language-environment-fontset (language-name) 
     1968  "Do various fontset setups for language environment LANGUAGE-NAME." 
     1969  ;; Don't invoke fontset-related functions if fontsets aren't 
     1970  ;; supported in this build of Emacs. 
     1971  (if (fboundp 'fontset-list) 
     1972      (set-overriding-fontspec-internal 
     1973       (get-language-info language-name 'overriding-fontspec)))) 
     1974 
     1975(defun set-language-environment-unibyte (language-name) 
     1976  "Do various unibyte-mode setups for language environment LANGUAGE-NAME." 
     1977  ;; Syntax and case table. 
     1978  (let ((syntax (get-language-info language-name 'unibyte-syntax))) 
     1979    (if syntax 
     1980        (let ((set-case-syntax-set-multibyte nil)) 
     1981          (load syntax nil t)) 
     1982      ;; No information for syntax and case.  Reset to the defaults. 
     1983      (let ((syntax-table (standard-syntax-table)) 
     1984            (standard-table (standard-case-table)) 
     1985            (case-table (make-char-table 'case-table)) 
     1986            (ch (if (eq window-system 'pc) 128 160))) 
     1987        (while (< ch 256) 
     1988          (modify-syntax-entry ch " " syntax-table) 
     1989          (setq ch (1+ ch))) 
     1990        (dotimes (i 128) 
     1991          (aset case-table i (aref standard-table i))) 
     1992        (set-char-table-extra-slot case-table 0 nil) 
     1993        (set-char-table-extra-slot case-table 1 nil) 
     1994        (set-char-table-extra-slot case-table 2 nil) 
     1995        (set-standard-case-table case-table)) 
     1996      (let ((list (buffer-list))) 
     1997        (while list 
     1998          (with-current-buffer (car list) 
     1999            (set-case-table (standard-case-table))) 
     2000          (setq list (cdr list)))))) 
     2001  (set-display-table-and-terminal-coding-system language-name)) 
    19822002 
    19832003(defsubst princ-list (&rest args)