[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [O] buffer-file-name in [* Org src *] buffers
From: |
Clément Pit-Claudel |
Subject: |
Re: [O] buffer-file-name in [* Org src *] buffers |
Date: |
Wed, 14 Mar 2018 10:18:55 -0400 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.6.0 |
Hi Nicolas,
> The explanation is here:
>
> <http://lists.gnu.org/archive/html/emacs-orgmode/2009-08/msg00335.html>
>
> AFAIU, this was needed so that Emacs would warn when closing a remote
> editing buffer with C-x k. This feature doesn't appear to be functional
> at the moment, tho.
Sorry for the delayed answer; I didn't receive your message.
Thanks for the link to the discussion. It'd be great to find a different way
to do it, though, as the current implementation sends a confusing signal to
other packages.
The original implementation listed three problems:
> * Proposed bug I
> C-x k kills the edit buffer without questions; the overlay
> remains, but now links to a deleted buffer.
> * Proposed bug II
> C-x C-c kills a modified edit buffer silently, without offering to
> save your work. I have lost work like that a number of times
> recently.
> * Proposed bug III
> C-x s does not offer to save a modified edit buffer
It also mentioned this:
> This patch gives the desired behaviour, at the cost of being forced
> to assign a buffer-file-name to the edit buffer. The consequence is
> that the edit buffer is considered to always be modified
I think there's an alternative fix for these issues that doesn't require
setting buffer-file-name:
1. Set buffer-offer-save to 'always; this guarantees that C-x s will ask about
the edit buffer.
2. Add an entry to kill-buffer-query-functions. For example, with-editor (used
by magit) does this:
(add-hook 'kill-buffer-query-functions
'with-editor-kill-buffer-noop nil t)
With these, we could leave buffer-file-name to nil.
WDYT?
Clément.
PS: point (1) shares an issue with the original implementation (it always
prompts during save-some-buffers). One fix to this could be to add a
buffer-modification-hook that marks the source buffer as modified when the edit
buffer is modified, and to make change the source buffer's
write-contents-functions to offer to save edit buffers too.