]> code.delx.au - gnu-emacs/blobdiff - src/abbrev.c
*** empty log message ***
[gnu-emacs] / src / abbrev.c
index dabc03b2a556f915693caf7971b4f19c39a77543..e3e0e28210b8e803aea4a901b2b1c81988efd713 100644 (file)
@@ -27,7 +27,7 @@ Boston, MA 02111-1307, USA.  */
 #include "commands.h"
 #include "buffer.h"
 #include "window.h"
-#include "charset.h"
+#include "character.h"
 #include "syntax.h"
 
 /* An abbrev table is an obarray.
@@ -385,9 +385,15 @@ Returns the abbrev symbol, if expansion took place.  */)
          int pos = wordstart_byte;
 
          /* Find the initial.  */
-         while (pos < PT_BYTE
-                && SYNTAX (*BUF_BYTE_ADDRESS (current_buffer, pos)) != Sword)
-           pos++;
+         if (multibyte)
+           while (pos < PT_BYTE
+                  && SYNTAX (FETCH_MULTIBYTE_CHAR (pos)) != Sword)
+             INC_POS (pos);
+         else
+           while (pos < PT_BYTE
+                  && (SYNTAX (*BUF_BYTE_ADDRESS (current_buffer, pos))
+                      != Sword))
+             pos++;
 
          /* Change just that.  */
          pos = BYTE_TO_CHAR (pos);