aboutsummaryrefslogtreecommitdiff
path: root/printf.c
diff options
context:
space:
mode:
authorPaolo Bonzini <pbonzini@redhat.com>2019-07-24 12:18:35 +0200
committerPaolo Bonzini <pbonzini@redhat.com>2019-07-24 12:18:35 +0200
commitf8d4dd25732f518001bfbec1fae01902edabcb4b (patch)
treebdf618127537a71349b5b3fd412d2fb487ad5a49 /printf.c
parent0f147388c0c23a2f7267ee0bf58333939d7a5d84 (diff)
downloadqboot-f8d4dd25732f518001bfbec1fae01902edabcb4b.zip
qboot-f8d4dd25732f518001bfbec1fae01902edabcb4b.tar.gz
qboot-f8d4dd25732f518001bfbec1fae01902edabcb4b.tar.bz2
clean up printf
printf is avoiding switch statements so that it can be used in very early startup, before jump tables can be read from the F segment. We could use -fno-jump-tables, but we can also keep the if statements and clean them up so that the indentation is fine. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'printf.c')
-rw-r--r--printf.c17
1 files changed, 7 insertions, 10 deletions
diff --git a/printf.c b/printf.c
index 8d7f56d..bfbd15c 100644
--- a/printf.c
+++ b/printf.c
@@ -157,18 +157,17 @@ int vsnprintf(char *buf, int size, const char *fmt, va_list va)
}
morefmt:
f = *fmt++;
- do {
if (f == '%') {
addchar(&s, '%');
- break;
+ continue;
}
if (f == 'c') {
addchar(&s, va_arg(va, int));
- break;
+ continue;
}
if (f == '\0') {
--fmt;
- break;
+ continue;
}
if (f == '0') {
props.pad = '0';
@@ -196,7 +195,7 @@ int vsnprintf(char *buf, int size, const char *fmt, va_list va)
panic();
break;
}
- break;
+ continue;
}
if (f == 'x') {
switch (nlong) {
@@ -210,20 +209,18 @@ int vsnprintf(char *buf, int size, const char *fmt, va_list va)
panic();
break;
}
- break;
+ continue;
}
if (f == 'p') {
print_str(&s, "0x", props);
print_unsigned(&s, (unsigned long)va_arg(va, void *), 16, props);
- break;
+ continue;
}
if (f == 's') {
print_str(&s, va_arg(va, const char *), props);
- break;
+ continue;
}
addchar(&s, f);
- break;
- } while(0);
}
*s.buffer = 0;
++s.added;