Mercurial > emacs
annotate lisp/log-view.el @ 70108:3233d9998115
(comint-previous-input): Don't clobber input line when moving off either
end of the input history ring.
(comint-delete-input): New function, used by `comint-previous-input' and
others.
(comint-previous-matching-input): Use `coming-delete-input'. Save the
partial input if leaving the edit line. Goto point-max before deleting
input to avoid partial input fragments hanging around.
(comint-restore-input): New function, used by `comint-previous-input',
and bound to "C-c C-j".
author | J.D. Smith <jdsmith@as.arizona.edu> |
---|---|
date | Tue, 18 Apr 2006 23:48:53 +0000 |
parents | 3bd95f4f2941 |
children | 2b77fa42947f c5406394f567 |
rev | line source |
---|---|
29041
49e8918cab44
Fix file description.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
28861
diff
changeset
|
1 ;;; log-view.el --- Major mode for browsing RCS/CVS/SCCS log output |
28088
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
2 |
68651
3bd95f4f2941
Update years in copyright notice; nfc.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
68370
diff
changeset
|
3 ;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, |
3bd95f4f2941
Update years in copyright notice; nfc.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
68370
diff
changeset
|
4 ;; 2006 Free Software Foundation, Inc. |
28088
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
5 |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
6 ;; Author: Stefan Monnier <monnier@cs.yale.edu> |
29041
49e8918cab44
Fix file description.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
28861
diff
changeset
|
7 ;; Keywords: rcs sccs cvs log version-control |
28088
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
8 |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
9 ;; This file is part of GNU Emacs. |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
10 |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
11 ;; GNU Emacs is free software; you can redistribute it and/or modify |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
12 ;; it under the terms of the GNU General Public License as published by |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
13 ;; the Free Software Foundation; either version 2, or (at your option) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
14 ;; any later version. |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
15 |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
16 ;; GNU Emacs is distributed in the hope that it will be useful, |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
17 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
18 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
19 ;; GNU General Public License for more details. |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
20 |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
21 ;; You should have received a copy of the GNU General Public License |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
22 ;; along with GNU Emacs; see the file COPYING. If not, write to the |
64091 | 23 ;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, |
24 ;; Boston, MA 02110-1301, USA. | |
28088
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
25 |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
26 ;;; Commentary: |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
27 |
67709
6f549652480e
(log-view-file-re, log-view-message-re): Use shy groups.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67569
diff
changeset
|
28 ;; Major mode to browse revision log histories. |
6f549652480e
(log-view-file-re, log-view-message-re): Use shy groups.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67569
diff
changeset
|
29 ;; Currently supports the format output by: |
68098
150225f41e97
(log-view-file-re, log-view-message-re): Add support for DaRCS output.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67775
diff
changeset
|
30 ;; RCS, SCCS, CVS, Subversion, and DaRCS. |
67709
6f549652480e
(log-view-file-re, log-view-message-re): Use shy groups.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67569
diff
changeset
|
31 |
6f549652480e
(log-view-file-re, log-view-message-re): Use shy groups.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67569
diff
changeset
|
32 ;; Examples of log output: |
6f549652480e
(log-view-file-re, log-view-message-re): Use shy groups.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67569
diff
changeset
|
33 |
6f549652480e
(log-view-file-re, log-view-message-re): Use shy groups.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67569
diff
changeset
|
34 ;;;; RCS/CVS: |
28088
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
35 |
67709
6f549652480e
(log-view-file-re, log-view-message-re): Use shy groups.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67569
diff
changeset
|
36 ;; ---------------------------- |
6f549652480e
(log-view-file-re, log-view-message-re): Use shy groups.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67569
diff
changeset
|
37 ;; revision 1.35 locked by: turlutut |
6f549652480e
(log-view-file-re, log-view-message-re): Use shy groups.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67569
diff
changeset
|
38 ;; date: 2005-03-22 18:48:38 +0000; author: monnier; state: Exp; lines: +6 -8 |
6f549652480e
(log-view-file-re, log-view-message-re): Use shy groups.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67569
diff
changeset
|
39 ;; (gnus-display-time-event-handler): |
6f549652480e
(log-view-file-re, log-view-message-re): Use shy groups.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67569
diff
changeset
|
40 ;; Check display-time-timer at runtime rather than only at load time |
6f549652480e
(log-view-file-re, log-view-message-re): Use shy groups.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67569
diff
changeset
|
41 ;; in case display-time-mode is turned off in the mean time. |
6f549652480e
(log-view-file-re, log-view-message-re): Use shy groups.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67569
diff
changeset
|
42 ;; ---------------------------- |
6f549652480e
(log-view-file-re, log-view-message-re): Use shy groups.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67569
diff
changeset
|
43 ;; revision 1.34 |
6f549652480e
(log-view-file-re, log-view-message-re): Use shy groups.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67569
diff
changeset
|
44 ;; date: 2005-02-09 15:50:38 +0000; author: kfstorm; state: Exp; lines: +7 -7 |
6f549652480e
(log-view-file-re, log-view-message-re): Use shy groups.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67569
diff
changeset
|
45 ;; branches: 1.34.2; |
6f549652480e
(log-view-file-re, log-view-message-re): Use shy groups.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67569
diff
changeset
|
46 ;; Change release version from 21.4 to 22.1 throughout. |
6f549652480e
(log-view-file-re, log-view-message-re): Use shy groups.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67569
diff
changeset
|
47 ;; Change development version from 21.3.50 to 22.0.50. |
6f549652480e
(log-view-file-re, log-view-message-re): Use shy groups.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67569
diff
changeset
|
48 |
6f549652480e
(log-view-file-re, log-view-message-re): Use shy groups.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67569
diff
changeset
|
49 ;;;; SCCS: |
6f549652480e
(log-view-file-re, log-view-message-re): Use shy groups.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67569
diff
changeset
|
50 |
6f549652480e
(log-view-file-re, log-view-message-re): Use shy groups.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67569
diff
changeset
|
51 ;;;; Subversion: |
6f549652480e
(log-view-file-re, log-view-message-re): Use shy groups.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67569
diff
changeset
|
52 |
68098
150225f41e97
(log-view-file-re, log-view-message-re): Add support for DaRCS output.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67775
diff
changeset
|
53 ;;;; Darcs: |
150225f41e97
(log-view-file-re, log-view-message-re): Add support for DaRCS output.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67775
diff
changeset
|
54 |
150225f41e97
(log-view-file-re, log-view-message-re): Add support for DaRCS output.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67775
diff
changeset
|
55 ;; Changes to darcsum.el: |
150225f41e97
(log-view-file-re, log-view-message-re): Add support for DaRCS output.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67775
diff
changeset
|
56 ;; |
150225f41e97
(log-view-file-re, log-view-message-re): Add support for DaRCS output.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67775
diff
changeset
|
57 ;; Mon Nov 28 15:19:38 GMT 2005 Dave Love <fx@gnu.org> |
150225f41e97
(log-view-file-re, log-view-message-re): Add support for DaRCS output.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67775
diff
changeset
|
58 ;; * Abstract process startup into darcsum-start-process. Use TERM=dumb. |
150225f41e97
(log-view-file-re, log-view-message-re): Add support for DaRCS output.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67775
diff
changeset
|
59 ;; TERM=dumb avoids escape characters, at least, for any old darcs that |
150225f41e97
(log-view-file-re, log-view-message-re): Add support for DaRCS output.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67775
diff
changeset
|
60 ;; doesn't understand DARCS_DONT_COLOR & al. |
150225f41e97
(log-view-file-re, log-view-message-re): Add support for DaRCS output.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67775
diff
changeset
|
61 ;; |
150225f41e97
(log-view-file-re, log-view-message-re): Add support for DaRCS output.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67775
diff
changeset
|
62 ;; Thu Nov 24 15:20:45 GMT 2005 Dave Love <fx@gnu.org> |
150225f41e97
(log-view-file-re, log-view-message-re): Add support for DaRCS output.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67775
diff
changeset
|
63 ;; * darcsum-mode-related changes. |
150225f41e97
(log-view-file-re, log-view-message-re): Add support for DaRCS output.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67775
diff
changeset
|
64 ;; Don't call font-lock-mode (unnecessary) or use-local-map (redundant). |
150225f41e97
(log-view-file-re, log-view-message-re): Add support for DaRCS output.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67775
diff
changeset
|
65 ;; Use mode-class 'special. Add :group. |
150225f41e97
(log-view-file-re, log-view-message-re): Add support for DaRCS output.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67775
diff
changeset
|
66 ;; Add trailing-whitespace option to mode hook and fix |
150225f41e97
(log-view-file-re, log-view-message-re): Add support for DaRCS output.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67775
diff
changeset
|
67 ;; darcsum-display-changeset not to use trailing whitespace. |
150225f41e97
(log-view-file-re, log-view-message-re): Add support for DaRCS output.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67775
diff
changeset
|
68 |
67709
6f549652480e
(log-view-file-re, log-view-message-re): Use shy groups.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67569
diff
changeset
|
69 ;;; Todo: |
6f549652480e
(log-view-file-re, log-view-message-re): Use shy groups.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67569
diff
changeset
|
70 |
28088
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
71 ;; - add ability to modify a log-entry (via cvs-mode-admin ;-) |
29041
49e8918cab44
Fix file description.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
28861
diff
changeset
|
72 ;; - remove references to cvs-* |
67709
6f549652480e
(log-view-file-re, log-view-message-re): Use shy groups.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67569
diff
changeset
|
73 ;; - make it easier to add support for new backends without changing the code. |
28088
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
74 |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
75 ;;; Code: |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
76 |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
77 (eval-when-compile (require 'cl)) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
78 (require 'pcvs-util) |
67775
0a80642ab161
Call autoload for vc-find-version.
Juri Linkov <juri@jurta.org>
parents:
67709
diff
changeset
|
79 (autoload 'vc-find-version "vc") |
40958
4b4504c5aa56
* vc.el (vc-print-log): Bind `inhibit-read-only' to t before and
Sam Steingold <sds@gnu.org>
parents:
40954
diff
changeset
|
80 (autoload 'vc-version-diff "vc") |
28088
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
81 |
65293
f3b1607acf96
(cvs-minor-wrap-function): Add defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
64762
diff
changeset
|
82 (defvar cvs-minor-wrap-function) |
f3b1607acf96
(cvs-minor-wrap-function): Add defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
64762
diff
changeset
|
83 |
28088
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
84 (defgroup log-view nil |
29041
49e8918cab44
Fix file description.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
28861
diff
changeset
|
85 "Major mode for browsing log output of RCS/CVS/SCCS." |
28088
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
86 :group 'pcl-cvs |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
87 :prefix "log-view-") |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
88 |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
89 (easy-mmode-defmap log-view-mode-map |
40958
4b4504c5aa56
* vc.el (vc-print-log): Bind `inhibit-read-only' to t before and
Sam Steingold <sds@gnu.org>
parents:
40954
diff
changeset
|
90 '(("q" . quit-window) |
4b4504c5aa56
* vc.el (vc-print-log): Bind `inhibit-read-only' to t before and
Sam Steingold <sds@gnu.org>
parents:
40954
diff
changeset
|
91 ("z" . kill-this-buffer) |
4b4504c5aa56
* vc.el (vc-print-log): Bind `inhibit-read-only' to t before and
Sam Steingold <sds@gnu.org>
parents:
40954
diff
changeset
|
92 ("m" . set-mark-command) |
49236
8df2e5ef3962
(log-view-message-re): The rev might be locked.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
42456
diff
changeset
|
93 ;; ("e" . cvs-mode-edit-log) |
40958
4b4504c5aa56
* vc.el (vc-print-log): Bind `inhibit-read-only' to t before and
Sam Steingold <sds@gnu.org>
parents:
40954
diff
changeset
|
94 ("d" . log-view-diff) |
41557
be985e4c1430
(log-view-find-version): New function.
André Spiegel <spiegel@gnu.org>
parents:
41137
diff
changeset
|
95 ("f" . log-view-find-version) |
40958
4b4504c5aa56
* vc.el (vc-print-log): Bind `inhibit-read-only' to t before and
Sam Steingold <sds@gnu.org>
parents:
40954
diff
changeset
|
96 ("n" . log-view-msg-next) |
28251
21d27711125f
(log-view-(msg|file)-(prev|next)): Rename from
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
28088
diff
changeset
|
97 ("p" . log-view-msg-prev) |
21d27711125f
(log-view-(msg|file)-(prev|next)): Rename from
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
28088
diff
changeset
|
98 ("N" . log-view-file-next) |
21d27711125f
(log-view-(msg|file)-(prev|next)): Rename from
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
28088
diff
changeset
|
99 ("P" . log-view-file-prev) |
40450
d29fac587062
(log-view-mode-map): Bind `M-n' and `M-p', not `M n'
Kai Großjohann <kgrossjo@eu.uu.net>
parents:
34652
diff
changeset
|
100 ("\M-n" . log-view-file-next) |
d29fac587062
(log-view-mode-map): Bind `M-n' and `M-p', not `M n'
Kai Großjohann <kgrossjo@eu.uu.net>
parents:
34652
diff
changeset
|
101 ("\M-p" . log-view-file-prev)) |
28088
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
102 "Log-View's keymap." |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
103 :group 'log-view |
29041
49e8918cab44
Fix file description.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
28861
diff
changeset
|
104 ;; Here I really need either buffer-local keymap-inheritance |
49e8918cab44
Fix file description.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
28861
diff
changeset
|
105 ;; or a minor-mode-map with lower precedence than the local map. |
49e8918cab44
Fix file description.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
28861
diff
changeset
|
106 :inherit (if (boundp 'cvs-mode-map) cvs-mode-map)) |
28088
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
107 |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
108 (defvar log-view-mode-hook nil |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
109 "Hook run at the end of `log-view-mode'.") |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
110 |
63203
ecbe83adff58
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-374
Miles Bader <miles@gnu.org>
parents:
60145
diff
changeset
|
111 (defface log-view-file |
28088
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
112 '((((class color) (background light)) |
42456
8a4077ab418c
(various face definitions): Use :weight, not :bold.
Richard M. Stallman <rms@gnu.org>
parents:
42074
diff
changeset
|
113 (:background "grey70" :weight bold)) |
8a4077ab418c
(various face definitions): Use :weight, not :bold.
Richard M. Stallman <rms@gnu.org>
parents:
42074
diff
changeset
|
114 (t (:weight bold))) |
28088
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
115 "Face for the file header line in `log-view-mode'." |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
116 :group 'log-view) |
63203
ecbe83adff58
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-374
Miles Bader <miles@gnu.org>
parents:
60145
diff
changeset
|
117 ;; backward-compatibility alias |
ecbe83adff58
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-374
Miles Bader <miles@gnu.org>
parents:
60145
diff
changeset
|
118 (put 'log-view-file-face 'face-alias 'log-view-file) |
ecbe83adff58
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-374
Miles Bader <miles@gnu.org>
parents:
60145
diff
changeset
|
119 (defvar log-view-file-face 'log-view-file) |
28088
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
120 |
63203
ecbe83adff58
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-374
Miles Bader <miles@gnu.org>
parents:
60145
diff
changeset
|
121 (defface log-view-message |
28088
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
122 '((((class color) (background light)) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
123 (:background "grey85")) |
42456
8a4077ab418c
(various face definitions): Use :weight, not :bold.
Richard M. Stallman <rms@gnu.org>
parents:
42074
diff
changeset
|
124 (t (:weight bold))) |
28088
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
125 "Face for the message header line in `log-view-mode'." |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
126 :group 'log-view) |
63203
ecbe83adff58
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-374
Miles Bader <miles@gnu.org>
parents:
60145
diff
changeset
|
127 ;; backward-compatibility alias |
ecbe83adff58
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-374
Miles Bader <miles@gnu.org>
parents:
60145
diff
changeset
|
128 (put 'log-view-message-face 'face-alias 'log-view-message) |
ecbe83adff58
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-374
Miles Bader <miles@gnu.org>
parents:
60145
diff
changeset
|
129 (defvar log-view-message-face 'log-view-message) |
28088
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
130 |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
131 (defconst log-view-file-re |
67709
6f549652480e
(log-view-file-re, log-view-message-re): Use shy groups.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67569
diff
changeset
|
132 (concat "^\\(?:Working file: \\(.+\\)" ;RCS and CVS. |
68098
150225f41e97
(log-view-file-re, log-view-message-re): Add support for DaRCS output.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67775
diff
changeset
|
133 "\\|\\(?:SCCS/s\\.\\|Changes to \\)\\(.+\\):" ;SCCS and Darcs. |
67709
6f549652480e
(log-view-file-re, log-view-message-re): Use shy groups.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67569
diff
changeset
|
134 "\\)\n")) ;Include the \n for font-lock reasons. |
6f549652480e
(log-view-file-re, log-view-message-re): Use shy groups.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67569
diff
changeset
|
135 |
6f549652480e
(log-view-file-re, log-view-message-re): Use shy groups.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67569
diff
changeset
|
136 (defconst log-view-message-re |
6f549652480e
(log-view-file-re, log-view-message-re): Use shy groups.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67569
diff
changeset
|
137 (concat "^\\(?:revision \\([.0-9]+\\)\\(?:\t.*\\)?" ; RCS and CVS. |
6f549652480e
(log-view-file-re, log-view-message-re): Use shy groups.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67569
diff
changeset
|
138 "\\|r\\([0-9]+\\) | .* | .*" ; Subversion. |
6f549652480e
(log-view-file-re, log-view-message-re): Use shy groups.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67569
diff
changeset
|
139 "\\|D \\([.0-9]+\\) .*" ; SCCS. |
68098
150225f41e97
(log-view-file-re, log-view-message-re): Add support for DaRCS output.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67775
diff
changeset
|
140 ;; Darcs doesn't have revision names. VC-darcs uses patch names |
150225f41e97
(log-view-file-re, log-view-message-re): Add support for DaRCS output.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67775
diff
changeset
|
141 ;; instead. Darcs patch names are hashcodes, which do not appear |
150225f41e97
(log-view-file-re, log-view-message-re): Add support for DaRCS output.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67775
diff
changeset
|
142 ;; in the log output :-(, but darcs accepts any prefix of the log |
150225f41e97
(log-view-file-re, log-view-message-re): Add support for DaRCS output.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67775
diff
changeset
|
143 ;; message as a patch name, so we match the first line of the log |
150225f41e97
(log-view-file-re, log-view-message-re): Add support for DaRCS output.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67775
diff
changeset
|
144 ;; message. |
150225f41e97
(log-view-file-re, log-view-message-re): Add support for DaRCS output.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67775
diff
changeset
|
145 ;; First loosely match the date format. |
150225f41e97
(log-view-file-re, log-view-message-re): Add support for DaRCS output.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67775
diff
changeset
|
146 (concat "\\|[^ \n].*[^0-9\n][0-9][0-9]:[0-9][0-9][^0-9\n].*[^ \n]" |
150225f41e97
(log-view-file-re, log-view-message-re): Add support for DaRCS output.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67775
diff
changeset
|
147 ;;Email of user and finally Msg, used as revision name. |
150225f41e97
(log-view-file-re, log-view-message-re): Add support for DaRCS output.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67775
diff
changeset
|
148 " .*@.*\n\\(?: \\* \\(.*\\)\\)?") |
67709
6f549652480e
(log-view-file-re, log-view-message-re): Use shy groups.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67569
diff
changeset
|
149 "\\)$")) |
28088
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
150 |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
151 (defconst log-view-font-lock-keywords |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
152 `((,log-view-file-re |
67709
6f549652480e
(log-view-file-re, log-view-message-re): Use shy groups.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67569
diff
changeset
|
153 (1 (if (boundp 'cvs-filename-face) cvs-filename-face) nil t) |
29041
49e8918cab44
Fix file description.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
28861
diff
changeset
|
154 (2 (if (boundp 'cvs-filename-face) cvs-filename-face) nil t) |
49e8918cab44
Fix file description.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
28861
diff
changeset
|
155 (0 log-view-file-face append)) |
28088
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
156 (,log-view-message-re . log-view-message-face))) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
157 (defconst log-view-font-lock-defaults |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
158 '(log-view-font-lock-keywords t nil nil nil)) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
159 |
40954 | 160 ;;;; |
28088
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
161 ;;;; Actual code |
40954 | 162 ;;;; |
28088
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
163 |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
164 ;;;###autoload |
28251
21d27711125f
(log-view-(msg|file)-(prev|next)): Rename from
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
28088
diff
changeset
|
165 (define-derived-mode log-view-mode fundamental-mode "Log-View" |
28088
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
166 "Major mode for browsing CVS log output." |
40958
4b4504c5aa56
* vc.el (vc-print-log): Bind `inhibit-read-only' to t before and
Sam Steingold <sds@gnu.org>
parents:
40954
diff
changeset
|
167 (setq buffer-read-only t) |
28088
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
168 (set (make-local-variable 'font-lock-defaults) log-view-font-lock-defaults) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
169 (set (make-local-variable 'cvs-minor-wrap-function) 'log-view-minor-wrap)) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
170 |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
171 ;;;; |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
172 ;;;; Navigation |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
173 ;;;; |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
174 |
28251
21d27711125f
(log-view-(msg|file)-(prev|next)): Rename from
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
28088
diff
changeset
|
175 ;; define log-view-{msg,file}-{next,prev} |
21d27711125f
(log-view-(msg|file)-(prev|next)): Rename from
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
28088
diff
changeset
|
176 (easy-mmode-define-navigation log-view-msg log-view-message-re "log message") |
21d27711125f
(log-view-(msg|file)-(prev|next)): Rename from
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
28088
diff
changeset
|
177 (easy-mmode-define-navigation log-view-file log-view-file-re "file") |
28088
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
178 |
28861
bab7620d1466
(log-view-goto-rev): New function for the new VC.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
28251
diff
changeset
|
179 (defun log-view-goto-rev (rev) |
bab7620d1466
(log-view-goto-rev): New function for the new VC.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
28251
diff
changeset
|
180 (goto-char (point-min)) |
bab7620d1466
(log-view-goto-rev): New function for the new VC.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
28251
diff
changeset
|
181 (ignore-errors |
bab7620d1466
(log-view-goto-rev): New function for the new VC.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
28251
diff
changeset
|
182 (while (not (equal rev (log-view-current-tag))) |
bab7620d1466
(log-view-goto-rev): New function for the new VC.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
28251
diff
changeset
|
183 (log-view-msg-next)) |
bab7620d1466
(log-view-goto-rev): New function for the new VC.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
28251
diff
changeset
|
184 t)) |
bab7620d1466
(log-view-goto-rev): New function for the new VC.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
28251
diff
changeset
|
185 |
28088
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
186 ;;;; |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
187 ;;;; Linkage to PCL-CVS (mostly copied from cvs-status.el) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
188 ;;;; |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
189 |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
190 (defconst log-view-dir-re "^cvs[.ex]* [a-z]+: Logging \\(.+\\)$") |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
191 |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
192 (defun log-view-current-file () |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
193 (save-excursion |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
194 (forward-line 1) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
195 (or (re-search-backward log-view-file-re nil t) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
196 (re-search-forward log-view-file-re)) |
67775
0a80642ab161
Call autoload for vc-find-version.
Juri Linkov <juri@jurta.org>
parents:
67709
diff
changeset
|
197 (let* ((file (or (match-string 1) (match-string 2))) |
28088
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
198 (cvsdir (and (re-search-backward log-view-dir-re nil t) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
199 (match-string 1))) |
29041
49e8918cab44
Fix file description.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
28861
diff
changeset
|
200 (pcldir (and (boundp 'cvs-pcl-cvs-dirchange-re) |
49e8918cab44
Fix file description.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
28861
diff
changeset
|
201 (re-search-backward cvs-pcl-cvs-dirchange-re nil t) |
28088
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
202 (match-string 1))) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
203 (dir "")) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
204 (let ((default-directory "")) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
205 (when pcldir (setq dir (expand-file-name pcldir dir))) |
40958
4b4504c5aa56
* vc.el (vc-print-log): Bind `inhibit-read-only' to t before and
Sam Steingold <sds@gnu.org>
parents:
40954
diff
changeset
|
206 (when cvsdir (setq dir (expand-file-name cvsdir dir)))) |
4b4504c5aa56
* vc.el (vc-print-log): Bind `inhibit-read-only' to t before and
Sam Steingold <sds@gnu.org>
parents:
40954
diff
changeset
|
207 (expand-file-name file dir)))) |
28088
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
208 |
40958
4b4504c5aa56
* vc.el (vc-print-log): Bind `inhibit-read-only' to t before and
Sam Steingold <sds@gnu.org>
parents:
40954
diff
changeset
|
209 (defun log-view-current-tag (&optional where) |
28251
21d27711125f
(log-view-(msg|file)-(prev|next)): Rename from
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
28088
diff
changeset
|
210 (save-excursion |
40958
4b4504c5aa56
* vc.el (vc-print-log): Bind `inhibit-read-only' to t before and
Sam Steingold <sds@gnu.org>
parents:
40954
diff
changeset
|
211 (when where (goto-char where)) |
28251
21d27711125f
(log-view-(msg|file)-(prev|next)): Rename from
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
28088
diff
changeset
|
212 (forward-line 1) |
21d27711125f
(log-view-(msg|file)-(prev|next)): Rename from
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
28088
diff
changeset
|
213 (let ((pt (point))) |
21d27711125f
(log-view-(msg|file)-(prev|next)): Rename from
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
28088
diff
changeset
|
214 (when (re-search-backward log-view-message-re nil t) |
67709
6f549652480e
(log-view-file-re, log-view-message-re): Use shy groups.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67569
diff
changeset
|
215 (let (rev) |
6f549652480e
(log-view-file-re, log-view-message-re): Use shy groups.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67569
diff
changeset
|
216 ;; Find the subgroup that matched. |
67775
0a80642ab161
Call autoload for vc-find-version.
Juri Linkov <juri@jurta.org>
parents:
67709
diff
changeset
|
217 (dotimes (i (/ (length (match-data 'integers)) 2)) |
67709
6f549652480e
(log-view-file-re, log-view-message-re): Use shy groups.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67569
diff
changeset
|
218 (setq rev (or rev (match-string (1+ i))))) |
28251
21d27711125f
(log-view-(msg|file)-(prev|next)): Rename from
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
28088
diff
changeset
|
219 (unless (re-search-forward log-view-file-re pt t) |
21d27711125f
(log-view-(msg|file)-(prev|next)): Rename from
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
28088
diff
changeset
|
220 rev)))))) |
28088
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
221 |
67709
6f549652480e
(log-view-file-re, log-view-message-re): Use shy groups.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67569
diff
changeset
|
222 (defvar cvs-minor-current-files) |
6f549652480e
(log-view-file-re, log-view-message-re): Use shy groups.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67569
diff
changeset
|
223 (defvar cvs-branch-prefix) |
6f549652480e
(log-view-file-re, log-view-message-re): Use shy groups.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67569
diff
changeset
|
224 (defvar cvs-secondary-branch-prefix) |
6f549652480e
(log-view-file-re, log-view-message-re): Use shy groups.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
67569
diff
changeset
|
225 |
28088
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
226 (defun log-view-minor-wrap (buf f) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
227 (let ((data (with-current-buffer buf |
68370
89e7eb7d165b
(log-view-minor-wrap): First rev is the one at point.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
68221
diff
changeset
|
228 (let* ((beg (point)) |
89e7eb7d165b
(log-view-minor-wrap): First rev is the one at point.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
68221
diff
changeset
|
229 (end (if mark-active (mark) (point))) |
68221
4804f7b39bfe
(log-view-minor-wrap): Use the same logic to get revisions as `log-view-diff'.
Juri Linkov <juri@jurta.org>
parents:
68098
diff
changeset
|
230 (fr (log-view-current-tag beg)) |
4804f7b39bfe
(log-view-minor-wrap): Use the same logic to get revisions as `log-view-diff'.
Juri Linkov <juri@jurta.org>
parents:
68098
diff
changeset
|
231 (to (log-view-current-tag end))) |
4804f7b39bfe
(log-view-minor-wrap): Use the same logic to get revisions as `log-view-diff'.
Juri Linkov <juri@jurta.org>
parents:
68098
diff
changeset
|
232 (when (string-equal fr to) |
4804f7b39bfe
(log-view-minor-wrap): Use the same logic to get revisions as `log-view-diff'.
Juri Linkov <juri@jurta.org>
parents:
68098
diff
changeset
|
233 (save-excursion |
4804f7b39bfe
(log-view-minor-wrap): Use the same logic to get revisions as `log-view-diff'.
Juri Linkov <juri@jurta.org>
parents:
68098
diff
changeset
|
234 (goto-char end) |
4804f7b39bfe
(log-view-minor-wrap): Use the same logic to get revisions as `log-view-diff'.
Juri Linkov <juri@jurta.org>
parents:
68098
diff
changeset
|
235 (log-view-msg-next) |
4804f7b39bfe
(log-view-minor-wrap): Use the same logic to get revisions as `log-view-diff'.
Juri Linkov <juri@jurta.org>
parents:
68098
diff
changeset
|
236 (setq to (log-view-current-tag)))) |
4804f7b39bfe
(log-view-minor-wrap): Use the same logic to get revisions as `log-view-diff'.
Juri Linkov <juri@jurta.org>
parents:
68098
diff
changeset
|
237 (cons |
68370
89e7eb7d165b
(log-view-minor-wrap): First rev is the one at point.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
68221
diff
changeset
|
238 ;; The first revision has to be the one at point, for |
89e7eb7d165b
(log-view-minor-wrap): First rev is the one at point.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
68221
diff
changeset
|
239 ;; operations that only take one revision |
89e7eb7d165b
(log-view-minor-wrap): First rev is the one at point.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
68221
diff
changeset
|
240 ;; (e.g. cvs-mode-edit). |
89e7eb7d165b
(log-view-minor-wrap): First rev is the one at point.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
68221
diff
changeset
|
241 (cons (log-view-current-file) fr) |
89e7eb7d165b
(log-view-minor-wrap): First rev is the one at point.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
68221
diff
changeset
|
242 (cons (log-view-current-file) to)))))) |
28088
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
243 (let ((cvs-branch-prefix (cdar data)) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
244 (cvs-secondary-branch-prefix (and (cdar data) (cddr data))) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
245 (cvs-minor-current-files |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
246 (cons (caar data) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
247 (when (and (cadr data) (not (equal (caar data) (cadr data)))) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
248 (list (cadr data))))) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
249 ;; FIXME: I need to force because the fileinfos are UNKNOWN |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
250 (cvs-force-command "/F")) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
251 (funcall f)))) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
252 |
41557
be985e4c1430
(log-view-find-version): New function.
André Spiegel <spiegel@gnu.org>
parents:
41137
diff
changeset
|
253 (defun log-view-find-version (pos) |
be985e4c1430
(log-view-find-version): New function.
André Spiegel <spiegel@gnu.org>
parents:
41137
diff
changeset
|
254 "Visit the version at point." |
be985e4c1430
(log-view-find-version): New function.
André Spiegel <spiegel@gnu.org>
parents:
41137
diff
changeset
|
255 (interactive "d") |
be985e4c1430
(log-view-find-version): New function.
André Spiegel <spiegel@gnu.org>
parents:
41137
diff
changeset
|
256 (save-excursion |
be985e4c1430
(log-view-find-version): New function.
André Spiegel <spiegel@gnu.org>
parents:
41137
diff
changeset
|
257 (goto-char pos) |
49597
e88404e8f2cf
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49236
diff
changeset
|
258 (switch-to-buffer (vc-find-version (log-view-current-file) |
41557
be985e4c1430
(log-view-find-version): New function.
André Spiegel <spiegel@gnu.org>
parents:
41137
diff
changeset
|
259 (log-view-current-tag))))) |
be985e4c1430
(log-view-find-version): New function.
André Spiegel <spiegel@gnu.org>
parents:
41137
diff
changeset
|
260 |
42074
fdee0c7c3bf1
(log-view-message-re, log-view-current-tag):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
41557
diff
changeset
|
261 ;; |
fdee0c7c3bf1
(log-view-message-re, log-view-current-tag):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
41557
diff
changeset
|
262 ;; diff |
fdee0c7c3bf1
(log-view-message-re, log-view-current-tag):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
41557
diff
changeset
|
263 ;; |
40958
4b4504c5aa56
* vc.el (vc-print-log): Bind `inhibit-read-only' to t before and
Sam Steingold <sds@gnu.org>
parents:
40954
diff
changeset
|
264 |
4b4504c5aa56
* vc.el (vc-print-log): Bind `inhibit-read-only' to t before and
Sam Steingold <sds@gnu.org>
parents:
40954
diff
changeset
|
265 (defun log-view-diff (beg end) |
67569 | 266 "Get the diff between two revisions. |
267 If the mark is not active or the mark is on the revision at point, | |
268 get the diff between the revision at point and its previous revision. | |
269 Otherwise, get the diff between the revisions where the region starts | |
270 and ends." | |
55175
e7a5be902830
(log-view-diff): Replace interactive code "r"
Juri Linkov <juri@jurta.org>
parents:
52401
diff
changeset
|
271 (interactive |
e7a5be902830
(log-view-diff): Replace interactive code "r"
Juri Linkov <juri@jurta.org>
parents:
52401
diff
changeset
|
272 (list (if mark-active (region-beginning) (point)) |
e7a5be902830
(log-view-diff): Replace interactive code "r"
Juri Linkov <juri@jurta.org>
parents:
52401
diff
changeset
|
273 (if mark-active (region-end) (point)))) |
40958
4b4504c5aa56
* vc.el (vc-print-log): Bind `inhibit-read-only' to t before and
Sam Steingold <sds@gnu.org>
parents:
40954
diff
changeset
|
274 (let ((fr (log-view-current-tag beg)) |
4b4504c5aa56
* vc.el (vc-print-log): Bind `inhibit-read-only' to t before and
Sam Steingold <sds@gnu.org>
parents:
40954
diff
changeset
|
275 (to (log-view-current-tag end))) |
4b4504c5aa56
* vc.el (vc-print-log): Bind `inhibit-read-only' to t before and
Sam Steingold <sds@gnu.org>
parents:
40954
diff
changeset
|
276 (when (string-equal fr to) |
4b4504c5aa56
* vc.el (vc-print-log): Bind `inhibit-read-only' to t before and
Sam Steingold <sds@gnu.org>
parents:
40954
diff
changeset
|
277 (save-excursion |
4b4504c5aa56
* vc.el (vc-print-log): Bind `inhibit-read-only' to t before and
Sam Steingold <sds@gnu.org>
parents:
40954
diff
changeset
|
278 (goto-char end) |
4b4504c5aa56
* vc.el (vc-print-log): Bind `inhibit-read-only' to t before and
Sam Steingold <sds@gnu.org>
parents:
40954
diff
changeset
|
279 (log-view-msg-next) |
4b4504c5aa56
* vc.el (vc-print-log): Bind `inhibit-read-only' to t before and
Sam Steingold <sds@gnu.org>
parents:
40954
diff
changeset
|
280 (setq to (log-view-current-tag)))) |
4b4504c5aa56
* vc.el (vc-print-log): Bind `inhibit-read-only' to t before and
Sam Steingold <sds@gnu.org>
parents:
40954
diff
changeset
|
281 (vc-version-diff (log-view-current-file) to fr))) |
4b4504c5aa56
* vc.el (vc-print-log): Bind `inhibit-read-only' to t before and
Sam Steingold <sds@gnu.org>
parents:
40954
diff
changeset
|
282 |
28088
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
283 (provide 'log-view) |
28251
21d27711125f
(log-view-(msg|file)-(prev|next)): Rename from
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
28088
diff
changeset
|
284 |
60145
e7ec1f80fc80
(log-view-message-re): Fix up Subversion regexp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
55175
diff
changeset
|
285 ;; arch-tag: 0d64220b-ce7e-4f62-9c2a-6b04c2f81f4f |
28088
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
286 ;;; log-view.el ends here |