From 052934cd5425a594ce99ab3e61590f8c0e36e5c5 Mon Sep 17 00:00:00 2001 From: Andy Zhang <37402126+AnzhiZhang@users.noreply.github.com> Date: Thu, 24 Oct 2024 15:35:41 +0000 Subject: [PATCH 1/2] let printf understands %c --- user/printf.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/user/printf.c b/user/printf.c index 81787467fa..14cc9db0d8 100644 --- a/user/printf.c +++ b/user/printf.c @@ -47,7 +47,7 @@ printptr(int fd, uint64 x) { putc(fd, digits[x >> (sizeof(uint64) * 8 - 4)]); } -// Print to the given fd. Only understands %d, %x, %p, %s. +// Print to the given fd. Only understands %d, %x, %p, %c, %s. void vprintf(int fd, const char *fmt, va_list ap) { @@ -93,6 +93,8 @@ vprintf(int fd, const char *fmt, va_list ap) i += 2; } else if(c0 == 'p'){ printptr(fd, va_arg(ap, uint64)); + } else if(c0 == 'c'){ + putc(fd, va_arg(ap, int)); } else if(c0 == 's'){ if((s = va_arg(ap, char*)) == 0) s = "(null)"; From c9a5e7f0f000b31f887beef047075ac2a289a2e1 Mon Sep 17 00:00:00 2001 From: Andy Zhang <37402126+AnzhiZhang@users.noreply.github.com> Date: Thu, 31 Oct 2024 16:06:12 +0000 Subject: [PATCH 2/2] update kernal/printf.c --- kernel/printf.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/kernel/printf.c b/kernel/printf.c index d20534c150..9326608da4 100644 --- a/kernel/printf.c +++ b/kernel/printf.c @@ -108,6 +108,8 @@ printf(char *fmt, ...) i += 2; } else if(c0 == 'p'){ printptr(va_arg(ap, uint64)); + } else if(c0 == 'c'){ + putc(fd, va_arg(ap, int)); } else if(c0 == 's'){ if((s = va_arg(ap, char*)) == 0) s = "(null)";