| > From: Akim Demaille <[EMAIL PROTECTED]>
| > Date: 10 Nov 2000 10:23:25 +0100
| >
| > But our troubles could be worse than this, since `expr' is not used
| > only in AS_DIRNAME.  For instance any CVS configure contains
| > 
| >         ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'`
| 
| Ouch.  Can you rewrite that as follows to work around the bug?
| 
| # Work around the problem that "expr 'a' : 'a\(\)'" outputs "0" in QNX.

Sorry, I did not mean this, and my example was wrong indeed, I meant
this:

| So it is my understanding that
| 
|         ./configure --bindir
I had written `./configure --bindir=' here
| 
| is equivalent to
| 
|         ./configure --bindir=0
| 
| on these systems.

but it appears to have no consequence after all (since the case
handling the options distinguishes --bindir from --bindir=).

I meant that when `:' fails, it returns `0' instead of `', so it is my
understanding of `expr' that using \| '' at the end is enough.  This
fix is probably all we need to fix the affected expr uses.


Still, David, could you confirm that \(\) properly matches the empty
string: running

expr 'a' : 'a\(\)'

should definitely output nothing (and most probably exit 1 :)

Reply via email to