[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/m-buffer a3078a58ed 055/115: exact-subtract no longer c
From: |
ELPA Syncer |
Subject: |
[elpa] externals/m-buffer a3078a58ed 055/115: exact-subtract no longer crashes on last non-match |
Date: |
Tue, 19 Jul 2022 15:58:48 -0400 (EDT) |
branch: externals/m-buffer
commit a3078a58edb50661c05c334d7a8c47b1b1188b70
Author: Phillip Lord <phillip.lord@newcastle.ac.uk>
Commit: Phillip Lord <phillip.lord@newcastle.ac.uk>
exact-subtract no longer crashes on last non-match
Previously exact-subtract would crash if the last element in n
did not also occur in m. We now check for exhaustion of n explicitly and
so avoid doing a numerical check between marker and nil.
---
m-buffer.el | 7 +++++++
test/m-buffer-test.el | 16 ++++++++++++++++
2 files changed, 23 insertions(+)
diff --git a/m-buffer.el b/m-buffer.el
index a505c40156..96d8525c7c 100644
--- a/m-buffer.el
+++ b/m-buffer.el
@@ -374,10 +374,17 @@ runs faster but has some restrictions."
Both M and N must be fully ordered, and any element in N must be
in M."
(if n
+ ;; n-eaten contains the remaining elements of n that we haven't tested
+ ;; for yet. We throw them away as we go
(let ((n-eaten n))
(-remove
(lambda (o)
(cond
+ ;; n-eaten has been eaten. Check here or later "<" comparison
crashes.
+ ((not n-eaten)
+ ;; return nil because we always want things in m now.
+ nil
+ )
;; we have a match so throw away the first element of n-eaten
;; which we won't need again.
((m-buffer-match-equal
diff --git a/test/m-buffer-test.el b/test/m-buffer-test.el
index 3253ce2505..2e750c59ad 100644
--- a/test/m-buffer-test.el
+++ b/test/m-buffer-test.el
@@ -356,6 +356,22 @@
'((1 1))
nil))))
+(ert-deftest exact-subtract-error-simplified ()
+ (should
+ (equal
+ '((2 2))
+ (m-buffer-match-exact-subtract
+ '((1 1) (2 2))
+ '((1 1))))))
+(ert-deftest exact-subtract-error ()
+ "This is a test case for a bug found from linked-buffer."
+ (should
+ (equal
+ '((19 31 19 19))
+ (m-buffer-match-exact-subtract
+ '((1 18 1 1)
+ (19 31 19 19))
+ '((1 18))))))
;;; m-buffer-test.el ends here
- [elpa] externals/m-buffer b402420640 108/115: Remove CSS which is provided by lentic, (continued)
- [elpa] externals/m-buffer b402420640 108/115: Remove CSS which is provided by lentic, ELPA Syncer, 2022/07/19
- [elpa] externals/m-buffer 7ce1c15e0b 110/115: Update documentation entry point, ELPA Syncer, 2022/07/19
- [elpa] externals/m-buffer 6eb1d2535a 112/115: v0.15 Release, ELPA Syncer, 2022/07/19
- [elpa] externals/m-buffer 042fe80d95 057/115: Checkdoc before 0.6 release., ELPA Syncer, 2022/07/19
- [elpa] externals/m-buffer c637ea3bf2 077/115: Prepare for next iteration., ELPA Syncer, 2022/07/19
- [elpa] externals/m-buffer e648a9d6ca 084/115: m-buffer-apply-snoc replaced., ELPA Syncer, 2022/07/19
- [elpa] externals/m-buffer d9682aa359 086/115: Prepare for 0.11 release., ELPA Syncer, 2022/07/19
- [elpa] externals/m-buffer 49a0c187a1 026/115: Name changes: markers to marker, ELPA Syncer, 2022/07/19
- [elpa] externals/m-buffer 45ad6de33d 041/115: Documentaion update for cask move., ELPA Syncer, 2022/07/19
- [elpa] externals/m-buffer 69750033c2 043/115: m-buffer-replace-matches has more arguments., ELPA Syncer, 2022/07/19
- [elpa] externals/m-buffer a3078a58ed 055/115: exact-subtract no longer crashes on last non-match,
ELPA Syncer <=
- [elpa] externals/m-buffer 55eb7c058f 059/115: Prepare for next iteration., ELPA Syncer, 2022/07/19
- [elpa] externals/m-buffer c2ea6f72b9 060/115: m-buffer-first-line added., ELPA Syncer, 2022/07/19
- [elpa] externals/m-buffer 63a46e6732 063/115: m-buffer-in-match-p added., ELPA Syncer, 2022/07/19
- [elpa] externals/m-buffer 3df675024f 064/115: New functions added., ELPA Syncer, 2022/07/19
- [elpa] externals/m-buffer 69cf1fb326 066/115: Documentation updates., ELPA Syncer, 2022/07/19
- [elpa] externals/m-buffer e80fd6cdaa 068/115: Documentation updates., ELPA Syncer, 2022/07/19
- [elpa] externals/m-buffer e9f9b0819f 072/115: Prepare for next iteration!, ELPA Syncer, 2022/07/19
- [elpa] externals/m-buffer 8c7f63ee16 073/115: Removed pointless call to m-buffer-buffer-for-match., ELPA Syncer, 2022/07/19
- [elpa] externals/m-buffer 77067c0ff5 076/115: Version 0.9 Released., ELPA Syncer, 2022/07/19
- [elpa] externals/m-buffer 3136ab48a8 082/115: Docstring typo., ELPA Syncer, 2022/07/19