diff options
| author | Michael Kifer | 2005-09-20 17:47:28 +0000 |
|---|---|---|
| committer | Michael Kifer | 2005-09-20 17:47:28 +0000 |
| commit | 15c77b9ecd23bfcb6c831bbc25d35ec8d0723fad (patch) | |
| tree | 65a1226ad4376299b55254a51ccf406c445ac5e7 /lisp/emulation | |
| parent | 41ea4df8c30cb9c1c7254188c5aa812d9875f383 (diff) | |
| download | emacs-15c77b9ecd23bfcb6c831bbc25d35ec8d0723fad.tar.gz emacs-15c77b9ecd23bfcb6c831bbc25d35ec8d0723fad.zip | |
2005-09-20 Michael Kifer <kifer@cs.stonybrook.edu>
* ediff-ptch.el (ediff-file-name-sans-prefix): treat nil as an empty
string.
(ediff-fixup-patch-map): better heuristic for intuiting the file names
to patch.
(ediff-prompt-for-patch-file): more intuitive prompt.
* ediff-util.el: use insert-buffer-substring.
* ediff-vers.el (cvs-run-ediff-on-file-descriptor): bug fix.
* viper-cmd.el (viper-change-state): don't move over the field
boundaries in the minibuffer.
(viper-set-minibuffer-style): add viper-minibuffer-post-command-hook.
(viper-minibuffer-post-command-hook): new hook.
(viper-line): don't move cursor at bolp.
* viper-ex.el (ex-pwd, viper-info-on-file): fixed message
* viper-init.el: add alias to make-variable-buffer-local to avoid
compiler warnings.
* viper-macs.el (ex-map): better messages.
* viper-utils.el (viper-beginning-of-field): new function.
* viper.el: replace make-variable-buffer-local with
viper-make-variable-buffer-local everywhere, to avoid warnings.
Diffstat (limited to 'lisp/emulation')
| -rw-r--r-- | lisp/emulation/viper-cmd.el | 12 | ||||
| -rw-r--r-- | lisp/emulation/viper-init.el | 5 | ||||
| -rw-r--r-- | lisp/emulation/viper-macs.el | 8 | ||||
| -rw-r--r-- | lisp/emulation/viper-util.el | 8 | ||||
| -rw-r--r-- | lisp/emulation/viper.el | 9 |
5 files changed, 29 insertions, 13 deletions
diff --git a/lisp/emulation/viper-cmd.el b/lisp/emulation/viper-cmd.el index 99a130e7f1d..7d2e10a8f31 100644 --- a/lisp/emulation/viper-cmd.el +++ b/lisp/emulation/viper-cmd.el | |||
| @@ -358,7 +358,7 @@ | |||
| 358 | 'viper-insertion-ring)) | 358 | 'viper-insertion-ring)) |
| 359 | 359 | ||
| 360 | (if viper-ESC-moves-cursor-back | 360 | (if viper-ESC-moves-cursor-back |
| 361 | (or (bolp) (backward-char 1)))) | 361 | (or (bolp) (viper-beginning-of-field) (backward-char 1)))) |
| 362 | )) | 362 | )) |
| 363 | 363 | ||
| 364 | ;; insert or replace | 364 | ;; insert or replace |
| @@ -1996,7 +1996,8 @@ Undo previous insertion and inserts new." | |||
| 1996 | ;;; Minibuffer business | 1996 | ;;; Minibuffer business |
| 1997 | 1997 | ||
| 1998 | (defsubst viper-set-minibuffer-style () | 1998 | (defsubst viper-set-minibuffer-style () |
| 1999 | (add-hook 'minibuffer-setup-hook 'viper-minibuffer-setup-sentinel)) | 1999 | (add-hook 'minibuffer-setup-hook 'viper-minibuffer-setup-sentinel) |
| 2000 | (add-hook 'post-command-hook 'viper-minibuffer-post-command-hook)) | ||
| 2000 | 2001 | ||
| 2001 | 2002 | ||
| 2002 | (defun viper-minibuffer-setup-sentinel () | 2003 | (defun viper-minibuffer-setup-sentinel () |
| @@ -2039,6 +2040,11 @@ Undo previous insertion and inserts new." | |||
| 2039 | (minibuffer-prompt-end) | 2040 | (minibuffer-prompt-end) |
| 2040 | (point-min))) | 2041 | (point-min))) |
| 2041 | 2042 | ||
| 2043 | (defun viper-minibuffer-post-command-hook() | ||
| 2044 | (when (active-minibuffer-window) | ||
| 2045 | (when (< (point) (viper-minibuffer-real-start)) | ||
| 2046 | (goto-char (viper-minibuffer-real-start))))) | ||
| 2047 | |||
| 2042 | 2048 | ||
| 2043 | ;; Interpret last event in the local map first; if fails, use exit-minibuffer. | 2049 | ;; Interpret last event in the local map first; if fails, use exit-minibuffer. |
| 2044 | ;; Run viper-minibuffer-exit-hook before exiting. | 2050 | ;; Run viper-minibuffer-exit-hook before exiting. |
| @@ -2570,7 +2576,7 @@ These keys are ESC, RET, and LineFeed" | |||
| 2570 | ;; last line of buffer when this line has no \n. | 2576 | ;; last line of buffer when this line has no \n. |
| 2571 | (viper-add-newline-at-eob-if-necessary) | 2577 | (viper-add-newline-at-eob-if-necessary) |
| 2572 | (viper-execute-com 'viper-line val com)) | 2578 | (viper-execute-com 'viper-line val com)) |
| 2573 | (if (and (eobp) (not (bobp))) (forward-line -1)) | 2579 | (if (and (eobp) (bolp) (not (bobp))) (forward-line -1)) |
| 2574 | ) | 2580 | ) |
| 2575 | 2581 | ||
| 2576 | (defun viper-yank-line (arg) | 2582 | (defun viper-yank-line (arg) |
diff --git a/lisp/emulation/viper-init.el b/lisp/emulation/viper-init.el index 9c1df1b0ad5..8aa7e4649d4 100644 --- a/lisp/emulation/viper-init.el +++ b/lisp/emulation/viper-init.el | |||
| @@ -115,6 +115,11 @@ In all likelihood, you don't need to bother with this setting." | |||
| 115 | 115 | ||
| 116 | ;;; Macros | 116 | ;;; Macros |
| 117 | 117 | ||
| 118 | ;; Fool the compiler to avoid warnings. | ||
| 119 | ;; Viper calls make-variable-buffer-local from within other functions, which | ||
| 120 | ;; triggers compiler warnings. | ||
| 121 | (defalias 'viper-make-variable-buffer-local 'make-variable-buffer-local) | ||
| 122 | |||
| 118 | (defmacro viper-deflocalvar (var default-value &optional documentation) | 123 | (defmacro viper-deflocalvar (var default-value &optional documentation) |
| 119 | `(progn | 124 | `(progn |
| 120 | (defvar ,var ,default-value | 125 | (defvar ,var ,default-value |
diff --git a/lisp/emulation/viper-macs.el b/lisp/emulation/viper-macs.el index 9349a950e97..d401c148ad6 100644 --- a/lisp/emulation/viper-macs.el +++ b/lisp/emulation/viper-macs.el | |||
| @@ -118,7 +118,7 @@ a key is a symbol, e.g., `a', `\\1', `f2', etc., or a list, e.g., | |||
| 118 | (define-key viper-vi-intercept-map "\C-x)" 'viper-end-mapping-kbd-macro) | 118 | (define-key viper-vi-intercept-map "\C-x)" 'viper-end-mapping-kbd-macro) |
| 119 | (define-key viper-insert-intercept-map "\C-x)" 'viper-end-mapping-kbd-macro) | 119 | (define-key viper-insert-intercept-map "\C-x)" 'viper-end-mapping-kbd-macro) |
| 120 | (define-key viper-emacs-intercept-map "\C-x)" 'viper-end-mapping-kbd-macro) | 120 | (define-key viper-emacs-intercept-map "\C-x)" 'viper-end-mapping-kbd-macro) |
| 121 | (message "Mapping %S in %s state. Hit `C-x )' to complete the mapping" | 121 | (message "Mapping %S in %s state. Type macro definition followed by `C-x )'" |
| 122 | (viper-display-macro macro-name) | 122 | (viper-display-macro macro-name) |
| 123 | (if ins "Insert" "Vi"))) | 123 | (if ins "Insert" "Vi"))) |
| 124 | )) | 124 | )) |
| @@ -170,7 +170,7 @@ a key is a symbol, e.g., `a', `\\1', `f2', etc., or a list, e.g., | |||
| 170 | ((stringp macro-name) | 170 | ((stringp macro-name) |
| 171 | (setq macro-name (vconcat macro-name))) | 171 | (setq macro-name (vconcat macro-name))) |
| 172 | (t (setq macro-name (vconcat (prin1-to-string macro-name))))) | 172 | (t (setq macro-name (vconcat (prin1-to-string macro-name))))) |
| 173 | (message ":map%s <Name>" variant)(sit-for 2) | 173 | (message ":map%s <Macro Name>" variant)(sit-for 2) |
| 174 | (while | 174 | (while |
| 175 | (not (member key | 175 | (not (member key |
| 176 | '(?\C-m ?\n (control m) (control j) return linefeed))) | 176 | '(?\C-m ?\n (control m) (control j) return linefeed))) |
| @@ -442,10 +442,6 @@ If SCOPE is nil, the user is asked to specify the scope." | |||
| 442 | scope) | 442 | scope) |
| 443 | viper-custom-file-name)) | 443 | viper-custom-file-name)) |
| 444 | 444 | ||
| 445 | ;; 2005-09-18 T06:41:22-0400 (Sunday) D. Goel | ||
| 446 | ;; From careful parsing of the above code, it looks like msg | ||
| 447 | ;; couldn't be nil when we reach here. Since it is a string, | ||
| 448 | ;; and a complicated one too, we might as well provide it a "%s" | ||
| 449 | (message "%s" msg) | 445 | (message "%s" msg) |
| 450 | )) | 446 | )) |
| 451 | 447 | ||
diff --git a/lisp/emulation/viper-util.el b/lisp/emulation/viper-util.el index cc9f42b9800..d0b9b34e4d6 100644 --- a/lisp/emulation/viper-util.el +++ b/lisp/emulation/viper-util.el | |||
| @@ -1405,6 +1405,7 @@ This option is appropriate if you like Emacs-style words." | |||
| 1405 | viper-SEP-char-class | 1405 | viper-SEP-char-class |
| 1406 | (or within-line "\n") | 1406 | (or within-line "\n") |
| 1407 | (if within-line (viper-line-pos 'end))))) | 1407 | (if within-line (viper-line-pos 'end))))) |
| 1408 | |||
| 1408 | (defsubst viper-skip-all-separators-backward (&optional within-line) | 1409 | (defsubst viper-skip-all-separators-backward (&optional within-line) |
| 1409 | (if (eq viper-syntax-preference 'strict-vi) | 1410 | (if (eq viper-syntax-preference 'strict-vi) |
| 1410 | (if within-line | 1411 | (if within-line |
| @@ -1433,6 +1434,7 @@ This option is appropriate if you like Emacs-style words." | |||
| 1433 | ;; Emacs may consider some of these as words, but we don't want them | 1434 | ;; Emacs may consider some of these as words, but we don't want them |
| 1434 | viper-non-word-characters | 1435 | viper-non-word-characters |
| 1435 | (viper-line-pos 'end)))) | 1436 | (viper-line-pos 'end)))) |
| 1437 | |||
| 1436 | (defun viper-skip-nonalphasep-backward () | 1438 | (defun viper-skip-nonalphasep-backward () |
| 1437 | (if (eq viper-syntax-preference 'strict-vi) | 1439 | (if (eq viper-syntax-preference 'strict-vi) |
| 1438 | (skip-chars-backward | 1440 | (skip-chars-backward |
| @@ -1502,6 +1504,12 @@ This option is appropriate if you like Emacs-style words." | |||
| 1502 | total | 1504 | total |
| 1503 | )) | 1505 | )) |
| 1504 | 1506 | ||
| 1507 | ;; tells when point is at the beginning of field | ||
| 1508 | (defun viper-beginning-of-field () | ||
| 1509 | (or (bobp) | ||
| 1510 | (not (eq (get-char-property (point) 'field) | ||
| 1511 | (get-char-property (1- (point)) 'field))))) | ||
| 1512 | |||
| 1505 | 1513 | ||
| 1506 | ;; this is copied from cl-extra.el | 1514 | ;; this is copied from cl-extra.el |
| 1507 | ;; Return the subsequence of SEQ from START to END. | 1515 | ;; Return the subsequence of SEQ from START to END. |
diff --git a/lisp/emulation/viper.el b/lisp/emulation/viper.el index bfa730cc434..b3fd6d139c0 100644 --- a/lisp/emulation/viper.el +++ b/lisp/emulation/viper.el | |||
| @@ -9,7 +9,7 @@ | |||
| 9 | ;; Author: Michael Kifer <kifer@cs.stonybrook.edu> | 9 | ;; Author: Michael Kifer <kifer@cs.stonybrook.edu> |
| 10 | ;; Keywords: emulations | 10 | ;; Keywords: emulations |
| 11 | 11 | ||
| 12 | (defconst viper-version "3.11.5 of August 6, 2005" | 12 | (defconst viper-version "3.11.5 of September 19, 2005" |
| 13 | "The current version of Viper") | 13 | "The current version of Viper") |
| 14 | 14 | ||
| 15 | ;; This file is part of GNU Emacs. | 15 | ;; This file is part of GNU Emacs. |
| @@ -606,7 +606,7 @@ This startup message appears whenever you load Viper, unless you type `y' now." | |||
| 606 | (viper-set-expert-level 'dont-change-unless))) | 606 | (viper-set-expert-level 'dont-change-unless))) |
| 607 | 607 | ||
| 608 | (if viper-xemacs-p | 608 | (if viper-xemacs-p |
| 609 | (make-variable-buffer-local 'bar-cursor)) | 609 | (viper-make-variable-buffer-local 'bar-cursor)) |
| 610 | (if (eq major-mode 'viper-mode) | 610 | (if (eq major-mode 'viper-mode) |
| 611 | (setq major-mode 'fundamental-mode)) | 611 | (setq major-mode 'fundamental-mode)) |
| 612 | 612 | ||
| @@ -769,6 +769,7 @@ It also can't undo some Viper settings." | |||
| 769 | (remove-hook 'comint-mode-hook 'viper-comint-mode-hook) | 769 | (remove-hook 'comint-mode-hook 'viper-comint-mode-hook) |
| 770 | (remove-hook 'minibuffer-setup-hook 'viper-minibuffer-setup-sentinel) | 770 | (remove-hook 'minibuffer-setup-hook 'viper-minibuffer-setup-sentinel) |
| 771 | (remove-hook 'change-major-mode-hook 'viper-major-mode-change-sentinel) | 771 | (remove-hook 'change-major-mode-hook 'viper-major-mode-change-sentinel) |
| 772 | (remove-hook 'post-command-hook 'viper-minibuffer-post-command-hook) | ||
| 772 | 773 | ||
| 773 | ;; unbind Viper mouse bindings | 774 | ;; unbind Viper mouse bindings |
| 774 | (viper-unbind-mouse-search-key) | 775 | (viper-unbind-mouse-search-key) |
| @@ -1008,7 +1009,7 @@ It also can't undo some Viper settings." | |||
| 1008 | ;; ***This is needed only in case emulation-mode-map-alists is not defined | 1009 | ;; ***This is needed only in case emulation-mode-map-alists is not defined |
| 1009 | (unless | 1010 | (unless |
| 1010 | (and (fboundp 'add-to-ordered-list) (boundp 'emulation-mode-map-alists)) | 1011 | (and (fboundp 'add-to-ordered-list) (boundp 'emulation-mode-map-alists)) |
| 1011 | (make-variable-buffer-local 'minor-mode-map-alist)) | 1012 | (viper-make-variable-buffer-local 'minor-mode-map-alist)) |
| 1012 | 1013 | ||
| 1013 | ;; Viper changes the default mode-line-buffer-identification | 1014 | ;; Viper changes the default mode-line-buffer-identification |
| 1014 | (setq-default mode-line-buffer-identification '(" %b")) | 1015 | (setq-default mode-line-buffer-identification '(" %b")) |
| @@ -1017,7 +1018,7 @@ It also can't undo some Viper settings." | |||
| 1017 | (setq next-line-add-newlines nil | 1018 | (setq next-line-add-newlines nil |
| 1018 | require-final-newline t) | 1019 | require-final-newline t) |
| 1019 | 1020 | ||
| 1020 | (make-variable-buffer-local 'require-final-newline) | 1021 | (viper-make-variable-buffer-local 'require-final-newline) |
| 1021 | 1022 | ||
| 1022 | ;; don't bark when mark is inactive | 1023 | ;; don't bark when mark is inactive |
| 1023 | (if viper-emacs-p | 1024 | (if viper-emacs-p |