diff options
Diffstat (limited to 'src/kernel')
| -rw-r--r-- | src/kernel/console.C | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/kernel/console.C b/src/kernel/console.C index 06cd98e2b..2c33645fe 100644 --- a/src/kernel/console.C +++ b/src/kernel/console.C @@ -31,6 +31,20 @@ class ConsoleDisplay static void display(Console& c, _T value) {}; }; +template <ConsoleTraits::trait _S> +class ConsoleDisplay<char*, _S> +{ + public: + static void display(Console&c, char* value) + { + while(*value != '\0') + { + c.putc(*value); + value++; + } + } +}; + template <> class ConsoleDisplay<char, ConsoleTraits::NONE> { @@ -112,6 +126,7 @@ void printk(const char* str, ...) if (format) { ConsoleDisplay<char>::display(console, '%'); + format = false; } else { @@ -138,6 +153,11 @@ void printk(const char* str, ...) size++; break; } + case 'z': // size_t or ssize_t + { + size = 4; + break; + } case 'd': // decimal { format = false; |

