On Sunday, 2017-03-19 13:44:30 +0000, Jan Beich wrote:
> Vinson Lee <v...@freedesktop.org> writes:
> 
> > -        -e 's/[[[:space:]]]+-DNDEBUG\>//g' \
> > -        -e 's/[[[:space:]]]+-D_GNU_SOURCE\>//g' \
> > -        -e 's/[[[:space:]]]+-pedantic\>//g' \
> > +        -e 's/[[[:space:]]]+-DNDEBUG[[[:space:]]]//g' \
> > +        -e 's/[[[:space:]]]+-D_GNU_SOURCE[[[:space:]]]//g' \
> > +        -e 's/[[[:space:]]]+-pedantic[[[:space:]]]//g' \
> 
> If you always expect whitespace on both sides but trim it the RE
> may not match with more than one occurence in sequence e.g.,
> 
>  $ echo ' -D_GNU_SOURCE -DNDEBUG ' |
>    sed -E -e 's/[[:space:]]+-DNDEBUG[[:space:]]//g' \
>           -e 's/[[:space:]]+-D_GNU_SOURCE[[:space:]]//g'
>    -D_GNU_SOURCE
> 
> vs. (restore some whitespace)
> 
>   $ echo ' -D_GNU_SOURCE -DNDEBUG ' |
>     sed -E -e 's/[[:space:]]+-DNDEBUG[[:space:]]/ /g' \
>            -e 's/[[:space:]]+-D_GNU_SOURCE[[:space:]]/ /g'
> 

Oh yes, very good point there!
My r-b now stands with this fix applied :)

This will lead to a bunch of unnecessary whitespace in the middle, but
I'm not sure I'd recommend addressing this:
A simple 's/[[[:space:]]]+/ /g' at the end should trivially fix this,
but I'm not sure we can rely on multi-spaces being always no-ops. One
example that comes to mind (but I have no idea where this would be used)
is to have something like `-DFOO="^I "` (ie. the tab and the space chars)
in a string passed in a parameter.

Too easy to break. Too hard to get right. Hard to notice when it breaks
far away (code-wise). Just don't try :)

Cheers,
  Eric
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to