Does libtool need to escape plus signs in egrep expressions?
While looking though ltmain source code i've stumbled upon this egrep invocation: $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$' I've tried to see how it behaves on some import libraries that i have, and it turned out that i could never get it to detect the iname lines, unless i escape the plus sign. Are you sure this actually works? Note that the function that does this is only used in rather exotic corner-cases (old dlltool and/or ms dumpbin being in use), so it's plausible that it could have been broken since 2010, when it was added. signature.asc Description: OpenPGP digital signature ___ https://lists.gnu.org/mailman/listinfo/libtool
Re: Does libtool need to escape plus signs in egrep expressions?
Hello, LRN wrote: While looking though ltmain source code i've stumbled upon this egrep invocation: $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$' I've tried to see how it behaves on some import libraries that i have, and it turned out that i could never get it to detect the iname lines, unless i escape the plus sign. May be I misunderstand issue. $ echo ' _head_ABC_a' | egrep ' _head_[A-Za-z0-9_]+_[ad]l*$' _head_ABC_a $ echo ' _head_ABC_al' | egrep ' _head_[A-Za-z0-9_]+_[ad]l*$' _head_ABC_al but: $ echo ' _head__al' | egrep ' _head_[A-Za-z0-9_]+_[ad]l*$' $ echo ' __head_ABC_al' | egrep ' _head_[A-Za-z0-9_]+_[ad]l*$' $ echo ' _head_ABC_zl' | egrep ' _head_[A-Za-z0-9_]+_[ad]l*$' Are you sure this actually works? I'm not expert in regular expressions but according above tests "plus" in RE works - see case _head__al . Note that the function that does this is only used in rather exotic corner-cases (old dlltool and/or ms dumpbin being in use), so it's plausible that it could have been broken since 2010, when it was added. Regards, Roumen Petrov ___ https://lists.gnu.org/mailman/listinfo/libtool
Re: Does libtool need to escape plus signs in egrep expressions?
On Thu, 28 Jun 2018, Roumen Petrov wrote: May be I misunderstand issue. $ echo ' _head_ABC_a' | egrep ' _head_[A-Za-z0-9_]+_[ad]l*$' _head_ABC_a $ echo ' _head_ABC_al' | egrep ' _head_[A-Za-z0-9_]+_[ad]l*$' _head_ABC_al but: $ echo ' _head__al' | egrep ' _head_[A-Za-z0-9_]+_[ad]l*$' $ echo ' __head_ABC_al' | egrep ' _head_[A-Za-z0-9_]+_[ad]l*$' $ echo ' _head_ABC_zl' | egrep ' _head_[A-Za-z0-9_]+_[ad]l*$' Are you sure this actually works? I'm not expert in regular expressions but according above tests "plus" in RE works - see case _head__al . It should match a run of alpha-numeric characters including underscores. However, I do see that the expression includes a match of literal underscore and then there is a literal underscore so there might be something going on with that. Greedy matching would likely absorb a final underscore so it might not be possible to match on that final literal underscore. This might expose differences in behaviors between egreps. Bob -- Bob Friesenhahn bfrie...@simple.dallas.tx.us, http://www.simplesystems.org/users/bfriesen/ GraphicsMagick Maintainer,http://www.GraphicsMagick.org/___ https://lists.gnu.org/mailman/listinfo/libtool