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

From: Tino Calancha <[email-masked]>
Date: Thu, 10 Mar 2016 14:08:24 +0900 (JST)

> 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))
>

the interactive calls neesome adjust:
M-x ediff-patch-file RET
;; signals error: 
Wrong type argument: stringp, nil

The doc. string starts with "Query for a file name ...",
it should prompt user for a file in this case, right?