emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] Changes to emacs/lisp/international/utf-8.el [lexbind]


From: Miles Bader
Subject: [Emacs-diffs] Changes to emacs/lisp/international/utf-8.el [lexbind]
Date: Thu, 28 Oct 2004 22:27:54 -0400

Index: emacs/lisp/international/utf-8.el
diff -c emacs/lisp/international/utf-8.el:1.13.2.8 
emacs/lisp/international/utf-8.el:1.13.2.9
*** emacs/lisp/international/utf-8.el:1.13.2.8  Sat Sep  4 09:26:22 2004
--- emacs/lisp/international/utf-8.el   Fri Oct 29 02:05:07 2004
***************
*** 194,206 ****
  (defconst utf-translate-cjk-charsets '(chinese-gb2312
                                       chinese-big5-1 chinese-big5-2
                                       japanese-jisx0208 japanese-jisx0212
                                       korean-ksc5601)
    "List of charsets supported by `utf-translate-cjk-mode'.")
  
! (defconst utf-translate-cjk-unicode-range
!   '((#x2e80 . #xd7a3)
!     (#xff00 . #xffef))
!   "List of Unicode code ranges supported by `utf-translate-cjk-mode'.")
  
  ;; Return non-nil if CODE-POINT is in `utf-translate-cjk-unicode-range'.
  (defsubst utf-translate-cjk-substitutable-p (code-point)
--- 194,281 ----
  (defconst utf-translate-cjk-charsets '(chinese-gb2312
                                       chinese-big5-1 chinese-big5-2
                                       japanese-jisx0208 japanese-jisx0212
+                                      katakana-jisx0201
                                       korean-ksc5601)
    "List of charsets supported by `utf-translate-cjk-mode'.")
  
! (defvar utf-translate-cjk-lang-env nil
!   "Language environment in which tables for `utf-translate-cjk-mode' is 
loaded.
! The value nil means that the tables are not yet loaded.")
! 
! (defvar utf-translate-cjk-unicode-range)
! 
! ;; String generated from utf-translate-cjk-unicode-range.  It is
! ;; suitable for an argument to skip-chars-forward.
! (defvar utf-translate-cjk-unicode-range-string nil)
! 
! (defun utf-translate-cjk-set-unicode-range (range)
!   (setq utf-translate-cjk-unicode-range range)
!   (setq utf-translate-cjk-unicode-range-string
!       (let ((decode-char-no-trans
!              #'(lambda (x)
!                  (cond ((< x #x100) (make-char 'latin-iso8859-1 x))
!                        ((< x #x2500)
!                         (setq x (- x #x100))
!                         (make-char 'mule-unicode-0100-24ff
!                                    (+ (/ x 96) 32) (+ (% x 96) 32)))
!                        ((< x #x3400) 
!                         (setq x (- x #x2500))
!                         (make-char 'mule-unicode-2500-33ff
!                                    (+ (/ x 96) 32) (+ (% x 96) 32)))
!                        (t
!                         (setq x (- x #xe000))
!                         (make-char 'mule-unicode-e000-ffff
!                                    (+ (/ x 96) 32) (+ (% x 96) 32))))))
!             ranges from to)
!         (dolist (elt range)
!           (setq from (max #xA0 (car elt)) to (min #xffff (cdr elt)))
!           (if (and (>= to #x3400) (< to #xE000))
!               (setq to #x33FF))
!           (cond ((< from #x100)
!                  (if (>= to #xE000)
!                      (setq ranges (cons (cons #xE000 to) ranges)
!                            to #x33FF))
!                  (if (>= to #x2500)
!                      (setq ranges (cons (cons #x2500 to) ranges)
!                            to #x24FF))
!                  (if (>= to #x100)
!                      (setq ranges (cons (cons #x100 to) ranges)
!                            to #xFF)))
!                 ((< from #x2500)
!                  (if (>= to #xE000)
!                      (setq ranges (cons (cons #xE000 to) ranges)
!                            to #x33FF))
!                  (if (>= to #x2500)
!                      (setq ranges (cons (cons #x2500 to) ranges)
!                            to #x24FF)))
!                 ((< from #x3400)
!                  (if (>= to #xE000)
!                      (setq ranges (cons (cons #xE000 to) ranges)
!                            to #x33FF))))
!           (if (<= from to)
!               (setq ranges (cons (cons from to) ranges))))
!         (mapconcat #'(lambda (x) 
!                        (format "%c-%c" 
!                                (funcall decode-char-no-trans (car x))
!                                (funcall decode-char-no-trans (cdr x))))
!                    ranges "")))
!   ;; These forces loading and settting tables for
!   ;; utf-translate-cjk-mode.
!   (setq utf-translate-cjk-lang-env nil
!       ucs-mule-cjk-to-unicode (make-hash-table :test 'eq)
!       ucs-unicode-to-mule-cjk (make-hash-table :test 'eq)))
! 
! (defcustom utf-translate-cjk-unicode-range '((#x2e80 . #xd7a3)
!                                            (#xff00 . #xffef))
!   "List of Unicode code ranges supported by `utf-translate-cjk-mode'.
! Setting this variable directly does not take effect;
! use either \\[customize] or the function
! `utf-translate-cjk-set-unicode-range'."
!   :version "21.4"
!   :type '(repeat (cons integer integer))
!   :set (lambda (symbol value)
!        (utf-translate-cjk-set-unicode-range value))
!   :group 'mule)
  
  ;; Return non-nil if CODE-POINT is in `utf-translate-cjk-unicode-range'.
  (defsubst utf-translate-cjk-substitutable-p (code-point)
***************
*** 213,222 ****
        (setq elt nil)))
      elt))
  
- (defvar utf-translate-cjk-lang-env nil
-   "Language environment in which tables for `utf-translate-cjk-mode' is 
loaded.
- The value nil means that the tables are not yet loaded.")
- 
  (defun utf-translate-cjk-load-tables ()
    "Load tables for `utf-translate-cjk-mode'."
    ;; Fixme: Allow the use of the CJK charsets to be
--- 288,293 ----
***************
*** 425,449 ****
          ;; 2-byte encoding 00000yyyyyxxxxxx = 110yyyyy 10xxxxxx
          ((r1 &= #x3F)
           (r1 |= ((r0 & #x1F) << 6))
!          ;; Now r2 holds scalar value.  We don't have to check
           ;; `overlong sequence' because r0 >= 0xC2.
  
           (if (r1 >= 256)
               ;; mule-unicode-0100-24ff (< 0800)
!              ((r0 = ,(charset-id 'mule-unicode-0100-24ff))
!               (r1 -= #x0100)
!               (r2 = (((r1 / 96) + 32) << 7))
!               (r1 %= 96)
!               (r1 += (r2 + 32))
!               (translate-character
!                utf-translation-table-for-decode r0 r1)
                (write-multibyte-character r0 r1)
                (read r0)
                (repeat))
             (if (r1 >= 160)
                 ;; latin-iso8859-1
!                ((r1 -= 128)
!                 (write-multibyte-character r6 r1)
                  (read r0)
                  (repeat))
               ;; eight-bit-control
--- 496,527 ----
          ;; 2-byte encoding 00000yyyyyxxxxxx = 110yyyyy 10xxxxxx
          ((r1 &= #x3F)
           (r1 |= ((r0 & #x1F) << 6))
!          ;; Now r1 holds scalar value.  We don't have to check
           ;; `overlong sequence' because r0 >= 0xC2.
  
           (if (r1 >= 256)
               ;; mule-unicode-0100-24ff (< 0800)
!              ((r0 = r1)
!               (lookup-integer utf-subst-table-for-decode r0 r1)
!               (if (r7 == 0)
!                   ((r0 = ,(charset-id 'mule-unicode-0100-24ff))
!                    (r1 -= #x0100)
!                    (r2 = (((r1 / 96) + 32) << 7))
!                    (r1 %= 96)
!                    (r1 += (r2 + 32))
!                    (translate-character
!                     utf-translation-table-for-decode r0 r1)))
                (write-multibyte-character r0 r1)
                (read r0)
                (repeat))
             (if (r1 >= 160)
                 ;; latin-iso8859-1
!                ((r0 = r1)
!                 (lookup-integer utf-subst-table-for-decode r0 r1)
!                 (if (r7 == 0)
!                     ((r1 -= 128)
!                      (write-multibyte-character r6 r1))
!                   ((write-multibyte-character r0 r1)))
                  (read r0)
                  (repeat))
               ;; eight-bit-control
***************
*** 482,494 ****
  
           (if (r3 < #x2500)
               ;; mule-unicode-0100-24ff (>= 0800)
!              ((r0 = ,(charset-id 'mule-unicode-0100-24ff))
!               (r3 -= #x0100)
!               (r3 //= 96)
!               (r1 = (r7 + 32))
!               (r1 += ((r3 + 32) << 7))
!               (translate-character
!                utf-translation-table-for-decode r0 r1)
                (write-multibyte-character r0 r1)
                (read r0)
                (repeat)))
--- 560,575 ----
  
           (if (r3 < #x2500)
               ;; mule-unicode-0100-24ff (>= 0800)
!              ((r0 = r3)
!               (lookup-integer utf-subst-table-for-decode r0 r1)
!               (if (r7 == 0)
!                   ((r0 = ,(charset-id 'mule-unicode-0100-24ff))
!                    (r3 -= #x0100)
!                    (r3 //= 96)
!                    (r1 = (r7 + 32))
!                    (r1 += ((r3 + 32) << 7))
!                    (translate-character
!                     utf-translation-table-for-decode r0 r1)))
                (write-multibyte-character r0 r1)
                (read r0)
                (repeat)))
***************
*** 874,890 ****
            hash-table ch)
        (set-buffer-multibyte t)
        (when utf-translate-cjk-mode
!         (if (not utf-translate-cjk-lang-env)
!             ;; Check these characters:
!             ;;   "U+2e80-U+33ff", "U+ff00-U+ffef"
!             ;; We may have to translate them to CJK charsets.
!             (let ((range2 "$,address@hidden(B-$,2G$,3r`(B-$,3u/(B"))
!               (skip-chars-forward (concat range range2))
!               (unless (eobp)
!                 (utf-translate-cjk-load-tables)
!                 (setq range (concat range range2)))
!         (setq hash-table (get 'utf-subst-table-for-decode
!                               'translation-hash-table)))))
        (while (and (skip-chars-forward range)
                    (not (eobp)))
          (setq ch (following-char))
--- 955,971 ----
            hash-table ch)
        (set-buffer-multibyte t)
        (when utf-translate-cjk-mode
!         (unless utf-translate-cjk-lang-env
!           ;; Check these characters in utf-translate-cjk-range.
!           ;; We may have to translate them to CJK charsets.
!           (skip-chars-forward
!            (concat range utf-translate-cjk-unicode-range-string))
!           (unless (eobp)
!             (utf-translate-cjk-load-tables)
!             (setq range
!                   (concat range utf-translate-cjk-unicode-range-string)))
!           (setq hash-table (get 'utf-subst-table-for-decode
!                                 'translation-hash-table))))
        (while (and (skip-chars-forward range)
                    (not (eobp)))
          (setq ch (following-char))




reply via email to

[Prev in Thread] Current Thread [Next in Thread]