From 125c1081478a4eed885b8bdcb6b172408a76a9b3 Mon Sep 17 00:00:00 2001 From: Colin Walters Date: Sat, 7 Sep 2002 21:31:03 +0000 Subject: [PATCH] (ibuffer-diff-with-file): Just call `diff-buffer-with-file'. --- lisp/ChangeLog | 6 +++++- lisp/ibuf-ext.el | 34 ++-------------------------------- 2 files changed, 7 insertions(+), 33 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 7a14fee11f4..9f8cb476b30 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -6,7 +6,11 @@ * diff.el (diff): Add optional argument no-async, and use the above argument. - * files.el (diff-buffer-with-file): Use it. + * files.el (diff-buffer-with-file): Call diff synchronously, so we + don't delete the temporary file before diff has a chance to read + it. + + * ibuf-ext.el (ibuffer-diff-with-file): Just call `diff-buffer-with-file'. 2002-09-07 John Paul Wallington diff --git a/lisp/ibuf-ext.el b/lisp/ibuf-ext.el index d802c68f8fd..c268dd64bd9 100644 --- a/lisp/ibuf-ext.el +++ b/lisp/ibuf-ext.el @@ -1221,40 +1221,10 @@ to move by. The default is `ibuffer-marked-char'." "View the differences between this buffer and its associated file. This requires the external program \"diff\" to be in your `exec-path'." (interactive) - (let* ((buf (ibuffer-current-buffer)) - (buf-filename (with-current-buffer buf - buffer-file-name))) + (let ((buf (ibuffer-current-buffer))) (unless (buffer-live-p buf) (error "Buffer %s has been killed" buf)) - (unless buf-filename - (error "Buffer %s has no associated file" buf)) - (let ((diff-buf (get-buffer-create "*Ibuffer-diff*"))) - (with-current-buffer diff-buf - (setq buffer-read-only nil) - (erase-buffer)) - (let ((tempfile (make-temp-file "ibuffer-diff-"))) - (unwind-protect - (progn - (with-current-buffer buf - (write-region (point-min) (point-max) tempfile nil 'nomessage)) - (if (zerop - (apply #'call-process "diff" nil diff-buf nil - (append - (when (and (boundp 'ediff-custom-diff-options) - (stringp ediff-custom-diff-options)) - (list ediff-custom-diff-options)) - (list buf-filename tempfile)))) - (message "No differences found") - (progn - (with-current-buffer diff-buf - (goto-char (point-min)) - (if (fboundp 'diff-mode) - (diff-mode) - (fundamental-mode))) - (display-buffer diff-buf)))) - (when (file-exists-p tempfile) - (delete-file tempfile))))) - nil)) + (diff-buffer-with-file buf))) ;;;###autoload (defun ibuffer-copy-filename-as-kill (&optional arg) -- 2.39.2