summaryrefslogtreecommitdiffstats
path: root/lib/libthr/thread/thr_printf.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/libthr/thread/thr_printf.c')
-rw-r--r--lib/libthr/thread/thr_printf.c16
1 files changed, 11 insertions, 5 deletions
diff --git a/lib/libthr/thread/thr_printf.c b/lib/libthr/thread/thr_printf.c
index ed94287..8e9a151 100644
--- a/lib/libthr/thread/thr_printf.c
+++ b/lib/libthr/thread/thr_printf.c
@@ -52,8 +52,17 @@ static void pstr(int fd, const char *s);
void
_thread_printf(int fd, const char *fmt, ...)
{
+ va_list ap;
+
+ va_start(ap, fmt);
+ _thread_vprintf(fd, fmt, ap);
+ va_end(ap);
+}
+
+void
+_thread_vprintf(int fd, const char *fmt, va_list ap)
+{
static const char digits[16] = "0123456789abcdef";
- va_list ap;
char buf[20];
char *s;
unsigned long r, u;
@@ -61,13 +70,12 @@ _thread_printf(int fd, const char *fmt, ...)
long d;
int islong;
- va_start(ap, fmt);
while ((c = *fmt++)) {
islong = 0;
if (c == '%') {
next: c = *fmt++;
if (c == '\0')
- goto out;
+ return;
switch (c) {
case 'c':
pchar(fd, va_arg(ap, int));
@@ -111,8 +119,6 @@ next: c = *fmt++;
}
pchar(fd, c);
}
-out:
- va_end(ap);
}
/*
OpenPOWER on IntegriCloud