GNU bug report logs - #13120
expand/unexpand: streamline first-only/initial options

Previous Next

Package: coreutils;

Reported by: Todd Shandelman <todd.shandelman <at> gmail.com>

Date: Fri, 7 Dec 2012 21:24:03 UTC

Severity: wishlist

Full log


View this message in rfc822 format

From: Pádraig Brady <P <at> draigBrady.com>
To: Todd Shandelman <todd.shandelman <at> gmail.com>
Cc: 13120 <at> debbugs.gnu.org
Subject: bug#13120: Not quite a bug, but ...
Date: Sun, 09 Dec 2012 12:34:44 +0000
On 12/07/2012 08:23 PM, Todd Shandelman wrote:
> Hi,  bug-coreutils <at> gnu.org  -
>
> Not quite a bug, but why does the same option, essentially, have two very
> different names in the 'expand' and 'unexpand'  utilities?
>
> This is confusing and hampers convenient usage.
>
> I am referring to* --initial* in the one case and* --first-only* in the
> other.
>
> See below.
>
> Or what am I missing?

Yes that is inconsistent.
Interestingly the POSIX defined expand and unexpand are inconsistent
in relation to this to start with.

unexpand only processes leading blanks by default, but
expand processes all blanks by default.

So unexpand needs the -a option to process all blanks,
and expand needs the -i, --initial option to process only leading blanks.

Given the above you might think that the --first-only option to unexpand
is redundant.  However -a is implied by -t (as per POSIX), therefore
to really limit to initial blanks, you need this option.

So as for naming.  I agree that --first-only is inconsistent.
It's also a bit ambiguous. Does it mean only the first tab is written,
or all leading blanks are processed.  Now deprecating --first-only
for the more consistent --initial has some cost.  For example
it would break part of my FSlint program:
http://code.google.com/p/fslint/source/browse/trunk/fslint/supprt/rmlint/fix_ws.sh
Also, I see busybox copied --first-only into its unexpand implementation.
But I guess to be forward looking --first-only should be deprecated
in favor of --initial?

thanks,
Pádraig.




This bug report was last modified 6 years and 302 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.