GNU bug report logs - #25540
notice issue in expand -- doesn't allow for expressing tabsize value in tabstop(s)

Previous Next

Package: coreutils;

Reported by: L A Walsh <coreutils <at> tlinx.org>

Date: Thu, 26 Jan 2017 04:30:02 UTC

Severity: normal

Tags: fixed

Done: Assaf Gordon <assafgordon <at> gmail.com>

Bug is archived. No further changes may be made.

Full log


Message #11 received at 25540 <at> debbugs.gnu.org (full text, mbox):

From: Pádraig Brady <P <at> draigBrady.com>
To: L A Walsh <coreutils <at> tlinx.org>, 25540 <at> debbugs.gnu.org
Subject: Re: bug#25540: notice issue in expand -- doesn't allow for expressing
 tabsize value in tabstop(s)
Date: Thu, 26 Jan 2017 10:29:00 +0000
On 26/01/17 04:29, L A Walsh wrote:
> 
> In programs that take tabstops, as an alternative to a tabsize, I've always
> seen tabs beyond the end of the list taken as equal to the highest tab-stop
> difference.  So for a tabsize=8, a tabset of 1,9 would be equivalent -- with
> tabs above "9" being "9-1" or every 8th column above 9.
> 
> Otherwise you have no way of expression all tabs on a line that 
> stretches out to
> "???" 160? 240? what? other than to enumerate tabstops to infinity.
> 
> If they want to limit tabstops above the last to size "1", they can use 
> something like 1,9,10.  How else can one specify tabs beyond the last
> for a size other than "1"?
> 
> Could this be changed/fixed?

This is a fair point:

  $ seq 8 | paste -s -d'\t' | expand --tabs=1,9
  1        2 3 4 5 6 7 8

Though changing that would break backwards compat,
and expand is documented in texinfo as doing exactly as above.
Moreover POSIX specifies exactly this operation:
http://pubs.opengroup.org/onlinepubs/9699919799/utilities/expand.html

So we'd have to use an extension to do this.
Perhaps something like:

  expand --tabs=1,9,...

cheers,
Pádraig




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

Previous Next


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