summaryrefslogtreecommitdiff
path: root/lisp
diff options
context:
space:
mode:
authorRichard M. Stallman <rms@gnu.org>2008-12-22 20:20:25 +0000
committerRichard M. Stallman <rms@gnu.org>2008-12-22 20:20:25 +0000
commit348a60a8f3ee881a5fbeda36ae73bec64c6237ac (patch)
tree6634168255220721c8c332e6fc126fd0afb60cef /lisp
parentcaba192ed378cf4dcdf4950ae02990e5e4f7b422 (diff)
downloademacs-348a60a8f3ee881a5fbeda36ae73bec64c6237ac.tar.gz
(shadow-copy-file): Handle buffer-swapped-with.
Diffstat (limited to 'lisp')
-rw-r--r--lisp/ChangeLog6
-rw-r--r--lisp/shadowfile.el10
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)))))))