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

From: Eli Zaretskii <[email-masked]>
Date: Sat, 11 May 2019 17:22:25 +0300

> From: Stefan Monnier <[email-masked]>
> Cc: [email-masked],  [email-masked],  [email-masked]
> Date: Sat, 11 May 2019 10:10:37 -0400
> 
> Hmm... I think you're referring to the question of what this new
> "write-region-provides-raw-file-contents" should precisely mean, so that
> maintainers of file-name-handlers can decide how to implement it.

Yes.

> Here's one attempt: "the data provided to write-region reflects the actual
> bytes that should be placed into the file rather than the data returned
> by `insert-file-contents`".

Well, we'll need to make this more accurate, to exclude encoding, EOL
conversion, and the likes, but okay.  (And "raw" sounds like a wrong
word for this.)

>              ;; FIXME: Yuck!!  We should turn insert-file-contents-literally
>              ;; into a file operation instead!
>              (append '(jka-compr-handler image-file-handler epa-file-handler)
>                      (and (eq inhibit-file-name-operation 'insert-file-contents)
>                           inhibit-file-name-handlers)))
>             (inhibit-file-name-operation 'insert-file-contents))
>         (insert-file-contents filename visit beg end replace)))
> 
> So this FIXME suggests maybe we should introduce a new file operation
> `write-region-literally`?

Probably.  But the question of what should that do (since you rejected
tweaking inhibit-file-name-operation for that) still stands, I think.

And I'm not sure we will always want to disable encoding and EOL
conversion, so that should be an add-on for "truly" literal I/O.