diff options
| author | Kenichi Handa | 2000-12-13 02:01:05 +0000 |
|---|---|---|
| committer | Kenichi Handa | 2000-12-13 02:01:05 +0000 |
| commit | 85ef8ece986f247077b027b2b0e2ce6a5ecebac1 (patch) | |
| tree | f523e05abccc7dcb600bcd52f4626a6d8a2473ff | |
| parent | d49fc4eb22cbbf3baaea6d250c905c3ae6c0ff98 (diff) | |
| download | emacs-85ef8ece986f247077b027b2b0e2ce6a5ecebac1.tar.gz emacs-85ef8ece986f247077b027b2b0e2ce6a5ecebac1.zip | |
Fix cases and syntaxes for mule-unicode-0100-24ff.
| -rw-r--r-- | lisp/international/characters.el | 43 |
1 files changed, 34 insertions, 9 deletions
diff --git a/lisp/international/characters.el b/lisp/international/characters.el index 2c55449ae84..163e550973d 100644 --- a/lisp/international/characters.el +++ b/lisp/international/characters.el | |||
| @@ -601,20 +601,41 @@ | |||
| 601 | 601 | ||
| 602 | ;; Unicode (mule-unicode-0100-24ff) | 602 | ;; Unicode (mule-unicode-0100-24ff) |
| 603 | 603 | ||
| 604 | (let ((c #x0100) (tbl (standard-case-table))) | 604 | (let ((tbl (standard-case-table)) c) |
| 605 | (while (<= c #x0233) ; Latin Extended-A, Latin Extended-B | 605 | |
| 606 | ;; In some languages, U+0049 LATIN CAPITAL LETTER I and U+0131 LATIN | ||
| 607 | ;; SMALL LETTER DOTLESS I make a case pair, and so do U+0130 LATIN | ||
| 608 | ;; CAPITAL LETTER I WITH DOT ABOVE and U+0069 LATIN SMALL LETTER I. | ||
| 609 | ;; Thus we have to check language-environment to handle casing | ||
| 610 | ;; correctly. Currently only I<->i is available. | ||
| 611 | |||
| 612 | ;; case-syntax-pair's are not yet given for Latin Extendet-B | ||
| 613 | |||
| 614 | ;; Latin Extended-A, Latin Extended-B | ||
| 615 | (setq c #x0100) | ||
| 616 | (while (<= c #x0233) | ||
| 606 | (modify-category-entry (decode-char 'ucs c) ?l) | 617 | (modify-category-entry (decode-char 'ucs c) ?l) |
| 607 | (and (<= c #x0176) | 618 | (and (or (<= c #x012e) |
| 619 | (and (>= c #x014a) (<= c #x0177))) | ||
| 608 | (zerop (% c 2)) | 620 | (zerop (% c 2)) |
| 609 | (set-case-syntax-pair | 621 | (set-case-syntax-pair |
| 610 | (decode-char 'ucs c) (decode-char 'ucs (1+ c)) tbl)) | 622 | (decode-char 'ucs c) (decode-char 'ucs (1+ c)) tbl)) |
| 623 | (and (>= c #x013a) | ||
| 624 | (<= c #x0148) | ||
| 625 | (zerop (% c 2)) | ||
| 626 | (set-case-syntax-pair | ||
| 627 | (decode-char 'ucs (1- c)) (decode-char 'ucs c) tbl)) | ||
| 611 | (setq c (1+ c))) | 628 | (setq c (1+ c))) |
| 612 | (set-case-syntax-pair ?$,1!8(B ?,A(B tbl) | 629 | (set-case-syntax-pair ?$,1 R(B ?$,1 S(B tbl) |
| 630 | (set-case-syntax-pair ?$,1 T(B ?$,1 U(B tbl) | ||
| 631 | (set-case-syntax-pair ?$,1 V(B ?$,1 W(B tbl) | ||
| 632 | ; (set-case-syntax-pair ?$,1!8(B ?,A(B tbl) ; these two have different length! | ||
| 613 | (set-case-syntax-pair ?$,1!9(B ?$,1!:(B tbl) | 633 | (set-case-syntax-pair ?$,1!9(B ?$,1!:(B tbl) |
| 614 | (set-case-syntax-pair ?$,1!;(B ?$,1!<(B tbl) | 634 | (set-case-syntax-pair ?$,1!;(B ?$,1!<(B tbl) |
| 615 | (set-case-syntax-pair ?$,1!=(B ?$,1!>(B tbl) | 635 | (set-case-syntax-pair ?$,1!=(B ?$,1!>(B tbl) |
| 616 | 636 | ||
| 617 | (setq c #x1e00) ; Latin Extended Additional | 637 | ;; Latin Extended Additional |
| 638 | (setq c #x1e00) | ||
| 618 | (while (<= c #x1ef9) | 639 | (while (<= c #x1ef9) |
| 619 | (modify-category-entry (decode-char 'ucs c) ?l) | 640 | (modify-category-entry (decode-char 'ucs c) ?l) |
| 620 | (and (zerop (% c 2)) | 641 | (and (zerop (% c 2)) |
| @@ -623,7 +644,8 @@ | |||
| 623 | (decode-char 'ucs c) (decode-char 'ucs (1+ c)) tbl)) | 644 | (decode-char 'ucs c) (decode-char 'ucs (1+ c)) tbl)) |
| 624 | (setq c (1+ c))) | 645 | (setq c (1+ c))) |
| 625 | 646 | ||
| 626 | (setq c #x0370) ; Greek | 647 | ;; Greek |
| 648 | (setq c #x0370) | ||
| 627 | (while (<= c #x03ff) | 649 | (while (<= c #x03ff) |
| 628 | (modify-category-entry (decode-char 'ucs c) ?g) | 650 | (modify-category-entry (decode-char 'ucs c) ?g) |
| 629 | (if (or (and (>= c #x0391) (<= c #x03a1)) | 651 | (if (or (and (>= c #x0391) (<= c #x03a1)) |
| @@ -644,7 +666,8 @@ | |||
| 644 | (set-case-syntax-pair ?$,1&n(B ?$,1'M(B tbl) | 666 | (set-case-syntax-pair ?$,1&n(B ?$,1'M(B tbl) |
| 645 | (set-case-syntax-pair ?$,1&o(B ?$,1'N(B tbl) | 667 | (set-case-syntax-pair ?$,1&o(B ?$,1'N(B tbl) |
| 646 | 668 | ||
| 647 | (setq c #x1f00) ; Greek Extended | 669 | ;; Greek Extended |
| 670 | (setq c #x1f00) | ||
| 648 | (while (<= c #x1fff) | 671 | (while (<= c #x1fff) |
| 649 | (modify-category-entry (decode-char 'ucs c) ?g) | 672 | (modify-category-entry (decode-char 'ucs c) ?g) |
| 650 | (and (<= (logand c #x000f) 7) | 673 | (and (<= (logand c #x000f) 7) |
| @@ -679,7 +702,8 @@ | |||
| 679 | (set-case-syntax-pair ?$,1r[(B ?$,1q=(B tbl) | 702 | (set-case-syntax-pair ?$,1r[(B ?$,1q=(B tbl) |
| 680 | (set-case-syntax-pair ?$,1r\(B ?$,1rS(B tbl) | 703 | (set-case-syntax-pair ?$,1r\(B ?$,1rS(B tbl) |
| 681 | 704 | ||
| 682 | (setq c #x0400) ; cyrillic | 705 | ;; cyrillic |
| 706 | (setq c #x0400) | ||
| 683 | (while (<= c #x04ff) | 707 | (while (<= c #x04ff) |
| 684 | (modify-category-entry (decode-char 'ucs c) ?y) | 708 | (modify-category-entry (decode-char 'ucs c) ?y) |
| 685 | (and (>= c #x0400) | 709 | (and (>= c #x0400) |
| @@ -703,7 +727,8 @@ | |||
| 703 | (set-case-syntax-pair ?$,1*+(B ?$,1*,(B tbl) | 727 | (set-case-syntax-pair ?$,1*+(B ?$,1*,(B tbl) |
| 704 | (set-case-syntax-pair ?$,1*X(B ?$,1*Y(B tbl) | 728 | (set-case-syntax-pair ?$,1*X(B ?$,1*Y(B tbl) |
| 705 | 729 | ||
| 706 | (setq c #x2000) ; general punctuation | 730 | ;; general punctuation |
| 731 | (setq c #x2000) | ||
| 707 | (while (<= c #x200b) | 732 | (while (<= c #x200b) |
| 708 | (set-case-syntax c " " tbl) | 733 | (set-case-syntax c " " tbl) |
| 709 | (setq c (1+ c))) | 734 | (setq c (1+ c))) |