1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2024-11-26 07:33:47 +00:00

(ediff-fixup-patch-map): Use mapc' rather than mapcar'.

This commit is contained in:
Juanma Barranquero 2007-09-25 10:47:20 +00:00
parent 629962c351
commit 3f0f4f6fc5

View File

@ -292,43 +292,43 @@ program."
)
;; chop off base-dirs
(mapcar (lambda (session-info)
(let* ((proposed-file-names
;; Filename-spec is objA; it is represented as
;; (file1 . file2). Get it using ediff-get-session-objA.
(ediff-get-session-objA-name session-info))
;; base-dir1 is the dir part of the 1st file in the patch
(base-dir1
(or (file-name-directory (car proposed-file-names))
""))
;; directory part of the 2nd file in the patch
(base-dir2
(or (file-name-directory (cdr proposed-file-names))
""))
)
;; If both base-dir1 and base-dir2 are relative and exist,
;; assume that
;; these dirs lead to the actual files starting at the present
;; directory. So, we don't strip these relative dirs from the
;; file names. This is a heuristic intended to improve guessing
(let ((default-directory (file-name-directory filename)))
(unless (or (file-name-absolute-p base-dir1)
(file-name-absolute-p base-dir2)
(not (file-exists-p base-dir1))
(not (file-exists-p base-dir2)))
(setq base-dir1 ""
base-dir2 "")))
(or (string= (car proposed-file-names) "/dev/null")
(setcar proposed-file-names
(ediff-file-name-sans-prefix
(car proposed-file-names) base-dir1)))
(or (string=
(cdr proposed-file-names) "/dev/null")
(setcdr proposed-file-names
(ediff-file-name-sans-prefix
(cdr proposed-file-names) base-dir2)))
))
ediff-patch-map)
(mapc (lambda (session-info)
(let* ((proposed-file-names
;; Filename-spec is objA; it is represented as
;; (file1 . file2). Get it using ediff-get-session-objA.
(ediff-get-session-objA-name session-info))
;; base-dir1 is the dir part of the 1st file in the patch
(base-dir1
(or (file-name-directory (car proposed-file-names))
""))
;; directory part of the 2nd file in the patch
(base-dir2
(or (file-name-directory (cdr proposed-file-names))
""))
)
;; If both base-dir1 and base-dir2 are relative and exist,
;; assume that
;; these dirs lead to the actual files starting at the present
;; directory. So, we don't strip these relative dirs from the
;; file names. This is a heuristic intended to improve guessing
(let ((default-directory (file-name-directory filename)))
(unless (or (file-name-absolute-p base-dir1)
(file-name-absolute-p base-dir2)
(not (file-exists-p base-dir1))
(not (file-exists-p base-dir2)))
(setq base-dir1 ""
base-dir2 "")))
(or (string= (car proposed-file-names) "/dev/null")
(setcar proposed-file-names
(ediff-file-name-sans-prefix
(car proposed-file-names) base-dir1)))
(or (string=
(cdr proposed-file-names) "/dev/null")
(setcdr proposed-file-names
(ediff-file-name-sans-prefix
(cdr proposed-file-names) base-dir2)))
))
ediff-patch-map)
;; take the given file name into account
(or (file-directory-p filename)
@ -338,19 +338,19 @@ program."
(file-name-nondirectory filename))))
;; prepend actual-dir
(mapcar (lambda (session-info)
(let ((proposed-file-names
(ediff-get-session-objA-name session-info)))
(if (and (string-match "^/null/" (car proposed-file-names))
(string-match "^/null/" (cdr proposed-file-names)))
;; couldn't intuit the file name to patch, so
;; something is amiss
(progn
(with-output-to-temp-buffer ediff-msg-buffer
(ediff-with-current-buffer standard-output
(fundamental-mode))
(princ
(format "
(mapc (lambda (session-info)
(let ((proposed-file-names
(ediff-get-session-objA-name session-info)))
(if (and (string-match "^/null/" (car proposed-file-names))
(string-match "^/null/" (cdr proposed-file-names)))
;; couldn't intuit the file name to patch, so
;; something is amiss
(progn
(with-output-to-temp-buffer ediff-msg-buffer
(ediff-with-current-buffer standard-output
(fundamental-mode))
(princ
(format "
The patch file contains a context diff for
%s
%s
@ -361,31 +361,31 @@ please enter it now.
If you don't know and still would like to apply patches to
other files, enter /dev/null
"
(substring (car proposed-file-names) 6)
(substring (cdr proposed-file-names) 6))))
(let ((directory t)
user-file)
(while directory
(setq user-file
(read-file-name
"Please enter file name: "
actual-dir actual-dir t))
(if (not (file-directory-p user-file))
(setq directory nil)
(setq directory t)
(beep)
(message "%s is a directory" user-file)
(sit-for 2)))
(setcar (ediff-get-session-objA session-info)
(cons user-file user-file))))
(setcar proposed-file-names
(expand-file-name
(concat actual-dir (car proposed-file-names))))
(setcdr proposed-file-names
(expand-file-name
(concat actual-dir (cdr proposed-file-names)))))
))
ediff-patch-map)
(substring (car proposed-file-names) 6)
(substring (cdr proposed-file-names) 6))))
(let ((directory t)
user-file)
(while directory
(setq user-file
(read-file-name
"Please enter file name: "
actual-dir actual-dir t))
(if (not (file-directory-p user-file))
(setq directory nil)
(setq directory t)
(beep)
(message "%s is a directory" user-file)
(sit-for 2)))
(setcar (ediff-get-session-objA session-info)
(cons user-file user-file))))
(setcar proposed-file-names
(expand-file-name
(concat actual-dir (car proposed-file-names))))
(setcdr proposed-file-names
(expand-file-name
(concat actual-dir (cdr proposed-file-names)))))
))
ediff-patch-map)
;; Check for the existing files in each pair and discard the nonexisting
;; ones. If both exist, ask the user.
(mapcar (lambda (session-info)