Mercurial > emacs
changeset 85890:d505125b0b46
2007-11-02 Michael Kifer <kifer@cs.stonybrook.edu>
* viper-ex.el (viper-ex): do not ignore the region.
* viper-cmd.el (viper-prev-destructive-command)
(viper-insert-prev-from-insertion-ring): use ring-copy instead of
copy-sequence.
* ediff-util.el (ediff-make-current-diff-overlay): do not use face-name.
Got rid of ediff-copy-list.
* ediff-diff.el (ediff-set-fine-diff-properties-in-one-buffer): do not
use face-name.
(ediff-test-utility,ediff-diff-mandatory-option)
(ediff-reset-diff-options): removed to simplify yhe mandatory option
handling on windows.
(ediff-set-diff-options): added.
(ediff-diff-options): changed.
* ediff-vers.el (ediff-vc-internal): use ediff-vc-revision-other-window.
(ediff-vc-merge-internal): use ediff-vc-revision-other-window and
ediff-vc-working-revision.
Require vc-hooks.
author | Michael Kifer <kifer@cs.stonybrook.edu> |
---|---|
date | Fri, 02 Nov 2007 06:03:12 +0000 |
parents | 683a6a9e56ab |
children | aa192da33904 |
files | ChangeLog lisp/ediff-diff.el lisp/ediff-util.el lisp/ediff-vers.el lisp/emulation/viper-cmd.el lisp/emulation/viper-ex.el |
diffstat | 6 files changed, 79 insertions(+), 81 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog Fri Nov 02 03:42:05 2007 +0000 +++ b/ChangeLog Fri Nov 02 06:03:12 2007 +0000 @@ -1,3 +1,27 @@ +2007-11-02 Michael Kifer <kifer@cs.stonybrook.edu> + + * viper-ex.el (viper-ex): do not ignore the region. + + * viper-cmd.el (viper-prev-destructive-command) + (viper-insert-prev-from-insertion-ring): use ring-copy instead of + copy-sequence. + + * ediff-util.el (ediff-make-current-diff-overlay): do not use face-name. + Got rid of ediff-copy-list. + + * ediff-diff.el (ediff-set-fine-diff-properties-in-one-buffer): do not + use face-name. + (ediff-test-utility,ediff-diff-mandatory-option) + (ediff-reset-diff-options): removed to simplify yhe mandatory option + handling on windows. + (ediff-set-diff-options): added. + (ediff-diff-options): changed. + + * ediff-vers.el (ediff-vc-internal): use ediff-vc-revision-other-window. + (ediff-vc-merge-internal): use ediff-vc-revision-other-window and + ediff-vc-working-revision. + Require vc-hooks. + 2007-11-01 Jan Dj,Ad(Brv <jan.h.d@swipnet.se> * configure.in: Remove HAVE_X11R5 check.
--- a/lisp/ediff-diff.el Fri Nov 02 03:42:05 2007 +0000 +++ b/lisp/ediff-diff.el Fri Nov 02 06:03:12 2007 +0000 @@ -48,7 +48,6 @@ :prefix "ediff-" :group 'ediff) -;; these two must be here to prevent ediff-test-utility from barking (defcustom ediff-diff-program "diff" "*Program to use for generating the differential of the two files." :type 'string @@ -62,46 +61,8 @@ ;; The following functions must precede all defcustom-defined variables. -;; The following functions needed for setting diff/diff3 options -;; test if diff supports the --binary option -(defsubst ediff-test-utility (diff-util option &optional files) - (condition-case nil - (eq 0 (apply 'call-process - (append (list diff-util nil nil nil option) files))) - (error (format "Cannot execute program %S." diff-util))) - ) - -(defun ediff-diff-mandatory-option (diff-util) - (let ((file (if (boundp 'null-device) null-device "/dev/null"))) - (cond ((not (memq system-type '(ms-dos windows-nt windows-95))) - "") - ((and (string= diff-util ediff-diff-program) - (ediff-test-utility - ediff-diff-program "--binary" (list file file))) - "--binary ") - ((and (string= diff-util ediff-diff3-program) - (ediff-test-utility - ediff-diff3-program "--binary" (list file file file))) - "--binary ") - (t "")))) - - -;; must be before ediff-reset-diff-options to avoid compiler errors (fset 'ediff-set-actual-diff-options '(lambda () nil)) -;; make sure that mandatory options are added even if the user changes -;; ediff-diff-options or ediff-diff3-options in the customization widget -(defun ediff-reset-diff-options (symb val) - (let* ((diff-program - (if (eq symb 'ediff-diff-options) - ediff-diff-program - ediff-diff3-program)) - (mandatory-option (ediff-diff-mandatory-option diff-program))) - (set symb (concat mandatory-option val)) - (ediff-set-actual-diff-options) - )) - - (defcustom ediff-shell (cond ((eq system-type 'emx) "cmd") ; OS/2 ((memq system-type '(ms-dos windows-nt windows-95)) @@ -130,17 +91,25 @@ :type '(repeat string) :group 'ediff-diff) -(defcustom ediff-diff-options "" +(defun ediff-set-diff-options (symbol value) + (set symbol value) + (ediff-set-actual-diff-options)) + +(defcustom ediff-diff-options + (if (memq system-type '(ms-dos windows-nt windows-95)) "--binary" "") "*Options to pass to `ediff-diff-program'. If Unix diff is used as `ediff-diff-program', then a useful option is `-w', to ignore space. Options `-c', `-u', and `-i' are not allowed. Case sensitivity can be toggled interactively using \\[ediff-toggle-ignore-case]. +Do not remove the default options. If you need to change this variable, add new +options after the default ones. + This variable is not for customizing the look of the differences produced by the command \\[ediff-show-diff-output]. Use the variable `ediff-custom-diff-options' for that." - :set 'ediff-reset-diff-options + :set 'ediff-set-diff-options :type 'string :group 'ediff-diff) @@ -179,7 +148,7 @@ "Pattern to match lines produced by diff3 that describe differences.") (defcustom ediff-diff3-options "" "*Options to pass to `ediff-diff3-program'." - :set 'ediff-reset-diff-options + :set 'ediff-set-diff-options :type 'string :group 'ediff-diff) @@ -889,9 +858,9 @@ (let ((fine-diff-vector (ediff-get-fine-diff-vector n buf-type)) (face (if default 'default - (face-name - (ediff-get-symbol-from-alist - buf-type ediff-fine-diff-face-alist)))) + (ediff-get-symbol-from-alist + buf-type ediff-fine-diff-face-alist) + )) (priority (if default 0 (1+ (or (ediff-overlay-get
--- a/lisp/ediff-util.el Fri Nov 02 03:42:05 2007 +0000 +++ b/lisp/ediff-util.el Fri Nov 02 06:03:12 2007 +0000 @@ -3802,9 +3802,8 @@ (let ((overlay (ediff-get-symbol-from-alist type ediff-current-diff-overlay-alist)) (buffer (ediff-get-buffer type)) - (face (face-name - (ediff-get-symbol-from-alist - type ediff-current-diff-face-alist)))) + (face (ediff-get-symbol-from-alist + type ediff-current-diff-face-alist))) (set overlay (ediff-make-bullet-proof-overlay (point-max) (point-max) buffer)) (ediff-set-overlay-face (symbol-value overlay) face) @@ -4292,20 +4291,7 @@ (add-to-history history-var newelt) (set history-var (cons newelt (symbol-value history-var))))) -(if (fboundp 'copy-sequence) - (defalias 'ediff-copy-list 'copy-sequence) - (defun ediff-copy-list (list) - (if (consp list) - ;;;(let ((res nil)) - ;;; (while (consp list) (push (pop list) res)) - ;;; (prog1 (nreverse res) (setcdr res list))) - (let (res elt) - (while (consp list) - (setq elt (car list) - res (cons elt res) - list (cdr list))) - (nreverse res)) - (car list)))) +(defalias 'ediff-copy-list 'copy-sequence) ;; don't report error if version control package wasn't found
--- a/lisp/ediff-vers.el Fri Nov 02 03:42:05 2007 +0000 +++ b/lisp/ediff-vers.el Fri Nov 02 06:03:12 2007 +0000 @@ -52,8 +52,22 @@ :group 'ediff-vers ) +(defalias 'ediff-vc-revision-other-window + (if (fboundp 'vc-revision-other-window) + 'vc-revision-other-window + 'vc-version-other-window)) + +(defalias 'ediff-vc-working-revision + (if (fboundp 'vc-working-revision) + 'vc-working-revision + vc-workfile-version)) + ;; VC.el support +(eval-when-compile + (require 'vc-hooks)) ;; for vc-call macro + + (defun ediff-vc-latest-version (file) "Return the version level of the latest version of FILE in repository." (if (fboundp 'vc-latest-version) @@ -77,12 +91,12 @@ (setq rev1 (ediff-vc-latest-version (buffer-file-name)))) (save-window-excursion (save-excursion - (vc-revision-other-window rev1) + (ediff-vc-revision-other-window rev1) (setq rev1buf (current-buffer) file1 (buffer-file-name))) (save-excursion (or (string= rev2 "") ; use current buffer - (vc-revision-other-window rev2)) + (ediff-vc-revision-other-window rev2)) (setq rev2buf (current-buffer) file2 (buffer-file-name))) (setq startup-hooks @@ -158,17 +172,17 @@ (let (buf1 buf2 ancestor-buf) (save-window-excursion (save-excursion - (vc-revision-other-window rev1) + (ediff-vc-revision-other-window rev1) (setq buf1 (current-buffer))) (save-excursion (or (string= rev2 "") - (vc-revision-other-window rev2)) + (ediff-vc-revision-other-window rev2)) (setq buf2 (current-buffer))) (if ancestor-rev (save-excursion (if (string= ancestor-rev "") - (setq ancestor-rev (vc-working-revision buffer-file-name))) - (vc-revision-other-window ancestor-rev) + (setq ancestor-rev (ediff-vc-working-revision buffer-file-name))) + (ediff-vc-revision-other-window ancestor-rev) (setq ancestor-buf (current-buffer)))) (setq startup-hooks (cons
--- a/lisp/emulation/viper-cmd.el Fri Nov 02 03:42:05 2007 +0000 +++ b/lisp/emulation/viper-cmd.el Fri Nov 02 06:03:12 2007 +0000 @@ -1902,7 +1902,7 @@ (setq viper-intermediate-command 'repeating-display-destructive-command) ;; first search through command history--set temp ring - (setq viper-temp-command-ring (copy-sequence viper-command-ring))) + (setq viper-temp-command-ring (ring-copy viper-command-ring))) (setq cmd (if next (viper-special-ring-rotate1 viper-temp-command-ring 1) (viper-special-ring-rotate1 viper-temp-command-ring -1))) @@ -1936,7 +1936,7 @@ (length viper-last-inserted-string-from-insertion-ring)))) ) ;;first search through insertion history - (setq viper-temp-insertion-ring (copy-sequence viper-insertion-ring))) + (setq viper-temp-insertion-ring (ring-copy viper-insertion-ring))) (setq this-command 'viper-insert-from-insertion-ring) ;; so that things will be undone properly (setq buffer-undo-list (cons nil buffer-undo-list)) @@ -2790,6 +2790,7 @@ (defun viper-next-line-carefully (arg) (condition-case nil + ;; do not use forward-line! need to keep column (next-line arg) (error nil))) @@ -3089,6 +3090,7 @@ (let ((val (viper-p-val arg)) (com (viper-getCom arg))) (if com (viper-move-marker-locally 'viper-com-point (point))) + ;; do not use forward-line! need to keep column (next-line val) (if viper-ex-style-motion (if (and (eolp) (not (bolp))) (backward-char 1))) @@ -3132,6 +3134,7 @@ (let ((val (viper-p-val arg)) (com (viper-getCom arg))) (if com (viper-move-marker-locally 'viper-com-point (point))) + ;; do not use forward-line! need to keep column (previous-line val) (if viper-ex-style-motion (if (and (eolp) (not (bolp))) (backward-char 1)))
--- a/lisp/emulation/viper-ex.el Fri Nov 02 03:42:05 2007 +0000 +++ b/lisp/emulation/viper-ex.el Fri Nov 02 06:03:12 2007 +0000 @@ -651,17 +651,19 @@ (setq initial-str (format "%d,%d" reg-beg-line reg-end-line))) (setq com-str - (or string (viper-read-string-with-history - ":" - initial-str - 'viper-ex-history - ;; no default when working on region - (if initial-str - nil - (car viper-ex-history)) - map - (if initial-str - " [Type command to execute on current region]")))) + (if string + (concat initial-str string) + (viper-read-string-with-history + ":" + initial-str + 'viper-ex-history + ;; no default when working on region + (if initial-str + nil + (car viper-ex-history)) + map + (if initial-str + " [Type command to execute on current region]")))) (save-window-excursion ;; just a precaution (setq viper-ex-work-buf (get-buffer-create viper-ex-work-buf-name))