mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2025-01-05 11:45:45 +00:00
* lisp/dired-aux.el (dired-diff): Restore original functionality of
getting the default value, but keep new feature of using the latest existing backup file (`diff-latest-backup-file').
This commit is contained in:
parent
42917e790e
commit
2fd5e67d92
4
etc/NEWS
4
etc/NEWS
@ -468,8 +468,8 @@ file at point.
|
||||
mark/unmark/flag all files in the active region.
|
||||
|
||||
*** The minibuffer default for `=' (`dired-diff) has changed.
|
||||
It is now the backup file for the file at point, if one exists, rather
|
||||
than the file at the mark.
|
||||
It is now the backup file for the file at point, if one exists.
|
||||
In Transient Mark mode the default is the file at the active mark.
|
||||
|
||||
*** `M-=' is no longer bound to `dired-backup-diff' in Dired buffers.
|
||||
The global binding for `M-=', `count-words-region' is in effect.
|
||||
|
@ -1,3 +1,9 @@
|
||||
2012-09-18 Juri Linkov <juri@jurta.org>
|
||||
|
||||
* dired-aux.el (dired-diff): Restore original functionality of
|
||||
getting the default value, but keep new feature of using the
|
||||
latest existing backup file (`diff-latest-backup-file').
|
||||
|
||||
2012-09-18 Juri Linkov <juri@jurta.org>
|
||||
|
||||
* dired.el (dired-mark): If the region is active in Transient Mark
|
||||
|
@ -51,33 +51,57 @@ into this list; they also should call `dired-log' to log the errors.")
|
||||
(defconst dired-star-subst-regexp "\\(^\\|[ \t]\\)\\*\\([ \t]\\|$\\)")
|
||||
(defconst dired-quark-subst-regexp "\\(^\\|[ \t]\\)\\?\\([ \t]\\|$\\)")
|
||||
|
||||
(declare-function diff-latest-backup-file "diff" (fn)) ; actually belongs into files.el
|
||||
|
||||
;;;###autoload
|
||||
(defun dired-diff (file &optional switches)
|
||||
"Compare file at point with file FILE using `diff'.
|
||||
If called interactively, prompt for FILE; if the file at point
|
||||
has a backup file, use that as the default.
|
||||
If called interactively, prompt for FILE. If the file at point
|
||||
has a backup file, use that as the default. If the mark is active
|
||||
in Transient Mark mode, use the file at the mark as the default.
|
||||
\(That's the mark set by \\[set-mark-command], not by Dired's
|
||||
\\[dired-mark] command.)
|
||||
|
||||
FILE is the first file given to `diff'.
|
||||
With prefix arg, prompt for second argument SWITCHES,
|
||||
which is the string of command switches for `diff'."
|
||||
FILE is the first file given to `diff'. The file at point
|
||||
is the second file given to `diff'.
|
||||
|
||||
With prefix arg, prompt for second argument SWITCHES, which is
|
||||
the string of command switches for the third argument of `diff'."
|
||||
(interactive
|
||||
(let* ((current (dired-get-filename t))
|
||||
(oldf (file-newest-backup current))
|
||||
(dir (if oldf (file-name-directory oldf))))
|
||||
(list (read-file-name
|
||||
(format "Diff %s with%s: "
|
||||
(file-name-nondirectory current)
|
||||
(if oldf
|
||||
(concat " (default "
|
||||
(file-name-nondirectory oldf)
|
||||
")")
|
||||
""))
|
||||
dir oldf t)
|
||||
(if current-prefix-arg
|
||||
(read-string "Options for diff: "
|
||||
(if (stringp diff-switches)
|
||||
diff-switches
|
||||
(mapconcat 'identity diff-switches " ")))))))
|
||||
;; Get the latest existing backup file.
|
||||
(oldf (diff-latest-backup-file current))
|
||||
;; Get the file at the mark.
|
||||
(file-at-mark (if (and transient-mark-mode mark-active)
|
||||
(save-excursion (goto-char (mark t))
|
||||
(dired-get-filename t t))))
|
||||
(default-file (or file-at-mark
|
||||
(and oldf (file-name-nondirectory oldf))))
|
||||
;; Use it as default if it's not the same as the current file,
|
||||
;; and the target dir is current or there is a default file.
|
||||
(default (if (and (not (equal default-file current))
|
||||
(or (equal (dired-dwim-target-directory)
|
||||
(dired-current-directory))
|
||||
default-file))
|
||||
default-file))
|
||||
(target-dir (if default
|
||||
(dired-current-directory)
|
||||
(dired-dwim-target-directory)))
|
||||
(defaults (dired-dwim-target-defaults (list current) target-dir)))
|
||||
(list
|
||||
(minibuffer-with-setup-hook
|
||||
(lambda ()
|
||||
(set (make-local-variable 'minibuffer-default-add-function) nil)
|
||||
(setq minibuffer-default defaults))
|
||||
(read-file-name
|
||||
(format "Diff %s with%s: " current
|
||||
(if default (format " (default %s)" default) ""))
|
||||
target-dir default t))
|
||||
(if current-prefix-arg
|
||||
(read-string "Options for diff: "
|
||||
(if (stringp diff-switches)
|
||||
diff-switches
|
||||
(mapconcat 'identity diff-switches " ")))))))
|
||||
(let ((current (dired-get-filename t)))
|
||||
(when (or (equal (expand-file-name file)
|
||||
(expand-file-name current))
|
||||
|
@ -3763,17 +3763,22 @@ Ask means pop up a menu for the user to select one of copy, move or link."
|
||||
;;;;;; dired-run-shell-command dired-do-shell-command dired-do-async-shell-command
|
||||
;;;;;; dired-clean-directory dired-do-print dired-do-touch dired-do-chown
|
||||
;;;;;; dired-do-chgrp dired-do-chmod dired-compare-directories dired-backup-diff
|
||||
;;;;;; dired-diff) "dired-aux" "dired-aux.el" "3650b53533253c50b10e2aa8c9005ebf")
|
||||
;;;;;; dired-diff) "dired-aux" "dired-aux.el" "2a883f0d481a8d0292eb90c09ae36a8e")
|
||||
;;; Generated autoloads from dired-aux.el
|
||||
|
||||
(autoload 'dired-diff "dired-aux" "\
|
||||
Compare file at point with file FILE using `diff'.
|
||||
If called interactively, prompt for FILE; if the file at point
|
||||
has a backup file, use that as the default.
|
||||
If called interactively, prompt for FILE. If the file at point
|
||||
has a backup file, use that as the default. If the mark is active
|
||||
in Transient Mark mode, use the file at the mark as the default.
|
||||
\(That's the mark set by \\[set-mark-command], not by Dired's
|
||||
\\[dired-mark] command.)
|
||||
|
||||
FILE is the first file given to `diff'.
|
||||
With prefix arg, prompt for second argument SWITCHES,
|
||||
which is the string of command switches for `diff'.
|
||||
FILE is the first file given to `diff'. The file at point
|
||||
is the second file given to `diff'.
|
||||
|
||||
With prefix arg, prompt for second argument SWITCHES, which is
|
||||
the string of command switches for the third argument of `diff'.
|
||||
|
||||
\(fn FILE &optional SWITCHES)" t nil)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user