GNU bug report logs -
#46422
'pr' screws up tabstops in multicolumn outpt?
Previous Next
Full log
Message #32 received at 46422 <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
Hi,
On 13.02.21 15:17, Erik Auerswald wrote:
> On 11.02.21 20:20, Erik Auerswald wrote:
>> On Thu, Feb 11, 2021 at 06:09:28PM +0100, Leonard Janis Robert König
>> wrote:
>>> On Thu, 2021-02-11 at 16:45 +0100, Erik Auerswald wrote:
>>>> On Thu, Feb 11, 2021 at 04:12:54PM +0100, Leonard Janis Robert
>>>> König wrote:
>>>>> On Thu, 2021-02-11 at 13:00 +0100, Erik Auerswald wrote:
>>>>>> On Wed, Feb 10, 2021 at 01:42:29PM +0100, Leonard Janis Robert
>>>>>> König wrote:
>>>>>>> I'm sorry if I this is not a bug but to be expected, but I thnk
>>>>>>> pr doesn't get the alignment of tabs in multicolumn output
>>>>>>> right. [...] This seems *kind* of related to multi-column
>>>>>>> merged output, as was discussed some years ago here:
>>>>>>> https://lists.gnu.org/archive/html/bug-coreutils/2007-03/msg00121.html
>>>>>>>
>>>>>>
>>>>>> This thread contains the bug-introducing patch in message
>>>>>> https://lists.gnu.org/archive/html/bug-coreutils/2007-03/msg00160.html
>>>>>>
>>>>>>
>>>>>> This is commit 553d347d3e08e00ee4f9df520b37c964c3f26e28.
>>>>>
>>>>> ah, thanks for digging, I read the message but must have missed
>>>>> the patch.
>>>>>
>>>>>> That commit removed the 'assume -e' part of the POSIX description
>>>>>> of the -COLUMN option from GNU pr.
>>>>> [...]
>>>> Your test case requires expanding tabs during input, which is
>>>> the reason that "expand | pr" could be used as a workaround (with
>>>> "expand | pr | unexpand", pr would not need to mess with tabs at all,
>>>> but I do think that GNU pr is currently buggy and should be fixed).
>>>
>>> Absolutely, expand would be a workaround (I happen to use `pr -e | pr`
>>> in my script, for other reasons).
>>> [...]
>> I have found a fix to the problem described by you. I am quite sure that
>> this is not *correct*, but I did not find a way to make
>> print_sep_string()
>> account for tabs that did not break quite a few existing tests, even if
>> the merged files problem from 2007 and this columnating bug were both
>> fixed. Thus I just tighten the 2007 bug fix to apply in less cases.
>> This way all existing tests pass, and a new one pertaining to this bug
>> report passes, too. I do think this is in the same spirit as the "fix"
>> from 2007 (commit 553d347d3e08e00ee4f9df520b37c964c3f26e28).
>
> I think the attached patch is a better fix than my previous one,
> because it applies the special treatment of TAB as separator more
> consistently. It may still not be complete (the code seems quite
> convoluted to me) but I do think it improves the situation
> significantly, and does not make it worse.
It seems to me as if "untabify_input = true;" should be re-introduced
in one additional place to fix the regression from commit 553d347,
please see the attached patch version 3.
> I'd like to ask the GNU Coreutils maintainers to consider merging
> the attached patch.
The latest version, i.e., v3 for now.
Thanks,
Erik
[coreutils-pr-fix_bug_46422.v3.patch (text/x-patch, attachment)]
This bug report was last modified 4 years and 99 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.