]> git.eshelyaron.com Git - emacs.git/commitdiff
(auto-compose-chars): Fix previous change.
authorKenichi Handa <handa@m17n.org>
Tue, 25 Nov 2003 08:07:41 +0000 (08:07 +0000)
committerKenichi Handa <handa@m17n.org>
Tue, 25 Nov 2003 08:07:41 +0000 (08:07 +0000)
lisp/composite.el

index c4edc14cce293b67d84903cfe7e423b930994daa..4f8f1cb4ce28b012c581218b11f8d598c41f987e 100644 (file)
@@ -405,16 +405,27 @@ In that case, compose characters in the string.
 
 This function is the default value of `auto-composition-function' (which see)."
   (save-buffer-state nil
-    (save-match-data
-      (let ((start pos)
-           (limit (if string (length string) (point-max)))
-           ch func newpos)
-       (setq limit (or (text-property-any pos limit 'auto-composed t string)
-                       limit))
-       (catch 'tag
-         (if string
+    (save-excursion
+      (save-match-data
+       (let ((start pos)
+             (limit (if string (length string) (point-max)))
+             ch func newpos)
+         (setq limit (or (text-property-any pos limit 'auto-composed t string)
+                         limit))
+         (catch 'tag
+           (if string
+               (while (< pos limit)
+                 (setq ch (aref string pos))
+                 (if (= ch ?\n)
+                     (throw 'tag nil))
+                 (setq func (aref composition-function-table ch))
+                 (if (and (functionp func)
+                          (setq newpos (funcall func pos string))
+                          (> newpos pos))
+                     (setq pos newpos)
+                   (setq pos (1+ pos))))
              (while (< pos limit)
-               (setq ch (aref string pos))
+               (setq ch (char-after pos))
                (if (= ch ?\n)
                    (throw 'tag nil))
                (setq func (aref composition-function-table ch))
@@ -422,18 +433,8 @@ This function is the default value of `auto-composition-function' (which see)."
                         (setq newpos (funcall func pos string))
                         (> newpos pos))
                    (setq pos newpos)
-                 (setq pos (1+ pos))))
-           (while (< pos limit)
-             (setq ch (char-after pos))
-             (if (= ch ?\n)
-                 (throw 'tag nil))
-             (setq func (aref composition-function-table ch))
-             (if (and (functionp func)
-                      (setq newpos (funcall func pos string))
-                      (> newpos pos))
-                 (setq pos newpos)
-               (setq pos (1+ pos))))))
-       (put-text-property start pos 'auto-composed t string)))))
+                 (setq pos (1+ pos))))))
+         (put-text-property start pos 'auto-composed t string))))))
 
 (setq auto-composition-function 'auto-compose-chars)