diff options
| author | Mattias EngdegÄrd | 2019-05-20 17:38:03 +0200 |
|---|---|---|
| committer | Mattias EngdegÄrd | 2019-05-20 17:38:03 +0200 |
| commit | c2cda3ff4025e8c27bdfc2a5279f3b635c8df260 (patch) | |
| tree | 20d58564a6aa5dcbd6fc1c9fd94e95738dceeeb7 /lisp | |
| parent | d3a0ddedba53b9e2c99274c8ec125d53f991da5d (diff) | |
| download | emacs-c2cda3ff4025e8c27bdfc2a5279f3b635c8df260.tar.gz emacs-c2cda3ff4025e8c27bdfc2a5279f3b635c8df260.zip | |
Revert "Allow zero-argument rx `or' and `seq' forms"
This reverts commit b552fc05c231ca6800330a318d3a74ddd0f5a13c.
It caused a bootstrapping failure which I have yet to resolve - sorry.
Diffstat (limited to 'lisp')
| -rw-r--r-- | lisp/emacs-lisp/rx.el | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/lisp/emacs-lisp/rx.el b/lisp/emacs-lisp/rx.el index 9478bd3bbdb..9d9028d87d5 100644 --- a/lisp/emacs-lisp/rx.el +++ b/lisp/emacs-lisp/rx.el | |||
| @@ -110,11 +110,11 @@ | |||
| 110 | ;; FIXME: support macros. | 110 | ;; FIXME: support macros. |
| 111 | 111 | ||
| 112 | (defvar rx-constituents ;Not `const' because some modes extend it. | 112 | (defvar rx-constituents ;Not `const' because some modes extend it. |
| 113 | '((and . (rx-and 0 nil)) | 113 | '((and . (rx-and 1 nil)) |
| 114 | (seq . and) ; SRE | 114 | (seq . and) ; SRE |
| 115 | (: . and) ; SRE | 115 | (: . and) ; SRE |
| 116 | (sequence . and) ; sregex | 116 | (sequence . and) ; sregex |
| 117 | (or . (rx-or 0 nil)) | 117 | (or . (rx-or 1 nil)) |
| 118 | (| . or) ; SRE | 118 | (| . or) ; SRE |
| 119 | (not-newline . ".") | 119 | (not-newline . ".") |
| 120 | (nonl . not-newline) ; SRE | 120 | (nonl . not-newline) ; SRE |
| @@ -390,11 +390,9 @@ FORM is of the form `(and FORM1 ...)'." | |||
| 390 | "Parse and produce code from FORM, which is `(or FORM1 ...)'." | 390 | "Parse and produce code from FORM, which is `(or FORM1 ...)'." |
| 391 | (rx-check form) | 391 | (rx-check form) |
| 392 | (rx-group-if | 392 | (rx-group-if |
| 393 | (cond | 393 | (if (memq nil (mapcar 'stringp (cdr form))) |
| 394 | ((null (cdr form)) regexp-unmatchable) | 394 | (mapconcat (lambda (x) (rx-form x '|)) (cdr form) "\\|") |
| 395 | ((cl-every #'stringp (cdr form)) | ||
| 396 | (regexp-opt (cdr form) nil t)) | 395 | (regexp-opt (cdr form) nil t)) |
| 397 | (t (mapconcat (lambda (x) (rx-form x '|)) (cdr form) "\\|"))) | ||
| 398 | (and (memq rx-parent '(: * t)) rx-parent))) | 396 | (and (memq rx-parent '(: * t)) rx-parent))) |
| 399 | 397 | ||
| 400 | 398 | ||
| @@ -1123,7 +1121,6 @@ CHAR | |||
| 1123 | `(seq SEXP1 SEXP2 ...)' | 1121 | `(seq SEXP1 SEXP2 ...)' |
| 1124 | `(sequence SEXP1 SEXP2 ...)' | 1122 | `(sequence SEXP1 SEXP2 ...)' |
| 1125 | matches what SEXP1 matches, followed by what SEXP2 matches, etc. | 1123 | matches what SEXP1 matches, followed by what SEXP2 matches, etc. |
| 1126 | Without arguments, matches the empty string. | ||
| 1127 | 1124 | ||
| 1128 | `(submatch SEXP1 SEXP2 ...)' | 1125 | `(submatch SEXP1 SEXP2 ...)' |
| 1129 | `(group SEXP1 SEXP2 ...)' | 1126 | `(group SEXP1 SEXP2 ...)' |
| @@ -1139,7 +1136,7 @@ CHAR | |||
| 1139 | `(| SEXP1 SEXP2 ...)' | 1136 | `(| SEXP1 SEXP2 ...)' |
| 1140 | matches anything that matches SEXP1 or SEXP2, etc. If all | 1137 | matches anything that matches SEXP1 or SEXP2, etc. If all |
| 1141 | args are strings, use `regexp-opt' to optimize the resulting | 1138 | args are strings, use `regexp-opt' to optimize the resulting |
| 1142 | regular expression. Without arguments, never matches anything. | 1139 | regular expression. |
| 1143 | 1140 | ||
| 1144 | `(minimal-match SEXP)' | 1141 | `(minimal-match SEXP)' |
| 1145 | produce a non-greedy regexp for SEXP. Normally, regexps matching | 1142 | produce a non-greedy regexp for SEXP. Normally, regexps matching |