Subject: bug#21851: ediff-patch-file fails if patch-buf is a buffer nameif patch-buf is a buffer name

From: Lars Ingebrigtsen <[email-masked]>
Date: Tue, 23 Feb 2016 16:07:32 +1100

Tino Calancha <[email-masked]> writes:

> (epatch nil (get-buffer "patch")) ; ok
> (epatch nil "patch") ; BAD
> epatch: Wrong type argument: bufferp, "patch"

[...]

> -	   (if arg (prefix-numeric-value arg)) patch-buf))
> +	   (if arg (prefix-numeric-value arg)) (and (stringp patch-buf)
> +                                                    (get-buffer patch-buf))))

I don't think that's quite right -- now it'll error out if patch-buf is
a real buffer.

So I've applied the following instead:

diff --git a/lisp/vc/ediff.el b/lisp/vc/ediff.el
index e5e16a1..be4ced9 100644
--- a/lisp/vc/ediff.el
+++ b/lisp/vc/ediff.el
@@ -1367,7 +1367,8 @@ ediff-patch-file
     (require 'ediff-ptch)
     (setq patch-buf
 	  (ediff-get-patch-buffer
-	   (if arg (prefix-numeric-value arg)) patch-buf))
+	   (if arg (prefix-numeric-value arg))
+           (get-buffer patch-buf)))
     (setq source-dir (cond (ediff-use-last-dir ediff-last-dir-patch)
 			   ((and (not ediff-patch-default-directory)
 				 (buffer-file-name patch-buf))

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no