[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/crdt 53e5676 33/80: fix bug with org table
From: |
ELPA Syncer |
Subject: |
[elpa] externals/crdt 53e5676 33/80: fix bug with org table |
Date: |
Sat, 28 Aug 2021 10:57:36 -0400 (EDT) |
branch: externals/crdt
commit 53e56760a8add2d286270709d68b4a8d8defd2cc
Author: Qiantan Hong <qhong@mit.edu>
Commit: Qiantan Hong <qhong@mit.edu>
fix bug with org table
- in particular, when some other package
erase a range of 'crdt-id properties
---
crdt.el | 16 +++++++++++++++-
1 file changed, 15 insertions(+), 1 deletion(-)
diff --git a/crdt.el b/crdt.el
index 8d18c85..36f42d5 100644
--- a/crdt.el
+++ b/crdt.el
@@ -830,6 +830,19 @@ Start the search from POS."
(unless crdt--inhibit-update
(setq crdt--changed-string (buffer-substring beg end))))
+(defsubst crdt--crdt-id-assimilate (template beg &optional object)
+ "Make the CRDT-ID property after BEG in OBJECT the same as TEMPLATE.
+TEMPLATE should be a string. If OBJECT is NIL, use current buffer."
+ (let (next-pos
+ (pos 0)
+ (limit (length template)))
+ (while (< pos limit)
+ (setq next-pos (next-single-property-change pos 'crdt-id template limit))
+ (put-text-property (+ beg pos) (+ beg next-pos) 'crdt-id
+ (get-text-property pos 'crdt-id template)
+ object)
+ (setq pos next-pos))))
+
(defun crdt--after-change (beg end length)
(when (markerp beg)
(setq beg (marker-position beg)))
@@ -846,9 +859,10 @@ Start the search from POS."
;; ignore property only changes
(save-excursion
(goto-char beg)
- (unless (and (= length (- end beg))
+ (if (and (= length (- end beg))
(string-equal crdt--changed-string
(buffer-substring-no-properties beg end)))
+ (crdt--crdt-id-assimilate crdt--changed-string beg)
(widen)
(with-silent-modifications
(unless (= length 0)
- [elpa] externals/crdt 22910f2 01/80: initial commit, (continued)
- [elpa] externals/crdt 22910f2 01/80: initial commit, ELPA Syncer, 2021/08/28
- [elpa] externals/crdt 7ebbd5e 05/80: cleanup debug code, ELPA Syncer, 2021/08/28
- [elpa] externals/crdt 21f62ad 14/80: various fixes, ELPA Syncer, 2021/08/28
- [elpa] externals/crdt 958394a 08/80: doc, ELPA Syncer, 2021/08/28
- [elpa] externals/crdt 6b320c7 11/80: bug fix, ELPA Syncer, 2021/08/28
- [elpa] externals/crdt bfce95c 17/80: formatting, ELPA Syncer, 2021/08/28
- [elpa] externals/crdt 692d2cc 24/80: initial work for lazily pulling buffer, ELPA Syncer, 2021/08/28
- [elpa] externals/crdt b8cd461 22/80: Minor improvements, ELPA Syncer, 2021/08/28
- [elpa] externals/crdt 8307092 29/80: better read function, tab width wider, ELPA Syncer, 2021/08/28
- [elpa] externals/crdt 4c7e12d 37/80: documentation, ELPA Syncer, 2021/08/28
- [elpa] externals/crdt 53e5676 33/80: fix bug with org table,
ELPA Syncer <=
- [elpa] externals/crdt fcc6a47 38/80: fix upper/lowercase convention, ELPA Syncer, 2021/08/28
- [elpa] externals/crdt e1b0fe9 02/80: Fixed silly typo!, ELPA Syncer, 2021/08/28
- [elpa] externals/crdt 88cd9a1 03/80: refactorz, ELPA Syncer, 2021/08/28
- [elpa] externals/crdt 432b5f8 04/80: two bug fixes for CRDT algorithm, ELPA Syncer, 2021/08/28
- [elpa] externals/crdt 82a7565 10/80: fix authentication bug, ELPA Syncer, 2021/08/28
- [elpa] externals/crdt b95111c 15/80: add makefile, ELPA Syncer, 2021/08/28
- [elpa] externals/crdt 60bb2ac 07/80: lots of functionalities, ELPA Syncer, 2021/08/28
- [elpa] externals/crdt a157310 12/80: better formatting, ELPA Syncer, 2021/08/28
- [elpa] externals/crdt 5ec25f7 20/80: input method seems to work now, ELPA Syncer, 2021/08/28
- [elpa] externals/crdt ea632a3 26/80: some docstring and unused variable, ELPA Syncer, 2021/08/28