Subject: Re: bug#25540: notice issue in expand -- doesn't allow for expressing tabsize value in tabstop(s)

From: Reuti <[email-masked]>
Date: Thu, 26 Jan 2017 11:26:40 +0100

> Am 26.01.2017 um 05:29 schrieb L A Walsh <[email-masked]>:
> 
> 
> 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?

For now the behavior is like specified on the info page: "[…] and replace any tabs beyond the last tab stop given with single spaces." To avoid that this gets broken, I would suggest to use a modified syntax like 1,9,30,34,/4 for using a width of 4 beyond 34.

This could even be expanded to: -t 2/4,120,4/5,/9

Two times a width of 4, a fixed 120, four times a width of 5 and all remaining have a width of 9 (could also be */9 instead of /9).

While we are on this:

expand -t 5,15,25,35 file
expand -t 5,15,25,,,,35 file

are AFAICS both the same. I would expect the second to behave different (using a space for the three tabs which have no value).

-- Reuti