[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#24914: 24.5; isearch-regexp: wrong error message
From: |
Noam Postavsky |
Subject: |
bug#24914: 24.5; isearch-regexp: wrong error message |
Date: |
Mon, 04 Dec 2017 01:27:27 -0500 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/26.0.90 (gnu/linux) |
Drew Adams <drew.adams@oracle.com> writes:
>> It's not a limit in Lisp, but in regex.c.
>
> We can't use something larger there?
Hmm, right, actually I see in regex.h:
/* If sizeof(int) == 2, then ((1 << 15) - 1) overflows. */
#define RE_DUP_MAX (0x7fff)
Does Emacs even support 16 bit platforms?
>> >> As to the error message itself, there isn't really a way
>> >> to distinguish between incomplete and invalid input,
>> >
>> > We do that in some places in the code.
>>
>> What places are those?
>
> In the Lisp code, at least, there are a few places where
> we provide an error that is specific to an invalid regexp.
> Search for handling of standard error `invalid-regexp',
> for instance.
As far as I can tell, none of those places (apart from isearch.el, the
subject of this bug) try to flag "incomplete" regexps, only invalid or
valid.
>> > Some code parses the regexp, and that code must know (or be able to
>> > know) both that the regexp is not incomplete
>>
>> What does it mean for a regexp to be incomplete or not? As far as I can
>> tell, the only distinction is that the user means to type more; but the
>> code doesn't know what will happen in the future...
>
> Presumably that term is used only for cases where we can
> be sure that in order for the regexp to be valid there
> would need to be further input. `foo' is not incomplete,
> whether or not the user "means to type more". `[^' is
> incomplete, because it can be made valid only by typing
> more.
Is `\\{100,20\\}' incomplete? Because it could be made valid by the user
adding a 0 after the 20 to become '\\{100,200\\}'.
Actually, I'm wondering what's the point of isearch showing "incomplete"
instead of the actual regexp invalid error. I.e., why not instead of
\ [incomplete]
\{ [incomplete]
\{4 [incomplete]
\{4000 [incomplete]
\{4000\ [incomplete]
\{4000\}
show this:
\ [Trailing backslash]
\{ [Unmatched \{]
\{4 [Unmatched \{]
\{4000 [Unmatched \{]
\{4000\ [Trailing backslash]
\{4000\}
- bug#24914: 24.5; isearch-regexp: wrong error message, Noam Postavsky, 2017/12/03
- bug#24914: 24.5; isearch-regexp: wrong error message, Drew Adams, 2017/12/03
- bug#24914: 24.5; isearch-regexp: wrong error message, Noam Postavsky, 2017/12/03
- bug#24914: 24.5; isearch-regexp: wrong error message, Drew Adams, 2017/12/03
- bug#24914: 24.5; isearch-regexp: wrong error message,
Noam Postavsky <=
- bug#24914: 24.5; isearch-regexp: wrong error message, Drew Adams, 2017/12/04
- bug#24914: 24.5; isearch-regexp: wrong error message, Noam Postavsky, 2017/12/04
- bug#24914: 24.5; isearch-regexp: wrong error message, Drew Adams, 2017/12/04
- bug#24914: 24.5; isearch-regexp: wrong error message, Noam Postavsky, 2017/12/04
- bug#24914: 24.5; isearch-regexp: wrong error message, Drew Adams, 2017/12/04
- bug#24914: 24.5; isearch-regexp: wrong error message, Noam Postavsky, 2017/12/05
- bug#24914: 24.5; isearch-regexp: wrong error message, Drew Adams, 2017/12/05
- bug#24914: 24.5; isearch-regexp: wrong error message, Noam Postavsky, 2017/12/05
- bug#24914: 24.5; isearch-regexp: wrong error message, Eli Zaretskii, 2017/12/08
- bug#24914: 24.5; isearch-regexp: wrong error message, Noam Postavsky, 2017/12/08