Re: [PATCH 1/2] remove all uses of printf's %n
From: Jiri Slaby <hidden>
Date: 2013-09-20 08:08:15
Also in:
linux-sctp, lkml
On 09/20/2013 06:09 AM, Tetsuo Handa wrote:
quoted hunk ↗ jump to hunk
--- a/fs/proc/consoles.c +++ b/fs/proc/consoles.c
...
quoted hunk ↗ jump to hunk
@@ -47,11 +46,10 @@ static int show_console_dev(struct seq_file *m, void *v) con_flags[a].name : ' '; flags[a] = 0; - seq_printf(m, "%s%d%n", con->name, con->index, &len); - len = 21 - len; - if (len < 1) - len = 1; - seq_printf(m, "%*c%c%c%c (%s)", len, ' ', con->read ? 'R' : '-', + seq_setwidth(m, 21 - 1); + seq_printf(m, "%s%d", con->name, con->index); + seq_pad(m, ' '); + seq_printf(m, "%c%c%c (%s)", con->read ? 'R' : '-', con->write ? 'W' : '-', con->unblank ? 'U' : '-', flags);
Hello, do you really need seq_setwidth? It makes it really ugly... Or do we need that all? Couldn't we simply have seq_printf_padded? Or maybe some % modifier in seq_printf to pad the string?
quoted hunk ↗ jump to hunk
--- a/net/ipv4/fib_trie.c +++ b/net/ipv4/fib_trie.c
...
quoted hunk ↗ jump to hunk
@@ -2548,15 +2549,15 @@ static int fib_route_seq_show(struct seq_file *seq, void *v) (fi->fib_advmss ? fi->fib_advmss + 40 : 0), fi->fib_window, - fi->fib_rtt >> 3, &len); + fi->fib_rtt >> 3); else seq_printf(seq, "*\t%08X\t%08X\t%04X\t%d\t%u\t" - "%d\t%08X\t%d\t%u\t%u%n", + "%d\t%08X\t%d\t%u\t%u", prefix, 0, flags, 0, 0, 0, - mask, 0, 0, 0, &len); + mask, 0, 0, 0); - seq_printf(seq, "%*s\n", 127 - len, ""); + seq_pad(seq, '\n');
Hmm, seq_pad is unintuitive. I would say it pads the string by '\n'. Of course it does not, but... thanks, -- js suse labs