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

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

[elpa] externals/crdt 9d39b42 55/80: quick hack for xscheme.el


From: ELPA Syncer
Subject: [elpa] externals/crdt 9d39b42 55/80: quick hack for xscheme.el
Date: Sat, 28 Aug 2021 10:57:41 -0400 (EDT)

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

    quick hack for xscheme.el
---
 crdt.el | 28 ++++++++++++++++++++++++++++
 1 file changed, 28 insertions(+)

diff --git a/crdt.el b/crdt.el
index b39a7ce..787aa89 100644
--- a/crdt.el
+++ b/crdt.el
@@ -1923,11 +1923,21 @@ Join with DISPLAY-NAME."
              crdt--buffer-pseudo-process
            (funcall orig-func buffer)))))
 
+(defun crdt--get-process-advice (orig-func name)
+  (if (crdt--pseudo-process-p name)
+      name
+    (funcall orig-func name)))
+
 (defun crdt--process-mark-advice (orig-func process)
   (if (crdt--pseudo-process-p process)
       (crdt--pseudo-process-mark process)
     (funcall orig-func process)))
 
+(defun crdt--process-name-advice (orig-func process)
+  (if (crdt--pseudo-process-p process)
+      process
+      (funcall orig-func process)))
+
 (cl-defmethod crdt-process-message ((message (head process-mark)) process)
   (cl-destructuring-bind (buffer-name crdt-id position-hint) (cdr message)
     (crdt--with-buffer-name
@@ -1973,14 +1983,32 @@ Join with DISPLAY-NAME."
 (defun crdt--processp-advice (orig-func object)
   (or (crdt--pseudo-process-p object) (funcall orig-func object)))
 
+(defun crdt--dummy () nil)
+
+(defun crdt--process-sentinel/filter-advice (orig-func process)
+  (if (crdt--pseudo-process-p process)
+      #'crdt--dummy
+    (funcall orig-func process)))
+
+(defun crdt--set-process-sentinel/filter-advice (orig-func process func)
+  (if (crdt--pseudo-process-p process)
+      nil
+      (funcall orig-func process func)))
+
 (advice-add 'process-send-string :around #'crdt--process-send-string-advice)
 (advice-add 'process-send-region :around #'crdt--process-send-region-advice)
 (advice-add 'processp :around #'crdt--processp-advice)
 (advice-add 'get-buffer-process :around #'crdt--get-buffer-process-advice)
+(advice-add 'get-process :around #'crdt--get-process-advice)
 (advice-add 'process-status :around #'crdt--process-status-advice)
 (advice-add 'process-buffer :around #'crdt--process-buffer-advice)
 (advice-add 'process-mark :around #'crdt--process-mark-advice)
 (advice-add 'delete-process :around #'crdt--delete-process-advice)
+(advice-add 'process-name :around #'crdt--process-name-advice)
+(advice-add 'process-sentinel :around #'crdt--process-sentinel/filter-advice)
+(advice-add 'process-filter :around #'crdt--process-sentinel/filter-advice)
+(advice-add 'set-process-sentinel :around 
#'crdt--set-process-sentinel/filter-advice)
+(advice-add 'set-process-filter :around 
#'crdt--set-process-sentinel/filter-advice)
 
 (cl-defmethod crdt-process-message ((message (head process)) process)
   (cl-destructuring-bind (buffer-name string) (cdr message)



reply via email to

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