* bug#20307: 25.0.50; (regexp-opt nil ...) returns "" @ 2015-04-12 9:50 David Kastrup 2015-04-12 12:09 ` Stefan Monnier ` (2 more replies) 0 siblings, 3 replies; 13+ messages in thread From: David Kastrup @ 2015-04-12 9:50 UTC (permalink / raw) To: 20307 Both M-: (regexp-opt nil) RET and M-: (regexp-opt nil t) RET return "". However, they should return a regexp matching _nothing_ rather than everything, and the second invocation should also count as one \(\) pairing. So something like "[b-a]" and "\([b-a]\)" or "[^[:unibyte:][:multibyte:]]" or something similarly contorted. In GNU Emacs 25.0.50.1 (i686-pc-linux-gnu, GTK+ Version 3.12.2) of 2015-03-04 on lola Repository revision: ca2b0e220ee6b2cab538e84703559696ce477e71 Windowing system distributor `The X.Org Foundation', version 11.0.11600000 System Description: Ubuntu 14.10 Configured using: `configure --without-toolkit-scroll-bars' Configured features: XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK SOUND GPM DBUS GCONF GSETTINGS NOTIFY LIBSELINUX GNUTLS LIBXML2 FREETYPE M17N_FLT LIBOTF XFT ZLIB Important settings: value of $LC_MONETARY: en_US.UTF-8 value of $LC_NUMERIC: en_US.UTF-8 value of $LC_TIME: en_US.UTF-8 value of $LANG: en_US.UTF-8 value of $XMODIFIERS: @im=ibus locale-coding-system: utf-8-unix Major mode: Group Minor modes in effect: gnus-undo-mode: t diff-auto-refine-mode: t TeX-PDF-mode: t desktop-save-mode: t minibuffer-electric-default-mode: t tooltip-mode: t global-eldoc-mode: t electric-indent-mode: t mouse-wheel-mode: t menu-bar-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t blink-cursor-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t buffer-read-only: t line-number-mode: t Recent messages: nnml: Reading incoming mail (no new mail)...done Reading active file from private via nnml...done Reading active file from archive via nnfolder...done Reading active file via nndraft...done Reading active file from /home/dak3/Mail/family via nndir...done Checking new news...done Opening nnml server on private...done Expiring articles...done "" [2 times] Auto-saving... Quit Load-path shadows: None found. Features: (shadow nnir emacsbug sendmail mule-util sort smiley gnus-cite flow-fill mm-archive mail-extr gnus-bcklg gnus-kill gnus-async qp gnus-ml disp-table pop3 nndir nndraft nnmh gnutls network-stream nsm auth-source cl-macs eieio gv eieio-core cl-generic pcase starttls nnml nnfolder nnnil gnus-agent gnus-srvr gnus-score score-mode nnvirtual gnus-msg gnus-art mm-uu mml2015 mm-view mml-smime smime password-cache dig mailcap nntp gnus-cache gnus-sum gnus-group gnus-undo gnus-start gnus-cloud nnimap nnmail mail-source tls utf7 netrc nnoo parse-time gnus-spec gnus-int gnus-range gnus-win warnings help-mode debug tar-mode message format-spec rfc822 mml mml-sec mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045 ietf-drums mailabbrev gmm-utils mailheader sh-script smie executable make-mode smerge-mode nxml-uchnm rng-xsd xsd-regexp rng-cmpct rng-nxml rng-valid rng-loc rng-uri rng-parse nxml-parse rng-match rng-dt rng-util rng-pttrn nxml-ns nxml-mode nxml-outln nxml-rap nxml-util nxml-glyph nxml-enc xmltok python json autorevert filenotify add-log tex-info texinfo latexenc jka-compr preview prv-emacs tex-bar toolbar-x noutline outline latex edmacro kmacro tex-style reftex-dcr reftex-auc reftex reftex-vars dired-x dired scheme vc vc-dispatcher vc-git diff-mode easy-mmode lilypond-mode compile comint ansi-color ring font-latex byte-opt bytecomp byte-compile cl-extra seq cconv plain-tex tex-buf tex dbus xml crm cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs info easymenu package epg-config advice desktop frameset minibuf-eldef gnus gnus-ems nnheader gnus-util mail-utils mm-util help-fns mail-prsvr wid-edit cl-loaddefs cl-lib cus-start cus-load preview-latex tex-site auto-loads server time-date tooltip eldoc electric uniquify ediff-hook vc-hooks lisp-float-type mwheel x-win x-dnd tool-bar dnd fontset image regexp-opt fringe tabulated-list newcomment elisp-mode lisp-mode prog-mode register page menu-bar rfn-eshadow timer select scroll-bar mouse jit-lock font-lock syntax facemenu font-core frame cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese case-table epa-hook jka-cmpr-hook help simple abbrev minibuffer cl-preloaded nadvice loaddefs button faces cus-face macroexp files text-properties overlay sha1 md5 base64 format env code-pages mule custom widget hashtable-print-readable backquote make-network-process dbusbind gfilenotify dynamic-setting system-font-setting font-render-setting move-toolbar gtk x-toolkit x multi-tty emacs) Memory information: ((conses 8 624077 47421) (symbols 24 53351 145) (miscs 20 1251 1014) (strings 16 106692 17355) (string-bytes 1 3514198) (vectors 8 38616) (vector-slots 4 967485 13436) (floats 8 355 575) (intervals 28 23406 1055) (buffers 520 305) (heap 1024 69082 6867)) -- David Kastrup ^ permalink raw reply [flat|nested] 13+ messages in thread
* bug#20307: 25.0.50; (regexp-opt nil ...) returns "" 2015-04-12 9:50 bug#20307: 25.0.50; (regexp-opt nil ...) returns "" David Kastrup @ 2015-04-12 12:09 ` Stefan Monnier 2015-04-13 14:08 ` Artur Malabarba 2019-02-25 14:57 ` bug#20307: [PATCH] make regexp-opt return a no-match return value with empty input Mattias Engdegård 2 siblings, 0 replies; 13+ messages in thread From: Stefan Monnier @ 2015-04-12 12:09 UTC (permalink / raw) To: David Kastrup; +Cc: 20307 > So something like "[b-a]" and "\([b-a]\)" or > "[^[:unibyte:][:multibyte:]]" or something similarly contorted. I can't remember which regexp I used last time I needed one like that, but something like "\\`\\'a" has the advantage of being efficient (the \` anchor at the start is detected by Emacs and prevents looking for a match over the whole searched area). Stefan ^ permalink raw reply [flat|nested] 13+ messages in thread
* bug#20307: 25.0.50; (regexp-opt nil ...) returns "" 2015-04-12 9:50 bug#20307: 25.0.50; (regexp-opt nil ...) returns "" David Kastrup 2015-04-12 12:09 ` Stefan Monnier @ 2015-04-13 14:08 ` Artur Malabarba 2015-04-13 15:19 ` Stefan Monnier 2015-04-13 15:34 ` David Kastrup 2019-02-25 14:57 ` bug#20307: [PATCH] make regexp-opt return a no-match return value with empty input Mattias Engdegård 2 siblings, 2 replies; 13+ messages in thread From: Artur Malabarba @ 2015-04-13 14:08 UTC (permalink / raw) To: David Kastrup; +Cc: 20307 2015-04-12 10:50 GMT+01:00 David Kastrup > Both > > M-: (regexp-opt nil) RET > > and > > M-: (regexp-opt nil t) RET > > return "". However, they should return a regexp matching nothing > rather than everything, and the second invocation should also count as > one () pairing. I agree there should be () on the second one, but I strongly disagree they should match nothing. regexp-opt is NOT meant to match only the given strings. It is meant to match anything containing the given strings. There is a very fundamental difference in that. The less strings you pass to regexp-opt, the MORE things the regexp will match. Why would we suddently flip that on its head when going from 1 to 0 strings? ^ permalink raw reply [flat|nested] 13+ messages in thread
* bug#20307: 25.0.50; (regexp-opt nil ...) returns "" 2015-04-13 14:08 ` Artur Malabarba @ 2015-04-13 15:19 ` Stefan Monnier 2015-04-13 15:34 ` David Kastrup 1 sibling, 0 replies; 13+ messages in thread From: Stefan Monnier @ 2015-04-13 15:19 UTC (permalink / raw) To: Artur Malabarba; +Cc: 20307, David Kastrup > The less strings you pass to regexp-opt, the MORE things the regexp > will match. Hmm... I don't think so. Stefan ^ permalink raw reply [flat|nested] 13+ messages in thread
* bug#20307: 25.0.50; (regexp-opt nil ...) returns "" 2015-04-13 14:08 ` Artur Malabarba 2015-04-13 15:19 ` Stefan Monnier @ 2015-04-13 15:34 ` David Kastrup 2015-04-13 15:59 ` Artur Malabarba 1 sibling, 1 reply; 13+ messages in thread From: David Kastrup @ 2015-04-13 15:34 UTC (permalink / raw) To: Artur Malabarba; +Cc: 20307 Artur Malabarba <bruce.connor.am@gmail.com> writes: > 2015-04-12 10:50 GMT+01:00 David Kastrup >> Both >> >> M-: (regexp-opt nil) RET >> >> and >> >> M-: (regexp-opt nil t) RET >> >> return "". However, they should return a regexp matching nothing >> rather than everything, and the second invocation should also count as >> one () pairing. > > I agree there should be () on the second one, but I strongly disagree > they should match nothing. > > regexp-opt is NOT meant to match only the given strings. It is meant > to match anything containing the given strings. Well, and no string to match has been given. This is not (regexp-opt '("")) but rather (regexp-opt '()) > There is a very fundamental difference in that. The less strings you > pass to regexp-opt, the MORE things the regexp will match. Come again? > Why would we suddently flip that on its head when going from 1 to 0 > strings? (regexp-opt '("a" "b" "c")) -> "[abc]" (regexp-opt '("a" "b")) -> "[ab]" Quite literally (execute C-x C-e after the expressions above if you don't believe me). So how does "[ab]" match more than "[abc]" ? -- David Kastrup ^ permalink raw reply [flat|nested] 13+ messages in thread
* bug#20307: 25.0.50; (regexp-opt nil ...) returns "" 2015-04-13 15:34 ` David Kastrup @ 2015-04-13 15:59 ` Artur Malabarba 0 siblings, 0 replies; 13+ messages in thread From: Artur Malabarba @ 2015-04-13 15:59 UTC (permalink / raw) To: David Kastrup; +Cc: 20307 [-- Attachment #1: Type: text/plain, Size: 1362 bytes --] I believe you. Please ignore this babbling baboon. That's what I get for typing on the bus. On Apr 13, 2015 4:34 PM, "David Kastrup" <dak@gnu.org> wrote: > Artur Malabarba <bruce.connor.am@gmail.com> writes: > > > 2015-04-12 10:50 GMT+01:00 David Kastrup > >> Both > >> > >> M-: (regexp-opt nil) RET > >> > >> and > >> > >> M-: (regexp-opt nil t) RET > >> > >> return "". However, they should return a regexp matching nothing > >> rather than everything, and the second invocation should also count as > >> one () pairing. > > > > I agree there should be () on the second one, but I strongly disagree > > they should match nothing. > > > > regexp-opt is NOT meant to match only the given strings. It is meant > > to match anything containing the given strings. > > Well, and no string to match has been given. This is not > (regexp-opt '("")) > but rather > (regexp-opt '()) > > > There is a very fundamental difference in that. The less strings you > > pass to regexp-opt, the MORE things the regexp will match. > > Come again? > > > Why would we suddently flip that on its head when going from 1 to 0 > > strings? > > (regexp-opt '("a" "b" "c")) -> "[abc]" > (regexp-opt '("a" "b")) -> "[ab]" > > Quite literally (execute C-x C-e after the expressions above if you > don't believe me). So how does "[ab]" match more than "[abc]" ? > > -- > David Kastrup > [-- Attachment #2: Type: text/html, Size: 2030 bytes --] ^ permalink raw reply [flat|nested] 13+ messages in thread
* bug#20307: [PATCH] make regexp-opt return a no-match return value with empty input 2015-04-12 9:50 bug#20307: 25.0.50; (regexp-opt nil ...) returns "" David Kastrup 2015-04-12 12:09 ` Stefan Monnier 2015-04-13 14:08 ` Artur Malabarba @ 2019-02-25 14:57 ` Mattias Engdegård 2019-03-02 12:37 ` Eli Zaretskii 2 siblings, 1 reply; 13+ messages in thread From: Mattias Engdegård @ 2019-02-25 14:57 UTC (permalink / raw) To: 20307 [-- Attachment #1: Type: text/plain, Size: 76 bytes --] Here is a patch (moved from Bug#34641 where it was independently reported). [-- Attachment #2: 0001-Correct-regexp-opt-return-value-for-empty-string-lis.patch --] [-- Type: application/octet-stream, Size: 3955 bytes --] From 8efe696f635c948496e3bcfe1e69e902264b957c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mattias=20Engdeg=C3=A5rd?= <mattiase@acm.org> Date: Mon, 25 Feb 2019 15:22:02 +0100 Subject: [PATCH] Correct regexp-opt return value for empty string list When regexp-opt is called with an empty list of strings, return a regexp that doesn't match anything instead of the empty string (Bug#20307). * doc/lispref/searching.texi (Regular Expression Functions): * etc/NEWS: Document the new behaviour. * lisp/emacs-lisp/regexp-opt.el (regexp-opt): Return a never-match regexp for empty inputs. --- doc/lispref/searching.texi | 3 +++ etc/NEWS | 6 ++++++ lisp/emacs-lisp/regexp-opt.el | 23 +++++++++++++++-------- 3 files changed, 24 insertions(+), 8 deletions(-) diff --git a/doc/lispref/searching.texi b/doc/lispref/searching.texi index 73a7304a3b..0b944a2711 100644 --- a/doc/lispref/searching.texi +++ b/doc/lispref/searching.texi @@ -960,6 +960,9 @@ possible. A hand-tuned regular expression can sometimes be slightly more efficient, but is almost never worth the effort.}. @c E.g., see https://debbugs.gnu.org/2816 +If @var{strings} is empty, the return value is a regexp that never +matches anything. + The optional argument @var{paren} can be any of the following: @table @asis diff --git a/etc/NEWS b/etc/NEWS index 5f7616429b..6506a1c6b5 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -1624,6 +1624,12 @@ in any order. If the new third argument is non-nil, the match is guaranteed to be performed in the order given, as if the strings were made into a regexp by joining them with '\|'. ++++ +** The function 'regexp-opt', when given an empty list of strings, now +returns a regexp that never matches anything, which is an identity for +this operation. Previously, the empty string was returned in this +case. + \f * Changes in Emacs 27.1 on Non-Free Operating Systems diff --git a/lisp/emacs-lisp/regexp-opt.el b/lisp/emacs-lisp/regexp-opt.el index 33a5b770a0..107b453637 100644 --- a/lisp/emacs-lisp/regexp-opt.el +++ b/lisp/emacs-lisp/regexp-opt.el @@ -90,6 +90,9 @@ Each string should be unique in STRINGS and should not contain any regexps, quoted or not. Optional PAREN specifies how the returned regexp is surrounded by grouping constructs. +If STRINGS is empty, the return value is a regexp that never +matches anything. + The optional argument PAREN can be any of the following: a string @@ -139,14 +142,18 @@ usually more efficient than that of a simplified version: (sorted-strings (delete-dups (sort (copy-sequence strings) 'string-lessp))) (re - ;; If NOREORDER is non-nil and the list contains a prefix - ;; of another string, we give up all attempts at optimisation. - ;; There is plenty of room for improvement (Bug#34641). - (if (and noreorder (regexp-opt--contains-prefix sorted-strings)) - (concat (or open "\\(?:") - (mapconcat #'regexp-quote strings "\\|") - "\\)") - (regexp-opt-group sorted-strings (or open t) (not open))))) + (cond + ;; No strings: return a\` which cannot match anything. + ((null strings) + (concat (or open "\\(?:") "a\\`\\)")) + ;; If we cannot reorder, give up all attempts at + ;; optimisation. There is room for improvement (Bug#34641). + ((and noreorder (regexp-opt--contains-prefix sorted-strings)) + (concat (or open "\\(?:") + (mapconcat #'regexp-quote strings "\\|") + "\\)")) + (t + (regexp-opt-group sorted-strings (or open t) (not open)))))) (cond ((eq paren 'words) (concat "\\<" re "\\>")) ((eq paren 'symbols) -- 2.17.2 (Apple Git-113) ^ permalink raw reply related [flat|nested] 13+ messages in thread
* bug#20307: [PATCH] make regexp-opt return a no-match return value with empty input 2019-02-25 14:57 ` bug#20307: [PATCH] make regexp-opt return a no-match return value with empty input Mattias Engdegård @ 2019-03-02 12:37 ` Eli Zaretskii 2019-03-02 14:21 ` Mattias Engdegård 0 siblings, 1 reply; 13+ messages in thread From: Eli Zaretskii @ 2019-03-02 12:37 UTC (permalink / raw) To: Mattias Engdegård; +Cc: 20307 > From: Mattias Engdegård <mattiase@acm.org> > Date: Mon, 25 Feb 2019 15:57:44 +0100 > > +If STRINGS is empty, the return value is a regexp that never > +matches anything. This says "empty", but the actual test will catch nil as well as an empty list. Should we perhaps mention that? Thanks. ^ permalink raw reply [flat|nested] 13+ messages in thread
* bug#20307: [PATCH] make regexp-opt return a no-match return value with empty input 2019-03-02 12:37 ` Eli Zaretskii @ 2019-03-02 14:21 ` Mattias Engdegård 2019-03-02 14:41 ` Eli Zaretskii 0 siblings, 1 reply; 13+ messages in thread From: Mattias Engdegård @ 2019-03-02 14:21 UTC (permalink / raw) To: Eli Zaretskii; +Cc: 20307 2 mars 2019 kl. 13.37 skrev Eli Zaretskii <eliz@gnu.org>: > >> From: Mattias Engdegård <mattiase@acm.org> >> Date: Mon, 25 Feb 2019 15:57:44 +0100 >> >> +If STRINGS is empty, the return value is a regexp that never >> +matches anything. > > This says "empty", but the actual test will catch nil as well as an > empty list. Should we perhaps mention that? Sorry, I don't understand. Do we in general distinguish nil from the empty list in documentation? Or did you mean that the phrase should be "If STRINGS is the empty list..."? ^ permalink raw reply [flat|nested] 13+ messages in thread
* bug#20307: [PATCH] make regexp-opt return a no-match return value with empty input 2019-03-02 14:21 ` Mattias Engdegård @ 2019-03-02 14:41 ` Eli Zaretskii 2019-03-02 14:49 ` Mattias Engdegård 0 siblings, 1 reply; 13+ messages in thread From: Eli Zaretskii @ 2019-03-02 14:41 UTC (permalink / raw) To: Mattias Engdegård; +Cc: 20307 > From: Mattias Engdegård <mattiase@acm.org> > Date: Sat, 2 Mar 2019 15:21:52 +0100 > Cc: 20307@debbugs.gnu.org > > > This says "empty", but the actual test will catch nil as well as an > > empty list. Should we perhaps mention that? > > Sorry, I don't understand. Do we in general distinguish nil from the empty list in documentation? I don't know. I thought the reader might not be aware of their equivalence, so being explicit would be better. > Or did you mean that the phrase should be "If STRINGS is the empty list..."? Yes, that would take care of the issue. ^ permalink raw reply [flat|nested] 13+ messages in thread
* bug#20307: [PATCH] make regexp-opt return a no-match return value with empty input 2019-03-02 14:41 ` Eli Zaretskii @ 2019-03-02 14:49 ` Mattias Engdegård 2019-03-02 14:57 ` Eli Zaretskii 0 siblings, 1 reply; 13+ messages in thread From: Mattias Engdegård @ 2019-03-02 14:49 UTC (permalink / raw) To: Eli Zaretskii; +Cc: 20307 [-- Attachment #1: Type: text/plain, Size: 436 bytes --] >> Sorry, I don't understand. Do we in general distinguish nil from the empty list in documentation? > > I don't know. I thought the reader might not be aware of their > equivalence, so being explicit would be better. > >> Or did you mean that the phrase should be "If STRINGS is the empty list..."? > > Yes, that would take care of the issue. Now done in the doc string and in searching.texi. New patch attached. [-- Attachment #2: 0001-Correct-regexp-opt-return-value-for-empty-string-lis.patch --] [-- Type: application/octet-stream, Size: 3973 bytes --] From 944a6100d5d2563fdd355f9f91a6190117a79efc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mattias=20Engdeg=C3=A5rd?= <mattiase@acm.org> Date: Mon, 25 Feb 2019 15:22:02 +0100 Subject: [PATCH] Correct regexp-opt return value for empty string list When regexp-opt is called with an empty list of strings, return a regexp that doesn't match anything instead of the empty string (Bug#20307). * doc/lispref/searching.texi (Regular Expression Functions): * etc/NEWS: Document the new behaviour. * lisp/emacs-lisp/regexp-opt.el (regexp-opt): Return a never-match regexp for empty inputs. --- doc/lispref/searching.texi | 3 +++ etc/NEWS | 6 ++++++ lisp/emacs-lisp/regexp-opt.el | 23 +++++++++++++++-------- 3 files changed, 24 insertions(+), 8 deletions(-) diff --git a/doc/lispref/searching.texi b/doc/lispref/searching.texi index fb7f48474d..38e6204055 100644 --- a/doc/lispref/searching.texi +++ b/doc/lispref/searching.texi @@ -960,6 +960,9 @@ possible. A hand-tuned regular expression can sometimes be slightly more efficient, but is almost never worth the effort.}. @c E.g., see https://debbugs.gnu.org/2816 +If @var{strings} is the empty list, the return value is a regexp that +never matches anything. + The optional argument @var{paren} can be any of the following: @table @asis diff --git a/etc/NEWS b/etc/NEWS index 7c95988ff5..65eb9ba1af 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -1649,6 +1649,12 @@ in any order. If the new third argument is non-nil, the match is guaranteed to be performed in the order given, as if the strings were made into a regexp by joining them with '\|'. ++++ +** The function 'regexp-opt', when given an empty list of strings, now +returns a regexp that never matches anything, which is an identity for +this operation. Previously, the empty string was returned in this +case. + \f * Changes in Emacs 27.1 on Non-Free Operating Systems diff --git a/lisp/emacs-lisp/regexp-opt.el b/lisp/emacs-lisp/regexp-opt.el index d0c5f2d3fc..4404b905a6 100644 --- a/lisp/emacs-lisp/regexp-opt.el +++ b/lisp/emacs-lisp/regexp-opt.el @@ -90,6 +90,9 @@ Each string should be unique in STRINGS and should not contain any regexps, quoted or not. Optional PAREN specifies how the returned regexp is surrounded by grouping constructs. +If STRINGS is the empty list, the return value is a regexp that +never matches anything. + The optional argument PAREN can be any of the following: a string @@ -140,14 +143,18 @@ usually more efficient than that of a simplified version: (sorted-strings (delete-dups (sort (copy-sequence strings) 'string-lessp))) (re - ;; If NOREORDER is non-nil and the list contains a prefix - ;; of another string, we give up all attempts at optimisation. - ;; There is plenty of room for improvement (Bug#34641). - (if (and noreorder (regexp-opt--contains-prefix sorted-strings)) - (concat (or open "\\(?:") - (mapconcat #'regexp-quote strings "\\|") - "\\)") - (regexp-opt-group sorted-strings (or open t) (not open))))) + (cond + ;; No strings: return a\` which cannot match anything. + ((null strings) + (concat (or open "\\(?:") "a\\`\\)")) + ;; If we cannot reorder, give up all attempts at + ;; optimisation. There is room for improvement (Bug#34641). + ((and noreorder (regexp-opt--contains-prefix sorted-strings)) + (concat (or open "\\(?:") + (mapconcat #'regexp-quote strings "\\|") + "\\)")) + (t + (regexp-opt-group sorted-strings (or open t) (not open)))))) (cond ((eq paren 'words) (concat "\\<" re "\\>")) ((eq paren 'symbols) -- 2.17.2 (Apple Git-113) ^ permalink raw reply related [flat|nested] 13+ messages in thread
* bug#20307: [PATCH] make regexp-opt return a no-match return value with empty input 2019-03-02 14:49 ` Mattias Engdegård @ 2019-03-02 14:57 ` Eli Zaretskii 2019-03-02 15:24 ` Mattias Engdegård 0 siblings, 1 reply; 13+ messages in thread From: Eli Zaretskii @ 2019-03-02 14:57 UTC (permalink / raw) To: Mattias Engdegård; +Cc: 20307 > From: Mattias Engdegård <mattiase@acm.org> > Date: Sat, 2 Mar 2019 15:49:07 +0100 > Cc: 20307@debbugs.gnu.org > > >> Or did you mean that the phrase should be "If STRINGS is the empty list..."? > > > > Yes, that would take care of the issue. > > Now done in the doc string and in searching.texi. > > New patch attached. Fine with me, thanks. ^ permalink raw reply [flat|nested] 13+ messages in thread
* bug#20307: [PATCH] make regexp-opt return a no-match return value with empty input 2019-03-02 14:57 ` Eli Zaretskii @ 2019-03-02 15:24 ` Mattias Engdegård 0 siblings, 0 replies; 13+ messages in thread From: Mattias Engdegård @ 2019-03-02 15:24 UTC (permalink / raw) To: Eli Zaretskii; +Cc: 20307-done 2 mars 2019 kl. 15.57 skrev Eli Zaretskii <eliz@gnu.org>: >> >> New patch attached. > > Fine with me, thanks. Thank you, pushed. ^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2019-03-02 15:24 UTC | newest] Thread overview: 13+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2015-04-12 9:50 bug#20307: 25.0.50; (regexp-opt nil ...) returns "" David Kastrup 2015-04-12 12:09 ` Stefan Monnier 2015-04-13 14:08 ` Artur Malabarba 2015-04-13 15:19 ` Stefan Monnier 2015-04-13 15:34 ` David Kastrup 2015-04-13 15:59 ` Artur Malabarba 2019-02-25 14:57 ` bug#20307: [PATCH] make regexp-opt return a no-match return value with empty input Mattias Engdegård 2019-03-02 12:37 ` Eli Zaretskii 2019-03-02 14:21 ` Mattias Engdegård 2019-03-02 14:41 ` Eli Zaretskii 2019-03-02 14:49 ` Mattias Engdegård 2019-03-02 14:57 ` Eli Zaretskii 2019-03-02 15:24 ` Mattias Engdegård
Code repositories for project(s) associated with this public inbox https://git.savannah.gnu.org/cgit/emacs.git This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).