(Ftranslate_region): Check the buffer multibyteness.
authorKenichi Handa <handa@m17n.org>
Fri, 12 Nov 1999 00:09:03 +0000 (00:09 +0000)
committerKenichi Handa <handa@m17n.org>
Fri, 12 Nov 1999 00:09:03 +0000 (00:09 +0000)
src/editfns.c

index d648fd2..f6f30ee 100644 (file)
@@ -2425,6 +2425,7 @@ It returns the number of characters changed.")
   int cnt;                     /* Number of changes made. */
   int size;                    /* Size of translate table. */
   int pos;
+  int multibyte = !NILP (current_buffer->enable_multibyte_characters);
 
   validate_region (&start, &end);
   CHECK_STRING (table, 2);
@@ -2445,7 +2446,10 @@ It returns the number of characters changed.")
       int oc;
       int pos_byte_next;
 
-      oc = STRING_CHAR_AND_LENGTH (p, stop - pos_byte, len);
+      if (multibyte)
+       oc = STRING_CHAR_AND_LENGTH (p, stop - pos_byte, len);
+      else
+       oc = *p, len = 1;
       pos_byte_next = pos_byte + len;
       if (oc < size && len == 1)
        {