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

From: Federico Tedin <[email-masked]>
Date: Sat, 11 May 2019 13:24:36 -0300

Stefan Monnier <[email-masked]> writes:

> All files use dynamically scoped variables.  `lexical-binding` only
> determines the scoping to use for those vars that aren't declared as
> dynamically scoped.  The fact that tar-mode.el hasn't (yet) been
> converted to use lexical-binding has no effect on the above example
> (because I presume there that write-region-provides-raw-file-contents
> would be a variable declared somewhere in files.el as being dynamically
> scoped, like file-name-handler-alist).

Ok, didn't know this. I have some reading to do regarding the specifics
of `lexical-binding` and how it affects (or not) defvar, defcustom, etc.

> I know.  Maybe we can extend it to allow the source to be a buffer?
>
>> Looking at the source in fileio.c, it also seems like it uses
>> `find-file-name-handler` for `FILE` or `NEWNAME`, so it's possible it
>> won't be useful for us.
>
> Not sure why you think that could make it not useful.
>
>> If we added a new argument to `write-region` like you mentioned, say
>> `RAW`, could we then use symbol properties to decide whether the found
>> file name handler can be used or not?
>
> No, no: we do want the file-name-handler to be called.
> We just want it to receive enough info to determine how it will do its
> job (e.g. whether it needs to compress/encrypt the data or not).

Both my points were made assuming that we didn't want the file-name-handlers
to be called; but now that you mention that we do want them to be
called, they no longer apply.