From 7543131adb9deaf4950f781ec75bba4d02957f4e Mon Sep 17 00:00:00 2001 From: "Richard M. Stallman" Date: Mon, 15 Sep 1997 06:32:36 +0000 Subject: [PATCH] (quail-terminate-translation): If quail-overlay is not an overlay, don't mess with it. --- lisp/international/quail.el | 39 +++++++++++++++++++------------------ 1 file changed, 20 insertions(+), 19 deletions(-) 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) -- 2.39.5