changeset 20615:ddb1eec37783

(internal_self_insert): Simplify handling of c2; avoid testing enable-multibyte-characters. (internal_self_insert): Use make_multibyte_string.
author Richard M. Stallman <rms@gnu.org>
date Fri, 09 Jan 1998 23:04:20 +0000
parents a4800f9842e4
children b382c9ca6c39
files src/cmds.c
diffstat 1 files changed, 7 insertions(+), 9 deletions(-) [+]
line wrap: on
line diff
--- a/src/cmds.c	Fri Jan 09 23:03:25 1998 +0000
+++ b/src/cmds.c	Fri Jan 09 23:04:20 1998 +0000
@@ -372,11 +372,10 @@
 	 we fill columns with spaces, if C is wider than C2, we delete
 	 C2 and several characters following C2.  */
 
-      /* A code at `point'.  Since this is checked only against
-         NEWLINE and TAB, we don't need a character code but only the
-         first byte of multi-byte form.  */
-      unsigned char c2 = FETCH_BYTE (PT_BYTE);
-      /* A column the cursor should be placed at after this insertion.
+      /* This is the character after point.  */
+      int c2 = FETCH_CHAR (PT_BYTE);
+
+      /* Column the cursor should be placed at after this insertion.
          The correct value should be calculated only when necessary.  */
       int target_clm = 0;
 
@@ -391,9 +390,8 @@
 	      && ! (c2 == '\t'
 		    && XINT (current_buffer->tab_width) > 0
 		    && XFASTINT (current_buffer->tab_width) < 20
-		    && ((NILP (current_buffer->enable_multibyte_characters)
-			 ? (target_clm = current_column () + 1)
-			 : (target_clm = current_column () + WIDTH_BY_CHAR_HEAD (str[0]))),
+		    && (target_clm = (current_column () 
+				      + XINT (Fchar_width (make_number (c2)))),
 			target_clm % XFASTINT (current_buffer->tab_width)))))
 	{
 	  int pos = PT;
@@ -453,7 +451,7 @@
 
   if (chars_to_delete)
     {
-      string = make_string (str, len);
+      string = make_multibyte_string (str, 1, len);
       if (spaces_to_insert)
 	{
 	  tem = Fmake_string (make_number (spaces_to_insert),