- char *p; /* Null-terminated copy of % directive. */
-
- p = xmalloc ((unsigned) (length + 1));
- strncpy (p, start, length);
- p[length] = 0;
-
- switch (p[length - 1])
- {
- case 'd':
- case 'i':
- if (field_width < 0)
- {
- if (precision < 0)
- printf (p, xstrtol (argument));
- else
- printf (p, precision, xstrtol (argument));
- }
- else
- {
- if (precision < 0)
- printf (p, field_width, xstrtol (argument));
- else
- printf (p, field_width, precision, xstrtol (argument));
- }
- break;
-
- case 'o':
- case 'u':
- case 'x':
- case 'X':
- if (field_width < 0)
- {
- if (precision < 0)
- printf (p, xstrtoul (argument));
- else
- printf (p, precision, xstrtoul (argument));
- }
- else
- {
- if (precision < 0)
- printf (p, field_width, xstrtoul (argument));
- else
- printf (p, field_width, precision, xstrtoul (argument));
- }
- break;
-
- case 'f':
- case 'e':
- case 'E':
- case 'g':
- case 'G':
- if (field_width < 0)
- {
- if (precision < 0)
- printf (p, xstrtod (argument));
- else
- printf (p, precision, xstrtod (argument));
- }
- else
- {
- if (precision < 0)
- printf (p, field_width, xstrtod (argument));
- else
- printf (p, field_width, precision, xstrtod (argument));
- }
- break;
-
- case 'c':
- printf (p, *argument);
- break;
-
- case 's':
- if (field_width < 0)
- {
- if (precision < 0)
- printf (p, argument);
- else
- printf (p, precision, argument);
- }
- else
- {
- if (precision < 0)
- printf (p, field_width, argument);
- else
- printf (p, field_width, precision, argument);
+ char *p; /* Null-terminated copy of % directive. */
+
+ p = xmalloc((unsigned) (length + 1));
+ strncpy(p, start, length);
+ p[length] = 0;
+
+ switch (p[length - 1]) {
+ case 'd':
+ case 'i':
+ if (field_width < 0) {
+ if (precision < 0)
+ printf(p, xstrtol(argument));
+ else
+ printf(p, precision, xstrtol(argument));
+ } else {
+ if (precision < 0)
+ printf(p, field_width, xstrtol(argument));
+ else
+ printf(p, field_width, precision, xstrtol(argument));
+ }
+ break;
+
+ case 'o':
+ case 'u':
+ case 'x':
+ case 'X':
+ if (field_width < 0) {
+ if (precision < 0)
+ printf(p, xstrtoul(argument));
+ else
+ printf(p, precision, xstrtoul(argument));
+ } else {
+ if (precision < 0)
+ printf(p, field_width, xstrtoul(argument));
+ else
+ printf(p, field_width, precision, xstrtoul(argument));
+ }
+ break;
+
+ case 'f':
+ case 'e':
+ case 'E':
+ case 'g':
+ case 'G':
+ if (field_width < 0) {
+ if (precision < 0)
+ printf(p, xstrtod(argument));
+ else
+ printf(p, precision, xstrtod(argument));
+ } else {
+ if (precision < 0)
+ printf(p, field_width, xstrtod(argument));
+ else
+ printf(p, field_width, precision, xstrtod(argument));
+ }
+ break;
+
+ case 'c':
+ printf(p, *argument);
+ break;
+
+ case 's':
+ if (field_width < 0) {
+ if (precision < 0)
+ printf(p, argument);
+ else
+ printf(p, precision, argument);
+ } else {
+ if (precision < 0)
+ printf(p, field_width, argument);
+ else
+ printf(p, field_width, precision, argument);
+ }
+ break;