mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2025-02-05 20:43:08 +00:00
2009-11-22 Michael Kifer <kifer@cs.stonybrook.edu>
* viper-cmd.el: use viper-last-command-char instead of last-command-char/last-command-event. (viper-prefix-arg-value): do correct conversion of event-char for XEmacs. * viper-util.el, viper.el: use viper-last-command-char instead of last-command-char/last-command-event. * ediff-init.el, ediff-mult.el, ediff-util.el: relpace last-command-char and last-command-event with (ediff-last-command-char) everywhere. * ediff-vers.el (ediff-rcs-get-output-buffer): make sure the buffer is created in fundamental mode. * ediff.el (ediff-version): revert the change of interactive-p to called-interactively-p.
This commit is contained in:
parent
5ea5dbc925
commit
433d9ace74
@ -1,3 +1,22 @@
|
||||
2009-11-22 Michael Kifer <kifer@cs.stonybrook.edu>
|
||||
|
||||
* viper-cmd.el: use viper-last-command-char instead of
|
||||
last-command-char/last-command-event.
|
||||
(viper-prefix-arg-value): do correct conversion of event-char for
|
||||
XEmacs.
|
||||
|
||||
* viper-util.el, viper.el: use viper-last-command-char instead of
|
||||
last-command-char/last-command-event.
|
||||
|
||||
* ediff-init.el, ediff-mult.el, ediff-util.el: relpace
|
||||
last-command-char and last-command-event with (ediff-last-command-char) everywhere.
|
||||
|
||||
* ediff-vers.el (ediff-rcs-get-output-buffer): make sure the buffer is
|
||||
created in fundamental mode.
|
||||
|
||||
* ediff.el (ediff-version): revert the change of interactive-p to
|
||||
called-interactively-p.
|
||||
|
||||
2009-11-22 Jay Belanger <jay.p.belanger@gmail.com>
|
||||
|
||||
* calc.texi (Radix modes): Discuss alternate bases for two's complement
|
||||
|
@ -1551,6 +1551,9 @@ This default should work without changes."
|
||||
(if (eventp event-or-key) (event-key event-or-key) event-or-key)
|
||||
event-or-key))
|
||||
|
||||
(defun ediff-last-command-char ()
|
||||
(ediff-event-key last-command-event))
|
||||
|
||||
|
||||
(defsubst ediff-frame-iconified-p (frame)
|
||||
(and (ediff-window-display-p) (frame-live-p frame)
|
||||
|
@ -2342,10 +2342,10 @@ If this is a session registry buffer then just bury it."
|
||||
This is used only for sessions that involve 2 or 3 files at the same time.
|
||||
ACTION is an optional argument that can be ?h, ?m, ?=, to mark for hiding, mark
|
||||
for operation, or simply indicate which are equal files. If it is nil, then
|
||||
`last-command-event' is used to decide which action to take."
|
||||
`(ediff-last-command-char)' is used to decide which action to take."
|
||||
(interactive)
|
||||
(if (null action)
|
||||
(setq action last-command-event))
|
||||
(setq action (ediff-last-command-char)))
|
||||
(let ((list (cdr ediff-meta-list))
|
||||
marked1 marked2 marked3
|
||||
fileinfo1 fileinfo2 fileinfo3 elt)
|
||||
|
@ -1011,7 +1011,7 @@ of the current buffer."
|
||||
(interactive)
|
||||
(ediff-barf-if-not-control-buffer)
|
||||
(let ((ctl-buf (if (null buf) (current-buffer)))
|
||||
(buf-type (ediff-char-to-buftype last-command-event)))
|
||||
(buf-type (ediff-char-to-buftype (ediff-last-command-char))))
|
||||
(or buf (ediff-recenter))
|
||||
(or buf
|
||||
(setq buf (ediff-get-buffer buf-type)))
|
||||
@ -1513,7 +1513,7 @@ the one half of the height of window-A."
|
||||
(error ediff-KILLED-VITAL-BUFFER))
|
||||
|
||||
(ediff-operate-on-windows
|
||||
(if (memq last-command-event '(?v ?\C-v))
|
||||
(if (memq (ediff-last-command-char) '(?v ?\C-v))
|
||||
'scroll-up
|
||||
'scroll-down)
|
||||
;; calculate argument to scroll-up/down
|
||||
@ -1561,7 +1561,7 @@ the width of the A/B/C windows."
|
||||
;; interactively so that they set the window's min_hscroll.
|
||||
;; Otherwise, automatic hscrolling will undo the effect of
|
||||
;; hscrolling.
|
||||
(if (= last-command-event ?<)
|
||||
(if (= (ediff-last-command-char) ?<)
|
||||
(lambda (arg)
|
||||
(let ((prefix-arg arg))
|
||||
(call-interactively 'scroll-left)))
|
||||
@ -1825,7 +1825,7 @@ With a prefix argument, synchronize all files around the current point position
|
||||
in the specified buffer."
|
||||
(interactive "P")
|
||||
(ediff-barf-if-not-control-buffer)
|
||||
(let* ((buf-type (ediff-char-to-buftype last-command-event))
|
||||
(let* ((buf-type (ediff-char-to-buftype (ediff-last-command-char)))
|
||||
(buffer (ediff-get-buffer buf-type))
|
||||
(pt (ediff-with-current-buffer buffer (point)))
|
||||
(diff-no (ediff-diff-at-point buf-type nil (if arg 'after)))
|
||||
@ -2161,13 +2161,13 @@ ARG is a prefix argument. If nil, copy the current difference region."
|
||||
"Restore ARGth diff from `ediff-killed-diffs-alist'.
|
||||
ARG is a prefix argument. If ARG is nil, restore the current-difference.
|
||||
If the second optional argument, a character, is given, use it to
|
||||
determine the target buffer instead of last-command-event"
|
||||
determine the target buffer instead of (ediff-last-command-char)"
|
||||
(interactive "P")
|
||||
(ediff-barf-if-not-control-buffer)
|
||||
(if (numberp arg)
|
||||
(ediff-jump-to-difference arg))
|
||||
(ediff-pop-diff ediff-current-difference
|
||||
(ediff-char-to-buftype (or key last-command-event)))
|
||||
(ediff-char-to-buftype (or key (ediff-last-command-char))))
|
||||
;; recenter with rehighlighting, but no messages
|
||||
(let (ediff-verbose-p)
|
||||
(ediff-recenter)))
|
||||
@ -2191,13 +2191,13 @@ a regular expression typed in by the user."
|
||||
(cond
|
||||
((or (and (eq ediff-skip-diff-region-function
|
||||
ediff-focus-on-regexp-matches-function)
|
||||
(eq last-command-event ?f))
|
||||
(eq (ediff-last-command-char) ?f))
|
||||
(and (eq ediff-skip-diff-region-function
|
||||
ediff-hide-regexp-matches-function)
|
||||
(eq last-command-event ?h)))
|
||||
(eq (ediff-last-command-char) ?h)))
|
||||
(message "Selective browsing by regexp turned off")
|
||||
(setq ediff-skip-diff-region-function 'ediff-show-all-diffs))
|
||||
((eq last-command-event ?h)
|
||||
((eq (ediff-last-command-char) ?h)
|
||||
(setq ediff-skip-diff-region-function ediff-hide-regexp-matches-function
|
||||
regexp-A
|
||||
(read-string
|
||||
@ -2235,7 +2235,7 @@ a regular expression typed in by the user."
|
||||
(or (string= regexp-B "") (setq ediff-regexp-hide-B regexp-B))
|
||||
(or (string= regexp-C "") (setq ediff-regexp-hide-C regexp-C)))
|
||||
|
||||
((eq last-command-event ?f)
|
||||
((eq (ediff-last-command-char) ?f)
|
||||
(setq ediff-skip-diff-region-function
|
||||
ediff-focus-on-regexp-matches-function
|
||||
regexp-A
|
||||
@ -3301,10 +3301,10 @@ Without an argument, it saves customized diff argument, if available
|
||||
(ediff-barf-if-not-control-buffer)
|
||||
(ediff-compute-custom-diffs-maybe)
|
||||
(ediff-with-current-buffer
|
||||
(cond ((memq last-command-event '(?a ?b ?c))
|
||||
(cond ((memq (ediff-last-command-char) '(?a ?b ?c))
|
||||
(ediff-get-buffer
|
||||
(ediff-char-to-buftype last-command-event)))
|
||||
((eq last-command-event ?d)
|
||||
(ediff-char-to-buftype (ediff-last-command-char))))
|
||||
((eq (ediff-last-command-char) ?d)
|
||||
(message "Saving diff output ...")
|
||||
(sit-for 1) ; let the user see the message
|
||||
(cond ((and arg (ediff-buffer-live-p ediff-diff-buffer))
|
||||
|
@ -136,7 +136,8 @@ comparison or merge operations are being performed."
|
||||
;; Optional NAME is name to use instead of `*RCS-output*'.
|
||||
;; This is a modified version from rcs.el v1.1. I use it here to make
|
||||
;; Ediff immune to changes in rcs.el
|
||||
(let ((buf (get-buffer-create name)))
|
||||
(let* ((default-major-mode 'fundamental-mode) ; no frills!
|
||||
(buf (get-buffer-create name)))
|
||||
(with-current-buffer buf
|
||||
(setq buffer-read-only nil
|
||||
default-directory (file-name-directory (expand-file-name file)))
|
||||
|
@ -1451,7 +1451,9 @@ Uses `vc.el' or `rcs.el' depending on `ediff-version-control-package'."
|
||||
"Return string describing the version of Ediff.
|
||||
When called interactively, displays the version."
|
||||
(interactive)
|
||||
(if (called-interactively-p 'interactive)
|
||||
;; called-interactively-p - not in XEmacs
|
||||
;; (if (called-interactively-p 'interactive)
|
||||
(if (interactive-p)
|
||||
(message "%s" (ediff-version))
|
||||
(format "Ediff %s of %s" ediff-version ediff-date)))
|
||||
|
||||
|
@ -719,7 +719,7 @@
|
||||
ARG is used as the prefix value for the executed command. If
|
||||
EVENTS is a list of events, which become the beginning of the command."
|
||||
(interactive "P")
|
||||
(if (viper= last-command-event ?\\)
|
||||
(if (viper= (viper-last-command-char) ?\\)
|
||||
(message "Switched to EMACS state for the next command..."))
|
||||
(viper-escape-to-state arg events 'emacs-state))
|
||||
|
||||
@ -1181,7 +1181,10 @@ as a Meta key and any number of multiple escapes is allowed."
|
||||
((eq event-char 'delete) (setq event-char ?\C-?))
|
||||
((eq event-char 'backspace) (setq event-char ?\C-h))
|
||||
((eq event-char 'space) (setq event-char ?\ )))
|
||||
(setq last-command-event (or com event-char))
|
||||
(setq last-command-event
|
||||
(if (featurep 'xemacs)
|
||||
(character-to-event (or com event-char))
|
||||
(or com event-char)))
|
||||
(setq func (viper-exec-form-in-vi
|
||||
`(key-binding (char-to-string ,event-char))))
|
||||
(funcall func prefix-arg)
|
||||
@ -1311,7 +1314,7 @@ as a Meta key and any number of multiple escapes is allowed."
|
||||
(interactive "P")
|
||||
(viper-leave-region-active)
|
||||
(viper-prefix-arg-value
|
||||
last-command-event (if (consp arg) (cdr arg) nil)))
|
||||
(viper-last-command-char) (if (consp arg) (cdr arg) nil)))
|
||||
|
||||
(defun viper-command-argument (arg)
|
||||
"Accept a motion command as an argument."
|
||||
@ -1319,7 +1322,7 @@ as a Meta key and any number of multiple escapes is allowed."
|
||||
(let ((viper-intermediate-command 'viper-command-argument))
|
||||
(condition-case nil
|
||||
(viper-prefix-arg-com
|
||||
last-command-event
|
||||
(viper-last-command-char)
|
||||
(cond ((null arg) nil)
|
||||
((consp arg) (car arg))
|
||||
((integerp arg) arg)
|
||||
@ -2096,7 +2099,7 @@ Undo previous insertion and inserts new."
|
||||
"Exit minibuffer Viper way."
|
||||
(interactive)
|
||||
(let (command)
|
||||
(setq command (local-key-binding (char-to-string last-command-event)))
|
||||
(setq command (local-key-binding (char-to-string (viper-last-command-char))))
|
||||
(run-hooks 'viper-minibuffer-exit-hook)
|
||||
(if command
|
||||
(command-execute command)
|
||||
@ -3771,7 +3774,9 @@ If MAJOR-MODE is set, set the macros only in that major mode."
|
||||
"///" 'vi-state
|
||||
[2 (meta x) v i p e r - t o g g l e - s e a r c h - s t y l e return]
|
||||
scope)
|
||||
(if (called-interactively-p 'interactive)
|
||||
;; XEmacs has no called-interactively-p
|
||||
;; (if (called-interactively-p 'interactive)
|
||||
(if (interactive-p)
|
||||
(message
|
||||
"// and /// now toggle case-sensitivity and regexp search")))
|
||||
(viper-unrecord-kbd-macro "//" 'vi-state)
|
||||
@ -3794,7 +3799,10 @@ With a prefix argument, unsets the macro."
|
||||
"%%%" 'vi-state
|
||||
[(meta x) v i p e r - t o g g l e - p a r s e - s e x p - i g n o r e - c o m m e n t s return]
|
||||
't)
|
||||
(if (called-interactively-p 'interactive)
|
||||
;; XEmacs has no called-interactively-p. And interactive-p
|
||||
;; works fine here.
|
||||
;; (if (called-interactively-p 'interactive)
|
||||
(if (interactive-p)
|
||||
(message
|
||||
"%%%%%% now toggles whether comments should be parsed for matching parentheses")))
|
||||
(viper-unrecord-kbd-macro "%%%" 'vi-state))))
|
||||
@ -3823,7 +3831,10 @@ the macros are set in the current major mode.
|
||||
"///" 'emacs-state
|
||||
[2 (meta x) v i p e r - t o g g l e - s e a r c h - s t y l e return]
|
||||
(or arg-majormode major-mode))
|
||||
(if (called-interactively-p 'interactive)
|
||||
;; called-interactively-p does not work for
|
||||
;; XEmacs. interactive-p is ok here.
|
||||
;; (if (called-interactively-p 'interactive)
|
||||
(if (interactive-p)
|
||||
(message
|
||||
"// and /// now toggle case-sensitivity and regexp search.")))
|
||||
(viper-unrecord-kbd-macro "//" 'emacs-state)
|
||||
|
@ -174,12 +174,14 @@ Otherwise return the normal value."
|
||||
(viper-frame-value viper-vi-state-cursor-color)
|
||||
frame))))
|
||||
|
||||
;; By default, saves current frame cursor color in the
|
||||
;; viper-saved-cursor-color-in-replace-mode property of viper-replace-overlay
|
||||
;; By default, saves current frame cursor color before changing viper state
|
||||
(defun viper-save-cursor-color (before-which-mode)
|
||||
(if (and (viper-window-display-p) (viper-color-display-p))
|
||||
(let ((color (viper-get-cursor-color)))
|
||||
(if (and (stringp color) (viper-color-defined-p color)
|
||||
;; there is something fishy in that the color is not saved if
|
||||
;; it is the same as frames default cursor color. need to be
|
||||
;; checked.
|
||||
(not (string= color
|
||||
(viper-frame-value
|
||||
viper-replace-overlay-cursor-color))))
|
||||
@ -1047,6 +1049,11 @@ Otherwise return the normal value."
|
||||
(append mod (list basis))
|
||||
basis))))
|
||||
|
||||
(defun viper-last-command-char ()
|
||||
(if (featurep 'xemacs)
|
||||
(event-to-character last-command-event)
|
||||
last-command-event))
|
||||
|
||||
(defun viper-key-to-emacs-key (key)
|
||||
(let (key-name char-p modifiers mod-char-list base-key base-key-name)
|
||||
(cond ((featurep 'xemacs) key)
|
||||
|
@ -889,7 +889,10 @@ It also can't undo some Viper settings."
|
||||
(defadvice self-insert-command (around viper-self-insert-ad activate)
|
||||
"Ignore all self-inserting keys in the vi-state."
|
||||
(if (and (eq viper-current-state 'vi-state)
|
||||
(called-interactively-p 'interactive))
|
||||
;; Do not use called-interactively-p here. XEmacs does not have it
|
||||
;; and interactive-p is just fine.
|
||||
;; (called-interactively-p 'interactive))
|
||||
(interactive-p))
|
||||
(beep 1)
|
||||
ad-do-it
|
||||
))
|
||||
|
Loading…
x
Reference in New Issue
Block a user