From: Richard M. Stallman Date: Mon, 15 Sep 1997 06:32:36 +0000 (+0000) Subject: (quail-terminate-translation): X-Git-Tag: emacs-20.1~15 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=7543131adb9deaf4950f781ec75bba4d02957f4e;p=emacs.git (quail-terminate-translation): If quail-overlay is not an overlay, don't mess with it. --- diff --git a/lisp/international/quail.el b/lisp/international/quail.el index bfc77ab0876..1a344ec3182 100644 --- a/lisp/international/quail.el +++ b/lisp/international/quail.el @@ -1035,26 +1035,27 @@ The returned value is a Quail map specific to KEY." (defun quail-terminate-translation () "Terminate the translation of the current key." - (let ((start (overlay-start quail-overlay))) - (if (and start - (< start (overlay-end quail-overlay))) - ;; Here we simulate self-insert-command. - (let ((seq (string-to-sequence - (buffer-substring (overlay-start quail-overlay) - (overlay-end quail-overlay)) - 'list)) - last-command-char) - (goto-char start) - (quail-delete-region) - (setq last-command-char (car seq)) - (self-insert-command (or quail-prefix-arg 1)) - (setq quail-prefix-arg nil) - (setq seq (cdr seq)) - (while seq + (when (overlayp quail-overlay) + (let ((start (overlay-start quail-overlay))) + (if (and start + (< start (overlay-end quail-overlay))) + ;; Here we simulate self-insert-command. + (let ((seq (string-to-sequence + (buffer-substring (overlay-start quail-overlay) + (overlay-end quail-overlay)) + 'list)) + last-command-char) + (goto-char start) + (quail-delete-region) (setq last-command-char (car seq)) - (self-insert-command 1) - (setq seq (cdr seq)))))) - (delete-overlay quail-overlay) + (self-insert-command (or quail-prefix-arg 1)) + (setq quail-prefix-arg nil) + (setq seq (cdr seq)) + (while seq + (setq last-command-char (car seq)) + (self-insert-command 1) + (setq seq (cdr seq)))))) + (delete-overlay quail-overlay)) (if (buffer-live-p quail-guidance-buf) (save-excursion (set-buffer quail-guidance-buf)