emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] Changes to emacs/lisp/international/iso-acc.el


From: Kim F . Storm
Subject: [Emacs-diffs] Changes to emacs/lisp/international/iso-acc.el
Date: Thu, 24 Feb 2005 08:56:30 -0500

Index: emacs/lisp/international/iso-acc.el
diff -c emacs/lisp/international/iso-acc.el:1.58 
emacs/lisp/international/iso-acc.el:1.59
*** emacs/lisp/international/iso-acc.el:1.58    Mon Sep  1 15:45:28 2003
--- emacs/lisp/international/iso-acc.el Thu Feb 24 13:56:29 2005
***************
*** 290,295 ****
--- 290,305 ----
        (iso-accents-compose prompt)
      (vector last-input-char)))
  
+ 
+ ;; The iso-accents-compose function is called deep inside Emacs' read
+ ;; key sequence machinery, so the call to read-event below actually
+ ;; recurses into that machinery.  Doing that does not cause any
+ ;; problem on its own, but read-event will have marked the window's
+ ;; display matrix to be accurate -- which is broken by the subsequent
+ ;; call to delete-region.  Therefore, we must call force-window-update
+ ;; after delete-region to explicitly clear the accurate state of the
+ ;; window's display matrix.
+ 
  (defun iso-accents-compose (prompt)
    (let* ((first-char last-input-char)
         (list (assq first-char iso-accents-list))
***************
*** 308,314 ****
                            (read-event))
                        (insert first-char)
                        (prog1 (read-event)
!                         (delete-region (1- (point)) (point)))))
         (entry (cdr (assq second-char list))))
      (if entry
        ;; Found it: return the mapped char
--- 318,326 ----
                            (read-event))
                        (insert first-char)
                        (prog1 (read-event)
!                         (delete-region (1- (point)) (point))
!                         ;; Display is no longer up-to-date.
!                         (force-window-update (selected-window)))))
         (entry (cdr (assq second-char list))))
      (if entry
        ;; Found it: return the mapped char




reply via email to

[Prev in Thread] Current Thread [Next in Thread]