unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Andre Spiegel <spiegel@gnu.org>
Cc: Stefan Monnier <monnier+gnu/emacs@rum.cs.yale.edu>
Subject: Re: VC, read-only buffers for writable files
Date: 22 Oct 2002 16:35:55 +0200	[thread overview]
Message-ID: <1035297355.2276.58.camel@eagle> (raw)
In-Reply-To: <200210221331.g9MDV3n21931@rum.cs.yale.edu>

On Tue, 2002-10-22 at 15:31, Stefan Monnier wrote:

> Currently VC sometimes makes a file read-only because it thinks it's
> better that way for the user.  More specifically, it makes it read-only
> if the file seems to be locked by another user.

I have talked this over with Stefan several times, and we have reached
no agreement.  I'll be happy to let the general public (or Richard, for
that matter :-) decide.

> This special behavior used to apply to SCCS, RCS and CVS under Emacs-20
> and was silently changed in Emacs-21 to only apply to RCS and SCCS (it was
> changed as a side effect of another change).  Nobody complained about
> this change and I think we should go further and remove this hack
> altogether so it doesn't aply to RCS and SCCS either.

The behavior wasn't changed accidentally for CVS.  There are no locks
under CVS, and Emacs-21 handles that correctly by not assuming that a
file could be "locked" by anybody.  RCS and SCCS do have locks, and
Emacs-21 deliberately chooses to enforce the locking.  This is not a
"hack".  If people don't want that, so be it, then we'll change it.

Here is the relevant portion of code from vc-hooks.el, since the
comments may make it clearer to everybody.

    ;; If the file is locked by some other user, make
    ;; the buffer read-only.  Like this, even root
    ;; cannot modify a file that someone else has locked.
    (and (equal file (buffer-file-name))
         (stringp (vc-state file))
	 (setq buffer-read-only t))
    ;; If the user is root, and the file is not owner-writable,
    ;; then pretend that we can't write it
    ;; even though we can (because root can write anything).
    ;; This way, even root cannot modify a file that isn't locked.
    (and (equal file (buffer-file-name))
	 (not buffer-read-only)
	 (zerop (user-real-uid))
	 (zerop (logand (file-modes (buffer-file-name)) 128))
	 (setq buffer-read-only t)))

  reply	other threads:[~2002-10-22 14:35 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-10-22 13:31 VC, read-only buffers for writable files Stefan Monnier
2002-10-22 14:35 ` Andre Spiegel [this message]
2002-10-22 14:49   ` Stefan Monnier
2002-10-23  7:12 ` Richard Stallman
2002-10-23  7:39   ` Stefan Monnier
2002-10-24 16:54     ` Richard Stallman
2002-10-24 17:03       ` Stefan Monnier

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=1035297355.2276.58.camel@eagle \
    --to=spiegel@gnu.org \
    --cc=monnier+gnu/emacs@rum.cs.yale.edu \
    /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).