Re: [PATCH][RFC] vsprintf: unify the format decoding layer for its3 users

From: Linus Torvalds
Date: Fri Feb 27 2009 - 19:40:29 EST




On Fri, 27 Feb 2009, Frederic Weisbecker wrote:
>
> Ok, here is a try, I've mostly unified the format decoding bits.
> Most interesting other helpers were already implemented (pointer(),
> string() and number()

Ok, I don't think this is beautiful, but neither was the original code,
so..

However, in order to make it at least a _bit_ more palatable, could we
please agree to at least clean up this:

> +static int format_decode(const char *fmt, enum format_type *type, int *flags,
> + int *field_width, int *base, int *precision,
> + int *qualifier)

To

struct printf_spec {
enum format_type type;
int flags, field_width, base, precision, qualifier;
};

and then pass things around like

static int format_decode(const char *fmt, struct printf_spec *spec)
{
..

instead? Wouldn't that be nicer? I suspect it would make the code look
nicer too (instead of doing "*base = x", you'd see "spec->base = x" and it
would look less like line noise in the callee, an the caller could just
do a single "struct format_spec spec = { 0, }" to initialize that thing).

Linus
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/