]> git.eshelyaron.com Git - emacs.git/commitdiff
(auto-compose-chars): Argument font-object changed
authorKenichi Handa <handa@m17n.org>
Sat, 1 Dec 2007 04:19:31 +0000 (04:19 +0000)
committerKenichi Handa <handa@m17n.org>
Sat, 1 Dec 2007 04:19:31 +0000 (04:19 +0000)
to window.

lisp/composite.el

index 278b7e3bf620ebc5c4fcdfd96c858d6cc9bfe918..5ee62412b627ae44da46e8d990a45f65e6e83ab2 100644 (file)
@@ -470,11 +470,11 @@ on a terminal.")
 (defvar auto-compose-current-font nil
   "The current font-object used for characters being composed automatically.")
 
-(defun auto-compose-chars (pos string font-object)
+(defun auto-compose-chars (pos string window)
   "Compose characters after the buffer position POS.
 If STRING is non-nil, it is a string, and POS is an index into the string.
 In that case, compose characters in the string.
-FONT-OBJECT is a font selected for the character at POS.
+WINDOW is a window displaying the current buffer.
 
 This function is the default value of `auto-composition-function' (which see)."
   (save-buffer-state nil
@@ -483,10 +483,10 @@ This function is the default value of `auto-composition-function' (which see)."
        (condition-case nil
            (let ((start pos)
                  (limit (if string (length string) (point-max)))
-                 (auto-compose-current-font font-object)
                  (table (if (display-graphic-p)
                             composition-function-table
                           terminal-composition-function-table))
+                 auto-compose-current-font
                  ch func newpos)
              (setq limit
                    (or (text-property-any pos limit 'auto-composed t string)
@@ -500,6 +500,9 @@ This function is the default value of `auto-composition-function' (which see)."
                                (throw 'tag (1+ pos)))
                            (setq func (aref table ch))
                            (if (and (functionp func)
+                                    (setq auto-compose-current-font
+                                          (and window
+                                               (font-at pos window string)))
                                     (setq newpos (funcall func pos string))
                                     (> newpos pos))
                                (setq pos newpos)
@@ -510,6 +513,8 @@ This function is the default value of `auto-composition-function' (which see)."
                              (throw 'tag (1+ pos)))
                          (setq func (aref table ch))
                          (if (and (functionp func)
+                                  (setq auto-compose-current-font
+                                        (and window (font-at pos window)))
                                   (setq newpos (funcall func pos string))
                                   (> newpos pos))
                              (setq pos newpos)