From b552fc05c231ca6800330a318d3a74ddd0f5a13c Mon Sep 17 00:00:00 2001 From: Mattias EngdegÄrd Date: Wed, 15 May 2019 22:44:00 +0200 Subject: Allow zero-argument rx `or' and `seq' forms Make the rx `or' and `seq' forms accept zero arguments to produce a never-matching regexp and an empty string, respectively. * lisp/emacs-lisp/rx.el (rx-constituents, rx-or): Permit zero args. (rx): Amend doc string for `or' and `seq'. * test/lisp/emacs-lisp/rx-tests.el (rx-or, rx-seq): Test the change. * etc/NEWS (Changes in Specialized Modes and Packages): Mention the change. --- test/lisp/emacs-lisp/rx-tests.el | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'test/lisp/emacs-lisp/rx-tests.el') diff --git a/test/lisp/emacs-lisp/rx-tests.el b/test/lisp/emacs-lisp/rx-tests.el index 4a5919edf02..6f392d616d1 100644 --- a/test/lisp/emacs-lisp/rx-tests.el +++ b/test/lisp/emacs-lisp/rx-tests.el @@ -107,7 +107,13 @@ "ab")) (should (equal (and (string-match (rx (or "a" "ab" "abc")) s) (match-string 0 s)) - "a")))) + "a"))) + ;; Test zero-argument `or'. + (should (equal (rx (or)) regexp-unmatchable))) + +(ert-deftest rx-seq () + ;; Test zero-argument `seq'. + (should (equal (rx (seq)) ""))) (provide 'rx-tests) ;; rx-tests.el ends here. -- cgit v1.2.3