bug-gnu-utils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

match() in gawk 3.1.1


From: Ingo Tomahogh-Willms
Subject: match() in gawk 3.1.1
Date: Mon, 3 Nov 2003 22:13:21 +0100

Hello,

in version 3.1.1 of gawk, match() completely stops creating the elements
of its array argument after it has reached a paranthesized subexression
that is optional and not present, even if subsequent paranthesized
subexpressions do exist:

        $ gawk --version
        -| GNU Awk 3.1.1
        -| Copyright (C) 1989, 1991-2002 Free Software Foundation.
        ...

        $  gawk 'BEGIN {match("axyze", /(x)(y)?(z)/, A); print A[0];
if(3 in A)print "YES"; print A[1]","A[2]","A[3]"."}'
        -| xyz
        -| YES
        -| x,y,z.
OK: All 3 subexpressions are present in the string, so A[3] is the
substring matching the 3rd subexpression, "z".

        $ gawk 'BEGIN {match("axze", /(x)(y)?(z)/, A); print A[0]; if(3
in A)print "YES"; print A[1]","A[2]","A[3]"."}'
        -| xz
        -| x,,.
BUG: The 2nd subexpression is not present in the string, but the 3rd
subexpression is. Nevertheless, A[3] does not exist.

I wasn't able to test this with version 3.1.3 yet, so I apologize if
this has been fixed already.

Greetings,
Ingo Tomahogh-Willms
--
Freundliche Grüße,

Ingo Tomahogh-Willms.

<mailto: address@hidden>




reply via email to

[Prev in Thread] Current Thread [Next in Thread]