summaryrefslogtreecommitdiffstats
path: root/osdep
diff options
context:
space:
mode:
authornanahi <130121847+na-na-hi@users.noreply.github.com>2024-02-19 03:41:45 -0500
committersfan5 <sfan5@live.de>2024-02-23 21:35:57 +0100
commit84015959cc5d36d8973b2f07ece066902bbbdbe7 (patch)
treefca1aec3c77de0218a4f5c3b7d89713c36f68482 /osdep
parentc36e051470dceb24c75d36316490e063a77dacba (diff)
downloadmpv-84015959cc5d36d8973b2f07ece066902bbbdbe7.tar.bz2
mpv-84015959cc5d36d8973b2f07ece066902bbbdbe7.tar.xz
osdep/io: move I/O utility functions to misc/io_utils
The purpose of osdep/io is to provide a wrapper for POSIX I/O functions on Windows. The last 2 functions are utility functions which don't serve this purpose. Move them to a separate file.
Diffstat (limited to 'osdep')
-rw-r--r--osdep/io.c55
-rw-r--r--osdep/io.h3
2 files changed, 0 insertions, 58 deletions
diff --git a/osdep/io.c b/osdep/io.c
index bfcd44f096..18c2a83f94 100644
--- a/osdep/io.c
+++ b/osdep/io.c
@@ -891,58 +891,3 @@ void freelocale(locale_t locobj)
}
#endif // __MINGW32__
-
-int mp_mkostemps(char *template, int suffixlen, int flags)
-{
- size_t len = strlen(template);
- char *t = len >= 6 + suffixlen ? &template[len - (6 + suffixlen)] : NULL;
- if (!t || strncmp(t, "XXXXXX", 6) != 0) {
- errno = EINVAL;
- return -1;
- }
-
- for (size_t fuckshit = 0; fuckshit < UINT32_MAX; fuckshit++) {
- // Using a random value may make it require fewer iterations (even if
- // not truly random; just a counter would be sufficient).
- size_t fuckmess = mp_rand_next();
- char crap[7] = "";
- snprintf(crap, sizeof(crap), "%06zx", fuckmess);
- memcpy(t, crap, 6);
-
- int res = open(template, O_RDWR | O_CREAT | O_EXCL | flags, 0600);
- if (res >= 0 || errno != EEXIST)
- return res;
- }
-
- errno = EEXIST;
- return -1;
-}
-
-bool mp_save_to_file(const char *filepath, const void *data, size_t size)
-{
- assert(filepath && data && size);
-
- bool result = false;
- char *tmp = talloc_asprintf(NULL, "%sXXXXXX", filepath);
- int fd = mkstemp(tmp);
- if (fd < 0)
- goto done;
- FILE *cache = fdopen(fd, "wb");
- if (!cache) {
- close(fd);
- unlink(tmp);
- goto done;
- }
- size_t written = fwrite(data, size, 1, cache);
- int ret = fclose(cache);
- if (written > 0 && !ret) {
- ret = rename(tmp, filepath);
- result = !ret;
- } else {
- unlink(tmp);
- }
-
-done:
- talloc_free(tmp);
- return result;
-}
diff --git a/osdep/io.h b/osdep/io.h
index 31d17154ed..21555e8799 100644
--- a/osdep/io.h
+++ b/osdep/io.h
@@ -239,7 +239,4 @@ extern char **environ;
#endif /* __MINGW32__ */
-int mp_mkostemps(char *template, int suffixlen, int flags);
-bool mp_save_to_file(const char *filepath, const void *data, size_t size);
-
#endif