GNU bug report logs - #20657
Traditional range expression not accepted in regex/dfa

Previous Next

Package: grep;

Reported by: arnold <at> skeeve.com

Date: Tue, 26 May 2015 02:43:02 UTC

Severity: wishlist

Done: Paul Eggert <eggert <at> cs.ucla.edu>

Bug is archived. No further changes may be made.

Full log


Message #15 received at 20657-done <at> debbugs.gnu.org (full text, mbox):

From: Paul Eggert <eggert <at> cs.ucla.edu>
To: Arnold Robbins <arnold <at> skeeve.com>
Cc: bug-gnulib <at> gnu.org, 20657-done <at> debbugs.gnu.org, beebe <at> math.utah.edu
Subject: Re: Accepting [xyz---abc] - three minus signs to mean one
Date: Thu, 21 Apr 2022 19:08:55 -0700
[Message part 1 (text/plain, inline)]
On 4/21/22 00:57, Arnold Robbins wrote:

> As far as my testing indicates, dfa.c doesn't need a patch, it seems
> to accept "---" inside brackets for a single minus.

Yes, a brief perusal of the dfa.c source code suggests you're right. 
Thanks for looking into this. I tend to agree with you that POSIX is not 
likely to outlaw this extension.


> If there are no objections, can we get this into Gnulib?

Although the basic idea looks good, I see a few places where the patch 
can be improved.

* The two calls to re_string_peek_byte might go past the end of the 
pattern (a subscript violation). This is possible because the pattern is 
not necessarily null-terminated.

* The two calls to re_string_fetch_byte can be simplified into a single 
call to re_string_skip_bytes.

* No need to assign to token->opr.c, as it already has the correct value.

* Can fall through to the default case to save a bit of duplicate code.

* glibc still uses comments /* like this */ for style reasons, and we 
should stick to that.

I wrote a patch with these improvements in mind and installed it into 
Gnulib (see attached); hope it works for Gawk too.
[0001-regex-match-.-.-like-V7-grep.patch (text/x-patch, attachment)]

This bug report was last modified 3 years and 33 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.