diff options
author | Stefan Monnier <monnier@iro.umontreal.ca> | 2009-10-18 03:08:32 +0000 |
---|---|---|
committer | Stefan Monnier <monnier@iro.umontreal.ca> | 2009-10-18 03:08:32 +0000 |
commit | 4c0354d71bb71c17af97ec956379603ccbb42a18 (patch) | |
tree | 8f3ebc4af4b125f170ea6c3461b945878cf3b07d /src | |
parent | e5f035d75ea1e81103dc58b50e3e8afa44fbc34e (diff) | |
download | emacs-4c0354d71bb71c17af97ec956379603ccbb42a18.tar.gz |
Remove leftover table unibyte_to_multibyte_table.
* character.c (unibyte_to_multibyte_table): Remove.
(Funibyte_char_to_multibyte): Use MAKE_CHAR_MULTIBYTE.
* charset.c (init_charset_once): Don't init unibyte_to_multibyte_table.
* character.h (UNIBYTE_TO_CHAR): New macro.
(MAKE_CHAR_MULTIBYTE): Use it.
(unibyte_to_multibyte_table, unibyte_char_to_multibyte): Remove.
* xdisp.c (get_next_display_element): USE ASCII_CHAR_P.
(message_dolog, set_message_1):
* search.c (Freplace_match):
* editfns.c (Fcompare_buffer_substrings):
* fns.c (Fcompare_strings): Use MAKE_CHAR_MULTIBYTE.
(concat):
* insdel.c (copy_text, count_size_as_multibyte):
Use ASCII_CHAR_P and BYTE8_TO_CHAR.
* term.c (produce_glyphs):
* syntax.c (skip_chars): Use BYTE8_TO_CHAR.
* regex.c (RE_CHAR_TO_MULTIBYTE):
* cmds.c (internal_self_insert):
* buffer.h (FETCH_CHAR_AS_MULTIBYTE): Use UNIBYTE_TO_CHAR.
Diffstat (limited to 'src')
-rw-r--r-- | src/ChangeLog | 22 | ||||
-rw-r--r-- | src/buffer.h | 2 | ||||
-rw-r--r-- | src/casefiddle.c | 2 | ||||
-rw-r--r-- | src/character.c | 7 | ||||
-rw-r--r-- | src/character.h | 13 | ||||
-rw-r--r-- | src/charset.c | 5 | ||||
-rw-r--r-- | src/cmds.c | 2 | ||||
-rw-r--r-- | src/editfns.c | 4 | ||||
-rw-r--r-- | src/fns.c | 8 | ||||
-rw-r--r-- | src/insdel.c | 8 | ||||
-rw-r--r-- | src/regex.c | 2 | ||||
-rw-r--r-- | src/search.c | 4 | ||||
-rw-r--r-- | src/syntax.c | 4 | ||||
-rw-r--r-- | src/term.c | 2 | ||||
-rw-r--r-- | src/xdisp.c | 6 |
15 files changed, 49 insertions, 42 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index aefe15108bb..06adb2d92c4 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,5 +1,27 @@ 2009-10-18 Stefan Monnier <monnier@iro.umontreal.ca> + Remove leftover table unibyte_to_multibyte_table. + * character.c (unibyte_to_multibyte_table): Remove. + (Funibyte_char_to_multibyte): Use MAKE_CHAR_MULTIBYTE. + * charset.c (init_charset_once): Don't init unibyte_to_multibyte_table. + * character.h (UNIBYTE_TO_CHAR): New macro. + (MAKE_CHAR_MULTIBYTE): Use it. + (unibyte_to_multibyte_table, unibyte_char_to_multibyte): Remove. + * xdisp.c (get_next_display_element): USE ASCII_CHAR_P. + (message_dolog, set_message_1): + * search.c (Freplace_match): + * editfns.c (Fcompare_buffer_substrings): + * fns.c (Fcompare_strings): Use MAKE_CHAR_MULTIBYTE. + (concat): + * insdel.c (copy_text, count_size_as_multibyte): + Use ASCII_CHAR_P and BYTE8_TO_CHAR. + * term.c (produce_glyphs): + * syntax.c (skip_chars): Use BYTE8_TO_CHAR. + * regex.c (RE_CHAR_TO_MULTIBYTE): + * cmds.c (internal_self_insert): + * buffer.h (FETCH_CHAR_AS_MULTIBYTE): Use UNIBYTE_TO_CHAR. + + * cmds.c (internal_self_insert): `c' is already in "multibyte" form. 2009-10-17 Dan Nicolaescu <dann@ics.uci.edu> diff --git a/src/buffer.h b/src/buffer.h index 7e6e8daeafd..2a04f49ea48 100644 --- a/src/buffer.h +++ b/src/buffer.h @@ -339,7 +339,7 @@ extern unsigned char *_fetch_multibyte_char_p; #define FETCH_CHAR_AS_MULTIBYTE(pos) \ (!NILP (current_buffer->enable_multibyte_characters) \ ? FETCH_MULTIBYTE_CHAR ((pos)) \ - : unibyte_to_multibyte_table[(FETCH_BYTE ((pos)))]) + : UNIBYTE_TO_CHAR (FETCH_BYTE ((pos)))) /* Macros for accessing a character or byte, diff --git a/src/casefiddle.c b/src/casefiddle.c index 7317f61346b..f01faa01198 100644 --- a/src/casefiddle.c +++ b/src/casefiddle.c @@ -90,7 +90,7 @@ casify_object (flag, obj) for (i = 0; i < size; i++) { c = SREF (obj, i); - MAKE_CHAR_MULTIBYTE (c); + MAKE_CHAR_MULTIBYTE (c); c1 = c; if (inword && flag != CASE_CAPITALIZE_UP) c = DOWNCASE (c); diff --git a/src/character.c b/src/character.c index 509a14789ad..e2896444c25 100644 --- a/src/character.c +++ b/src/character.c @@ -86,10 +86,6 @@ Lisp_Object Vscript_representative_chars; static Lisp_Object Qchar_script_table; Lisp_Object Vunicode_category_table; - -/* Mapping table from unibyte chars to multibyte chars. */ -int unibyte_to_multibyte_table[256]; - /* If character code C has modifier masks, reflect them to the @@ -325,8 +321,7 @@ DEFUN ("unibyte-char-to-multibyte", Funibyte_char_to_multibyte, c = XFASTINT (ch); if (c >= 0x100) error ("Not a unibyte character: %d", c); - if (c >= 0x80) - c = BYTE8_TO_CHAR (c); + MAKE_CHAR_MULTIBYTE (c); return make_number (c); } diff --git a/src/character.h b/src/character.h index 6f4bcdc6b02..7b6bcd1a5ae 100644 --- a/src/character.h +++ b/src/character.h @@ -62,6 +62,9 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ /* Return the character code for raw 8-bit byte BYTE. */ #define BYTE8_TO_CHAR(byte) ((byte) + 0x3FFF00) +#define UNIBYTE_TO_CHAR(byte) \ + (ASCII_BYTE_P (byte) ? (byte) : BYTE8_TO_CHAR (byte)) + /* Return the raw 8-bit byte for character C. */ #define CHAR_TO_BYTE8(c) \ (CHAR_BYTE8_P (c) \ @@ -79,14 +82,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ that corresponds to a raw 8-bit byte. */ #define CHAR_BYTE8_HEAD_P(byte) ((byte) == 0xC0 || (byte) == 0xC1) -/* Mapping table from unibyte chars to multibyte chars. */ -extern int unibyte_to_multibyte_table[256]; - -/* Convert the unibyte character C to the corresponding multibyte - character. If C can't be converted, return C. */ -#define unibyte_char_to_multibyte(c) \ - ((c) < 256 ? unibyte_to_multibyte_table[(c)] : (c)) - /* If C is not ASCII, make it unibyte. */ #define MAKE_CHAR_UNIBYTE(c) \ do { \ @@ -97,7 +92,7 @@ extern int unibyte_to_multibyte_table[256]; /* If C is not ASCII, make it multibyte. Assumes C < 256. */ #define MAKE_CHAR_MULTIBYTE(c) \ - (eassert ((c) >= 0 && (c) < 256), (c) = unibyte_to_multibyte_table[(c)]) + (eassert ((c) >= 0 && (c) < 256), (c) = UNIBYTE_TO_CHAR (c)) /* This is the maximum byte length of multibyte form. */ #define MAX_MULTIBYTE_LENGTH 5 diff --git a/src/charset.c b/src/charset.c index e4195de9ff2..7ca9240d74f 100644 --- a/src/charset.c +++ b/src/charset.c @@ -2331,11 +2331,6 @@ init_charset_once () charset_jisx0208_1978 = -1; charset_jisx0208 = -1; charset_ksc5601 = -1; - - for (i = 0; i < 128; i++) - unibyte_to_multibyte_table[i] = i; - for (; i < 256; i++) - unibyte_to_multibyte_table[i] = BYTE8_TO_CHAR (i); } #ifdef emacs diff --git a/src/cmds.c b/src/cmds.c index 9cb287b0296..19073dccf4a 100644 --- a/src/cmds.c +++ b/src/cmds.c @@ -503,7 +503,7 @@ internal_self_insert (c, noautofill) && PT > BEGV && (!NILP (current_buffer->enable_multibyte_characters) ? SYNTAX (XFASTINT (Fprevious_char ())) == Sword - : (SYNTAX (unibyte_char_to_multibyte (XFASTINT (Fprevious_char ()))) + : (SYNTAX (UNIBYTE_TO_CHAR (XFASTINT (Fprevious_char ()))) == Sword))) { int modiff = MODIFF; diff --git a/src/editfns.c b/src/editfns.c index e52c3c21954..859e3965824 100644 --- a/src/editfns.c +++ b/src/editfns.c @@ -2698,7 +2698,7 @@ determines whether case is significant or ignored. */) else { c1 = BUF_FETCH_BYTE (bp1, i1); - c1 = unibyte_char_to_multibyte (c1); + MAKE_CHAR_MULTIBYTE (c1); i1++; } @@ -2711,7 +2711,7 @@ determines whether case is significant or ignored. */) else { c2 = BUF_FETCH_BYTE (bp2, i2); - c2 = unibyte_char_to_multibyte (c2); + MAKE_CHAR_MULTIBYTE (c2); i2++; } diff --git a/src/fns.c b/src/fns.c index 7c3e04e818f..e1431251e24 100644 --- a/src/fns.c +++ b/src/fns.c @@ -297,7 +297,7 @@ If string STR1 is greater, the value is a positive number N; else { c1 = SREF (str1, i1++); - c1 = unibyte_char_to_multibyte (c1); + MAKE_CHAR_MULTIBYTE (c1); } if (STRING_MULTIBYTE (str2)) @@ -305,7 +305,7 @@ If string STR1 is greater, the value is a positive number N; else { c2 = SREF (str2, i2++); - c2 = unibyte_char_to_multibyte (c2); + MAKE_CHAR_MULTIBYTE (c2); } if (c1 == c2) @@ -703,10 +703,10 @@ concat (nargs, args, target_type, last_special) { XSETFASTINT (elt, SREF (this, thisindex)); thisindex++; if (some_multibyte - && XINT (elt) >= 0200 + && !ASCII_CHAR_P (XINT (elt)) && XINT (elt) < 0400) { - c = unibyte_char_to_multibyte (XINT (elt)); + c = BYTE8_TO_CHAR (XINT (elt)); XSETINT (elt, c); } } diff --git a/src/insdel.c b/src/insdel.c index eaf899c8a0e..b09bed66d55 100644 --- a/src/insdel.c +++ b/src/insdel.c @@ -666,9 +666,9 @@ copy_text (const unsigned char *from_addr, unsigned char *to_addr, { int c = *from_addr++; - if (c >= 0200) + if (!ASCII_CHAR_P (c)) { - c = unibyte_char_to_multibyte (c); + c = BYTE8_TO_CHAR (c); to_addr += CHAR_STRING (c, to_addr); nbytes--; } @@ -694,11 +694,11 @@ count_size_as_multibyte (const unsigned char *ptr, EMACS_INT nbytes) { unsigned int c = *ptr++; - if (c < 0200) + if (ASCII_CHAR_P (c)) outgoing_nbytes++; else { - c = unibyte_char_to_multibyte (c); + c = BYTE8_TO_CHAR (c); outgoing_nbytes += CHAR_BYTES (c); } } diff --git a/src/regex.c b/src/regex.c index 944ef4e0b66..0c9e137aca0 100644 --- a/src/regex.c +++ b/src/regex.c @@ -151,7 +151,7 @@ # define RE_STRING_CHAR_AND_LENGTH(p, s, len, multibyte) \ (multibyte ? (STRING_CHAR_AND_LENGTH (p, s, len)) : ((len) = 1, *(p))) -# define RE_CHAR_TO_MULTIBYTE(c) unibyte_to_multibyte_table[(c)] +# define RE_CHAR_TO_MULTIBYTE(c) UNIBYTE_TO_CHAR (c) # define RE_CHAR_TO_UNIBYTE(c) CHAR_TO_BYTE_SAFE (c) diff --git a/src/search.c b/src/search.c index 6d2f8cc6dbb..e6ae4b660b6 100644 --- a/src/search.c +++ b/src/search.c @@ -2759,7 +2759,7 @@ since only regular expressions have distinguished subexpressions. */) /* Note that we don't have to increment POS. */ c = SREF (newtext, pos_byte++); if (buf_multibyte) - c = unibyte_char_to_multibyte (c); + MAKE_CHAR_MULTIBYTE (c); } /* Either set ADD_STUFF and ADD_LEN to the text to put in SUBSTED, @@ -2781,7 +2781,7 @@ since only regular expressions have distinguished subexpressions. */) { c = SREF (newtext, pos_byte++); if (buf_multibyte) - c = unibyte_char_to_multibyte (c); + MAKE_CHAR_MULTIBYTE (c); } if (c == '&') diff --git a/src/syntax.c b/src/syntax.c index d84e62ea257..3c5a21de5c7 100644 --- a/src/syntax.c +++ b/src/syntax.c @@ -1555,14 +1555,14 @@ skip_chars (forwardp, string, lim, handle_iso_classes) bzero (fastmap + 0200, 0200); /* We are sure that this loop stops. */ for (i = 0200; ! fastmap2[i]; i++); - c = unibyte_char_to_multibyte (i); + c = BYTE8_TO_CHAR (i); fastmap[CHAR_LEADING_CODE (c)] = 1; range_start_byte = i; range_start_char = c; char_ranges = (int *) alloca (sizeof (int) * 128 * 2); for (i = 129; i < 0400; i++) { - c = unibyte_char_to_multibyte (i); + c = BYTE8_TO_CHAR (i); fastmap[CHAR_LEADING_CODE (c)] = 1; if (i - range_start_byte != c - range_start_char) { diff --git a/src/term.c b/src/term.c index d5855b4cbf6..9e18df3160e 100644 --- a/src/term.c +++ b/src/term.c @@ -1650,7 +1650,7 @@ produce_glyphs (it) if (unibyte_display_via_language_environment && (it->c >= 0240)) { - it->char_to_display = unibyte_char_to_multibyte (it->c); + it->char_to_display = BYTE8_TO_CHAR (it->c); it->pixel_width = CHAR_WIDTH (it->char_to_display); it->nglyphs = it->pixel_width; if (it->glyph_row) diff --git a/src/xdisp.c b/src/xdisp.c index 24826fa3b96..a750a1b73b5 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -5716,7 +5716,7 @@ get_next_display_element (it) } if (unibyte_display_via_language_environment - && it->c >= 0x80) + && !ASCII_CHAR_P (it->c)) decoded = DECODE_CHAR (unibyte, it->c); if (it->c >= 0x80 && ! NILP (Vnobreak_char_display)) @@ -7773,7 +7773,7 @@ message_dolog (m, nbytes, nlflag, multibyte) for (i = 0; i < nbytes; i++) { c = msg[i]; - c = unibyte_char_to_multibyte (c); + MAKE_CHAR_MULTIBYTE (c); char_bytes = CHAR_STRING (c, str); insert_1_both (str, 1, char_bytes, 1, 0, 0); } @@ -9079,7 +9079,7 @@ set_message_1 (a1, a2, nbytes, multibyte_p) for (i = 0; i < nbytes; i++) { c = msg[i]; - c = unibyte_char_to_multibyte (c); + MAKE_CHAR_MULTIBYTE (c); n = CHAR_STRING (c, str); insert_1_both (str, 1, n, 1, 0, 0); } |