lkml.org 
[lkml]   [2012]   [Apr]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH] vsprintf: Correctly handle width when '#' flag used in %#p format.
    Date
    This patch adjusts the default width of pointer output to include the
    '0x' characters when the '#' flag is included in the format string.

    Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
    Cc: Andrew Morton <akpm@linux-foundation.org>
    ---
    lib/vsprintf.c | 8 +++++---
    1 file changed, 5 insertions(+), 3 deletions(-)

    diff --git a/lib/vsprintf.c b/lib/vsprintf.c
    index abbabec..1043827 100644
    --- a/lib/vsprintf.c
    +++ b/lib/vsprintf.c
    @@ -866,13 +866,15 @@ static noinline_for_stack
    char *pointer(const char *fmt, char *buf, char *end, void *ptr,
    struct printf_spec spec)
    {
    + int default_width = 2 * sizeof(void*) + (spec.flags & SPECIAL ? 2 : 0);
    +
    if (!ptr && *fmt != 'K') {
    /*
    * Print (null) with the same width as a pointer so it makes
    * tabular output look nice.
    */
    if (spec.field_width == -1)
    - spec.field_width = 2 * sizeof(void *);
    + spec.field_width = default_width;
    return string(buf, end, "(null)", spec);
    }

    @@ -927,7 +929,7 @@ char *pointer(const char *fmt, char *buf, char *end, void *ptr,
    */
    if (in_irq() || in_serving_softirq() || in_nmi()) {
    if (spec.field_width == -1)
    - spec.field_width = 2 * sizeof(void *);
    + spec.field_width = default_width;
    return string(buf, end, "pK-error", spec);
    }
    if (!((kptr_restrict == 0) ||
    @@ -944,7 +946,7 @@ char *pointer(const char *fmt, char *buf, char *end, void *ptr,
    }
    spec.flags |= SMALL;
    if (spec.field_width == -1) {
    - spec.field_width = 2 * sizeof(void *);
    + spec.field_width = default_width;
    spec.flags |= ZEROPAD;
    }
    spec.base = 16;
    --
    1.7.9.5


    \
     
     \ /
      Last update: 2012-04-16 20:21    [W:0.021 / U:1.216 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site