Subject: bug#18823: Built-in support for visiting compressed files

From: Eli Zaretskii <[email-masked]>
Date: Wed, 14 Jul 2021 16:16:24 +0300

> From: Lars Ingebrigtsen <[email-masked]>
> Cc: [email-masked],  [email-masked]
> Date: Wed, 14 Jul 2021 15:05:13 +0200
> 
> Eli Zaretskii <[email-masked]> writes:
> 
> > To insert text, you must make the buffer into which you insert be the
> > current buffer.  That's how the low-level insertion primitives work.
> > So what will insert-into-buffer do that is different (and more
> > efficient) than the contortion you need to do now, which involves
> > temporary switch to the target buffer?
> 
> It just does the contortion for you.

So you want a function that does

  (let ((source-buf (current-buffer)))
    (with-current-buffer target-buf
      (insert-buffer-substring source-buf ...)))

is that it?

> This sort of thing comes up mostly when doing stuff with temporary
> buffers, so I wonder whether we should consider adding a special form
> for it.  That is, something like `with-temp-buffer-and-insert' that
> would work identically as `with-temp-buffer', but insert the contents of
> the buffer into the current buffer before killing the temporary
> buffer...

If it's something one must do a lot, maybe...