summaryrefslogtreecommitdiff
path: root/lisp/shadowfile.el
diff options
context:
space:
mode:
Diffstat (limited to 'lisp/shadowfile.el')
-rw-r--r--lisp/shadowfile.el10
1 files changed, 8 insertions, 2 deletions
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)))))))