From 8bdd0bf7853d4803c2949d3048574859ce243acd Mon Sep 17 00:00:00 2001 From: Michael Kifer Date: Sun, 10 Feb 2002 06:46:12 +0000 Subject: 2002-02-10 Michael Kifer * viper-util.el (viper-read-key-sequence): fixed so it'll read fast key sequences in emacs native mode (viper-events-to-keys): deleted * viper.el (describe-key, describe-key-briefly): get rid of viper-events-to-keys. * ediff-init.el (ediff-has-gutter-support): Steven Turnbull's patch. * ediff-wind.el (ediff-setup-control-frame): Use ediff-has-gutter-support. * ediff-util.el (ediff-dispose-of-variant-according-to-user): check if buff is alive. * ediff.el: typo in comment. --- lisp/ediff-init.el | 8 ++++++++ lisp/ediff-util.el | 3 ++- lisp/ediff-wind.el | 4 ++-- lisp/emulation/viper-util.el | 18 +++++++++--------- lisp/emulation/viper.el | 6 ++---- 5 files changed, 23 insertions(+), 16 deletions(-) (limited to 'lisp') diff --git a/lisp/ediff-init.el b/lisp/ediff-init.el index 729d6f76e1..ae6d05ab40 100644 --- a/lisp/ediff-init.el +++ b/lisp/ediff-init.el @@ -87,6 +87,14 @@ that Ediff doesn't know about.") nil ; emacs form )) + +(defun ediff-has-gutter-support-p () + (ediff-cond-compile-for-xemacs-or-emacs + (and (featurep 'gutter) (console-on-window-system-p)) ; xemacs form + nil ; emacs form + )) + + (defun ediff-use-toolbar-p () (and (ediff-has-toolbar-support-p) ;Can it do it ? (boundp 'ediff-use-toolbar-p) diff --git a/lisp/ediff-util.el b/lisp/ediff-util.el index c7f0be3638..e1dbdc7f33 100644 --- a/lisp/ediff-util.el +++ b/lisp/ediff-util.el @@ -2628,7 +2628,8 @@ delete this buffer in another session as well." ;; BUFF is the buffer, BUFF-TYPE is either 'A, or 'B, 'C, 'Ancestor (defun ediff-dispose-of-variant-according-to-user (buff bufftype ask keep-variants) ;; if this is indirect buffer, kill it and substitute with direct buf - (if (ediff-with-current-buffer buff ediff-temp-indirect-buffer) + (if (and (ediff-buffer-live-p buff) + (ediff-with-current-buffer buff ediff-temp-indirect-buffer)) (let ((wind (ediff-get-visible-buffer-window buff)) (base (buffer-base-buffer buff)) (modified-p (buffer-modified-p buff))) diff --git a/lisp/ediff-wind.el b/lisp/ediff-wind.el index ede3e569ae..8d8334705d 100644 --- a/lisp/ediff-wind.el +++ b/lisp/ediff-wind.el @@ -968,8 +968,8 @@ into icons, regardless of the window manager." (if (ediff-has-toolbar-support-p) (ediff-cond-compile-for-xemacs-or-emacs (progn ; xemacs - (set-specifier top-toolbar-height (list ctl-frame 2)) - (set-specifier top-gutter (list ctl-frame nil)) + (if (ediff-has-gutter-support-p) + (set-specifier top-gutter (list ctl-frame nil))) (sit-for 0) (set-specifier top-toolbar-height (list ctl-frame 0)) ;;(set-specifier bottom-toolbar-height (list ctl-frame 0)) diff --git a/lisp/emulation/viper-util.el b/lisp/emulation/viper-util.el index 817db016ef..bb748fcadf 100644 --- a/lisp/emulation/viper-util.el +++ b/lisp/emulation/viper-util.el @@ -925,12 +925,6 @@ )) -(defsubst viper-events-to-keys (events) - (viper-cond-compile-for-xemacs-or-emacs - (events-to-keys events) ; xemacs - events ; emacs - )) - ;; it is suggested that an event must be copied before it is assigned to ;; last-command-event in XEmacs @@ -969,15 +963,21 @@ (elt (listify-key-sequence keyseq) 0))) (if (viper-ESC-event-p event) (let (unread-command-events) - (viper-set-unread-command-events keyseq) (if (viper-fast-keysequence-p) (let ((viper-vi-global-user-minor-mode nil) (viper-vi-local-user-minor-mode nil) + (viper-vi-intercept-minor-mode nil) + (viper-insert-intercept-minor-mode nil) (viper-replace-minor-mode nil) ; actually unnecessary (viper-insert-global-user-minor-mode nil) (viper-insert-local-user-minor-mode nil)) - (setq keyseq (read-key-sequence prompt continue-echo))) - (setq keyseq (read-key-sequence prompt continue-echo))))) + ;; Note: set unread-command-events only after testing for fast + ;; keysequence. Otherwise, viper-fast-keysequence-p will be + ;; always t -- whether there is anything after ESC or not + (viper-set-unread-command-events keyseq) + (setq keyseq (read-key-sequence nil))) + (viper-set-unread-command-events keyseq) + (setq keyseq (read-key-sequence nil))))) keyseq)) diff --git a/lisp/emulation/viper.el b/lisp/emulation/viper.el index 65c426da53..a0de2e2727 100644 --- a/lisp/emulation/viper.el +++ b/lisp/emulation/viper.el @@ -982,14 +982,12 @@ remains buffer-local." (defadvice describe-key (before viper-read-keyseq-ad protect activate) "Force to read key via `viper-read-key-sequence'." - (interactive (list (viper-events-to-keys - (viper-read-key-sequence "Describe key: "))))) + (interactive (list (viper-read-key-sequence "Describe key: ")))) (defadvice describe-key-briefly (before viper-read-keyseq-ad protect activate) "Force to read key via `viper-read-key-sequence'." - (interactive (list (viper-events-to-keys - (viper-read-key-sequence "Describe key briefly: "))))) + (interactive (list (viper-read-key-sequence "Describe key briefly: ")))) (defadvice find-file (before viper-add-suffix-advice activate) -- cgit v1.2.3