unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Glenn Morris <rgm@gnu.org>
To: Chong Yidong <cyd@gnu.org>
Cc: emacs-devel@gnu.org
Subject: Re: toggle-read-only should not give compilation warnings
Date: Wed, 11 Jul 2012 14:22:40 -0400	[thread overview]
Message-ID: <uimx36duof.fsf@fencepost.gnu.org> (raw)
In-Reply-To: <877gubszqq.fsf@gnu.org> (Chong Yidong's message of "Wed, 11 Jul 2012 12:11:57 +0800")

Chong Yidong wrote:

> There are lots of toggle-read-only warnings in the Emacs Lisp source
> tree. 

I count 10 (excluding obsolete/). Some are probably already suppressed
though. Of these:

cedet/ede/util.el seems obviously wrong.
cedet/semantic/debug.el and vc/ediff.el are unclear to me.
gnus/smime.el seems bugged (fails to ensure a pre-existing buffer is
read-write).
vc/vc-cvs.el seems wrong.
vc/vc.el not immediately clear.

> As far as I can tell, the overwhelming majority of these are all
> legitimate use cases. The typical intention is "do whatever the
> `toggle-read-only' command does, then do some other stuff on top of
> that," so the caveat about toggle-read-only not being used in Lisp
> code is bogus.

The obvious intention is to make the buffer read-only. Often it's
unclear to me whether the author also wanted the "extra stuff" that
toggle-read-only does (which is only view-mode, isn't it?), or just
didn't think about it.

IMO, it would be better to factor out the view mode enabling piece to a
separate function to be explicitly called when necessary after setting
buffer-read-only. This would then remove the ambiguity.

Some issues caused by inappropriate use of toggle-read-only are: 7292,
10006.

Maybe on average it's right to use it as often as it is wrong. A warning
at least might make people thunk about whether they do want to use it.



  parent reply	other threads:[~2012-07-11 18:22 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-07-11  4:11 toggle-read-only should not give compilation warnings Chong Yidong
2012-07-11 16:23 ` Samuel Bronson
2012-07-11 17:04 ` Achim Gratz
2012-07-11 18:22 ` Glenn Morris [this message]
2012-07-13  5:22   ` Chong Yidong
2012-07-13  6:03     ` Drew Adams
2012-07-13 13:04     ` Stefan Monnier
2012-07-13 13:47       ` Chong Yidong
2012-07-15 22:01         ` Stefan Monnier
2012-07-12  0:58 ` 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

  List information: https://www.gnu.org/software/emacs/

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

  git send-email \
    --in-reply-to=uimx36duof.fsf@fencepost.gnu.org \
    --to=rgm@gnu.org \
    --cc=cyd@gnu.org \
    --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 public inbox

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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).