Changes in uspace/lib/c/generic/io/vprintf.c [163e34c:694ca3d6] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/c/generic/io/vprintf.c
r163e34c r694ca3d6 42 42 static FIBRIL_MUTEX_INITIALIZE(printf_mutex); 43 43 44 static errno_t vprintf_str_write(const char *str, size_t size, void *stream)44 static int vprintf_str_write(const char *str, size_t size, void *stream) 45 45 { 46 errno_t old_errno = errno; 46 size_t wr = fwrite(str, 1, size, (FILE *) stream); 47 return str_nlength(str, wr); 48 } 47 49 48 errno = EOK; 49 size_t written = fwrite(str, 1, size, (FILE *) stream); 50 static int vprintf_wstr_write(const char32_t *str, size_t size, void *stream) 51 { 52 size_t offset = 0; 53 size_t chars = 0; 50 54 51 if (errno == EOK && written != size) 52 errno = EIO; 55 while (offset < size) { 56 if (fputuc(str[chars], (FILE *) stream) <= 0) 57 break; 53 58 54 if (errno != EOK) 55 return errno; 59 chars++; 60 offset += sizeof(char32_t); 61 } 56 62 57 errno = old_errno; 58 return EOK; 63 return chars; 59 64 } 60 65 … … 72 77 printf_spec_t ps = { 73 78 vprintf_str_write, 79 vprintf_wstr_write, 74 80 stream 75 81 };
Note:
See TracChangeset
for help on using the changeset viewer.