diff options
| author | Jake Mannens <jake72360@gmail.com> | 2018-06-17 03:24:22 +1000 |
|---|---|---|
| committer | Jake Mannens <jake72360@gmail.com> | 2018-06-17 03:24:22 +1000 |
| commit | fb24378c58a3bd5260920a1e9762c027fdbe5cec (patch) | |
| tree | 15acefff96b0c96d593b9289ad57968766ce4bdf | |
| parent | 52608386cfccf465cc8e9a01bb988a10831a9a73 (diff) | |
Fixed a bug where if multiple %s parameters were passed to vsprintf,
trailing 's' characters were appended to subsequent strings.
| -rw-r--r-- | kernel/kmain.c | 2 | ||||
| -rw-r--r-- | kernel/vsprintf.c | 4 |
2 files changed, 4 insertions, 2 deletions
diff --git a/kernel/kmain.c b/kernel/kmain.c index efdf8e6..52c41d1 100644 --- a/kernel/kmain.c +++ b/kernel/kmain.c @@ -8,5 +8,5 @@ void kmain(void) { printf("Kernel booting...\n"); printf("Kernel booted!\n"); - printf("Hello %s %s\n", "world!", "second"); + printf("%s %s %s\n%s %s %s\n", "first", "second", "third", "fourth", "fifth", "sixth"); } diff --git a/kernel/vsprintf.c b/kernel/vsprintf.c index ed2d8be..dca2906 100644 --- a/kernel/vsprintf.c +++ b/kernel/vsprintf.c @@ -19,7 +19,9 @@ int vsprintf(char *str, char *fmt, va_list ap) { continue; } - fmt++; + type = 0; + + fmt++; while(1) { switch(*fmt) { case 's': |
