Mercurial > emacs
comparison src/ChangeLog @ 89064:2ac5108292b2
*** empty log message ***
author | Kenichi Handa <handa@m17n.org> |
---|---|
date | Tue, 03 Sep 2002 04:11:28 +0000 |
parents | aa9fa496b679 |
children | d86aa90b5637 |
comparison
equal
deleted
inserted
replaced
89063:2054397a36be | 89064:2ac5108292b2 |
---|---|
1 2002-09-03 Kenichi Handa <handa@etl.go.jp> | |
2 | |
3 The following changes (and some of 2002-08-20 changes of mine) are | |
4 for handling syntax, category, and case conversion for unibyte | |
5 characters by converting them to multibyte on the fly. With these | |
6 changes, we don't have to setup syntax and case tables for unibyte | |
7 characters in each language environment. | |
8 | |
9 * abbrev.c (Fexpand_abbrev): Convert a unibyte character to | |
10 multibyte if necessary. | |
11 | |
12 * bytecode.c (Fbyte_code): Likewise. | |
13 | |
14 * character.h (LEADING_CODE_LATIN_1_MIN) | |
15 (LEADING_CODE_LATIN_1_MAX): New macros. | |
16 (unibyte_to_multibyte_table): Extern it. | |
17 (unibyte_char_to_multibyte): New macro. | |
18 (MAKE_CHAR_MULTIBYTE): Use unibyte_to_multibyte_table. | |
19 (CHAR_LEADING_CODE): New macro. | |
20 (FETCH_STRING_CHAR_AS_MULTIBYTE_ADVANCE): New macro. | |
21 | |
22 * character.c (unibyte_to_multibyte_table): New variable. | |
23 (unibyte_char_to_multibyte): Move to character.h and defined as | |
24 macro. | |
25 (multibyte_char_to_unibyte): If C is an eight-bit character, | |
26 convert it to the corresponding byte value. | |
27 | |
28 * charset.c (Fset_unibyte_charset): If the dimension of CHARSET is | |
29 not 1, singals an error. Update the elements of | |
30 unibyte_to_multibyte_table. | |
31 (init_charset_once): Initialize unibyte_to_multibyte_table. | |
32 (syms_of_charset): Define the charset `iso-8859-1'. | |
33 | |
34 * casefiddle.c (casify_object): Fix previous change. | |
35 | |
36 * cmds.c (internal_self_insert): In a multibyte buffer, insert C | |
37 as is without converting it to unibyte. In a unibyte buffer, | |
38 convert C to multibyte before checking the syntax. | |
39 | |
40 * lisp.h (unibyte_char_to_multibyte): Extern deleted. | |
41 | |
42 * minibuf.c (Fminibuffer_complete_word): Use the macro | |
43 FETCH_STRING_CHAR_AS_MULTIBYTE_ADVANCE. | |
44 | |
45 * regex.h (struct re_pattern_buffer): New member target_multibyte. | |
46 | |
47 * regex.c (RE_TARGET_MULTIBYTE_P): New macro. | |
48 (GET_CHAR_BEFORE_2): Check target_multibyte, not multibyte. If | |
49 that is zero, convert an eight-bit char to multibyte. | |
50 (MAKE_CHAR_MULTIBYTE, CHAR_LEADING_CODE): New dummy new macros for | |
51 non-emacs case. | |
52 (PATFETCH): Convert an eight-bit char to multibyte. | |
53 (HANDLE_UNIBYTE_RANGE): New macro. | |
54 (regex_compile): Setup the compiled pattern for multibyte chars | |
55 even if the given regex string is unibyte. Use PATFETCH_RAW | |
56 instead of PATFETCH in many places. To handle `charset' | |
57 specification of unibyte, call HANDLE_UNIBYTE_RANGE. Use bitmap | |
58 only for ASCII chars. | |
59 (analyse_first) <exactn>: Simplified because the compiled pattern | |
60 is multibyte. | |
61 <charset_not>: Setup fastmap from bitmap only for ASCII chars. | |
62 <charset>: Use CHAR_LEADING_CODE to get leading codes. | |
63 <categoryspec>: If multibyte, setup fastmap only for ASCII chars | |
64 here. | |
65 (re_compile_fastmap) [emacs]: Call analyse_first with the arg | |
66 multibyte always 1. | |
67 (re_search_2) In emacs, set the locale variable multibyte to 1, | |
68 otherwise to 0. New local variable target_multibyte. Check it | |
69 to decide the multibyteness of STR1 and STR2. If | |
70 target_multibyte is zero, convert unibyte chars to multibyte | |
71 before translating and checking fastmap. | |
72 (TARGET_CHAR_AND_LENGTH): New macro. | |
73 (re_match_2_internal): In emacs, set the locale variable multibyte | |
74 to 1, otherwise to 0. New local variable target_multibyte. Check | |
75 it to decide the multibyteness of STR1 and STR2. Use | |
76 TARGET_CHAR_AND_LENGTH to fetch a character from D. | |
77 <charset, charset_not>: If multibyte is nonzero, check fastmap | |
78 only for ASCII chars. Call bcmp_translate with | |
79 target_multibyte, not with multibyte. | |
80 <begline>: Declare the local variable C as `unsigned'. | |
81 (bcmp_translate): Change the last arg name to target_multibyte. | |
82 | |
83 * search.c (compile_pattern_1): Don't adjust the multibyteness of | |
84 the regexp pattern and the matching target. Set cp->buf.multibyte | |
85 to the multibyteness of the regexp pattern. Set | |
86 cp->but.target_multibyte to the multibyteness of the matching | |
87 target. | |
88 (wordify): Use FETCH_STRING_CHAR_AS_MULTIBYTE_ADVANCE instead of | |
89 FETCH_STRING_CHAR_ADVANCE. | |
90 (Freplace_match): Convert unibyte chars to multibyte. | |
91 | |
92 * syntax.c (char_quoted): Use FETCH_CHAR_AS_MULTIBYTE to convert | |
93 unibyte chars to multibyte. | |
94 (back_comment): Likewise. | |
95 (scan_words): Likewise. | |
96 (skip_chars): The arg syntaxp is deleted, and the code for | |
97 handling syntaxes is moved to skip_syntaxes. Callers changed. | |
98 Fix the case that the multibyteness of STRING and the current | |
99 buffer doesn't match. | |
100 (skip_syntaxes): New function. | |
101 (SYNTAX_WITH_MULTIBYTE_CHECK): Check C by ASCII_CHAR_P, not by | |
102 SINGLE_BYTE_CHAR_P. | |
103 (Fforward_comment): Use FETCH_CHAR_AS_MULTIBYTE to convert unibyte | |
104 chars to multibyte. | |
105 (scan_lists): Likewise. | |
106 (Fbackward_prefix_chars): Likewise. | |
107 (scan_sexps_forward): Likewise. | |
108 | |
1 2002-08-23 Kenichi Handa <handa@etl.go.jp> | 109 2002-08-23 Kenichi Handa <handa@etl.go.jp> |
2 | 110 |
3 * xfaces.c (QCfontset): New variable. | 111 * xfaces.c (QCfontset): New variable. |
4 (LFACE_FONTSET): New macro. | 112 (LFACE_FONTSET): New macro. |
5 (check_lface_attrs): Check also LFACE_FONTSET_INDEX. | 113 (check_lface_attrs): Check also LFACE_FONTSET_INDEX. |