bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#58909: 29.0.50; [WIP PATCH] Deleting the last frame of an emacsclien


From: Jim Porter
Subject: bug#58909: 29.0.50; [WIP PATCH] Deleting the last frame of an emacsclient doesn't ask to save
Date: Sun, 30 Oct 2022 15:29:30 -0700

(Note: this is tangentially related to bug#51993, but it happens regardless of whether 'server-stop-automatically' is enabled.)

In most cases when you do something to exit an Emacs client, it prompts you to save buffers associated with that client. For example:

  $ emacs -Q -f server-start
  $ emacsclient -c foo.txt

  ;; type some random characters

  C-x #
  ;; or...
  C-x C-c

In both cases, Emacs will ask to save foo.txt, though the prompts will be slightly different. That's good, since whatever invoked "emacsclient -c foo.txt" is likely waiting for the user to have saved that file.

However, if you use 'C-x 5 0' instead, that terminates the Emacs client, but *doesn't* prompt to save foo.txt. I think it should prompt in this case too: all three of 'C-x #', 'C-x C-c', and 'C-x 5 0' have the effect (in this simple case) of deleting the Emacs client and returning to the calling process. (A user who wanted to bail out of an Emacs client without saving should use 'sever-edit-abort' instead.)

Attached is a WIP patch to do this. It's WIP because it will need to have some special handling for the 'server-stop-automatically' case so that it doesn't prompt twice in some cases. I also changed how 'delete-frame' calls 'delete-frame-functions'. Hopefully the change I made is correct; I'm hesitant to change low-level code like that, but I think it's the right thing to do for this case at least. (Maybe that change should be called out in NEWS?)

Ultimately, it might make sense to merge this bug with bug#51993, but the discussion in that bug is already pretty long, and I think it would just confuse matters to add even more tangents to that discussion.

Attachment: 0001-When-deleting-the-last-frame-of-an-Emacs-client-ask-.patch
Description: Text document


reply via email to

[Prev in Thread] Current Thread [Next in Thread]