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

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

[elpa] externals/crdt 2feb88ea9a: v0.3.2


From: ELPA Syncer
Subject: [elpa] externals/crdt 2feb88ea9a: v0.3.2
Date: Thu, 18 Aug 2022 01:57:29 -0400 (EDT)

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

    v0.3.2
    
    - add crdt-toggle-override-command
    - fix network coding, always use utf-8
---
 crdt.el | 27 ++++++++++++++++++++++++---
 1 file changed, 24 insertions(+), 3 deletions(-)

diff --git a/crdt.el b/crdt.el
index 14ab8895e1..89a498681a 100644
--- a/crdt.el
+++ b/crdt.el
@@ -6,7 +6,7 @@
 ;; Maintainer: Qiantan Hong <qhong@alum.mit.edu>
 ;; URL: https://code.librehq.com/qhong/crdt.el
 ;; Keywords: collaboration crdt
-;; Version: 0.3.1
+;; Version: 0.3.2
 
 ;; This file is part of GNU Emacs.
 
@@ -38,7 +38,7 @@
 (require 'nadvice)
 (require 'gnutls)
 
-(defconst crdt-version "0.3.1")
+(defconst crdt-version "0.3.2")
 (defconst crdt-protocol-version "0.3.0")
 
 (defun crdt-version (&optional message)
@@ -2350,7 +2350,8 @@ Each element should be one of
                            :host "0.0.0.0"
                            :service port
                            :filter #'crdt--network-filter
-                           :sentinel #'crdt--server-process-sentinel))
+                           :sentinel #'crdt--server-process-sentinel
+                           :coding 'utf-8))
          (new-session
           (crdt--make-session :local-id 0
                               :local-clock 0
@@ -2520,6 +2521,7 @@ Join with DISPLAY-NAME."
                                                :buffer (generate-new-buffer " 
*crdt-client*")
                                                :filter #'crdt--network-filter
                                                :sentinel 
#'crdt--client-process-sentinel
+                                               :coding 'utf-8
                                                process-args)))
                   (setf (crdt--session-urlstr new-session) (url-recreate-url 
url)
                         (crdt--session-network-process new-session) 
network-process)
@@ -2813,6 +2815,25 @@ Join with DISPLAY-NAME."
                 (push (crdt--readable-decode (cadr entry)) vals))))
     (cons vars vals)))
 
+(defun crdt-toggle-override-command ()
+  "Toggle whether to override local commands with remote commands."
+  (interactive)
+  (if crdt-override-command
+      (progn
+        (setq crdt-override-command nil)
+        (dolist (session crdt--session-list)
+          (maphash (lambda (fcap-symbol _)
+                     (advice-remove fcap-symbol 'crdt-remote-fcap))
+                   (crdt--session-remote-fcap-table session))))
+      (setq crdt-override-command t)
+      (dolist (session crdt--session-list)
+        (maphash (lambda (fcap-symbol _)
+                   (advice-add fcap-symbol :around 
(crdt--make-remote-command-advice fcap-symbol)
+                               '((name . crdt-remote-fcap))))
+                 (crdt--session-remote-fcap-table session))))
+  (message "Overriding remote command %s"
+           (if crdt-override-command "enabled" "disabled")))
+
 (define-crdt-message-handler fcap
     (fcap-symbol nonce in-states out-states &rest interactive-form)
   (puthash fcap-symbol



reply via email to

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