Re: t0090-cache-tree fails due to wc whitespace
- From
Thomas Rast <trast@student.ethz.ch>
- Date
- Dec 14, 2011, 15:43 UTC
- Message-ID
- <201112141643.06656.trast@student.ethz.ch>
- In-Reply-To
- <7F1792D2-8ED4-4546-8ED4-52B95E0AE9FC@silverinsanity.com>
Brian Gernhardt wrote:
> > It's time for my periodic complaint: People assuming `wc -l` outputs > just a number. wc on OS X (and perhaps other BSD-like systems) > always aligns the output in columns, even with the -l flag.
Oops.
> Generally this results in a quick patch from me to remove some > unneeded quotes. However, this time it's used in a more complex > manner:
[...]
> - "($(git ls-files|wc -l) entries, 0 subtrees)" >expect && > + "($(git ls-files|wc -l|sed -e 's/^ *//') entries, 0 subtrees)" >expect &&
I'm tempted to say we should define
test_wc_l () {
test $# = 0 || error "bug in test script: passing arguments to wc -l is not portable"
wc -l | tr -d -c 0-9
}just to avoid issues if any wc comes across and prints a tab for padding or says "hi, the number of lines you wanted to know is: 42".
(Oddly, according to 'man 1p wc' here, the POSIXly correct format in the absence of options is
"%d %d %d %s\n", <newlines>, <words>, <bytes>, <file>
Taking it literally would mean no padding/alignment whatsoever. Neither GNU wc on my Linux exactly conforms to this.)
--
Thomas Rast
trast@{inf,student}.ethz.ch