On Wed, Apr 19, 2006 at 05:57:21PM +1000, Peter Jeremy wrote:
> On Tue, 2006-Apr-18 15:02:27 -0500, Eric Anderson wrote:
> >Peter Jeremy wrote:
> >>>+  padding=""
> >>>+  paddingsize=$(($columns - 15 - $2 - $namesize))
> >>>+  until [ 0 = ${paddingsize} ]; do
> >>>+          padding=" $padding"
> >>>+          paddingsize=$(($paddingsize - 1))
> >>>+  done
> >>
> >>This particular block of code appears unnecessary (since $padding is 
> >>unused).
> >
> >I must be missing something, because I'm pretty sure it's used.. What 
> >did I miss?
> 
> Actually, I had a closer look and I was wrong, sorry.  I missed the
> '[ $2 = 0 ]' test.  The code might be more legible (and is definitely
> more efficient) if the above code was moved into the else clause for
> that test.
> 
> Also '[ $2 = 0 ]' should probably be written as '[ "0$2" -eq 0 ]', or
> similar, so that it doesn't blow up if there is no $2.

Or better use "${2:-0}" if that's what you mean.  The idiom of
prepending stuff to a variable in a string to deal with the unassigned
variables has always seemed to me like it was a hold over from some
truly ancent shell without modern features.  The '[ "x$var" = "x" ]'
idiom is even worse.  Test has only had -z and -n for a decade or two...

-- Brooks

-- 
Any statement of the form "X is the one, true Y" is FALSE.
PGP fingerprint 655D 519C 26A7 82E7 2529  9BF0 5D8E 8BE9 F238 1AD4

Attachment: pgpkcS02eh9o4.pgp
Description: PGP signature

Reply via email to