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

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

[elpa] externals/ement 640692f8f4 2/2: Fix: (ement--mark-room-direct) Fo


From: ELPA Syncer
Subject: [elpa] externals/ement 640692f8f4 2/2: Fix: (ement--mark-room-direct) For users with existing direct rooms
Date: Mon, 26 Sep 2022 13:57:40 -0400 (EDT)

branch: externals/ement
commit 640692f8f452a30f5a87ebccacbe479902dc7b05
Author: Adam Porter <adam@alphapapa.net>
Commit: Adam Porter <adam@alphapapa.net>

    Fix: (ement--mark-room-direct) For users with existing direct rooms
---
 ement-lib.el | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/ement-lib.el b/ement-lib.el
index dc1a1dab54..dfcb433114 100644
--- a/ement-lib.el
+++ b/ement-lib.el
@@ -1214,12 +1214,14 @@ such when they were created."
                (members (delete-dups (mapcar #'ement-event-sender timeline)))
                (other-users (cl-remove local-user-id members
                                        :key #'ement-user-id :test #'equal))
-               ((cl-struct ement-user (id other-user-id)) (car other-users)))
+               ((cl-struct ement-user (id other-user-id)) (car other-users))
+               ;; The alist keys are MXIDs as symbols.
+               (other-user-id (intern other-user-id))
+               (existing-direct-rooms-for-user (map-elt 
direct-rooms-account-data-event-content other-user-id)))
     (cl-assert (= 1 (length other-users)))
-    (cl-assert (not (map-elt direct-rooms-account-data-event-content 
other-user-id)) nil
-               "Ement: User <%s> already has a direct room on session <%s>"
-               other-user-id local-user-id)
-    (setf (map-elt direct-rooms-account-data-event-content other-user-id) 
(vector room-id))
+    (setf (map-elt direct-rooms-account-data-event-content other-user-id)
+          (cl-coerce (append existing-direct-rooms-for-user (list room-id))
+                     'vector))
     (ement-put-account-data session "m.direct" 
direct-rooms-account-data-event-content
       :then (lambda (_data)
               (message "Ement: Room <%s> marked as direct for <%s>." room-id 
other-user-id)))



reply via email to

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