Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/c/generic/io/vprintf.c

    r163e34c r694ca3d6  
    4242static FIBRIL_MUTEX_INITIALIZE(printf_mutex);
    4343
    44 static errno_t vprintf_str_write(const char *str, size_t size, void *stream)
     44static int vprintf_str_write(const char *str, size_t size, void *stream)
    4545{
    46         errno_t old_errno = errno;
     46        size_t wr = fwrite(str, 1, size, (FILE *) stream);
     47        return str_nlength(str, wr);
     48}
    4749
    48         errno = EOK;
    49         size_t written = fwrite(str, 1, size, (FILE *) stream);
     50static int vprintf_wstr_write(const char32_t *str, size_t size, void *stream)
     51{
     52        size_t offset = 0;
     53        size_t chars = 0;
    5054
    51         if (errno == EOK && written != size)
    52                 errno = EIO;
     55        while (offset < size) {
     56                if (fputuc(str[chars], (FILE *) stream) <= 0)
     57                        break;
    5358
    54         if (errno != EOK)
    55                 return errno;
     59                chars++;
     60                offset += sizeof(char32_t);
     61        }
    5662
    57         errno = old_errno;
    58         return EOK;
     63        return chars;
    5964}
    6065
     
    7277        printf_spec_t ps = {
    7378                vprintf_str_write,
     79                vprintf_wstr_write,
    7480                stream
    7581        };
Note: See TracChangeset for help on using the changeset viewer.