[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/m-buffer 2803b1f9b6 048/115: Match functions now accept
From: |
ELPA Syncer |
Subject: |
[elpa] externals/m-buffer 2803b1f9b6 048/115: Match functions now accept a :numeric arg. |
Date: |
Tue, 19 Jul 2022 15:58:47 -0400 (EDT) |
branch: externals/m-buffer
commit 2803b1f9b6a5b5d66cc712a96604aa343fd01c63
Author: Phillip Lord <phillip.lord@newcastle.ac.uk>
Commit: Phillip Lord <phillip.lord@newcastle.ac.uk>
Match functions now accept a :numeric arg.
This forces the return of integers rather than markers which saves the
effort of nil'ing them after, but which cannot be used in replace-matches.
---
m-buffer.el | 28 +++++++++++++++++++++-------
test/m-buffer-test.el | 17 ++++++++++++-----
2 files changed, 33 insertions(+), 12 deletions(-)
diff --git a/m-buffer.el b/m-buffer.el
index 955fc77dd8..185e35f981 100644
--- a/m-buffer.el
+++ b/m-buffer.el
@@ -64,7 +64,9 @@ following keys:
:end -- the end of the region to search -- default point max
:post-match -- function called after a match -- default nil
:widen -- if true, widen buffer first -- default nil
-:case-fold-search value of `case-fold-search' during search
+:case-fold-search value of `case-fold-search' during search.
+If :default accept the current buffer-local value
+:numeric -- if true, return integers not markers
If options are expressed in two places, the plist form takes
precedence over positional args. So calling with both a first
@@ -79,7 +81,8 @@ this. The buffer is searched forward."
(m-buffer-normalize-args match)))
(defun m-buffer-match-1 (buffer regexp begin end
- post-match widen cfs)
+ post-match widen cfs
+ numeric)
"Return a list of `match-data' for all matches.
This is an internal function: please prefer `m-buffer-match'.
@@ -92,7 +95,9 @@ POST-MATCH -- function to run after each match
POST-MATCH is useful for zero-width matches which will otherwise cause
infinite loop. The buffer is searched forward.
WIDEN -- call widen first.
-CFS -- Non-nil if searches and matches should ignore case."
+CFS -- Non-nil if searches and matches should ignore case.
+NUMERIC -- Non-nil if we should return integers not markers.
+"
(save-match-data
(save-excursion
(save-restriction
@@ -104,7 +109,7 @@ CFS -- Non-nil if searches and matches should ignore case."
(end-bound (or end (point-max)))
;; over-ride default if necessary
(case-fold-search
- (if (eq :missing cfs)
+ (if (eq :default cfs)
case-fold-search
cfs)))
(goto-char
@@ -122,7 +127,10 @@ CFS -- Non-nil if searches and matches should ignore case."
t))
(setq rtn
(cons
- (match-data)
+ (if numeric
+ (m-buffer-marker-to-pos-nil
+ (match-data))
+ (match-data))
rtn))
(when post-match
(setq post-match-return (funcall post-match))))
@@ -178,8 +186,14 @@ This is an internal function."
(cfs
(if (plist-member pargs :case-fold-search)
(plist-get pargs :case-fold-search)
- :missing)))
- (list buffer regexp begin end post-match widen cfs)))
+ :default))
+
+ ;; numeric
+ (numeric
+ (plist-get pargs :numeric)))
+
+
+ (list buffer regexp begin end post-match widen cfs numeric)))
(defun m-buffer-ensure-match (&rest match)
"Ensure that we have match data.
diff --git a/test/m-buffer-test.el b/test/m-buffer-test.el
index 9ab8330c66..63ec642c8e 100644
--- a/test/m-buffer-test.el
+++ b/test/m-buffer-test.el
@@ -56,28 +56,35 @@
;; just buffer and regexp
(should
(equal
- (list (current-buffer) "regexp" nil nil nil nil :missing)
+ (list (current-buffer) "regexp" nil nil nil nil :default nil)
(m-buffer-normalize-args
(list (current-buffer) "regexp"))))
(should
(equal
- (list (current-buffer) "regexp" nil nil nil nil :missing)
+ (list (current-buffer) "regexp" nil nil nil nil :default nil)
(m-buffer-normalize-args
(list (current-buffer) :regexp "regexp"))))
(should
(equal
- (list (current-buffer) "regexp" 1 2 3 4 :missing)
+ (list (current-buffer) "regexp" 1 2 3 4 :default nil)
(m-buffer-normalize-args
(list (current-buffer) "regexp" :begin 1 :end 2 :post-match 3 :widen 4))))
(should
(equal
- (list (current-buffer) "regexp" 1 2 3 4 5)
+ (list (current-buffer) "regexp" 1 2 3 4 5 nil)
(m-buffer-normalize-args
(list (current-buffer) "regexp" :begin 1 :end 2 :post-match 3
- :widen 4 :case-fold-search 5)))))
+ :widen 4 :case-fold-search 5))))
+
+ (should
+ (equal
+ (list (current-buffer) "regexp" 1 2 3 4 5 6)
+ (m-buffer-normalize-args
+ (list (current-buffer) "regexp" :begin 1 :end 2 :post-match 3
+ :widen 4 :case-fold-search 5 :numeric 6)))))
(ert-deftest m-buffer-matches ()
- [elpa] externals/m-buffer d4aeb66bb3 028/115: Removed pluralisation from nil-markers., (continued)
- [elpa] externals/m-buffer d4aeb66bb3 028/115: Removed pluralisation from nil-markers., ELPA Syncer, 2022/07/19
- [elpa] externals/m-buffer 710ae5ae1a 029/115: Second attempt to remove pluralisation from nil-markers, ELPA Syncer, 2022/07/19
- [elpa] externals/m-buffer 0450374662 002/115: Lots of changes!, ELPA Syncer, 2022/07/19
- [elpa] externals/m-buffer 76b65c025d 016/115: Test file for previous tests., ELPA Syncer, 2022/07/19
- [elpa] externals/m-buffer 94251c2abe 019/115: Package metadata added., ELPA Syncer, 2022/07/19
- [elpa] externals/m-buffer 2e1e7b5d29 021/115: Version Update., ELPA Syncer, 2022/07/19
- [elpa] externals/m-buffer 5784538b01 034/115: v0.4 iteration., ELPA Syncer, 2022/07/19
- [elpa] externals/m-buffer 354e1c6b2a 036/115: Change version suffix to alpha., ELPA Syncer, 2022/07/19
- [elpa] externals/m-buffer dc5f6c4149 038/115: Version 0.4 release., ELPA Syncer, 2022/07/19
- [elpa] externals/m-buffer 72acc99a91 042/115: New function: m-buffer-delete-match, ELPA Syncer, 2022/07/19
- [elpa] externals/m-buffer 2803b1f9b6 048/115: Match functions now accept a :numeric arg.,
ELPA Syncer <=
- [elpa] externals/m-buffer edfa6ef412 062/115: m-buffer-at added., ELPA Syncer, 2022/07/19
- [elpa] externals/m-buffer ce6dfb0023 006/115: Use Emacs var, ELPA Syncer, 2022/07/19
- [elpa] externals/m-buffer 84c7fddd48 008/115: Modifed match-data to use keyword args, except for first two args., ELPA Syncer, 2022/07/19
- [elpa] externals/m-buffer 25995a676e 009/115: README added., ELPA Syncer, 2022/07/19
- [elpa] externals/m-buffer 22760408a5 013/115: Updated normalize tests to cope with extra widen argument., ELPA Syncer, 2022/07/19
- [elpa] externals/m-buffer 5c46bf8102 017/115: Added function m-buffer-on-region -- apply a function to a region., ELPA Syncer, 2022/07/19
- [elpa] externals/m-buffer 8210f4147d 004/115: Move dev to test., ELPA Syncer, 2022/07/19
- [elpa] externals/m-buffer 650235fbdb 011/115: Build URL update., ELPA Syncer, 2022/07/19
- [elpa] externals/m-buffer 22d6b0d640 012/115: Beginning has become begin. Widen option added. New line matching functions., ELPA Syncer, 2022/07/19
- [elpa] externals/m-buffer c65b7b20c0 014/115: match-data-1 was failing on final match due to off-by-one error., ELPA Syncer, 2022/07/19