Hello,
On Wed, May 25, 2005 at 11:38:43AM -0700, Paul Eggert wrote:
> > awk '/^ \t*case/,/^ \t*esac/{if(/\[\^.*\)/) exit(1)}'
>
> That code looks incorrect. " \t*" should be "[ \t]*", surely.
yes, ithat was my mistake, sorry.
> It's better to remove the test for now.
I agree. When I thoought about the test, I wasn't able to invent somethig
usable. As you pointed out, my test
/^[ \t]*case/,/^[ \t]*esac/{if(/\[\^.*\)/) exit(1)}
will probably have many false positives.
The previous test,
grep '\@<:@\^.*).*;;'
was very weak; it needed the pattern and ;; on the same line. Yet it
also had a false positive; that was what brought my attention here.
(Yes, the workaround is to put ;; on a separate line, but this is ugly.)
So I conclude there is no good solution now and it's best to let it be.
Thank you, Paul, for fixing it.
(If we had a shell which is able to complain when it sees [^..], that
would be the real fix!)
Have a nice day,
Stepan Kasal