Thread (16 messages) flat view 16 messages, 3 authors, 2016-06-15

Re: [PATCH v2 1/3] git-submodule: New subcommand 'summary' (1) - code framework

From: Junio C Hamano <hidden>
Date: 2016-06-15 22:44:19

"Ping Yin" [off-list ref] writes:
quoted
 > +             grep '^:160000\|:[0-9]\+ 160000' |

 This looks troublesome.

  - [0-9] is obviously wrong and [0-7] is what you meant;
  - \| and \+ are not BRE but GNU.
man grep says
 In  basic regular expressions the metacharacters ?, +, {, |, (, and )
lose their special meaning; instead use the backslashed versions \?,
\+, \{, \|, \(, and \).

Doen't it mean that '\|' is BRE ?
It just says unlike in ERE, these characters are not special in BRE; it
does not at all say using backslash like \?, \+, and \| makes them so.

And they are not.  \(...\), \{m\}, \{m,\} and \{m,n\} are part of BRE, but
the two you used (\+ and \|) are not.  GNU accept these two as extensions,
but other POSIX implementations may have troubles with them.

  http://www.opengroup.org/onlinepubs/000095399/basedefs/xbd_chap09.html

Please be gentle to porters to non GNU systems.  Either stay inside BRE
(which I think we have managed to do with our usage of grep) or explicitly
ask for ERE with "grep -E".
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help