Subject: bug#35495: 27.0.50; Untarring an archive with a keyring.gpg inside

From: Federico Tedin <[email-masked]>
Date: Fri, 10 May 2019 22:43:11 -0300

Stefan Monnier <[email-masked]> writes:

>> (let ((inhibit-file-name-handlers '(jka-compr-handler epa-file-handler))
>
> I don't like hard-coding a specific set of file-name-handler names.

Ok, I see. How about:

(defmacro with-literal-file-name-handlers (&rest body)
  `(let* ((allowed-file-name-handlers '(tramp-completion-file-name-handler
					tramp-file-name-handler
					file-name-non-special))
	  (file-name-handler-alist
	   (seq-filter (lambda (c) (memq (cdr c) allowed-file-name-handlers))
		       file-name-handler-alist)))
     ,@body))

I realize that in this case I'm hard-coding the specific
file name handlers that *can* be used. I'm not sure how to express "only
use these file handlers" without explicitly mentioning them. I'm also
not sure if we only care for `tramp-file-name-handler`, or for the three
I listed above.