Mercurial > emacs
annotate lisp/diff.el @ 2402:61e1f8813d03
(vc-comment-to-changelog): A useful vc-checkin hook, added.
(vc-checkout): Now rejects attempts to check out files via FTP.
The `derived buffers' in the mode (the VC log buffer, status buffers,
and most buffer output commands) now know which file buffer was their
parent, and most commands will try to find such a parent buffer when
executed from within a special buffer.
author | Eric S. Raymond <esr@snark.thyrsus.com> |
---|---|
date | Sun, 28 Mar 1993 06:40:46 +0000 |
parents | 10e417efb12a |
children | 09e58f572f19 |
rev | line source |
---|---|
894 | 1 ;;; diff.el --- Run `diff' in compilation-mode. |
846
20674ae6bf52
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
811
diff
changeset
|
2 |
894 | 3 ;; Copyright (C) 1992 Free Software Foundation, Inc. |
4 | |
2247
2c7997f249eb
Add or correct keywords
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1215
diff
changeset
|
5 ;; Keywords: unix, tools |
807
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
669
diff
changeset
|
6 |
349 | 7 ;; This file is part of GNU Emacs. |
8 | |
9 ;; GNU Emacs is free software; you can redistribute it and/or modify | |
10 ;; it under the terms of the GNU General Public License as published by | |
807
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
669
diff
changeset
|
11 ;; the Free Software Foundation; either version 2, or (at your option) |
349 | 12 ;; any later version. |
13 | |
14 ;; GNU Emacs is distributed in the hope that it will be useful, | |
15 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of | |
16 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
17 ;; GNU General Public License for more details. | |
18 | |
19 ;; You should have received a copy of the GNU General Public License | |
20 ;; along with GNU Emacs; see the file COPYING. If not, write to | |
21 ;; the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. | |
22 | |
2307
10e417efb12a
Added or corrected Commentary sections
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2247
diff
changeset
|
23 ;;; Commentary: |
10e417efb12a
Added or corrected Commentary sections
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2247
diff
changeset
|
24 |
10e417efb12a
Added or corrected Commentary sections
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2247
diff
changeset
|
25 ;; This package helps you explore differences between files, using the |
10e417efb12a
Added or corrected Commentary sections
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2247
diff
changeset
|
26 ;; UNIX command diff(1). The commands are `diff' and `diff-backup'. |
10e417efb12a
Added or corrected Commentary sections
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2247
diff
changeset
|
27 ;; You can specify options with `diff-switches'. |
10e417efb12a
Added or corrected Commentary sections
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2247
diff
changeset
|
28 |
894 | 29 ;;; Code: |
807
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
669
diff
changeset
|
30 |
894 | 31 (require 'compile) |
807
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
669
diff
changeset
|
32 |
1179 | 33 (defvar diff-switches "-c" |
894 | 34 "*A string or list of strings specifying switches to be be passed to diff.") |
35 | |
36 (defvar diff-regexp-alist | |
37 '( | |
38 ;; -u format: @@ -OLDSTART,OLDEND +NEWSTART,NEWEND @@ | |
39 ("^@@ -\\([0-9]+\\),[0-9]+ \\+\\([0-9]+\\),[0-9]+ @@$" 1 2) | |
40 | |
41 ;; -c format: *** OLDSTART,OLDEND **** | |
42 ("^\\*\\*\\* \\([0-9]+\\),[0-9]+ \\*\\*\\*\\*$" 1 nil) | |
43 ;; --- NEWSTART,NEWEND ---- | |
44 ("^--- \\([0-9]+\\),[0-9]+ ----$" nil 1) | |
45 | |
46 ;; plain diff format: OLDSTART[,OLDEND]{a,d,c}NEWSTART[,NEWEND] | |
47 ("^\\([0-9]+\\)\\(,[0-9]+\\)?[adc]\\([0-9]+\\)\\(,[0-9]+\\)?$" 1 3) | |
48 | |
49 ;; -e (ed) format: OLDSTART[,OLDEND]{a,d,c} | |
50 ("^\\([0-9]+\\)\\(,[0-9]+\\)?[adc]$" 1) | |
349 | 51 |
894 | 52 ;; -f format: {a,d,c}OLDSTART[ OLDEND] |
53 ;; -n format: {a,d,c}OLDSTART LINES-CHANGED | |
54 ("^[adc]\\([0-9]+\\)\\( [0-9]+\\)?$" 1) | |
55 ) | |
56 "Alist (REGEXP OLD-IDX NEW-IDX) of regular expressions to match difference | |
57 sections in \\[diff] output. If REGEXP matches, the OLD-IDX'th | |
58 subexpression gives the line number in the old file, and NEW-IDX'th | |
59 subexpression gives the line number in the new file. If OLD-IDX or NEW-IDX | |
60 is nil, REGEXP matches only half a section.") | |
349 | 61 |
1134
05c961416bb5
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1112
diff
changeset
|
62 (defvar diff-old-file nil |
05c961416bb5
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1112
diff
changeset
|
63 "This is the old file name in the comparison in this buffer.") |
05c961416bb5
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1112
diff
changeset
|
64 (defvar diff-new-file nil |
05c961416bb5
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1112
diff
changeset
|
65 "This is the new file name in the comparison in this buffer.") |
05c961416bb5
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1112
diff
changeset
|
66 (defvar diff-old-temp-file nil |
05c961416bb5
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1112
diff
changeset
|
67 "This is the name of a temp file to be deleted after diff finishes.") |
05c961416bb5
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1112
diff
changeset
|
68 (defvar diff-new-temp-file nil |
05c961416bb5
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1112
diff
changeset
|
69 "This is the name of a temp file to be deleted after diff finishes.") |
05c961416bb5
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1112
diff
changeset
|
70 |
894 | 71 ;; See compilation-parse-errors-function (compile.el). |
907 | 72 (defun diff-parse-differences (limit-search find-at-least) |
894 | 73 (setq compilation-error-list nil) |
74 (message "Parsing differences...") | |
75 | |
76 ;; Don't reparse diffs already seen at last parse. | |
77 (goto-char compilation-parsing-end) | |
474 | 78 |
894 | 79 ;; Construct in REGEXP a regexp composed of all those in dired-regexp-alist. |
80 (let ((regexp (mapconcat (lambda (elt) | |
81 (concat "\\(" (car elt) "\\)")) | |
82 diff-regexp-alist | |
83 "\\|")) | |
84 ;; (GROUP-IDX OLD-IDX NEW-IDX) | |
85 (groups (let ((subexpr 1)) | |
86 (mapcar (lambda (elt) | |
87 (prog1 | |
88 (cons subexpr | |
89 (mapcar (lambda (n) | |
90 (and n | |
91 (+ subexpr n))) | |
92 (cdr elt))) | |
93 (setq subexpr (+ subexpr 1 | |
94 (count-regexp-groupings | |
95 (car elt)))))) | |
96 diff-regexp-alist))) | |
97 | |
98 (new-error | |
99 (function (lambda (file subexpr) | |
100 (setq compilation-error-list | |
101 (cons | |
1179 | 102 (cons (save-excursion |
103 ;; Report location of message | |
104 ;; at beginning of line. | |
105 (goto-char | |
106 (match-beginning subexpr)) | |
107 (beginning-of-line) | |
108 (point-marker)) | |
109 ;; Report location of corresponding text. | |
894 | 110 (let ((line (string-to-int |
111 (buffer-substring | |
112 (match-beginning subexpr) | |
113 (match-end subexpr))))) | |
114 (save-excursion | |
115 (set-buffer (find-file-noselect file)) | |
116 (save-excursion | |
117 (goto-line line) | |
118 (point-marker))))) | |
119 compilation-error-list))))) | |
120 | |
121 (found-desired nil) | |
1215
92554bb95d51
(diff): Don't print echo area message.
Richard M. Stallman <rms@gnu.org>
parents:
1179
diff
changeset
|
122 (num-loci-found 0) |
894 | 123 g) |
124 | |
125 (while (and (not found-desired) | |
126 ;; We don't just pass LIMIT-SEARCH to re-search-forward | |
127 ;; because we want to find matches containing LIMIT-SEARCH | |
128 ;; but which extend past it. | |
129 (re-search-forward regexp nil t)) | |
130 | |
131 ;; Find which individual regexp matched. | |
132 (setq g groups) | |
133 (while (and g (null (match-beginning (car (car g))))) | |
134 (setq g (cdr g))) | |
135 (setq g (car g)) | |
136 | |
137 (if (nth 1 g) ;OLD-IDX | |
138 (funcall new-error diff-old-file (nth 1 g))) | |
139 (if (nth 2 g) ;NEW-IDX | |
140 (funcall new-error diff-new-file (nth 2 g))) | |
141 | |
1215
92554bb95d51
(diff): Don't print echo area message.
Richard M. Stallman <rms@gnu.org>
parents:
1179
diff
changeset
|
142 (setq num-loci-found (1+ num-loci-found)) |
1134
05c961416bb5
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1112
diff
changeset
|
143 (if (or (and find-at-least |
1215
92554bb95d51
(diff): Don't print echo area message.
Richard M. Stallman <rms@gnu.org>
parents:
1179
diff
changeset
|
144 (>= num-loci-found find-at-least)) |
907 | 145 (and limit-search (>= (point) limit-search))) |
1215
92554bb95d51
(diff): Don't print echo area message.
Richard M. Stallman <rms@gnu.org>
parents:
1179
diff
changeset
|
146 ;; We have found as many new loci as the user wants, |
907 | 147 ;; or the user wanted a specific diff, and we're past it. |
148 (setq found-desired t))) | |
894 | 149 (if found-desired |
150 (setq compilation-parsing-end (point)) | |
151 ;; Set to point-max, not point, so we don't perpetually | |
152 ;; parse the last bit of text when it isn't a diff header. | |
1215
92554bb95d51
(diff): Don't print echo area message.
Richard M. Stallman <rms@gnu.org>
parents:
1179
diff
changeset
|
153 (setq compilation-parsing-end (point-max))) |
92554bb95d51
(diff): Don't print echo area message.
Richard M. Stallman <rms@gnu.org>
parents:
1179
diff
changeset
|
154 (message "Parsing differences...done")) |
894 | 155 (setq compilation-error-list (nreverse compilation-error-list))) |
349 | 156 |
157 ;;;###autoload | |
894 | 158 (defun diff (old new &optional switches) |
349 | 159 "Find and display the differences between OLD and NEW files. |
669
4c64c671426f
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
662
diff
changeset
|
160 Interactively the current buffer's file name is the default for for NEW |
894 | 161 and a backup file for NEW is the default for OLD. |
162 With prefix arg, prompt for diff switches." | |
349 | 163 (interactive |
894 | 164 (nconc |
165 (let (oldf newf) | |
166 (nreverse | |
167 (list | |
168 (setq newf (buffer-file-name) | |
169 newf (if (and newf (file-exists-p newf)) | |
170 (read-file-name | |
171 (concat "Diff new file: (" | |
172 (file-name-nondirectory newf) ") ") | |
173 nil newf t) | |
174 (read-file-name "Diff new file: " nil nil t))) | |
175 (setq oldf (file-newest-backup newf) | |
176 oldf (if (and oldf (file-exists-p oldf)) | |
177 (read-file-name | |
178 (concat "Diff original file: (" | |
179 (file-name-nondirectory oldf) ") ") | |
180 (file-name-directory oldf) oldf t) | |
181 (read-file-name "Diff original file: " | |
182 (file-name-directory newf) nil t)))))) | |
183 (if current-prefix-arg | |
184 (list (read-string "Diff switches: " | |
185 (if (stringp diff-switches) | |
186 diff-switches | |
187 (mapconcat 'identity diff-switches " ")))) | |
188 nil))) | |
349 | 189 (setq new (expand-file-name new) |
190 old (expand-file-name old)) | |
1134
05c961416bb5
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1112
diff
changeset
|
191 (let ((old-alt (file-local-copy old)) |
05c961416bb5
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1112
diff
changeset
|
192 (new-alt (file-local-copy new)) |
1110
f165d900e06e
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
907
diff
changeset
|
193 buf) |
f165d900e06e
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
907
diff
changeset
|
194 (unwind-protect |
f165d900e06e
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
907
diff
changeset
|
195 (let ((command |
f165d900e06e
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
907
diff
changeset
|
196 (mapconcat 'identity |
f165d900e06e
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
907
diff
changeset
|
197 (append '("diff") |
f165d900e06e
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
907
diff
changeset
|
198 (if (consp diff-switches) |
f165d900e06e
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
907
diff
changeset
|
199 diff-switches |
f165d900e06e
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
907
diff
changeset
|
200 (list diff-switches)) |
f165d900e06e
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
907
diff
changeset
|
201 (if (or old-alt new-alt) |
f165d900e06e
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
907
diff
changeset
|
202 (list "-L" old "-L" new)) |
f165d900e06e
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
907
diff
changeset
|
203 (list (or old-alt old)) |
f165d900e06e
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
907
diff
changeset
|
204 (list (or new-alt new))) |
f165d900e06e
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
907
diff
changeset
|
205 " "))) |
f165d900e06e
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
907
diff
changeset
|
206 (setq buf |
f165d900e06e
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
907
diff
changeset
|
207 (compile-internal command |
f165d900e06e
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
907
diff
changeset
|
208 "No more differences" "Diff" |
1112 | 209 'diff-parse-differences)) |
1110
f165d900e06e
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
907
diff
changeset
|
210 (save-excursion |
f165d900e06e
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
907
diff
changeset
|
211 (set-buffer buf) |
f165d900e06e
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
907
diff
changeset
|
212 (set (make-local-variable 'diff-old-file) old) |
1134
05c961416bb5
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1112
diff
changeset
|
213 (set (make-local-variable 'diff-new-file) new) |
05c961416bb5
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1112
diff
changeset
|
214 (set (make-local-variable 'diff-old-temp-file) old-alt) |
05c961416bb5
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1112
diff
changeset
|
215 (set (make-local-variable 'diff-new-temp-file) new-alt) |
05c961416bb5
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1112
diff
changeset
|
216 (set (make-local-variable 'compilation-finish-function) |
05c961416bb5
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1112
diff
changeset
|
217 (function (lambda (buff msg) |
05c961416bb5
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1112
diff
changeset
|
218 (if diff-old-temp-file |
05c961416bb5
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1112
diff
changeset
|
219 (delete-file diff-old-temp-file)) |
05c961416bb5
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1112
diff
changeset
|
220 (if diff-new-temp-file |
05c961416bb5
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1112
diff
changeset
|
221 (delete-file diff-new-temp-file)))))) |
05c961416bb5
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1112
diff
changeset
|
222 buf)))) |
474 | 223 |
894 | 224 ;;;###autoload |
225 (defun diff-backup (file &optional switches) | |
881
945558e05127
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
846
diff
changeset
|
226 "Diff this file with its backup file or vice versa. |
945558e05127
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
846
diff
changeset
|
227 Uses the latest backup, if there are several numerical backups. |
945558e05127
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
846
diff
changeset
|
228 If this file is a backup, diff it with its original. |
945558e05127
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
846
diff
changeset
|
229 The backup file is the first file given to `diff'." |
894 | 230 (interactive (list (read-file-name "Diff (file with backup): ") |
231 (if current-prefix-arg | |
232 (read-string "Diff switches: " | |
233 (if (stringp diff-switches) | |
234 diff-switches | |
235 (mapconcat 'identity | |
236 diff-switches " "))) | |
237 nil))) | |
881
945558e05127
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
846
diff
changeset
|
238 (let (bak ori) |
945558e05127
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
846
diff
changeset
|
239 (if (backup-file-name-p file) |
945558e05127
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
846
diff
changeset
|
240 (setq bak file |
945558e05127
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
846
diff
changeset
|
241 ori (file-name-sans-versions file)) |
945558e05127
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
846
diff
changeset
|
242 (setq bak (or (diff-latest-backup-file file) |
945558e05127
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
846
diff
changeset
|
243 (error "No backup found for %s" file)) |
945558e05127
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
846
diff
changeset
|
244 ori file)) |
894 | 245 (diff bak ori switches))) |
474 | 246 |
881
945558e05127
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
846
diff
changeset
|
247 (defun diff-latest-backup-file (fn) ; actually belongs into files.el |
945558e05127
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
846
diff
changeset
|
248 "Return the latest existing backup of FILE, or nil." |
945558e05127
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
846
diff
changeset
|
249 ;; First try simple backup, then the highest numbered of the |
945558e05127
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
846
diff
changeset
|
250 ;; numbered backups. |
945558e05127
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
846
diff
changeset
|
251 ;; Ignore the value of version-control because we look for existing |
945558e05127
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
846
diff
changeset
|
252 ;; backups, which maybe were made earlier or by another user with |
945558e05127
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
846
diff
changeset
|
253 ;; a different value of version-control. |
945558e05127
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
846
diff
changeset
|
254 (setq fn (expand-file-name fn)) |
945558e05127
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
846
diff
changeset
|
255 (or |
945558e05127
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
846
diff
changeset
|
256 (let ((bak (make-backup-file-name fn))) |
945558e05127
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
846
diff
changeset
|
257 (if (file-exists-p bak) bak)) |
945558e05127
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
846
diff
changeset
|
258 (let* ((dir (file-name-directory fn)) |
945558e05127
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
846
diff
changeset
|
259 (base-versions (concat (file-name-nondirectory fn) ".~")) |
945558e05127
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
846
diff
changeset
|
260 (bv-length (length base-versions))) |
945558e05127
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
846
diff
changeset
|
261 (concat dir |
945558e05127
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
846
diff
changeset
|
262 (car (sort |
945558e05127
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
846
diff
changeset
|
263 (file-name-all-completions base-versions dir) |
945558e05127
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
846
diff
changeset
|
264 ;; bv-length is a fluid var for backup-extract-version: |
945558e05127
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
846
diff
changeset
|
265 (function |
945558e05127
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
846
diff
changeset
|
266 (lambda (fn1 fn2) |
945558e05127
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
846
diff
changeset
|
267 (> (backup-extract-version fn1) |
945558e05127
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
846
diff
changeset
|
268 (backup-extract-version fn2)))))))))) |
474 | 269 |
662
8a533acedb77
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
474
diff
changeset
|
270 ;;; diff.el ends here |