Function: vc-diff-build-argument-list-internal

vc-diff-build-argument-list-internal is a byte-compiled function defined in vc.el.gz.

Signature

(vc-diff-build-argument-list-internal &optional FILESET)

Documentation

Build argument list for calling internal diff functions.

Source Code

;; Defined in /usr/src/emacs/lisp/vc/vc.el.gz
(defun vc-diff-build-argument-list-internal (&optional fileset)
  "Build argument list for calling internal diff functions."
  (let* ((vc-fileset (or fileset (vc-deduce-fileset t))) ;FIXME: why t?  --Stef
         (files (cadr vc-fileset))
         (backend (car vc-fileset))
         (first (car files))
         (rev1-default nil)
         ) ;; (rev2-default nil)
    (cond
     ;; someday we may be able to do revision completion on non-singleton
     ;; filesets, but not yet.
     ((/= (length files) 1)
      nil)
     ;; if the file is not locked, use previous revision and current source as defaults
     (t
      (push (ignore-errors         ;If `previous-revision' doesn't work.
              (vc-call-backend backend 'previous-revision first
                               (vc-symbolic-working-revision first backend)))
            rev1-default)
      (when (member (car rev1-default) '("" nil)) (setq rev1-default nil))))
    ;; construct argument list
    (let* ((rev1-prompt (format-prompt "Older revision" (car rev1-default)))
           (rev2-prompt (format-prompt "Newer revision"
                                       ;; (or rev2-default
                                       "current source"))
           (rev1 (vc-read-revision rev1-prompt files backend rev1-default))
           (rev2 (vc-read-revision rev2-prompt files backend nil))) ;; rev2-default
      (when (string= rev1 "") (setq rev1 nil))
      (when (string= rev2 "") (setq rev2 nil))
      (list files rev1 rev2))))