Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Open sidebar
emacs
emacs
Commits
5d68c2c2
Commit
5d68c2c2
authored
Sep 14, 1992
by
Richard M. Stallman
Browse files
*** empty log message ***
parent
6c43f2f9
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
54 additions
and
35 deletions
+54
-35
lisp/diff.el
lisp/diff.el
+23
-23
lisp/files.el
lisp/files.el
+31
-12
No files found.
lisp/diff.el
View file @
5d68c2c2
...
...
@@ -53,6 +53,15 @@ subexpression gives the line number in the old file, and NEW-IDX'th
subexpression gives the line number in the new file. If OLD-IDX or NEW-IDX
is nil, REGEXP matches only half a section."
)
(
defvar
diff-old-file
nil
"This is the old file name in the comparison in this buffer."
)
(
defvar
diff-new-file
nil
"This is the new file name in the comparison in this buffer."
)
(
defvar
diff-old-temp-file
nil
"This is the name of a temp file to be deleted after diff finishes."
)
(
defvar
diff-new-temp-file
nil
"This is the name of a temp file to be deleted after diff finishes."
)
;; See compilation-parse-errors-function (compile.el).
(
defun
diff-parse-differences
(
limit-search
find-at-least
)
(
setq
compilation-error-list
nil
)
...
...
@@ -118,7 +127,8 @@ is nil, REGEXP matches only half a section.")
(
if
(
nth
2
g
)
;NEW-IDX
(
funcall
new-error
diff-new-file
(
nth
2
g
)))
(
if
(
or
(
and
find-at-least
(
>=
nfound
find-at-least
))
(
if
(
or
(
and
find-at-least
(
>=
compilation-num-errors-found
find-at-least
))
(
and
limit-search
(
>=
(
point
)
limit-search
)))
;; We have found as many new errors as the user wants,
;; or the user wanted a specific diff, and we're past it.
...
...
@@ -166,8 +176,8 @@ With prefix arg, prompt for diff switches."
(
message
"Comparing files %s %s..."
new
old
)
(
setq
new
(
expand-file-name
new
)
old
(
expand-file-name
old
))
(
let
((
old-alt
(
diff-prepare
old
new
))
(
new-alt
(
diff-prepare
new
old
))
(
let
((
old-alt
(
file-local-copy
old
))
(
new-alt
(
file-local-copy
new
))
buf
)
(
unwind-protect
(
let
((
command
...
...
@@ -188,26 +198,16 @@ With prefix arg, prompt for diff switches."
(
save-excursion
(
set-buffer
buf
)
(
set
(
make-local-variable
'diff-old-file
)
old
)
(
set
(
make-local-variable
'diff-new-file
)
new
))
buf
)
(
if
old-alt
(
delete-file
old-alt
))
(
if
new-alt
(
delete-file
new-alt
)))))
;; Copy the file FILE into a temporary file if that is necessary
;; for comparison. (This is only necessary if the file name has a handler.)
;; OTHER is the other file to be compared.
(
defun
diff-prepare
(
file
other
)
(
let
(
handler
handlers
)
(
setq
handlers
file-name-handler-alist
)
(
while
(
and
(
consp
handlers
)
(
null
handler
))
(
if
(
and
(
consp
(
car
handlers
))
(
stringp
(
car
(
car
handlers
)))
(
string-match
(
car
(
car
handlers
))
file
))
(
setq
handler
(
cdr
(
car
handlers
))))
(
setq
handlers
(
cdr
handlers
)))
(
if
handler
(
funcall
handler
'diff-prepare
file
other
)
nil
)))
(
set
(
make-local-variable
'diff-new-file
)
new
)
(
set
(
make-local-variable
'diff-old-temp-file
)
old-alt
)
(
set
(
make-local-variable
'diff-new-temp-file
)
new-alt
)
(
set
(
make-local-variable
'compilation-finish-function
)
(
function
(
lambda
(
buff
msg
)
(
if
diff-old-temp-file
(
delete-file
diff-old-temp-file
))
(
if
diff-new-temp-file
(
delete-file
diff-new-temp-file
))))))
buf
))))
;;;###autoload
(
defun
diff-backup
(
file
&optional
switches
)
...
...
lisp/files.el
View file @
5d68c2c2
...
...
@@ -221,6 +221,23 @@ and ignores this variable.")
This is an interface to the function `load'."
(
interactive
"sLoad library: "
)
(
load
library
))
;; OTHER is the other file to be compared.
(
defun
file-local-copy
(
file
)
"Copy the file FILE into a temporary file on this machine.
Returns the name of the local copy, or nil, if FILE is directly
accessible."
(
let
(
handler
(
handlers
file-name-handler-alist
))
(
save-match-data
(
while
(
and
(
consp
handlers
)
(
null
handler
))
(
if
(
and
(
consp
(
car
handlers
))
(
stringp
(
car
(
car
handlers
)))
(
string-match
(
car
(
car
handlers
))
file
))
(
setq
handler
(
cdr
(
car
handlers
))))
(
setq
handlers
(
cdr
handlers
))))
(
if
handler
(
funcall
handler
'file-local-copy
file
)
nil
)))
(
defun
switch-to-buffer-other-window
(
buffer
)
"Select buffer BUFFER in another window."
...
...
@@ -831,12 +848,13 @@ redefine it.
If the optional argument KEEP-BACKUP-VERSION is non-nil,
we do not remove backup version numbers, only true file version numbers."
(
let
(
handler
(
handlers
file-name-handler-alist
))
(
save-match-data
(
while
(
and
(
consp
handlers
)
(
null
handler
))
(
if
(
and
(
consp
(
car
handlers
))
(
stringp
(
car
(
car
handlers
)))
(
string-match
(
car
(
car
handlers
))
name
))
(
setq
handler
(
cdr
(
car
handlers
))))
(
setq
handlers
(
cdr
handlers
)))
(
setq
handlers
(
cdr
handlers
)))
)
(
if
handler
(
funcall
handler
'file-name-sans-versions
name
keep-backup-version
)
(
substring
name
0
...
...
@@ -1430,12 +1448,13 @@ This works by running a directory listing program
whose name is in the variable `ls-program'.
If WILDCARD, it also runs the shell specified by `shell-file-name'."
(
let
(
handler
(
handlers
file-name-handler-alist
))
(
save-match-data
(
while
(
and
(
consp
handlers
)
(
null
handler
))
(
if
(
and
(
consp
(
car
handlers
))
(
stringp
(
car
(
car
handlers
)))
(
string-match
(
car
(
car
handlers
))
file
))
(
setq
handler
(
cdr
(
car
handlers
))))
(
setq
handlers
(
cdr
handlers
)))
(
setq
handlers
(
cdr
handlers
)))
)
(
if
handler
(
funcall
handler
'insert-directory
file
switches
wildcard
full-directory-p
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment