Message ID | c116373229190175845bc3c45b944a741b09129d.1540850171.git.sbrivio@redhat.com |
---|---|
State | Accepted, archived |
Delegated to: | stephen hemminger |
Headers | show |
Series | [iproute] ss: Actually print left delimiter for columns | expand |
On Mon, 29 Oct 2018 23:04:25 +0100 Stefano Brivio <sbrivio@redhat.com> wrote: > While rendering columns, we use a local variable to keep track of the > field currently being printed, without touching current_field, which is > used for buffering. > > Use the right pointer to access the left delimiter for the current column, > instead of always printing the left delimiter for the last buffered field, > which is usually an empty string. > > This fixes an issue especially visible on narrow terminals, where some > columns might be displayed without separation. > > Reported-by: YoyPa <yoann.p.public@gmail.com> > Fixes: 691bd854bf4a ("ss: Buffer raw fields first, then render them as a table") > Signed-off-by: Stefano Brivio <sbrivio@redhat.com> > Tested-by: YoyPa <yoann.p.public@gmail.com> Looks good, applied.
On Mon, 29 Oct 2018 23:04:25 +0100 Stefano Brivio <sbrivio@redhat.com> wrote: > While rendering columns, we use a local variable to keep track of the > field currently being printed, without touching current_field, which is > used for buffering. > > Use the right pointer to access the left delimiter for the current column, > instead of always printing the left delimiter for the last buffered field, > which is usually an empty string. > > This fixes an issue especially visible on narrow terminals, where some > columns might be displayed without separation. > > Reported-by: YoyPa <yoann.p.public@gmail.com> > Fixes: 691bd854bf4a ("ss: Buffer raw fields first, then render them as a table") > Signed-off-by: Stefano Brivio <sbrivio@redhat.com> > Tested-by: YoyPa <yoann.p.public@gmail.com> This test broke the testsuite/ss/ssfilter.t test. Please fix the test to match your new output format, or I will have to revert it.
On Fri, 9 Nov 2018 09:05:46 -0800 Stephen Hemminger <stephen@networkplumber.org> wrote: > On Mon, 29 Oct 2018 23:04:25 +0100 > Stefano Brivio <sbrivio@redhat.com> wrote: > > > While rendering columns, we use a local variable to keep track of the > > field currently being printed, without touching current_field, which is > > used for buffering. > > > > Use the right pointer to access the left delimiter for the current column, > > instead of always printing the left delimiter for the last buffered field, > > which is usually an empty string. > > > > This fixes an issue especially visible on narrow terminals, where some > > columns might be displayed without separation. > > > > Reported-by: YoyPa <yoann.p.public@gmail.com> > > Fixes: 691bd854bf4a ("ss: Buffer raw fields first, then render them as a table") > > Signed-off-by: Stefano Brivio <sbrivio@redhat.com> > > Tested-by: YoyPa <yoann.p.public@gmail.com> > > This test broke the testsuite/ss/ssfilter.t test. > Please fix the test to match your new output format, or I will have to revert it. Ouch, sorry, I didn't notice that "new" test. I'll fix that by tomorrow.
diff --git a/misc/ss.c b/misc/ss.c index c8970438ce73..4d12fb5d19df 100644 --- a/misc/ss.c +++ b/misc/ss.c @@ -1260,7 +1260,7 @@ static void render(void) while (token) { /* Print left delimiter only if we already started a line */ if (line_started++) - printed = printf("%s", current_field->ldelim); + printed = printf("%s", f->ldelim); else printed = 0;