Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/generic/src/printf/vprintf.c

    r690ad20 r163e34c  
    3737#include <print.h>
    3838#include <printf_core.h>
     39#include <putchar.h>
    3940#include <str.h>
    4041#include <synch/spinlock.h>
     
    4344static errno_t vprintf_str_write(const char *str, size_t size, void *data)
    4445{
    45         putstr(str, size);
     46        size_t offset = 0;
     47
     48        while (offset < size)
     49                putuchar(str_decode(str, &offset, size));
     50
    4651        return EOK;
    4752}
     
    4954int puts(const char *str)
    5055{
    51         size_t n = str_size(str);
    52         putstr(str, n);
    53         return n;
     56        size_t offset = 0;
     57        size_t chars = 0;
     58        char32_t uc;
     59
     60        console_lock();
     61
     62        while ((uc = str_decode(str, &offset, STR_NO_LIMIT)) != 0) {
     63                putuchar(uc);
     64                chars++;
     65        }
     66
     67        putuchar('\n');
     68
     69        console_unlock();
     70        return chars;
    5471}
    5572
Note: See TracChangeset for help on using the changeset viewer.