all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: "Stuart D. Herring" <herring@lanl.gov>
Cc: emacs-devel@gnu.org
Subject: Re: Missing `with' macro?
Date: Tue, 8 Aug 2006 11:32:30 -0700 (PDT)	[thread overview]
Message-ID: <49220.128.165.123.18.1155061950.squirrel@webmail.lanl.gov> (raw)
In-Reply-To: <E1GAVtm-00062e-Hh@fencepost.gnu.org>

>     Is it completely unacceptable even if the file in question is
> principally
>     "owned" by code anyway?
>
> Yes, I think so.  If it is unlikely that users will edit the file by
> hand, that means there is unlikely to be a buffer to reuse.  But IF
> there is a buffer to reuse, it means the user edited the file by hand.
> When he does so, you should not save his changes without his ok!

It means the user -visited- the file explicitly.  He may or may not have
been interested in changing it by hand.  I don't know, however, if this
distinction is important.

>     I see other possibilities:
>     1. (and REUSE WRITE (buffer-modified-p #<buffer extant-buffer>) (error
>     "Attempt to co-opt user's unsaved changes")) - that is, only allow
> REUSE
>     and WRITE on an unmodified buffer.
>
> It is better to go ahead not reusing the buffer than to signal an
> error.

Aha -- perhaps there's a good "compromise" here.  What if REUSE is treated
as nil if the extant buffer is modified and WRITE is non-nil?  Since the
file may be visited using the wrong literality, there is already no
guarantee that REUSE "does anything", so it's not drastically different. 
There is still the problem of the user's unsaved changes clashing, but
client code can always detect this eventuality if it's important, and it
can happen anyway (the user could intend to C-x C-w another buffer into
the file, or the literality condition could apply to a modified buffer,
or...).

It would be more consistent to categorically only reuse unmodified buffers
-- but for just reading the file, it can make sense to see the user's
changes (if any), and any program which wanted to avoid "unstable" file
contents can just pass REUSE as nil anyway.

The relevant section of the doc string would then read

REUSE non-nil means to use an existing buffer if it is visiting FILE. 
(The value of `find-file-existing-other-name' affects this determination.)
 The buffer will only be re-used if its literal status (see
`find-file-literally') corresponds to RAW.  To avoid interacting with a
user's unsaved changes, the buffer will be ignored if it is modified and
WRITE is non-nil.  Note that reusing a buffer may mean that the text on
which BODY operates differs from the actual contents of FILE.

Should I add a note that the user's buffer can become outdated as a result
of failed or unattempted reuse of it?

Davis

-- 
This product is sold by volume, not by mass.  If it appears too dense or
too sparse, it is because mass-energy conversion has occurred during
shipping.

  reply	other threads:[~2006-08-08 18:32 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-07-24 10:17 Missing `with' macro? Mathias Dahl
2006-07-24 13:46 ` Stefan Monnier
2006-07-24 14:33   ` Mathias Dahl
2006-07-24 18:22 ` Richard Stallman
2006-07-24 20:55   ` Jorgen Schaefer
2006-07-25  3:09     ` Richard Stallman
2006-07-28  2:14   ` Stuart D. Herring
2006-07-28  2:23     ` Stuart D. Herring
2006-07-29 15:18     ` Richard Stallman
2006-08-01  1:06       ` Stuart D. Herring
2006-08-07  5:01         ` Richard Stallman
2006-08-07 21:38           ` Stuart D. Herring
2006-08-08 18:01             ` Richard Stallman
2006-08-08 18:32               ` Stuart D. Herring [this message]
2006-08-09  4:58                 ` Richard Stallman
2006-08-08 18:01             ` Richard Stallman
2006-08-16 19:59               ` Stuart D. Herring
2006-08-17 15:18                 ` Richard Stallman

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=49220.128.165.123.18.1155061950.squirrel@webmail.lanl.gov \
    --to=herring@lanl.gov \
    --cc=emacs-devel@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.