[Toybox] [PENDING] [fold.c] [Question]
haroon maqsood
maqsood3525 at live.com
Wed Aug 29 15:24:19 PDT 2018
Hi,
you are right.
PFA a patch for unit tests i added that can maybe go in when fold moves from pending??,
the main intention is to discuss what i was unable to communicate(limitation on my part), i added a comment too
so if anyone can cross check , that would be helpful
________________________________
From: Samuel Holland <samuel at sholland.org>
Sent: Monday, August 27, 2018 10:28 PM
To: haroon maqsood; toybox at lists.landley.net
Subject: Re: [Toybox] [PENDING] [fold.c] [Question]
Hi,
On 08/27/18 03:09, haroon maqsood wrote:
> Hi Rob,
> I started working on fold.c cleanup,
> going through the code, and testing it out, i have a couple of questions.
>
> 1. gnu fold engulfs \n unconditionally i.e if there is a \n after the fold has
> happened that redundant \n does not make it to the output , that kind of
> makes sense but the posix spec only mentions carriage returns and only if
> the -b option is not specified. (Note* That the current pending/fold outputs
> an extra new line.)
If a line is exactly the length that a newline would need to go after the last
character, no additional newline should be added. If there is, that's a bug. If
you're referring to a different situation, please give an example.
> 2. the current fold implementation has unfold capability , that i think should
> not be squeezed in fold (as of yet), my plan is to have unfold as a separate
> utility that uses infrastructure from fold if necessary, or at least make
> unfold as a config option, please share your thoughts on this.
> 3. The tabstop thing is bit confusing for me, as the posix spec says "Tab stops
> shall be at each column position such that n modulo 8 equals 1." ( from
> this i understand that given the column the next column where the tab ends
> should be a column whose modulo 8 returns 1 , kind of this pseudo code ?
> where start is the current column. (am i understanding it right ?)
>
> int get_next_ts(int start)
> {
> if (start <= 1)
> return 9;
>
> if ((start % 8) == 1)
> return start;
>
> return get_next_ts(++start);
> }
Yes, this is correct. A more idiomatic algorithm would be:
int get_next_ts(int start)
{
return ((start + 8) & -8) + 1;
}
> Haroon
Samuel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.landley.net/pipermail/toybox-landley.net/attachments/20180829/8fe08c80/attachment-0001.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-added-fold-test-for-discussion.patch
Type: text/x-patch
Size: 750 bytes
Desc: 0001-added-fold-test-for-discussion.patch
URL: <http://lists.landley.net/pipermail/toybox-landley.net/attachments/20180829/8fe08c80/attachment-0003.bin>
More information about the Toybox
mailing list