[iproute2] ss: fix end-of-line printing in misc/ss.c
diff mbox series

Message ID 20191127052118.163594-1-brianvv@google.com
State Superseded
Delegated to: stephen hemminger
Headers show
Series
  • [iproute2] ss: fix end-of-line printing in misc/ss.c
Related show

Commit Message

Brian Vazquez Nov. 27, 2019, 5:21 a.m. UTC
Before commit 5883c6eba517, function field_is_last() was incorrectly
reporting which column was the last because it was missing COL_PROC
and by purely coincidence it was correctly printing the end-of-line and
moving to the first column since the very last field was empty, and
end-of-line was added for the last non-empty token since it was seen as
the last field.

This commits correcrly prints the end-of-line for the last entrien in
the ss command.

Tested:

Comments

Michal Kubecek Dec. 3, 2019, 1 p.m. UTC | #1
On Tue, Nov 26, 2019 at 09:21:18PM -0800, Brian Vazquez wrote:
> Before commit 5883c6eba517, function field_is_last() was incorrectly
> reporting which column was the last because it was missing COL_PROC
> and by purely coincidence it was correctly printing the end-of-line and
> moving to the first column since the very last field was empty, and
> end-of-line was added for the last non-empty token since it was seen as
> the last field.
> 
> This commits correcrly prints the end-of-line for the last entrien in
> the ss command.
> 
> Tested:
> diff <(./ss.old -nltp) <(misc/ss -nltp)
> 38c38
> < LISTEN    0   128     [::1]:35417   [::]:*   users:(("foo",pid=65254,fd=116))
> \ No newline at end of file
> ---
> > LISTEN    0   128     [::1]:35417   [::]:*   users:(("foo",pid=65254,fd=116))
> 
> Cc: Hritik Vijay <hritikxx8@gmail.com>
> Fixes: 5883c6eba517 ("ss: show header for --processes/-p")
> Signed-off-by: Brian Vazquez <brianvv@google.com>

Tested-by: Michal Kubecek <mkubecek@suse.cz>

> ---
>  misc/ss.c | 5 +++++
>  1 file changed, 5 insertions(+)
> 
> diff --git a/misc/ss.c b/misc/ss.c
> index c58e5c4d..95f1d37a 100644
> --- a/misc/ss.c
> +++ b/misc/ss.c
> @@ -1290,6 +1290,11 @@ static void render(void)
>  
>  		token = buf_token_next(token);
>  	}
> +	/* Deal with final end-of-line when the last non-empty field printed
> +	 * is not the last field.
> +	 */
> +	if (line_started)
> +		printf("\n");
>  
>  	buf_free_all();
>  	current_field = columns;
> -- 
> 2.24.0.432.g9d3f5f5b63-goog
>
Stephen Hemminger Dec. 4, 2019, 7:11 p.m. UTC | #2
On Tue, 26 Nov 2019 21:21:18 -0800
Brian Vazquez <brianvv@google.com> wrote:

> Before commit 5883c6eba517, function field_is_last() was incorrectly
> reporting which column was the last because it was missing COL_PROC
> and by purely coincidence it was correctly printing the end-of-line and
> moving to the first column since the very last field was empty, and
> end-of-line was added for the last non-empty token since it was seen as
> the last field.
> 
> This commits correcrly prints the end-of-line for the last entrien in
> the ss command.
> 
> Tested:
> diff <(./ss.old -nltp) <(misc/ss -nltp)
> 38c38
> < LISTEN    0   128     [::1]:35417   [::]:*   users:(("foo",pid=65254,fd=116))
> \ No newline at end of file
> ---
> > LISTEN    0   128     [::1]:35417   [::]:*   users:(("foo",pid=65254,fd=116))  
> 
> Cc: Hritik Vijay <hritikxx8@gmail.com>
> Fixes: 5883c6eba517 ("ss: show header for --processes/-p")
> Signed-off-by: Brian Vazquez <brianvv@google.com>

This commit message is really hard to understand and causes warnings
in checkpatch. Also, blaming old code for doing the right thing
is not necessary. The changelog doesn't need to explain why.
The offending commit is already referenced by the fixes line.

Instead, I propose:


The previous change to ss to show header broke the printing of end-of-line
for the last entry.

Fixes: 5883c6eba517 ("ss: show header for --processes/-p")
Signed-off-by: Brian Vazquez <brianvv@google.com>
Brian Vazquez Dec. 4, 2019, 7:39 p.m. UTC | #3
Thanks for reviewing it!

On Wed, Dec 4, 2019 at 11:11 AM Stephen Hemminger
<stephen@networkplumber.org> wrote:
>
> On Tue, 26 Nov 2019 21:21:18 -0800
> Brian Vazquez <brianvv@google.com> wrote:
>
> > Before commit 5883c6eba517, function field_is_last() was incorrectly
> > reporting which column was the last because it was missing COL_PROC
> > and by purely coincidence it was correctly printing the end-of-line and
> > moving to the first column since the very last field was empty, and
> > end-of-line was added for the last non-empty token since it was seen as
> > the last field.
> >
> > This commits correcrly prints the end-of-line for the last entrien in
> > the ss command.
> >
> > Tested:
> > diff <(./ss.old -nltp) <(misc/ss -nltp)
> > 38c38
> > < LISTEN    0   128     [::1]:35417   [::]:*   users:(("foo",pid=65254,fd=116))
> > \ No newline at end of file
> > ---
> > > LISTEN    0   128     [::1]:35417   [::]:*   users:(("foo",pid=65254,fd=116))
> >
> > Cc: Hritik Vijay <hritikxx8@gmail.com>
> > Fixes: 5883c6eba517 ("ss: show header for --processes/-p")
> > Signed-off-by: Brian Vazquez <brianvv@google.com>
>
> This commit message is really hard to understand and causes warnings
> in checkpatch. Also, blaming old code for doing the right thing
> is not necessary. The changelog doesn't need to explain why.
> The offending commit is already referenced by the fixes line.
>
> Instead, I propose:
>
>
> The previous change to ss to show header broke the printing of end-of-line
> for the last entry.

This makes sense, I'll fix it in next version. Thanks!

>
> Fixes: 5883c6eba517 ("ss: show header for --processes/-p")
> Signed-off-by: Brian Vazquez <brianvv@google.com>

Patch
diff mbox series

diff <(./ss.old -nltp) <(misc/ss -nltp)
38c38
< LISTEN    0   128     [::1]:35417   [::]:*   users:(("foo",pid=65254,fd=116))
\ No newline at end of file
---
> LISTEN    0   128     [::1]:35417   [::]:*   users:(("foo",pid=65254,fd=116))

Cc: Hritik Vijay <hritikxx8@gmail.com>
Fixes: 5883c6eba517 ("ss: show header for --processes/-p")
Signed-off-by: Brian Vazquez <brianvv@google.com>
---
 misc/ss.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/misc/ss.c b/misc/ss.c
index c58e5c4d..95f1d37a 100644
--- a/misc/ss.c
+++ b/misc/ss.c
@@ -1290,6 +1290,11 @@  static void render(void)
 
 		token = buf_token_next(token);
 	}
+	/* Deal with final end-of-line when the last non-empty field printed
+	 * is not the last field.
+	 */
+	if (line_started)
+		printf("\n");
 
 	buf_free_all();
 	current_field = columns;