mirror of
git://git.sv.gnu.org/emacs.git
synced 2025-12-15 10:30:25 -08:00
2005-10-05 Michael Kifer <kifer@cs.stonybrook.edu>
* ediff-merge.el (ediff-merge-region-is-non-clash): new defsubst. (ediff-merge-region-is-non-clash-to-skip): previouslu called ediff-merge-region-is-non-clash. * ediff-mult.el (ediff-append-custom-diff,ediff-meta-show-patch): use insert-buffer-substring. * ediff-ptch.el (ediff-fixup-patch-map): use better heuristics for selecting files to patch. Also bug fixes. * ediff-util.el (ediff-setup): bug fix. (ediff-next-difference): Never skip clashes that differ in white space only. * ediff-wind.el (ediff-setup-control-frame,ediff-destroy-control-frame): check the menubar feature. * viper-cmd.el (viper-normalize-minor-mode-map-alist, viper-refresh-mode-line): use make-local-variable to localize some vars instead of make-variable-buffer-local. Suggested by Stefan Monnier. * viper-init.el (viper-make-variable-buffer-local): delete alias. (viper-restore-cursor-type,viper-set-insert-cursor-type): use make-local-variable instead of make-variable-buffer-local. Suggested by Stefan Monnier. * viper.el (viper-mode): don't use viper-make-variable-buffer-local. (viper-comint-mode-hook): use make-local-variable on require-final-newline. (viper-non-hook-settings): don't use make-variable-buffer-local.
This commit is contained in:
parent
20ef86730c
commit
e2de3a2945
10 changed files with 96 additions and 62 deletions
|
|
@ -12,6 +12,39 @@
|
|||
(gdb-locals-mode): Use `gdb-local-font-lock-keywords'
|
||||
(gdb-threads-font-lock-keywords): New font lock keywords definition.
|
||||
(gdb-threads-mode): Use `gdb-threads-font-lock-keywords'.
|
||||
|
||||
2005-10-05 Michael Kifer <kifer@cs.stonybrook.edu>
|
||||
|
||||
* ediff-merge.el (ediff-merge-region-is-non-clash): new defsubst.
|
||||
(ediff-merge-region-is-non-clash-to-skip): previouslu called
|
||||
ediff-merge-region-is-non-clash.
|
||||
|
||||
* ediff-mult.el (ediff-append-custom-diff,ediff-meta-show-patch): use
|
||||
insert-buffer-substring.
|
||||
|
||||
* ediff-ptch.el (ediff-fixup-patch-map): use better heuristics for
|
||||
selecting files to patch. Also bug fixes.
|
||||
|
||||
* ediff-util.el (ediff-setup): bug fix.
|
||||
(ediff-next-difference): Never skip clashes that differ in white space
|
||||
only.
|
||||
|
||||
* ediff-wind.el (ediff-setup-control-frame,ediff-destroy-control-frame):
|
||||
check the menubar feature.
|
||||
|
||||
* viper-cmd.el (viper-normalize-minor-mode-map-alist,
|
||||
viper-refresh-mode-line): use make-local-variable to localize some vars
|
||||
instead of make-variable-buffer-local. Suggested by Stefan Monnier.
|
||||
|
||||
* viper-init.el (viper-make-variable-buffer-local): delete alias.
|
||||
(viper-restore-cursor-type,viper-set-insert-cursor-type): use
|
||||
make-local-variable instead of make-variable-buffer-local. Suggested by
|
||||
Stefan Monnier.
|
||||
|
||||
* viper.el (viper-mode): don't use viper-make-variable-buffer-local.
|
||||
(viper-comint-mode-hook): use make-local-variable on
|
||||
require-final-newline.
|
||||
(viper-non-hook-settings): don't use make-variable-buffer-local.
|
||||
|
||||
2005-10-05 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
|
|
|
|||
|
|
@ -103,11 +103,15 @@ Buffer B."
|
|||
)
|
||||
(make-variable-buffer-local 'ediff-skip-merge-regions-that-differ-from-default)
|
||||
|
||||
;; check if there is no clash between the ancestor and one of the variants.
|
||||
(defsubst ediff-merge-region-is-non-clash (n)
|
||||
(string-match "prefer" (or (ediff-get-state-of-merge n) "")))
|
||||
|
||||
;; If ediff-show-clashes-only, check if there is no clash between the ancestor
|
||||
;; and one of the variants.
|
||||
(defsubst ediff-merge-region-is-non-clash (n)
|
||||
(defsubst ediff-merge-region-is-non-clash-to-skip (n)
|
||||
(and ediff-show-clashes-only
|
||||
(string-match "prefer" (or (ediff-get-state-of-merge n) ""))))
|
||||
(ediff-merge-region-is-non-clash n)))
|
||||
|
||||
;; If ediff-skip-changed-regions, check if the merge region differs from
|
||||
;; the current default. If a region is different from the default, it means
|
||||
|
|
|
|||
|
|
@ -1624,7 +1624,7 @@ Useful commands:
|
|||
(save-excursion
|
||||
(set-buffer meta-diff-buff)
|
||||
(goto-char (point-max))
|
||||
(insert-buffer custom-diff-buf)
|
||||
(insert-buffer-substring custom-diff-buf)
|
||||
(insert "\n")))
|
||||
;; if ediff session is not live, run diff directly on the files
|
||||
((memq metajob '(ediff-directories
|
||||
|
|
@ -1643,7 +1643,7 @@ Useful commands:
|
|||
(save-excursion
|
||||
(set-buffer meta-diff-buff)
|
||||
(goto-char (point-max))
|
||||
(insert-buffer tmp-buf)
|
||||
(insert-buffer-substring tmp-buf)
|
||||
(insert "\n")))
|
||||
(t
|
||||
(ediff-kill-buffer-carefully meta-diff-buff)
|
||||
|
|
@ -1691,7 +1691,8 @@ all marked sessions must be active."
|
|||
(ediff-get-session-objC-name info)))
|
||||
(set-buffer (get-buffer-create ediff-tmp-buffer))
|
||||
(erase-buffer)
|
||||
(insert-buffer patchbuffer)
|
||||
(insert-buffer-substring patchbuffer)
|
||||
(goto-char (point-min))
|
||||
(display-buffer ediff-tmp-buffer 'not-this-window)
|
||||
))
|
||||
(error "The patch buffer wasn't found"))))
|
||||
|
|
|
|||
|
|
@ -297,16 +297,23 @@ program."
|
|||
;; (file1 . file2). Get it using ediff-get-session-objA.
|
||||
(ediff-get-session-objA-name session-info))
|
||||
;; base-dir1 is the dir part of the 1st file in the patch
|
||||
(base-dir1 (file-name-directory (car proposed-file-names)))
|
||||
(base-dir1
|
||||
(or (file-name-directory (car proposed-file-names))
|
||||
""))
|
||||
;; directory part of the 2nd file in the patch
|
||||
(base-dir2 (file-name-directory (cdr proposed-file-names)))
|
||||
(base-dir2
|
||||
(or (file-name-directory (cdr proposed-file-names))
|
||||
""))
|
||||
)
|
||||
;; If both base-dir1 and base-dir2 are relative, assume that
|
||||
;; If both base-dir1 and base-dir2 are relative and exist,
|
||||
;; assume that
|
||||
;; these dirs lead to the actual files starting at the present
|
||||
;; directory. So, we don't strip these relative dirs from the
|
||||
;; file names. This is a heuristic intended to improve guessing
|
||||
(unless (or (and base-dir1 (file-name-absolute-p base-dir1))
|
||||
(and base-dir2 (file-name-absolute-p base-dir2)))
|
||||
(unless (or (file-name-absolute-p base-dir1)
|
||||
(file-name-absolute-p base-dir2)
|
||||
(not (file-exists-p base-dir1))
|
||||
(not (file-exists-p base-dir2)))
|
||||
(setq base-dir1 ""
|
||||
base-dir2 ""))
|
||||
(or (string= (car proposed-file-names) "/dev/null")
|
||||
|
|
@ -377,8 +384,8 @@ other files, enter /dev/null
|
|||
(concat actual-dir (cdr proposed-file-names)))))
|
||||
))
|
||||
ediff-patch-map)
|
||||
;; check for the shorter existing file in each pair and discard the other
|
||||
;; one
|
||||
;; Check for the existing files in each pair and discard the nonexisting
|
||||
;; ones. If both exist, ask the user.
|
||||
(mapcar (lambda (session-info)
|
||||
(let* ((file1 (car (ediff-get-session-objA-name session-info)))
|
||||
(file2 (cdr (ediff-get-session-objA-name session-info)))
|
||||
|
|
|
|||
|
|
@ -329,7 +329,7 @@ to invocation.")
|
|||
ediff-word-mode-job (ediff-word-mode-job))
|
||||
|
||||
;; Don't delete variants in case of ediff-buffer-* jobs without asking.
|
||||
;; This is because u may loose work---dangerous.
|
||||
;; This is because one may loose work---dangerous.
|
||||
(if (string-match "buffer" (symbol-name ediff-job-name))
|
||||
(setq ediff-keep-variants t))
|
||||
|
||||
|
|
@ -368,6 +368,7 @@ to invocation.")
|
|||
(save-excursion
|
||||
(set-buffer buffer-C)
|
||||
(insert-buffer-substring buf)
|
||||
(goto-char (point-min))
|
||||
(funcall (ediff-with-current-buffer buf major-mode))
|
||||
(widen) ; merge buffer is always widened
|
||||
(add-hook 'local-write-file-hooks 'ediff-set-merge-mode nil t)
|
||||
|
|
@ -1729,7 +1730,7 @@ With a prefix argument, go forward that many differences."
|
|||
(or (>= n ediff-number-of-differences)
|
||||
(setq regexp-skip (funcall ediff-skip-diff-region-function n))
|
||||
;; this won't exec if regexp-skip is t
|
||||
(setq non-clash-skip (ediff-merge-region-is-non-clash n)
|
||||
(setq non-clash-skip (ediff-merge-region-is-non-clash-to-skip n)
|
||||
skip-changed
|
||||
(ediff-skip-merge-region-if-changed-from-default-p n))
|
||||
(ediff-install-fine-diff-if-necessary n))
|
||||
|
|
@ -1744,6 +1745,7 @@ With a prefix argument, go forward that many differences."
|
|||
skip-changed
|
||||
;; skip difference regions that differ in white space
|
||||
(and ediff-ignore-similar-regions
|
||||
(ediff-merge-region-is-non-clash n)
|
||||
(or (eq (ediff-no-fine-diffs-p n) t)
|
||||
(and (ediff-merge-job)
|
||||
(eq (ediff-no-fine-diffs-p n) 'C)))
|
||||
|
|
@ -1754,7 +1756,7 @@ With a prefix argument, go forward that many differences."
|
|||
(or (>= n ediff-number-of-differences)
|
||||
(setq regexp-skip (funcall ediff-skip-diff-region-function n))
|
||||
;; this won't exec if regexp-skip is t
|
||||
(setq non-clash-skip (ediff-merge-region-is-non-clash n)
|
||||
(setq non-clash-skip (ediff-merge-region-is-non-clash-to-skip n)
|
||||
skip-changed
|
||||
(ediff-skip-merge-region-if-changed-from-default-p n))
|
||||
(ediff-install-fine-diff-if-necessary n))
|
||||
|
|
@ -1778,7 +1780,7 @@ With a prefix argument, go back that many differences."
|
|||
(or (< n 0)
|
||||
(setq regexp-skip (funcall ediff-skip-diff-region-function n))
|
||||
;; this won't exec if regexp-skip is t
|
||||
(setq non-clash-skip (ediff-merge-region-is-non-clash n)
|
||||
(setq non-clash-skip (ediff-merge-region-is-non-clash-to-skip n)
|
||||
skip-changed
|
||||
(ediff-skip-merge-region-if-changed-from-default-p n))
|
||||
(ediff-install-fine-diff-if-necessary n))
|
||||
|
|
@ -1802,7 +1804,7 @@ With a prefix argument, go back that many differences."
|
|||
(or (< n 0)
|
||||
(setq regexp-skip (funcall ediff-skip-diff-region-function n))
|
||||
;; this won't exec if regexp-skip is t
|
||||
(setq non-clash-skip (ediff-merge-region-is-non-clash n)
|
||||
(setq non-clash-skip (ediff-merge-region-is-non-clash-to-skip n)
|
||||
skip-changed
|
||||
(ediff-skip-merge-region-if-changed-from-default-p n))
|
||||
(ediff-install-fine-diff-if-necessary n))
|
||||
|
|
|
|||
|
|
@ -900,7 +900,7 @@ into icons, regardless of the window manager."
|
|||
|
||||
(ediff-with-current-buffer ctl-buffer
|
||||
(ediff-cond-compile-for-xemacs-or-emacs
|
||||
(set-buffer-menubar nil) ; xemacs
|
||||
(when (featurep 'menubar) (set-buffer-menubar nil)) ; xemacs
|
||||
nil ; emacs
|
||||
)
|
||||
;;(setq user-grabbed-mouse (ediff-user-grabbed-mouse))
|
||||
|
|
@ -1054,7 +1054,8 @@ into icons, regardless of the window manager."
|
|||
(if (and (ediff-window-display-p) (frame-live-p ediff-control-frame))
|
||||
(let ((ctl-frame ediff-control-frame))
|
||||
(ediff-cond-compile-for-xemacs-or-emacs
|
||||
(set-buffer-menubar default-menubar) ; xemacs
|
||||
(when (featurep 'menubar)
|
||||
(set-buffer-menubar default-menubar)) ; xemacs
|
||||
nil ; emacs
|
||||
)
|
||||
(setq ediff-control-frame nil)
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
;; Keywords: comparing, merging, patching, tools, unix
|
||||
|
||||
(defconst ediff-version "2.80.1" "The current version of Ediff")
|
||||
(defconst ediff-date "September 19, 2005" "Date of last update")
|
||||
(defconst ediff-date "October 5, 2005" "Date of last update")
|
||||
|
||||
|
||||
;; This file is part of GNU Emacs.
|
||||
|
|
|
|||
|
|
@ -494,13 +494,20 @@
|
|||
viper-empty-keymap))
|
||||
))
|
||||
|
||||
;; in emacs with emulation-mode-map-alists, nothing needs to be done
|
||||
;; This var is not local in Emacs, so we make it local. It must be local
|
||||
;; because although the stack of minor modes can be the same for all buffers,
|
||||
;; the associated *keymaps* can be different. In Viper,
|
||||
;; viper-vi-local-user-map, viper-insert-local-user-map, and others can have
|
||||
;; different keymaps for different buffers. Also, the keymaps associated
|
||||
;; with viper-vi/insert-state-modifier-minor-mode can be different.
|
||||
;; ***This is needed only in case emulation-mode-map-alists is not defined.
|
||||
;; In emacs with emulation-mode-map-alists, nothing needs to be done
|
||||
(unless
|
||||
(and (fboundp 'add-to-ordered-list) (boundp 'emulation-mode-map-alists))
|
||||
(setq minor-mode-map-alist
|
||||
(viper-append-filter-alist
|
||||
(append viper--intercept-key-maps viper--key-maps)
|
||||
minor-mode-map-alist)))
|
||||
(set (make-local-variable 'minor-mode-map-alist)
|
||||
(viper-append-filter-alist
|
||||
(append viper--intercept-key-maps viper--key-maps)
|
||||
minor-mode-map-alist)))
|
||||
)
|
||||
|
||||
|
||||
|
|
@ -509,7 +516,7 @@
|
|||
|
||||
;; Modifies mode-line-buffer-identification.
|
||||
(defun viper-refresh-mode-line ()
|
||||
(setq viper-mode-string
|
||||
(set (make-local-variable 'viper-mode-string)
|
||||
(cond ((eq viper-current-state 'emacs-state) viper-emacs-state-id)
|
||||
((eq viper-current-state 'vi-state) viper-vi-state-id)
|
||||
((eq viper-current-state 'replace-state) viper-replace-state-id)
|
||||
|
|
@ -4781,7 +4788,7 @@ sensitive for VI-style look-and-feel."
|
|||
level-changed t)
|
||||
(insert "
|
||||
Please specify your level of familiarity with the venomous VI PERil
|
||||
(and the VI Plan for Emacs Rescue).
|
||||
\(and the VI Plan for Emacs Rescue).
|
||||
You can change it at any time by typing `M-x viper-set-expert-level RET'
|
||||
|
||||
1 -- BEGINNER: Almost all Emacs features are suppressed.
|
||||
|
|
@ -5000,5 +5007,5 @@ Mail anyway (y or n)? ")
|
|||
|
||||
|
||||
|
||||
;;; arch-tag: 739a6450-5fda-44d0-88b0-325053d888c2
|
||||
;; arch-tag: 739a6450-5fda-44d0-88b0-325053d888c2
|
||||
;;; viper-cmd.el ends here
|
||||
|
|
|
|||
|
|
@ -115,11 +115,6 @@ In all likelihood, you don't need to bother with this setting."
|
|||
|
||||
;;; Macros
|
||||
|
||||
;; Fool the compiler to avoid warnings.
|
||||
;; Viper calls make-variable-buffer-local from within other functions, which
|
||||
;; triggers compiler warnings.
|
||||
(defalias 'viper-make-variable-buffer-local 'make-variable-buffer-local)
|
||||
|
||||
(defmacro viper-deflocalvar (var default-value &optional documentation)
|
||||
`(progn
|
||||
(defvar ,var ,default-value
|
||||
|
|
@ -1019,19 +1014,19 @@ Should be set in `~/.viper' file."
|
|||
(defun viper-restore-cursor-type ()
|
||||
(condition-case nil
|
||||
(if viper-xemacs-p
|
||||
(setq bar-cursor nil)
|
||||
(set (make-local-variable 'bar-cursor) nil)
|
||||
(setq cursor-type default-cursor-type))
|
||||
(error nil)))
|
||||
|
||||
(defun viper-set-insert-cursor-type ()
|
||||
(if viper-xemacs-p
|
||||
(setq bar-cursor 2)
|
||||
(set (make-local-variable 'bar-cursor) 2)
|
||||
(setq cursor-type '(bar . 2))))
|
||||
|
||||
|
||||
;;; Local Variables:
|
||||
;;; eval: (put 'viper-deflocalvar 'lisp-indent-hook 'defun)
|
||||
;;; End:
|
||||
;; Local Variables:
|
||||
;; eval: (put 'viper-deflocalvar 'lisp-indent-hook 'defun)
|
||||
;; End:
|
||||
|
||||
;;; arch-tag: 4efa2416-1fcb-4690-be10-1a2a0248d250
|
||||
;; arch-tag: 4efa2416-1fcb-4690-be10-1a2a0248d250
|
||||
;;; viper-init.el ends here
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@
|
|||
;; Author: Michael Kifer <kifer@cs.stonybrook.edu>
|
||||
;; Keywords: emulations
|
||||
|
||||
(defconst viper-version "3.11.5 of September 19, 2005"
|
||||
(defconst viper-version "3.11.5 of October 5, 2005"
|
||||
"The current version of Viper")
|
||||
|
||||
;; This file is part of GNU Emacs.
|
||||
|
|
@ -605,8 +605,6 @@ This startup message appears whenever you load Viper, unless you type `y' now."
|
|||
))
|
||||
(viper-set-expert-level 'dont-change-unless)))
|
||||
|
||||
(if viper-xemacs-p
|
||||
(viper-make-variable-buffer-local 'bar-cursor))
|
||||
(if (eq major-mode 'viper-mode)
|
||||
(setq major-mode 'fundamental-mode))
|
||||
|
||||
|
|
@ -627,8 +625,8 @@ This startup message appears whenever you load Viper, unless you type `y' now."
|
|||
|
||||
;; This hook designed to enable Vi-style editing in comint-based modes."
|
||||
(defun viper-comint-mode-hook ()
|
||||
(setq require-final-newline nil
|
||||
viper-ex-style-editing nil
|
||||
(set (make-local-variable 'require-final-newline) nil)
|
||||
(setq viper-ex-style-editing nil
|
||||
viper-ex-style-motion nil)
|
||||
(viper-change-state-to-insert))
|
||||
|
||||
|
|
@ -1000,17 +998,6 @@ It also can't undo some Viper settings."
|
|||
;; these are primarily advices and Vi-ish variable settings
|
||||
(defun viper-non-hook-settings ()
|
||||
|
||||
;; This var is not local in Emacs, so we make it local. It must be local
|
||||
;; because although the stack of minor modes can be the same for all buffers,
|
||||
;; the associated *keymaps* can be different. In Viper,
|
||||
;; viper-vi-local-user-map, viper-insert-local-user-map, and others can have
|
||||
;; different keymaps for different buffers. Also, the keymaps associated
|
||||
;; with viper-vi/insert-state-modifier-minor-mode can be different.
|
||||
;; ***This is needed only in case emulation-mode-map-alists is not defined
|
||||
(unless
|
||||
(and (fboundp 'add-to-ordered-list) (boundp 'emulation-mode-map-alists))
|
||||
(viper-make-variable-buffer-local 'minor-mode-map-alist))
|
||||
|
||||
;; Viper changes the default mode-line-buffer-identification
|
||||
(setq-default mode-line-buffer-identification '(" %b"))
|
||||
|
||||
|
|
@ -1018,8 +1005,6 @@ It also can't undo some Viper settings."
|
|||
(setq next-line-add-newlines nil
|
||||
require-final-newline t)
|
||||
|
||||
(viper-make-variable-buffer-local 'require-final-newline)
|
||||
|
||||
;; don't bark when mark is inactive
|
||||
(if viper-emacs-p
|
||||
(setq mark-even-if-inactive t))
|
||||
|
|
@ -1027,7 +1012,6 @@ It also can't undo some Viper settings."
|
|||
(setq scroll-step 1)
|
||||
|
||||
;; Variable displaying the current Viper state in the mode line.
|
||||
(viper-deflocalvar viper-mode-string viper-emacs-state-id)
|
||||
(or (memq 'viper-mode-string global-mode-string)
|
||||
(setq global-mode-string
|
||||
(append '("" viper-mode-string) (cdr global-mode-string))))
|
||||
|
|
@ -1336,9 +1320,9 @@ These two lines must come in the order given.
|
|||
(provide 'viper)
|
||||
|
||||
|
||||
;;; Local Variables:
|
||||
;;; eval: (put 'viper-deflocalvar 'lisp-indent-hook 'defun)
|
||||
;;; End:
|
||||
;; Local Variables:
|
||||
;; eval: (put 'viper-deflocalvar 'lisp-indent-hook 'defun)
|
||||
;; End:
|
||||
|
||||
;;; arch-tag: 5f3e844c-c4e6-4bbd-9b73-63bdc14e7d79
|
||||
;; arch-tag: 5f3e844c-c4e6-4bbd-9b73-63bdc14e7d79
|
||||
;;; viper.el ends here
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue