changeset 105661:bac26aa40069

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.
author Stefan Monnier <monnier@iro.umontreal.ca>
date Sun, 18 Oct 2009 03:08:32 +0000
parents c79f335459cf
children 5784286c9609
files src/ChangeLog src/buffer.h src/casefiddle.c src/character.c src/character.h src/charset.c src/cmds.c src/editfns.c src/fns.c src/insdel.c src/regex.c src/search.c src/syntax.c src/term.c src/xdisp.c
diffstat 15 files changed, 49 insertions(+), 42 deletions(-) [+]
line wrap: on
line diff
--- a/src/ChangeLog	Sun Oct 18 02:17:57 2009 +0000
+++ b/src/ChangeLog	Sun Oct 18 03:08:32 2009 +0000
@@ -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>
--- a/src/buffer.h	Sun Oct 18 02:17:57 2009 +0000
+++ b/src/buffer.h	Sun Oct 18 03:08:32 2009 +0000
@@ -339,7 +339,7 @@
 #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,
--- a/src/casefiddle.c	Sun Oct 18 02:17:57 2009 +0000
+++ b/src/casefiddle.c	Sun Oct 18 03:08:32 2009 +0000
@@ -90,7 +90,7 @@
       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);
--- a/src/character.c	Sun Oct 18 02:17:57 2009 +0000
+++ b/src/character.c	Sun Oct 18 03:08:32 2009 +0000
@@ -86,10 +86,6 @@
 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 @@
   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);
 }
 
--- a/src/character.h	Sun Oct 18 02:17:57 2009 +0000
+++ b/src/character.h	Sun Oct 18 03:08:32 2009 +0000
@@ -62,6 +62,9 @@
 /* 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 @@
    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 @@
 
 /* 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
--- a/src/charset.c	Sun Oct 18 02:17:57 2009 +0000
+++ b/src/charset.c	Sun Oct 18 03:08:32 2009 +0000
@@ -2331,11 +2331,6 @@
   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
--- a/src/cmds.c	Sun Oct 18 02:17:57 2009 +0000
+++ b/src/cmds.c	Sun Oct 18 03:08:32 2009 +0000
@@ -503,7 +503,7 @@
       && 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;
--- a/src/editfns.c	Sun Oct 18 02:17:57 2009 +0000
+++ b/src/editfns.c	Sun Oct 18 03:08:32 2009 +0000
@@ -2698,7 +2698,7 @@
       else
 	{
 	  c1 = BUF_FETCH_BYTE (bp1, i1);
-	  c1 = unibyte_char_to_multibyte (c1);
+	  MAKE_CHAR_MULTIBYTE (c1);
 	  i1++;
 	}
 
@@ -2711,7 +2711,7 @@
       else
 	{
 	  c2 = BUF_FETCH_BYTE (bp2, i2);
-	  c2 = unibyte_char_to_multibyte (c2);
+	  MAKE_CHAR_MULTIBYTE (c2);
 	  i2++;
 	}
 
--- a/src/fns.c	Sun Oct 18 02:17:57 2009 +0000
+++ b/src/fns.c	Sun Oct 18 03:08:32 2009 +0000
@@ -297,7 +297,7 @@
       else
 	{
 	  c1 = SREF (str1, i1++);
-	  c1 = unibyte_char_to_multibyte (c1);
+	  MAKE_CHAR_MULTIBYTE (c1);
 	}
 
       if (STRING_MULTIBYTE (str2))
@@ -305,7 +305,7 @@
       else
 	{
 	  c2 = SREF (str2, i2++);
-	  c2 = unibyte_char_to_multibyte (c2);
+	  MAKE_CHAR_MULTIBYTE (c2);
 	}
 
       if (c1 == c2)
@@ -703,10 +703,10 @@
 		  {
 		    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);
 		      }
 		  }
--- a/src/insdel.c	Sun Oct 18 02:17:57 2009 +0000
+++ b/src/insdel.c	Sun Oct 18 03:08:32 2009 +0000
@@ -666,9 +666,9 @@
 	{
 	  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 @@
     {
       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);
 	}
     }
--- a/src/regex.c	Sun Oct 18 02:17:57 2009 +0000
+++ b/src/regex.c	Sun Oct 18 03:08:32 2009 +0000
@@ -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)
 
--- a/src/search.c	Sun Oct 18 02:17:57 2009 +0000
+++ b/src/search.c	Sun Oct 18 03:08:32 2009 +0000
@@ -2759,7 +2759,7 @@
 	      /* 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 @@
 		{
 		  c = SREF (newtext, pos_byte++);
 		  if (buf_multibyte)
-		    c = unibyte_char_to_multibyte (c);
+		    MAKE_CHAR_MULTIBYTE (c);
 		}
 
 	      if (c == '&')
--- a/src/syntax.c	Sun Oct 18 02:17:57 2009 +0000
+++ b/src/syntax.c	Sun Oct 18 03:08:32 2009 +0000
@@ -1555,14 +1555,14 @@
 	  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)
 		{
--- a/src/term.c	Sun Oct 18 02:17:57 2009 +0000
+++ b/src/term.c	Sun Oct 18 03:08:32 2009 +0000
@@ -1650,7 +1650,7 @@
       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)
--- a/src/xdisp.c	Sun Oct 18 02:17:57 2009 +0000
+++ b/src/xdisp.c	Sun Oct 18 03:08:32 2009 +0000
@@ -5716,7 +5716,7 @@
 	    }
 
 	  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 @@
 	  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 @@
 	  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);
 	    }