diff options
author | Kacper Michajłow <kasper93@gmail.com> | 2024-03-21 04:38:00 +0100 |
---|---|---|
committer | Kacper Michajłow <kasper93@gmail.com> | 2024-04-07 20:23:04 +0200 |
commit | c389f9e75ebbac346eb8bf7ea0f788bc86a90187 (patch) | |
tree | ba58a0059037c2f8a64501d40510cd9748035a69 /osdep/io.c | |
parent | 6177aa76161703bdd710240d0d4ca955a688e4ea (diff) | |
download | mpv-c389f9e75ebbac346eb8bf7ea0f788bc86a90187.tar.bz2 mpv-c389f9e75ebbac346eb8bf7ea0f788bc86a90187.tar.xz |
win32: change fputs to fwrite wrapper
Removes mp_puts/mp_fputs and adds mp_fwrite.
In fact I wanted fwrite instead of puts, no need to make it more awkward
with the implicit new lines.
Fixes: fc55f355fc8225328cf0472e3deb4021eba96303
Diffstat (limited to 'osdep/io.c')
-rw-r--r-- | osdep/io.c | 26 |
1 files changed, 17 insertions, 9 deletions
diff --git a/osdep/io.c b/osdep/io.c index dd21314d7c..21abe0e1d5 100644 --- a/osdep/io.c +++ b/osdep/io.c @@ -309,18 +309,26 @@ static inline HANDLE get_handle(FILE *stream) return wstream; } -int mp_fputs(const char *str, FILE *stream) +size_t mp_fwrite(const void *restrict buffer, size_t size, size_t count, + FILE *restrict stream) { - HANDLE wstream = get_handle(stream); - if (mp_check_console(wstream)) - return mp_console_fputs(wstream, bstr0(str)); + if (!size || !count) + return 0; - return fputs(str, stream); -} + HANDLE wstream = get_handle(stream); + if (mp_check_console(wstream)) { + unsigned char *start = (unsigned char *)buffer; + size_t c = 0; + for (; c < count; ++c) { + if (mp_console_write(wstream, (bstr){start, size}) <= 0) + break; + start += size; + } + return c; + } -int mp_puts(const char *str) -{ - return mp_fputs(str, stdout); +#undef fwrite + return fwrite(buffer, size, count, stream); } #if HAVE_UWP |