emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/crdt 2cee2da 41/80: fix bug in crdt-process-message (he


From: ELPA Syncer
Subject: [elpa] externals/crdt 2cee2da 41/80: fix bug in crdt-process-message (head remove)
Date: Sat, 28 Aug 2021 10:57:38 -0400 (EDT)

branch: externals/crdt
commit 2cee2da3191462a211d78ffeea15844d00719564
Author: Qiantan Hong <qhong@mit.edu>
Commit: Qiantan Hong <qhong@mit.edu>

    fix bug in crdt-process-message (head remove)
---
 crdt.el | 28 +++++++++++++++-------------
 1 file changed, 15 insertions(+), 13 deletions(-)

diff --git a/crdt.el b/crdt.el
index 8afd679..01e6e6d 100644
--- a/crdt.el
+++ b/crdt.el
@@ -1141,19 +1141,21 @@ to server when WITHOUT is T."
     (crdt--refresh-buffers-maybe)))
 
 (cl-defmethod crdt-process-message ((message (head remove)) process)
-  (dolist (buffer-name (cdr message))
-    (let ((buffer (gethash buffer-name (crdt--session-buffer-table 
crdt--session))))
-      (remhash buffer-name (crdt--session-buffer-table crdt--session))
-      (when buffer
-        (when (buffer-live-p buffer)
-          (with-current-buffer buffer
-            (crdt-mode 0)
-            (setq crdt--session nil))))))
-  (message "Server stopped sharing %s."
-           (mapconcat #'identity (cdr message) ", "))
-  (crdt--broadcast-maybe (crdt--format-message message)
-                         (when process (process-get process 'client-id)))
-  (crdt--refresh-buffers-maybe))
+  (let ((saved-session crdt--session))
+    (dolist (buffer-name (cdr message))
+      (let ((buffer (gethash buffer-name (crdt--session-buffer-table 
crdt--session))))
+        (remhash buffer-name (crdt--session-buffer-table crdt--session))
+        (when buffer
+          (when (buffer-live-p buffer)
+            (with-current-buffer buffer
+              (crdt-mode 0)
+              (setq crdt--session nil))))))
+   (message "Server stopped sharing %s."
+            (mapconcat #'identity (cdr message) ", "))
+   (let ((crdt--session saved-session))
+     (crdt--broadcast-maybe (crdt--format-message message)
+                            (when process (process-get process 'client-id)))
+     (crdt--refresh-buffers-maybe))))
 
 (cl-defmethod crdt-process-message ((message (head login)) process)
   (cl-destructuring-bind (id session-name) (cdr message)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]