mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2024-12-11 09:20:51 +00:00
Fix auto-save and locking for indirect buffers.
* lisp/simple.el (undo): Handle indirect buffers. * buffer.c (Fset_buffer_modified_p): Handle indirect buffers. Fixes: debbugs:8207
This commit is contained in:
parent
fa42927fd0
commit
82f8cd940f
@ -1,3 +1,7 @@
|
||||
2012-09-22 Chong Yidong <cyd@gnu.org>
|
||||
|
||||
* simple.el (undo): Handle indirect buffers (Bug#8207).
|
||||
|
||||
2012-09-21 Leo Liu <sdl.web@gmail.com>
|
||||
|
||||
IDO: Disable match re-ordering for buffer switching.
|
||||
|
@ -1855,9 +1855,13 @@ as an argument limits undo to changes within the current region."
|
||||
;; another undo command will find the undo history empty
|
||||
;; and will get another error. To begin undoing the undos,
|
||||
;; you must type some other command.
|
||||
(let ((modified (buffer-modified-p))
|
||||
(recent-save (recent-auto-save-p))
|
||||
message)
|
||||
(let* ((modified (buffer-modified-p))
|
||||
;; For an indirect buffer, look in the base buffer for the
|
||||
;; auto-save data.
|
||||
(base-buffer (or (buffer-base-buffer) (current-buffer)))
|
||||
(recent-save (with-current-buffer base-buffer
|
||||
(recent-auto-save-p)))
|
||||
message)
|
||||
;; If we get an error in undo-start,
|
||||
;; the next command should not be a "consecutive undo".
|
||||
;; So set `this-command' to something other than `undo'.
|
||||
@ -1935,7 +1939,8 @@ as an argument limits undo to changes within the current region."
|
||||
;; Record what the current undo list says,
|
||||
;; so the next command can tell if the buffer was modified in between.
|
||||
(and modified (not (buffer-modified-p))
|
||||
(delete-auto-save-file-if-necessary recent-save))
|
||||
(with-current-buffer base-buffer
|
||||
(delete-auto-save-file-if-necessary recent-save)))
|
||||
;; Display a message announcing success.
|
||||
(if message
|
||||
(message "%s" message))))
|
||||
|
@ -1,3 +1,8 @@
|
||||
2012-09-22 Chong Yidong <cyd@gnu.org>
|
||||
|
||||
* buffer.c (Fset_buffer_modified_p): Handle indirect buffers
|
||||
(Bug#8207).
|
||||
|
||||
2012-09-22 Kenichi Handa <handa@gnu.org>
|
||||
|
||||
* composite.c (composition_reseat_it): Handle the case that a
|
||||
|
@ -1341,9 +1341,13 @@ A non-nil FLAG means mark the buffer modified. */)
|
||||
/* If buffer becoming modified, lock the file.
|
||||
If buffer becoming unmodified, unlock the file. */
|
||||
|
||||
fn = BVAR (current_buffer, file_truename);
|
||||
struct buffer *b = current_buffer->base_buffer
|
||||
? current_buffer->base_buffer
|
||||
: current_buffer;
|
||||
|
||||
fn = BVAR (b, file_truename);
|
||||
/* Test buffer-file-name so that binding it to nil is effective. */
|
||||
if (!NILP (fn) && ! NILP (BVAR (current_buffer, filename)))
|
||||
if (!NILP (fn) && ! NILP (BVAR (b, filename)))
|
||||
{
|
||||
bool already = SAVE_MODIFF < MODIFF;
|
||||
if (!already && !NILP (flag))
|
||||
|
Loading…
Reference in New Issue
Block a user