mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2025-01-06 11:55:48 +00:00
Remove unnecessary leading * in docstrings.
(vc-annotate-mode-map): Move initialization into declaration. (vc-static-header-alist): Nitpick on the regexp. (vc-default-init-version): New fun. (vc-register): Use it. (vc-insert-headers): Use dolist. (vc-annotate-get-backend): Remove unused function. (vc-annotate-add-menu): Remove. Build the menu directly at toplevel. (vc-annotate-mode): Remove corresponding call. (vc-annotate-car-last-cons): Simplify. (vc-annotate-buffers): Remove var. (vc-annotate-backend): Make it buffer-local. (vc-annotate): Move the interaction to the interactive spec. Add a `buf' argument. (vc-annotate-warp-version): Use this new `buf' argument to avoid killing&creating a vc-annotate buffer, which is very disruptive when the buffers are shown in dedicated frames.
This commit is contained in:
parent
0ee01fffb7
commit
04864eb004
@ -1,3 +1,23 @@
|
||||
2005-12-22 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* vc.el: Remove unnecessary leading * in docstrings.
|
||||
(vc-annotate-mode-map): Move initialization into declaration.
|
||||
(vc-static-header-alist): Nitpick on the regexp.
|
||||
(vc-default-init-version): New fun.
|
||||
(vc-register): Use it.
|
||||
(vc-insert-headers): Use dolist.
|
||||
(vc-annotate-get-backend): Remove unused function.
|
||||
(vc-annotate-add-menu): Remove. Build the menu directly at toplevel.
|
||||
(vc-annotate-mode): Remove corresponding call.
|
||||
(vc-annotate-car-last-cons): Simplify.
|
||||
(vc-annotate-buffers): Remove var.
|
||||
(vc-annotate-backend): Make it buffer-local.
|
||||
(vc-annotate): Move the interaction to the interactive spec.
|
||||
Add a `buf' argument.
|
||||
(vc-annotate-warp-version): Use this new `buf' argument to avoid
|
||||
killing&creating a vc-annotate buffer, which is very disruptive when
|
||||
the buffers are shown in dedicated frames.
|
||||
|
||||
2005-12-23 Nick Roberts <nickrob@snap.net.nz>
|
||||
|
||||
* descr-text.el: Add FSF as maintainer.
|
||||
@ -11,7 +31,7 @@
|
||||
(describe-char-unicodedata-file): Make URL link in doc string.
|
||||
|
||||
2005-12-22 Richard M. Stallman <rms@gnu.org>
|
||||
|
||||
|
||||
* cus-edit.el (custom-variable-prompt): Say "variable" in prompt.
|
||||
(custom-buffer-create-internal): Reword the top-of-buffer help intro.
|
||||
Don't include buttons that write a file when there's no file.
|
||||
|
302
lisp/vc.el
302
lisp/vc.el
@ -469,12 +469,12 @@
|
||||
:group 'tools)
|
||||
|
||||
(defcustom vc-suppress-confirm nil
|
||||
"*If non-nil, treat user as expert; suppress yes-no prompts on some things."
|
||||
"If non-nil, treat user as expert; suppress yes-no prompts on some things."
|
||||
:type 'boolean
|
||||
:group 'vc)
|
||||
|
||||
(defcustom vc-delete-logbuf-window t
|
||||
"*If non-nil, delete the *VC-log* buffer and window after each logical action.
|
||||
"If non-nil, delete the *VC-log* buffer and window after each logical action.
|
||||
If nil, bury that buffer instead.
|
||||
This is most useful if you have multiple windows on a frame and would like to
|
||||
preserve the setting."
|
||||
@ -482,12 +482,12 @@ preserve the setting."
|
||||
:group 'vc)
|
||||
|
||||
(defcustom vc-initial-comment nil
|
||||
"*If non-nil, prompt for initial comment when a file is registered."
|
||||
"If non-nil, prompt for initial comment when a file is registered."
|
||||
:type 'boolean
|
||||
:group 'vc)
|
||||
|
||||
(defcustom vc-default-init-version "1.1"
|
||||
"*A string used as the default version number when a new file is registered.
|
||||
"A string used as the default version number when a new file is registered.
|
||||
This can be overridden by giving a prefix argument to \\[vc-register]. This
|
||||
can also be overridden by a particular VC backend."
|
||||
:type 'string
|
||||
@ -495,12 +495,12 @@ can also be overridden by a particular VC backend."
|
||||
:version "20.3")
|
||||
|
||||
(defcustom vc-command-messages nil
|
||||
"*If non-nil, display run messages from back-end commands."
|
||||
"If non-nil, display run messages from back-end commands."
|
||||
:type 'boolean
|
||||
:group 'vc)
|
||||
|
||||
(defcustom vc-checkin-switches nil
|
||||
"*A string or list of strings specifying extra switches for checkin.
|
||||
"A string or list of strings specifying extra switches for checkin.
|
||||
These are passed to the checkin program by \\[vc-checkin]."
|
||||
:type '(choice (const :tag "None" nil)
|
||||
(string :tag "Argument String")
|
||||
@ -510,7 +510,7 @@ These are passed to the checkin program by \\[vc-checkin]."
|
||||
:group 'vc)
|
||||
|
||||
(defcustom vc-checkout-switches nil
|
||||
"*A string or list of strings specifying extra switches for checkout.
|
||||
"A string or list of strings specifying extra switches for checkout.
|
||||
These are passed to the checkout program by \\[vc-checkout]."
|
||||
:type '(choice (const :tag "None" nil)
|
||||
(string :tag "Argument String")
|
||||
@ -520,7 +520,7 @@ These are passed to the checkout program by \\[vc-checkout]."
|
||||
:group 'vc)
|
||||
|
||||
(defcustom vc-register-switches nil
|
||||
"*A string or list of strings; extra switches for registering a file.
|
||||
"A string or list of strings; extra switches for registering a file.
|
||||
These are passed to the checkin program by \\[vc-register]."
|
||||
:type '(choice (const :tag "None" nil)
|
||||
(string :tag "Argument String")
|
||||
@ -530,30 +530,30 @@ These are passed to the checkin program by \\[vc-register]."
|
||||
:group 'vc)
|
||||
|
||||
(defcustom vc-dired-listing-switches "-al"
|
||||
"*Switches passed to `ls' for vc-dired. MUST contain the `l' option."
|
||||
"Switches passed to `ls' for vc-dired. MUST contain the `l' option."
|
||||
:type 'string
|
||||
:group 'vc
|
||||
:version "21.1")
|
||||
|
||||
(defcustom vc-dired-recurse t
|
||||
"*If non-nil, show directory trees recursively in VC Dired."
|
||||
"If non-nil, show directory trees recursively in VC Dired."
|
||||
:type 'boolean
|
||||
:group 'vc
|
||||
:version "20.3")
|
||||
|
||||
(defcustom vc-dired-terse-display t
|
||||
"*If non-nil, show only locked files in VC Dired."
|
||||
"If non-nil, show only locked files in VC Dired."
|
||||
:type 'boolean
|
||||
:group 'vc
|
||||
:version "20.3")
|
||||
|
||||
(defcustom vc-directory-exclusion-list '("SCCS" "RCS" "CVS" "MCVS" ".svn" "{arch}")
|
||||
"*List of directory names to be ignored when walking directory trees."
|
||||
"List of directory names to be ignored when walking directory trees."
|
||||
:type '(repeat string)
|
||||
:group 'vc)
|
||||
|
||||
(defcustom vc-diff-switches nil
|
||||
"*A string or list of strings specifying switches for diff under VC.
|
||||
"A string or list of strings specifying switches for diff under VC.
|
||||
When running diff under a given BACKEND, VC concatenates the values of
|
||||
`diff-switches', `vc-diff-switches', and `vc-BACKEND-diff-switches' to
|
||||
get the switches for that command. Thus, `vc-diff-switches' should
|
||||
@ -568,7 +568,7 @@ specific to any particular backend."
|
||||
:version "21.1")
|
||||
|
||||
(defcustom vc-allow-async-revert nil
|
||||
"*Specifies whether the diff during \\[vc-revert-buffer] may be asynchronous.
|
||||
"Specifies whether the diff during \\[vc-revert-buffer] may be asynchronous.
|
||||
Enabling this option means that you can confirm a revert operation even
|
||||
if the local changes in the file have not been found and displayed yet."
|
||||
:type '(choice (const :tag "No" nil)
|
||||
@ -578,7 +578,7 @@ if the local changes in the file have not been found and displayed yet."
|
||||
|
||||
;;;###autoload
|
||||
(defcustom vc-checkout-hook nil
|
||||
"*Normal hook (list of functions) run after checking out a file.
|
||||
"Normal hook (list of functions) run after checking out a file.
|
||||
See `run-hooks'."
|
||||
:type 'hook
|
||||
:group 'vc
|
||||
@ -595,7 +595,7 @@ See `run-hooks'."
|
||||
|
||||
;;;###autoload
|
||||
(defcustom vc-checkin-hook nil
|
||||
"*Normal hook (list of functions) run after a checkin is done.
|
||||
"Normal hook (list of functions) run after a checkin is done.
|
||||
See also `log-edit-done-hook'."
|
||||
:type 'hook
|
||||
:options '(log-edit-comment-to-change-log)
|
||||
@ -603,13 +603,13 @@ See also `log-edit-done-hook'."
|
||||
|
||||
;;;###autoload
|
||||
(defcustom vc-before-checkin-hook nil
|
||||
"*Normal hook (list of functions) run before a file is checked in.
|
||||
"Normal hook (list of functions) run before a file is checked in.
|
||||
See `run-hooks'."
|
||||
:type 'hook
|
||||
:group 'vc)
|
||||
|
||||
(defcustom vc-logentry-check-hook nil
|
||||
"*Normal hook run by `vc-backend-logentry-check'.
|
||||
"Normal hook run by `vc-backend-logentry-check'.
|
||||
Use this to impose your own rules on the entry in addition to any the
|
||||
version control backend imposes itself."
|
||||
:type 'hook
|
||||
@ -634,25 +634,25 @@ version control backend imposes itself."
|
||||
(300. . "#00CCFF")
|
||||
(320. . "#00CC99")
|
||||
(340. . "#0099FF"))
|
||||
"*Association list of age versus color, for \\[vc-annotate].
|
||||
"Association list of age versus color, for \\[vc-annotate].
|
||||
Ages are given in units of fractional days. Default is eighteen steps
|
||||
using a twenty day increment."
|
||||
:type 'alist
|
||||
:group 'vc)
|
||||
|
||||
(defcustom vc-annotate-very-old-color "#0046FF"
|
||||
"*Color for lines older than the current color range in \\[vc-annotate]]."
|
||||
"Color for lines older than the current color range in \\[vc-annotate]]."
|
||||
:type 'string
|
||||
:group 'vc)
|
||||
|
||||
(defcustom vc-annotate-background "black"
|
||||
"*Background color for \\[vc-annotate].
|
||||
"Background color for \\[vc-annotate].
|
||||
Default color is used if nil."
|
||||
:type 'string
|
||||
:group 'vc)
|
||||
|
||||
(defcustom vc-annotate-menu-elements '(2 0.5 0.1 0.01)
|
||||
"*Menu elements for the mode-specific menu of VC-Annotate mode.
|
||||
"Menu elements for the mode-specific menu of VC-Annotate mode.
|
||||
List of factors, used to expand/compress the time scale. See `vc-annotate'."
|
||||
:type '(repeat number)
|
||||
:group 'vc)
|
||||
@ -660,24 +660,23 @@ List of factors, used to expand/compress the time scale. See `vc-annotate'."
|
||||
(defvar vc-annotate-mode-map
|
||||
(let ((m (make-sparse-keymap)))
|
||||
(define-key m [menu-bar] (make-sparse-keymap "VC-Annotate"))
|
||||
(define-key m "A" 'vc-annotate-revision-previous-to-line)
|
||||
(define-key m "D" 'vc-annotate-show-diff-revision-at-line)
|
||||
(define-key m "J" 'vc-annotate-revision-at-line)
|
||||
(define-key m "L" 'vc-annotate-show-log-revision-at-line)
|
||||
(define-key m "N" 'vc-annotate-next-version)
|
||||
(define-key m "P" 'vc-annotate-prev-version)
|
||||
(define-key m "W" 'vc-annotate-workfile-version)
|
||||
m)
|
||||
"Local keymap used for VC-Annotate mode.")
|
||||
|
||||
(define-key vc-annotate-mode-map "A" 'vc-annotate-revision-previous-to-line)
|
||||
(define-key vc-annotate-mode-map "D" 'vc-annotate-show-diff-revision-at-line)
|
||||
(define-key vc-annotate-mode-map "J" 'vc-annotate-revision-at-line)
|
||||
(define-key vc-annotate-mode-map "L" 'vc-annotate-show-log-revision-at-line)
|
||||
(define-key vc-annotate-mode-map "N" 'vc-annotate-next-version)
|
||||
(define-key vc-annotate-mode-map "P" 'vc-annotate-prev-version)
|
||||
(define-key vc-annotate-mode-map "W" 'vc-annotate-workfile-version)
|
||||
|
||||
(defvar vc-annotate-mode-menu nil
|
||||
"Local keymap used for VC-Annotate mode's menu bar menu.")
|
||||
|
||||
;; Header-insertion hair
|
||||
|
||||
(defcustom vc-static-header-alist
|
||||
'(("\\.c$" .
|
||||
'(("\\.c\\'" .
|
||||
"\n#ifndef lint\nstatic char vcid[] = \"\%s\";\n#endif /* lint */\n"))
|
||||
"*Associate static header string templates with file types.
|
||||
A \%s in the template is replaced with the first string associated with
|
||||
@ -713,9 +712,7 @@ and that its contents match what the master file says."
|
||||
;; Variables the user doesn't need to know about.
|
||||
(defvar vc-log-operation nil)
|
||||
(defvar vc-log-after-operation-hook nil)
|
||||
(defvar vc-annotate-buffers nil
|
||||
"Alist of current \"Annotate\" buffers and their corresponding backends.
|
||||
The keys are \(BUFFER . BACKEND\). See also `vc-annotate-get-backend'.")
|
||||
|
||||
;; In a log entry buffer, this is a local variable
|
||||
;; that points to the buffer for which it was made
|
||||
;; (either a file, or a VC dired buffer).
|
||||
@ -1367,6 +1364,8 @@ merge in the changes into your working copy."
|
||||
|
||||
;; These functions help the vc-next-action entry point
|
||||
|
||||
(defun vc-default-init-version (backend) vc-default-init-version)
|
||||
|
||||
;;;###autoload
|
||||
(defun vc-register (&optional set-version comment)
|
||||
"Register the current file into a version control system.
|
||||
@ -1398,10 +1397,8 @@ first backend that could register the file is used."
|
||||
(if set-version
|
||||
(read-string (format "Initial version level for %s: "
|
||||
(buffer-name)))
|
||||
(let ((backend (vc-responsible-backend buffer-file-name)))
|
||||
(if (vc-find-backend-function backend 'init-version)
|
||||
(vc-call-backend backend 'init-version)
|
||||
vc-default-init-version)))
|
||||
(vc-call-backend (vc-responsible-backend buffer-file-name)
|
||||
'init-version))
|
||||
(or comment (not vc-initial-comment))
|
||||
nil
|
||||
"Enter initial comment."
|
||||
@ -1937,24 +1934,19 @@ the variable `vc-BACKEND-header'."
|
||||
(widen)
|
||||
(if (or (not (vc-check-headers))
|
||||
(y-or-n-p "Version headers already exist. Insert another set? "))
|
||||
(progn
|
||||
(let* ((delims (cdr (assq major-mode vc-comment-alist)))
|
||||
(comment-start-vc (or (car delims) comment-start "#"))
|
||||
(comment-end-vc (or (car (cdr delims)) comment-end ""))
|
||||
(hdsym (vc-make-backend-sym (vc-backend buffer-file-name)
|
||||
'header))
|
||||
(hdstrings (and (boundp hdsym) (symbol-value hdsym))))
|
||||
(mapcar (lambda (s)
|
||||
(insert comment-start-vc "\t" s "\t"
|
||||
comment-end-vc "\n"))
|
||||
hdstrings)
|
||||
(if vc-static-header-alist
|
||||
(mapcar (lambda (f)
|
||||
(if (string-match (car f) buffer-file-name)
|
||||
(insert (format (cdr f) (car hdstrings)))))
|
||||
vc-static-header-alist))
|
||||
)
|
||||
)))))
|
||||
(let* ((delims (cdr (assq major-mode vc-comment-alist)))
|
||||
(comment-start-vc (or (car delims) comment-start "#"))
|
||||
(comment-end-vc (or (car (cdr delims)) comment-end ""))
|
||||
(hdsym (vc-make-backend-sym (vc-backend buffer-file-name)
|
||||
'header))
|
||||
(hdstrings (and (boundp hdsym) (symbol-value hdsym))))
|
||||
(dolist (s hdstrings)
|
||||
(insert comment-start-vc "\t" s "\t"
|
||||
comment-end-vc "\n"))
|
||||
(if vc-static-header-alist
|
||||
(dolist (f vc-static-header-alist)
|
||||
(if (string-match (car f) buffer-file-name)
|
||||
(insert (format (cdr f) (car hdstrings)))))))))))
|
||||
|
||||
(defun vc-clear-headers (&optional file)
|
||||
"Clear all version headers in the current buffer (or FILE).
|
||||
@ -2897,8 +2889,7 @@ Uses `rcs2log' which only works for RCS and CVS."
|
||||
(concat odefault f))))
|
||||
files)))
|
||||
"done"
|
||||
(pop-to-buffer
|
||||
(set-buffer (get-buffer-create "*vc*")))
|
||||
(pop-to-buffer (get-buffer-create "*vc*"))
|
||||
(erase-buffer)
|
||||
(insert-file-contents tempfile)
|
||||
"failed"))
|
||||
@ -2913,9 +2904,9 @@ Uses `rcs2log' which only works for RCS and CVS."
|
||||
;; annotate-mode, which replaces it with the more sensible "span-to
|
||||
;; days", along with autoscaling support.
|
||||
(defvar vc-annotate-ratio nil "Global variable.")
|
||||
(defvar vc-annotate-backend nil "Global variable.")
|
||||
|
||||
;; internal buffer-local variables
|
||||
(defvar vc-annotate-backend nil)
|
||||
(defvar vc-annotate-parent-file nil)
|
||||
(defvar vc-annotate-parent-rev nil)
|
||||
(defvar vc-annotate-parent-display-mode nil)
|
||||
@ -2924,12 +2915,6 @@ Uses `rcs2log' which only works for RCS and CVS."
|
||||
;; The fontification is done by vc-annotate-lines instead of font-lock.
|
||||
'((vc-annotate-lines)))
|
||||
|
||||
(defun vc-annotate-get-backend (buffer)
|
||||
"Return the backend matching \"Annotate\" buffer BUFFER.
|
||||
Return nil if no match made. Associations are made based on
|
||||
`vc-annotate-buffers'."
|
||||
(cdr (assoc buffer vc-annotate-buffers)))
|
||||
|
||||
(define-derived-mode vc-annotate-mode fundamental-mode "Annotate"
|
||||
"Major mode for output buffers of the `vc-annotate' command.
|
||||
|
||||
@ -2939,8 +2924,7 @@ menu items."
|
||||
(set (make-local-variable 'truncate-lines) t)
|
||||
(set (make-local-variable 'font-lock-defaults)
|
||||
'(vc-annotate-font-lock-keywords t))
|
||||
(view-mode 1)
|
||||
(vc-annotate-add-menu))
|
||||
(view-mode 1))
|
||||
|
||||
(defun vc-annotate-display-default (&optional ratio)
|
||||
"Display the output of \\[vc-annotate] using the default color range.
|
||||
@ -2987,70 +2971,48 @@ cover the range from the oldest annotation to the newest."
|
||||
(format "Spanned to %.1f days old" (- current oldest))))))
|
||||
|
||||
;; Menu -- Using easymenu.el
|
||||
(defun vc-annotate-add-menu ()
|
||||
"Add the menu 'Annotate' to the menu bar in VC-Annotate mode."
|
||||
(let ((menu-elements vc-annotate-menu-elements)
|
||||
(menu-def
|
||||
'("VC-Annotate"
|
||||
["Default" (unless (null vc-annotate-display-mode)
|
||||
(setq vc-annotate-display-mode nil)
|
||||
(vc-annotate-display-select))
|
||||
:style toggle :selected (null vc-annotate-display-mode)]))
|
||||
(oldest-in-map (vc-annotate-car-last-cons vc-annotate-color-map)))
|
||||
(while menu-elements
|
||||
(let* ((element (car menu-elements))
|
||||
(days (* element oldest-in-map)))
|
||||
(setq menu-elements (cdr menu-elements))
|
||||
(setq menu-def
|
||||
(append menu-def
|
||||
`([,(format "Span %.1f days" days)
|
||||
(unless (and (numberp vc-annotate-display-mode)
|
||||
(= vc-annotate-display-mode ,days))
|
||||
(vc-annotate-display-select nil ,days))
|
||||
:style toggle :selected
|
||||
(and (numberp vc-annotate-display-mode)
|
||||
(= vc-annotate-display-mode ,days)) ])))))
|
||||
(setq menu-def
|
||||
(append menu-def
|
||||
(list
|
||||
["Span ..."
|
||||
(let ((days
|
||||
(float (string-to-number
|
||||
(read-string "Span how many days? ")))))
|
||||
(vc-annotate-display-select nil days)) t])
|
||||
(list "--")
|
||||
(list
|
||||
["Span to Oldest"
|
||||
(unless (eq vc-annotate-display-mode 'scale)
|
||||
(vc-annotate-display-select nil 'scale))
|
||||
:style toggle :selected
|
||||
(eq vc-annotate-display-mode 'scale)])
|
||||
(list
|
||||
["Span Oldest->Newest"
|
||||
(unless (eq vc-annotate-display-mode 'fullscale)
|
||||
(vc-annotate-display-select nil 'fullscale))
|
||||
:style toggle :selected
|
||||
(eq vc-annotate-display-mode 'fullscale)])
|
||||
(list "--")
|
||||
(list ["Annotate previous revision"
|
||||
(call-interactively 'vc-annotate-prev-version)])
|
||||
(list ["Annotate next revision"
|
||||
(call-interactively 'vc-annotate-next-version)])
|
||||
(list ["Annotate revision at line"
|
||||
(vc-annotate-revision-at-line)])
|
||||
(list ["Annotate revision previous to line"
|
||||
(vc-annotate-revision-previous-to-line)])
|
||||
(list ["Annotate latest revision"
|
||||
(vc-annotate-workfile-version)])
|
||||
(list ["Show log of revision at line"
|
||||
(vc-annotate-show-log-revision-at-line)])
|
||||
(list ["Show diff of revision at line"
|
||||
(vc-annotate-show-diff-revision-at-line)])))
|
||||
|
||||
;; Define the menu
|
||||
(if (or (featurep 'easymenu) (load "easymenu" t))
|
||||
(easy-menu-define vc-annotate-mode-menu vc-annotate-mode-map
|
||||
"VC Annotate Display Menu" menu-def))))
|
||||
(easy-menu-define vc-annotate-mode-menu vc-annotate-mode-map
|
||||
"VC Annotate Display Menu"
|
||||
`("VC-Annotate"
|
||||
["Default" (unless (null vc-annotate-display-mode)
|
||||
(setq vc-annotate-display-mode nil)
|
||||
(vc-annotate-display-select))
|
||||
:style toggle :selected (null vc-annotate-display-mode)]
|
||||
,@(let ((oldest-in-map (vc-annotate-car-last-cons vc-annotate-color-map)))
|
||||
(mapcar (lambda (element)
|
||||
(let ((days (* element oldest-in-map)))
|
||||
`([,(format "Span %.1f days" days)
|
||||
(unless (and (numberp vc-annotate-display-mode)
|
||||
(= vc-annotate-display-mode ,days))
|
||||
(vc-annotate-display-select nil ,days))
|
||||
:style toggle :selected
|
||||
(and (numberp vc-annotate-display-mode)
|
||||
(= vc-annotate-display-mode ,days)) ])))
|
||||
vc-annotate-menu-elements))
|
||||
["Span ..."
|
||||
(let ((days
|
||||
(float (string-to-number
|
||||
(read-string "Span how many days? ")))))
|
||||
(vc-annotate-display-select nil days)) t]
|
||||
"--"
|
||||
["Span to Oldest"
|
||||
(unless (eq vc-annotate-display-mode 'scale)
|
||||
(vc-annotate-display-select nil 'scale))
|
||||
:style toggle :selected
|
||||
(eq vc-annotate-display-mode 'scale)]
|
||||
["Span Oldest->Newest"
|
||||
(unless (eq vc-annotate-display-mode 'fullscale)
|
||||
(vc-annotate-display-select nil 'fullscale))
|
||||
:style toggle :selected
|
||||
(eq vc-annotate-display-mode 'fullscale)]
|
||||
"--"
|
||||
["Annotate previous revision" vc-annotate-prev-version]
|
||||
["Annotate next revision" vc-annotate-next-version]
|
||||
["Annotate revision at line" vc-annotate-revision-at-line]
|
||||
["Annotate revision previous to line" vc-annotate-revision-previous-to-line]
|
||||
["Annotate latest revision" vc-annotate-workfile-version]
|
||||
["Show log of revision at line" vc-annotate-show-log-revision-at-line]
|
||||
["Show diff of revision at line" vc-annotate-show-diff-revision-at-line]))
|
||||
|
||||
(defun vc-annotate-display-select (&optional buffer mode)
|
||||
"Highlight the output of \\[vc-annotate].
|
||||
@ -3083,7 +3045,7 @@ use; you may override this using the second optional arg MODE."
|
||||
;;;; the contents in BUFFER.
|
||||
|
||||
;;;###autoload
|
||||
(defun vc-annotate (prefix &optional revision display-mode)
|
||||
(defun vc-annotate (file rev &optional display-mode buf)
|
||||
"Display the edit history of the current file using colors.
|
||||
|
||||
This command creates a buffer that shows, for each line of the current
|
||||
@ -3108,48 +3070,44 @@ Customization variables:
|
||||
mode-specific menu. `vc-annotate-color-map' and
|
||||
`vc-annotate-very-old-color' defines the mapping of time to
|
||||
colors. `vc-annotate-background' specifies the background color."
|
||||
(interactive "P")
|
||||
(interactive
|
||||
(save-current-buffer
|
||||
(vc-ensure-vc-buffer)
|
||||
(list buffer-file-name
|
||||
(let ((def (vc-workfile-version buffer-file-name)))
|
||||
(if (null current-prefix-arg) def
|
||||
(read-string
|
||||
(format "Annotate from version (default %s): " def)
|
||||
nil nil def)))
|
||||
(if (null current-prefix-arg)
|
||||
vc-annotate-display-mode
|
||||
(float (string-to-number
|
||||
(read-string "Annotate span days (default 20): "
|
||||
nil nil "20")))))))
|
||||
(vc-ensure-vc-buffer)
|
||||
(let* ((temp-buffer-name nil)
|
||||
(temp-buffer-show-function 'vc-annotate-display-select)
|
||||
(rev (or revision (vc-workfile-version buffer-file-name)))
|
||||
(bfn buffer-file-name)
|
||||
(vc-annotate-version
|
||||
(if prefix (read-string
|
||||
(format "Annotate from version (default %s): " rev)
|
||||
nil nil rev)
|
||||
rev)))
|
||||
(if display-mode
|
||||
(setq vc-annotate-display-mode display-mode)
|
||||
(if prefix
|
||||
(setq vc-annotate-display-mode
|
||||
(float (string-to-number
|
||||
(read-string "Annotate span days (default 20): "
|
||||
nil nil "20"))))))
|
||||
(setq temp-buffer-name (format "*Annotate %s (rev %s)*"
|
||||
(buffer-name) vc-annotate-version))
|
||||
(setq vc-annotate-backend (vc-backend buffer-file-name))
|
||||
(setq vc-annotate-display-mode display-mode) ;Not sure why. --Stef
|
||||
(let* ((temp-buffer-name (format "*Annotate %s (rev %s)*" (buffer-name) rev))
|
||||
(temp-buffer-show-function 'vc-annotate-display-select))
|
||||
(message "Annotating...")
|
||||
;; If BUF is specified it tells in which buffer we should put the
|
||||
;; annotations. This is used when switching annotations to another
|
||||
;; revision, so we should update the buffer's name.
|
||||
(if buf (with-current-buffer buf
|
||||
(rename-buffer temp-buffer-name t)
|
||||
;; In case it had to be uniquified.
|
||||
(setq temp-buffer-name (buffer-name))))
|
||||
(if (not (vc-find-backend-function vc-annotate-backend 'annotate-command))
|
||||
(error "Sorry, annotating is not implemented for %s"
|
||||
vc-annotate-backend))
|
||||
(with-output-to-temp-buffer temp-buffer-name
|
||||
(vc-call-backend vc-annotate-backend 'annotate-command
|
||||
buffer-file-name
|
||||
(get-buffer temp-buffer-name)
|
||||
vc-annotate-version))
|
||||
(save-excursion
|
||||
(set-buffer temp-buffer-name)
|
||||
(set (make-local-variable 'vc-annotate-parent-file) bfn)
|
||||
(set (make-local-variable 'vc-annotate-parent-rev) vc-annotate-version)
|
||||
(vc-call annotate-command file (get-buffer temp-buffer-name) rev))
|
||||
(with-current-buffer temp-buffer-name
|
||||
(set (make-local-variable 'vc-annotate-backend) (vc-backend file))
|
||||
(set (make-local-variable 'vc-annotate-parent-file) file)
|
||||
(set (make-local-variable 'vc-annotate-parent-rev) rev)
|
||||
(set (make-local-variable 'vc-annotate-parent-display-mode)
|
||||
vc-annotate-display-mode))
|
||||
display-mode))
|
||||
|
||||
;; Don't use the temp-buffer-name until the buffer is created
|
||||
;; (only after `with-output-to-temp-buffer'.)
|
||||
(setq vc-annotate-buffers
|
||||
(append vc-annotate-buffers
|
||||
(list (cons (get-buffer temp-buffer-name) vc-annotate-backend))))
|
||||
(message "Annotating... done")))
|
||||
|
||||
(defun vc-annotate-prev-version (prefix)
|
||||
@ -3274,20 +3232,16 @@ revision."
|
||||
((stringp revspec) (setq newrev revspec))
|
||||
(t (error "Invalid argument to vc-annotate-warp-version")))
|
||||
(when newrev
|
||||
(save-window-excursion
|
||||
(find-file vc-annotate-parent-file)
|
||||
(vc-annotate nil newrev vc-annotate-parent-display-mode))
|
||||
(kill-buffer (current-buffer)) ;; kill the buffer we started from
|
||||
(switch-to-buffer (car (car (last vc-annotate-buffers))))
|
||||
(vc-annotate vc-annotate-parent-file newrev
|
||||
vc-annotate-parent-display-mode
|
||||
(current-buffer))
|
||||
(goto-line (min oldline (progn (goto-char (point-max))
|
||||
(previous-line)
|
||||
(line-number-at-pos))))))))
|
||||
|
||||
(defun vc-annotate-car-last-cons (a-list)
|
||||
"Return car of last cons in association list A-LIST."
|
||||
(if (not (eq nil (cdr a-list)))
|
||||
(vc-annotate-car-last-cons (cdr a-list))
|
||||
(car (car a-list))))
|
||||
(caar (last a-list)))
|
||||
|
||||
(defun vc-annotate-time-span (a-list span &optional quantize)
|
||||
"Apply factor SPAN to the time-span of association list A-LIST.
|
||||
|
Loading…
Reference in New Issue
Block a user