summaryrefslogtreecommitdiffstats
path: root/osdep/io.c
diff options
context:
space:
mode:
authorKacper Michajłow <kasper93@gmail.com>2024-03-21 04:38:00 +0100
committerKacper Michajłow <kasper93@gmail.com>2024-04-07 20:23:04 +0200
commitc389f9e75ebbac346eb8bf7ea0f788bc86a90187 (patch)
treeba58a0059037c2f8a64501d40510cd9748035a69 /osdep/io.c
parent6177aa76161703bdd710240d0d4ca955a688e4ea (diff)
downloadmpv-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.c26
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