]> code.delx.au - gnu-emacs/blobdiff - src/abbrev.c
Merge from emacs--devo--0
[gnu-emacs] / src / abbrev.c
index 6447c4500566f7051a1bf8dc4ff420e93c4bb22b..dd075364507698f1d66bbe103fd8160801015c66 100644 (file)
@@ -27,7 +27,7 @@ Boston, MA 02110-1301, 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.
@@ -470,9 +470,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);