From: Junio C Hamano <gitster@pobox.com>
To: Ben Walton <bdwalton@gmail.com>
Cc: dturner@twopensource.com, git@vger.kernel.org,
Jonathan Nieder <jrnieder@gmail.com>
Subject: Re: [PATCH] Use wc instead of awk to count subtrees in t0090-cache-tree
Date: Mon, 22 Dec 2014 15:34:26 -0800 [thread overview]
Message-ID: <xmqq4msn6yyl.fsf@gitster.dls.corp.google.com> (raw)
In-Reply-To: <xmqqd27b6zd3.fsf@gitster.dls.corp.google.com> (Junio C. Hamano's message of "Mon, 22 Dec 2014 15:25:44 -0800")
Junio C Hamano <gitster@pobox.com> writes:
> From: Ben Walton <bdwalton@gmail.com>
>
> The awk statements previously used in this test weren't compatible
> with the native versions of awk on Solaris:
>
> echo "dir" | /bin/awk -v c=0 '$1 {++c} END {print c}'
> awk: syntax error near line 1
> awk: bailing out near line 1
>
> echo "dir" | /usr/xpg4/bin/awk -v c=0 '$1 {++c} END {print c}'
> 0
>
> And with GNU awk for comparison:
>
> echo "dir" | /opt/csw/gnu/awk -v c=0 '$1 {++c} END {print c}'
> 1
>
> Work it around by using $1 != "" to state more explicitly that we
> are skipping empty lines.
By the way, I was hoping (eh, what kind of hope is that???) that $1
alone is not a kosher POSIX way but a GNUism, but that does not seem
to be the case. POSIX has this [*1*]
When an expression is used in a Boolean context, if it has a
numeric value, a value of zero shall be treated as false and any
other value shall be treated as true. Otherwise, a string value
of the null string shall be treated as false and any other value
shall be treated as true. A Boolean context shall be one of the
following:
and among the "Boolean context" listed is:
* An expression used as a pattern (as in Overall Program Structure)
So the example with /usr/xpg4/bin/awk does not seem to be a
behaviour from a conformant implementationd, and it seems to be
correct to label this as "work it around by ..." (not "avoid using
GNUism").
We learn new things every day (not that I really wanted to learn
glitches in various implementations of awk) ;-).
Thanks.
[Reference]
*1* http://pubs.opengroup.org/onlinepubs/9699919799/utilities/awk.html
prev parent reply other threads:[~2014-12-22 23:34 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-12-22 17:52 [PATCH] Use wc instead of awk to count subtrees in t0090-cache-tree Ben Walton
2014-12-22 21:45 ` Junio C Hamano
2014-12-22 22:02 ` Jonathan Nieder
2014-12-22 22:26 ` Junio C Hamano
2014-12-22 22:01 ` Jonathan Nieder
2014-12-22 23:25 ` Junio C Hamano
2014-12-22 23:27 ` Junio C Hamano
2014-12-22 23:38 ` Jonathan Nieder
2014-12-23 18:26 ` Junio C Hamano
2014-12-22 23:34 ` Junio C Hamano [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=xmqq4msn6yyl.fsf@gitster.dls.corp.google.com \
--to=gitster@pobox.com \
--cc=bdwalton@gmail.com \
--cc=dturner@twopensource.com \
--cc=git@vger.kernel.org \
--cc=jrnieder@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.