[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <201312281243.CCB82366.tMHFVQFSOOFJOL@I-love.SAKURA.ne.jp>
Date: Sat, 28 Dec 2013 12:43:24 +0900
From: Tetsuo Handa <penguin-kernel@...ove.SAKURA.ne.jp>
To: akpm@...ux-foundation.org
Cc: jkosina@...e.cz, joe@...ches.com, viro@...iv.linux.org.uk,
davem@...emloft.net, linux-kernel@...r.kernel.org
Subject: Re: [PATCH] lib/vsprintf: add %pT[C012] format specifier
Andrew Morton wrote:
> which is painful, so we also provide the new vsprintf token as a
> convenience:
>
> pr_warn("%|: hair on fire\n");
>
> but I don't know what we can use in place of %|.
We are using %pEXTENSION where EXTENSION is [A-Za-z0-9]* because compiler does
not need to understand what EXTENSION does; compiler needs to care about what
character follows the % character and check type of corresponding argument if
__printf() attribute is given.
If we introduce a character which compiler does not know that follows the %
character, compiler would be confused when checking type of corresponding
argument.
> I wonder if there's some way in which we can invent a vsprintf token
> which means "insert corrent->comm here" and which doesn't require that
> the caller pass in the additional argument?
Therefore, if we want to omit passing corresponding argument, we should not
introduce new character which compiler does not know that follows the %
character.
Also, % is the only character which everybody knows that it is reserved for the
beginning of format specifier and %% is the only characters which everybody
knows that it is reserved for literal % character.
Therefore, what we could do for printing current thread's attributes would be
either reserve a new character and add EXTENSION like
pr_warn("$comm$: hair on fire\n");
pr_warn("Process $pid$: hair on fire\n");
or add EXTENSION after the %% characters like
pr_warn("%%comm%%: hair on fire\n");
pr_warn("Process %%pid%%: hair on fire\n");
.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists