• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /macosx-10.10/emacs-93/emacs/lisp/

Lines Matching +refs:dired +refs:diff

62 ;; Proper function of the SCCS diff commands requires the shellscript vcdiff
155 ;; vc-BACKEND-diff. (Note that vc-BACKEND-diff must not run
156 ;; asynchronously in this case, see variable `vc-disable-async-diff'.)
164 ;; - dired-state-info (file)
167 ;; used in a vc-dired buffer. The default implementation deals well
306 ;; * diff (file &optional rev1 rev2 buffer)
308 ;; Insert the diff for FILE into BUFFER, or the *vc-diff* buffer if
314 ;; BACKEND 'diff) to the backend command. It should return a status
315 ;; of either 0 (no differences found), or 1 (either non-empty diff
316 ;; or the diff is run asynchronously).
318 ;; - diff-tree (dir &optional rev1 rev2)
320 ;; Insert the diff for all files at and below DIR into the *vc-diff*
322 ;; vc-BACKEND-diff. The default implementation does an explicit tree
323 ;; walk, calling vc-BACKEND-diff for each individual file.
393 ;; backed up locally. If this is done, VC can perform `diff' and
457 (require 'dired) ; for dired-map-over-marks macro
458 (require 'dired-aux)) ; for dired-kill-{line,tree}
532 (defcustom vc-dired-listing-switches "-al"
533 "Switches passed to `ls' for vc-dired. MUST contain the `l' option."
538 (defcustom vc-dired-recurse t
544 (defcustom vc-dired-terse-display t
555 (defcustom vc-diff-switches nil
556 "A string or list of strings specifying switches for diff under VC.
557 When running diff under a given BACKEND, VC concatenates the values of
558 `diff-switches', `vc-diff-switches', and `vc-BACKEND-diff-switches' to
559 get the switches for that command. Thus, `vc-diff-switches' should
570 (defcustom vc-diff-knows-L nil
571 "*Indicates whether diff understands the -L option.
578 "Specifies whether the diff during \\[vc-revert-buffer] may be asynchronous.
704 (define-key m "D" 'vc-annotate-show-diff-revision-at-line)
756 ;; (either a file, or a VC dired buffer).
762 (defvar vc-disable-async-diff nil
763 "VC sets this to t locally to disable some async diff operations.
765 in their implementation of vc-BACKEND-diff.")
770 (defvar vc-dired-mode nil)
771 (make-variable-buffer-local 'vc-dired-mode)
894 (if vc-dired-mode
895 (set-buffer (find-file-noselect (dired-get-filename)))
1052 (let ((diff (- (nth 1 context) (buffer-size))))
1053 (if (< diff 0) (setq diff (- diff)))
1058 (progn (goto-char (- (point) diff (length context-string)))
1190 (if vc-dired-mode
1305 (vc-version-diff file (vc-workfile-version file) nil)
1326 (defvar vc-dired-window-configuration)
1328 (defun vc-next-action-dired (file rev comment)
1331 (let ((dired-buffer (current-buffer)))
1332 (dired-map-over-marks
1333 (let ((file (dired-get-filename)))
1336 (set-buffer dired-buffer)
1337 (set-window-configuration vc-dired-window-configuration)
1340 (dired-move-to-filename))
1348 If you call this from within a VC dired buffer with no files marked,
1351 If you call this from within a VC dired buffer, and one or more
1388 (if vc-dired-mode
1389 (let ((files (dired-get-marked-files)))
1390 (set (make-local-variable 'vc-dired-window-configuration)
1397 (vc-next-action-dired nil nil "dummy")
1400 'vc-next-action-dired))
1541 (vc-dired-resynch-file file))
1686 ;; But not if it is a vc-dired buffer.
1688 (or vc-dired-mode (vc-buffer-sync)))
1717 (if vc-dired-mode
1718 (dired-move-to-filename))
1726 (defun vc-diff (historic &optional not-urgent)
1736 (call-interactively 'vc-version-diff)
1742 (vc-version-diff file nil nil)))))
1744 (defun vc-version-diff (file rev1 rev2)
1753 "File or dir to diff (default visited file): "
1754 "File or dir to diff: ")
1784 ;; recursive directory diff
1786 (vc-setup-buffer "*vc-diff*")
1797 'diff-tree dir rev1 rev2))
1800 ;; Single file diff. It is important that the vc-controlled buffer
1802 ;; buffer should affect the diff command.
1803 (vc-diff-internal file rev1 rev2))
1804 (set-buffer "*vc-diff*")
1815 ;; Gnus-5.8.5 sets up an autoload for diff-mode, even if it's
1817 (if (require 'diff-mode nil t) (diff-mode))
1825 (defun vc-diff-label (file file-rev rev)
1831 (defun vc-diff-internal (file rev1 rev2)
1832 "Run diff to compare FILE's revisions REV1 and REV2.
1833 Diff output goes to the *vc-diff* buffer. The exit status of the diff
1836 This function takes care to set up a proper coding system for diff output.
1838 actually call the backend, but performs a local diff."
1847 (coding-system-for-read (vc-coding-system-for-diff file)))
1850 (if (eq vc-diff-knows-L 'no)
1851 (apply 'vc-do-command "*vc-diff*" 1 "diff" nil
1852 (append (vc-switches nil 'diff)
1855 (apply 'vc-do-command "*vc-diff*" 2 "diff" nil
1856 (append (vc-switches nil 'diff)
1858 ;; CVS would do so diff-mode refers to
1862 (list "-L" (vc-diff-label file file-rev1 rev1)
1863 "-L" (vc-diff-label file file-rev2 rev2)
1867 (if (not vc-diff-knows-L)
1868 (setq vc-diff-knows-L 'no
1869 status (apply 'vc-do-command "*vc-diff*" 1 "diff" nil
1871 (vc-switches nil 'diff)
1874 (error "diff failed"))
1875 (if (not vc-diff-knows-L) (setq vc-diff-knows-L 'yes)))
1877 (vc-call diff file rev1 rev2))))
1889 ((eq op 'diff) diff-switches)))))
1892 ;; This is so we can set vc-diff-switches to t to override
1893 ;; any switches in diff-switches.
1897 (defmacro vc-diff-switches-list (backend) `(vc-switches ',backend 'diff))
1898 (make-obsolete 'vc-diff-switches-list 'vc-switches "22.1")
1900 (defun vc-default-diff-tree (backend dir rev1 rev2)
1902 The meaning of REV1 and REV2 is the same as for `vc-version-diff'."
1904 ;; vc-BACKEND-diff directly for each file. An optimization
1905 ;; would be to use `vc-diff-internal', so that diffs can be local,
1914 `(let ((coding-system-for-read (vc-coding-system-for-diff ',f)))
1917 'diff ',f ',rev1 ',rev2))))))
1919 (defun vc-coding-system-for-diff (file)
1920 "Return the coding system for reading diff output for FILE."
2088 (defvar vc-dired-switches)
2089 (defvar vc-dired-terse-mode)
2091 (defvar vc-dired-mode-map
2097 (define-key vmap "t" 'vc-dired-toggle-terse-mode)
2100 (define-derived-mode vc-dired-mode dired-mode "Dired under VC"
2111 `vl', `v=' etc. to invoke `vc-print-log', `vc-diff', and the like on
2116 ;; We do it here because dired might not be loaded yet
2117 ;; when vc-dired-mode-map is initialized.
2118 (set-keymap-parent vc-dired-mode-map dired-mode-map)
2119 (add-hook 'dired-after-readin-hook 'vc-dired-hook nil t)
2121 ;; because file lines look a bit different in vc-dired-mode
2155 (and (boundp 'vc-dired-switches)
2156 vc-dired-switches
2157 (set (make-local-variable 'dired-actual-switches)
2158 vc-dired-switches))
2159 (set (make-local-variable 'vc-dired-terse-mode) vc-dired-terse-display)
2160 (setq vc-dired-mode t))
2162 (defun vc-dired-toggle-terse-mode ()
2165 (if (not vc-dired-mode)
2167 (setq vc-dired-terse-mode (not vc-dired-terse-mode))
2168 (if vc-dired-terse-mode
2169 (vc-dired-hook)
2172 (defun vc-dired-mark-locked ()
2175 (dired-mark-if (let ((f (dired-get-filename nil t)))
2181 (define-key vc-dired-mode-map "*l" 'vc-dired-mark-locked)
2183 (defun vc-default-dired-state-info (backend file)
2192 (defun vc-dired-reformat-line (vc-info)
2195 This code, like dired, assumes UNIX -l format."
2205 (defun vc-dired-hook ()
2207 Called by dired after any portion of a vc-dired buffer has been read in."
2214 ((setq subdir (dired-get-subdir))
2226 ((setq filename (dired-get-filename nil t))
2234 (dired-kill-tree filename)
2236 (dired-kill-line)))
2237 (vc-dired-terse-mode
2239 ;; dired-kill-line to remove it, because in recursive listings,
2244 (dired-kill-line))
2246 (vc-dired-reformat-line nil)
2250 (not (and vc-dired-terse-mode
2252 (vc-dired-reformat-line (vc-call dired-state-info filename))
2255 (dired-kill-line))))
2258 (vc-dired-purge))
2266 (defun vc-dired-purge ()
2269 (while (dired-get-subdir)
2271 (if (dired-get-filename nil t)
2272 (if (not (dired-next-subdir 1 t))
2275 (if (not (string= (dired-current-directory) default-directory))
2276 (dired-do-kill-lines t "")
2281 (if (not (dired-next-subdir 1 t))
2285 (defun vc-dired-buffers-for-dir (dir)
2286 "Return a list of all vc-dired buffers that currently display DIR."
2288 ;; Check whether dired is loaded.
2289 (when (fboundp 'dired-buffers-for-dir)
2292 (if vc-dired-mode
2294 (dired-buffers-for-dir dir)))
2297 (defun vc-dired-resynch-file (file)
2299 (let ((buffers (vc-dired-buffers-for-dir (file-name-directory file))))
2303 (if (dired-goto-file file)
2304 ;; bind vc-dired-terse-mode to nil so that
2306 (let ((vc-dired-terse-mode nil))
2307 (dired-do-redisplay 1)))))
2317 `dired-listing-switches' when generating the listing."
2319 (let ((vc-dired-switches (concat vc-dired-listing-switches
2320 (if vc-dired-recurse "R" ""))))
2324 (setq vc-dired-switches
2326 vc-dired-switches)))
2327 (require 'dired)
2328 (require 'dired-aux)
2330 (dired-internal-noselect (expand-file-name (file-name-as-directory dir))
2331 vc-dired-switches
2332 'vc-dired-mode))))
2521 ;; vc-diff selects the new window, which is not what we want:
2524 (let* ((vc-disable-async-diff (not vc-allow-async-revert))
2526 (setq status (vc-diff nil t)) (selected-window))))
2667 (vc-dired-resynch-file file))
3079 ["Show diff of revision at line" vc-annotate-show-diff-revision-at-line]))
3244 (defun vc-annotate-show-diff-revision-at-line ()
3245 "Visit the diff of the version at line from its previous version."
3256 (message "Cannot diff from any version prior to %s" rev-at-line)
3258 (vc-version-diff vc-annotate-parent-file prev-rev rev-at-line))
3259 (switch-to-buffer "*vc-diff*"))))))
3401 ;; If FILE is nil, we were called from vc-dired.
3404 (dired-get-marked-files t)))))