diff options
author | Richard M. Stallman <rms@gnu.org> | 2008-12-22 20:20:25 +0000 |
---|---|---|
committer | Richard M. Stallman <rms@gnu.org> | 2008-12-22 20:20:25 +0000 |
commit | 348a60a8f3ee881a5fbeda36ae73bec64c6237ac (patch) | |
tree | 6634168255220721c8c332e6fc126fd0afb60cef /lisp | |
parent | caba192ed378cf4dcdf4950ae02990e5e4f7b422 (diff) | |
download | emacs-348a60a8f3ee881a5fbeda36ae73bec64c6237ac.tar.gz |
(shadow-copy-file): Handle buffer-swapped-with.
Diffstat (limited to 'lisp')
-rw-r--r-- | lisp/ChangeLog | 6 | ||||
-rw-r--r-- | lisp/shadowfile.el | 10 |
2 files changed, 14 insertions, 2 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 15ef4269f51..5c15bfb1f4d 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,5 +1,11 @@ 2008-12-22 Richard M Stallman <rms@gnu.org> + * shadowfile.el (shadow-copy-file): Handle buffer-swapped-with. + + * files.el (buffer-swapped-with): New variable. + (basic-save-buffer-0): Most of basic-save-buffer moved here. + (basic-save-buffer): Unswap the buffer temporarily if nec. + * dired.el (dired-readin): Inhibit modification hooks. 2008-12-22 Ulf Jasper <ulf.jasper@web.de> diff --git a/lisp/shadowfile.el b/lisp/shadowfile.el index 751a33d260d..ece12c367e1 100644 --- a/lisp/shadowfile.el +++ b/lisp/shadowfile.el @@ -574,8 +574,14 @@ site." (when buffer (set-buffer buffer) (condition-case i - (progn - (write-region nil nil to) + (progn + (if buffer-swapped-with + (progn + (buffer-swap-text buffer-swapped-with) + (unwind-protect + (write-region nil nil to) + (buffer-swap-text buffer-swapped-with))) + (write-region nil nil to)) (shadow-remove-from-todo s)) (error (message "Shadow %s not updated!" (cdr s))))))) |