=== modified file 'lisp/epa-file.el' --- lisp/epa-file.el 2010-01-13 08:35:10 +0000 +++ lisp/epa-file.el 2010-07-06 08:36:24 +0000 @@ -101,6 +101,14 @@ (insert (epa-file--decode-coding-string string (or coding-system-for-read 'undecided))))) +(defvar epa-file-error nil) +(defun epa-file--find-file-not-found-function () + (save-window-excursion + (let ((error (copy-sequence epa-file-error))) + (ignore (kill-buffer)) + (signal 'file-error + (cons "Opening input file" (cdr error)))))) + (defvar last-coding-system-used) (defun epa-file-insert-file-contents (file &optional visit beg end replace) (barf-if-buffer-read-only) @@ -126,11 +134,16 @@ (progn (if replace (goto-char (point-min))) + (add-hook 'find-file-not-found-functions + 'epa-file--find-file-not-found-function + nil t) (condition-case error (setq string (epg-decrypt-file context local-file nil)) (error (if (setq entry (assoc file epa-file-passphrase-alist)) (setcdr entry nil)) + (make-local-variable 'epa-file-error) + (setq epa-file-error error) (signal 'file-error (cons "Opening input file" (cdr error))))) (make-local-variable 'epa-file-encrypt-to)