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: A few questions about desktop.el
Date: Thu, 4 May 2006 09:27:10 -0700 (PDT)	[thread overview]
Message-ID: <36957.128.165.123.132.1146760030.squirrel@webmail.lanl.gov> (raw)
In-Reply-To: <4458C031.5060201@soem.dk>

> I like the idea of using the standard locking mechanism, but I don't
> like to mark an unmodified buffer as modified.
>
> I think the desktop file should be locked as soon as we know it is going
> to be changed when Emacs exits, i.e. when desktop-save-mode is turned
> on. And if desktop-save-mode is turned off, the desktop file should be
> unlocked if its buffer is unmodified. So maybe lock-buffer should have
> an optional parameter LOCK-UNMODIFIED to make it usable in such cases (I
> take it this is an after-the-release discussion.)

So what happens if you turn desktop-save-mode off, another Emacs loads,
locks, overwrites, and unlocks the file, and then you turn
desktop-save-mode back on?  (The desktop file's buffer (if it is made to
have one) will always be unmodified unless the user explicitly finds it
and changes it; desktop does not use a buffer as some sort of "scratch
pad" whose state of modification would reflect the state of the abstract
desktop.)  Besides, someone could have a "standard desktop" that they load
frequently but save rarely, and so never have desktop-save-mode turned on.
 Then they might occasionally improve on or update the standard, and issue
an explicit (desktop-save) which would take place without the protections
of file locking.

In short, I don't think it's reasonable to "know it is going to be changed
when Emacs exits", because settings can change and it might even get
changed before Emacs exits (due to `desktop-save' or even
`desktop-change-dir').

>> [timestamp check suggestion]
>
> This is pleasingly simple, but then the question would be asked when
> Emacs is exited rather than when it is started. IMHO, the question
> should be asked as soon as the problem is detected, i.e. when the second
> Emacs is started (if desktop-save-mode is turned on).

My patch does this (as I mentioned in my reply to Juri); it also does what
you ask, although without the standard file-lock mechanism.  A separate
lock file is maintained which identifies (by PID) the owner of the desktop
file.  Then the second Emacs will see the file and complain about it
(regardless of the setting of `desktop-save-mode', for the reasons of
no-precognition mentioned above), although the user is allowed the option
of proceeding anyway (at which point it's up to the modification dates to
attempt a peaceful resolution later).

I encourage the testing of my patch to see if its behavior is close enough
to everyone's idea of safe, correct, vigilant, and intuitive.

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.

  parent reply	other threads:[~2006-05-04 16:27 UTC|newest]

Thread overview: 72+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-07-22  2:42 A few questions about desktop.el Juanma Barranquero
2005-07-22 10:53 ` Juanma Barranquero
2005-07-22 22:52   ` Richard M. Stallman
2005-07-26  8:56     ` Juanma Barranquero
2005-07-27 14:03       ` Richard M. Stallman
2005-07-27 14:28         ` Juanma Barranquero
2005-07-28  3:20           ` Richard M. Stallman
2005-07-28  7:34             ` David Kastrup
2005-07-28 12:51               ` Juanma Barranquero
2005-07-29  0:11               ` Richard M. Stallman
2005-07-28  3:20           ` Richard M. Stallman
2005-07-29  0:37             ` Juanma Barranquero
2005-07-28  4:24           ` Masatake YAMATO
2006-04-27 23:05           ` Stuart D. Herring
2006-04-28 14:56             ` Juanma Barranquero
2006-04-29  4:57               ` Stuart D. Herring
2006-04-30  1:16                 ` Juanma Barranquero
2006-05-02 15:06                   ` Stuart D. Herring
2006-05-02 15:14                     ` Juanma Barranquero
2006-05-02 15:42                       ` Stuart D. Herring
2006-05-02 17:57                         ` Stuart D. Herring
2006-04-28 15:44             ` Richard Stallman
2006-04-29  5:02               ` Stuart D. Herring
2006-04-30  3:03                 ` Richard Stallman
2006-05-03 12:48               ` Juri Linkov
2006-05-03 14:37                 ` Lars Hansen
2006-05-03 20:43                   ` Richard Stallman
2006-05-04 16:27                   ` Stuart D. Herring [this message]
2006-05-05  6:44                     ` Lars Hansen
2007-06-05  9:24                     ` Juanma Barranquero
2007-06-08 21:17                       ` Davis Herring
2007-06-08 21:29                         ` Juanma Barranquero
2007-06-08 22:05                           ` Davis Herring
2007-06-08 22:14                         ` Juri Linkov
2007-06-09  0:51                           ` Davis Herring
2007-06-09 21:31                             ` Juri Linkov
2007-06-10 23:28                               ` Juanma Barranquero
2007-06-11 20:54                                 ` Juri Linkov
2007-06-12 11:21                                   ` Juanma Barranquero
2006-05-04 16:17                 ` Stuart D. Herring
2005-08-08 15:02   ` Lars Hansen
2005-07-22 13:50 ` Juanma Barranquero
2005-07-22 14:36   ` Juanma Barranquero
2005-07-26  8:27     ` Juanma Barranquero
2005-08-08 15:04     ` Lars Hansen
2005-07-22 19:11 ` Lars Hansen
2005-07-22 21:24   ` Juanma Barranquero
2005-07-22 22:50 ` Richard M. Stallman
2005-07-26  9:11   ` Juanma Barranquero
2005-07-27 14:04     ` Richard M. Stallman
2005-07-27 14:16       ` Juanma Barranquero
2005-07-28  3:20         ` Richard M. Stallman
2005-07-29  0:44           ` Juanma Barranquero
2005-08-10  9:50         ` Lars Hansen
2005-08-10 11:24           ` Juanma Barranquero
2006-02-09 16:30             ` Juanma Barranquero
2006-02-09 20:00               ` Lars Hansen
2006-02-09 21:11               ` Lars Hansen
2006-02-09 23:46                 ` Juanma Barranquero
2005-08-10 22:05           ` Luc Teirlinck
2005-08-10 23:45             ` Luc Teirlinck
2005-08-11  1:12               ` Luc Teirlinck
2005-08-11  1:36                 ` Luc Teirlinck
2005-08-11  3:01                 ` Luc Teirlinck
2005-08-11  6:12                   ` Lars Hansen
2005-08-08 14:51 ` Lars Hansen
2005-08-08 18:35   ` Juanma Barranquero
2005-08-09  7:12     ` Lars Hansen
2005-08-09  7:36       ` Lars Hansen
2005-08-09  8:49       ` Juanma Barranquero
2005-08-09  9:31         ` David Kastrup
2005-08-09  9:59           ` Juanma Barranquero

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=36957.128.165.123.132.1146760030.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.