diff options
| -rw-r--r-- | lisp/emacs-lisp/regexp-opt.el | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/lisp/emacs-lisp/regexp-opt.el b/lisp/emacs-lisp/regexp-opt.el index de36f1d5446..e849cd60b96 100644 --- a/lisp/emacs-lisp/regexp-opt.el +++ b/lisp/emacs-lisp/regexp-opt.el | |||
| @@ -205,7 +205,10 @@ so we can use character sets rather than grouping parenthesis." | |||
| 205 | (if (> (length xiffus) 0) | 205 | (if (> (length xiffus) 0) |
| 206 | ;; common suffix: take it and recurse on the prefixes. | 206 | ;; common suffix: take it and recurse on the prefixes. |
| 207 | (let* ((n (- (length xiffus))) | 207 | (let* ((n (- (length xiffus))) |
| 208 | (prefixes (mapcar (lambda (s) (substring s 0 n)) strings))) | 208 | (prefixes |
| 209 | ;; Sorting is necessary in cases such as ("ad" "d"). | ||
| 210 | (sort (mapcar (lambda (s) (substring s 0 n)) strings) | ||
| 211 | 'string-lessp))) | ||
| 209 | (concat open-group | 212 | (concat open-group |
| 210 | (regexp-opt-group prefixes t t) | 213 | (regexp-opt-group prefixes t t) |
| 211 | (regexp-quote | 214 | (regexp-quote |