printf: fix 1.12.0 breakage (from %*d fix). It was misinterpreting "*"
authorDenis Vlasenko <vda.linux@googlemail.com>
Tue, 3 Mar 2009 14:14:44 +0000 (14:14 -0000)
committerDenis Vlasenko <vda.linux@googlemail.com>
Tue, 3 Mar 2009 14:14:44 +0000 (14:14 -0000)
coreutils/printf.c

index d4f1de9..0b004ea 100644 (file)
@@ -139,14 +139,14 @@ static void print_direc(char *format, unsigned fmt_length,
        char saved;
        char *have_prec, *have_width;
 
+       saved = format[fmt_length];
+       format[fmt_length] = '\0';
+
        have_prec = strstr(format, ".*");
        have_width = strchr(format, '*');
        if (have_width - 1 == have_prec)
                have_width = NULL;
 
-       saved = format[fmt_length];
-       format[fmt_length] = '\0';
-
        switch (format[fmt_length - 1]) {
        case 'c':
                printf(format, *argument);