aboutsummaryrefslogtreecommitdiff
path: root/lib/compat/w32_wmain.c
diff options
context:
space:
mode:
authorDavid Oberhollenzer <david.oberhollenzer@sigma-star.at>2023-01-31 11:21:30 +0100
committerDavid Oberhollenzer <david.oberhollenzer@sigma-star.at>2023-01-31 13:51:49 +0100
commitcdccc69c62579b0c13b35fad0728079652b8f3c9 (patch)
tree9fa54c710f73c5e08a9c8466e7a712eb63ee07ac /lib/compat/w32_wmain.c
parent2182129c8f359c4fa1390eaba7a65b595ccd4182 (diff)
Move library source into src sub-directory
Signed-off-by: David Oberhollenzer <david.oberhollenzer@sigma-star.at>
Diffstat (limited to 'lib/compat/w32_wmain.c')
-rw-r--r--lib/compat/w32_wmain.c83
1 files changed, 0 insertions, 83 deletions
diff --git a/lib/compat/w32_wmain.c b/lib/compat/w32_wmain.c
deleted file mode 100644
index 9b3e354..0000000
--- a/lib/compat/w32_wmain.c
+++ /dev/null
@@ -1,83 +0,0 @@
-/* SPDX-License-Identifier: GPL-3.0-or-later */
-/*
- * w32_wmain.c
- *
- * Copyright (C) 2021 David Oberhollenzer <goliath@infraroot.at>
- */
-#include "config.h"
-#include "compat.h"
-
-#include <stdio.h>
-#include <stdlib.h>
-
-#ifdef _WIN32
-#define WIN32_LEAN_AND_MEAN
-#include <windows.h>
-#include <shellapi.h>
-
-#undef main
-
-int main(int argc, char **argv)
-{
- WCHAR *cmdline, **argList;
- int i, ret, utf8_argc;
- char **utf8_argv;
- (void)argc;
- (void)argv;
-
- /* get the UTF-16 encoded command line arguments */
- cmdline = GetCommandLineW();
- argList = CommandLineToArgvW(cmdline, &utf8_argc);
- if (argList == NULL)
- goto fail_oom;
-
- /* convert to UTF-8 */
- utf8_argv = calloc(sizeof(utf8_argv[0]), utf8_argc);
- if (utf8_argv == NULL)
- goto fail_oom;
-
- for (i = 0; i < utf8_argc; ++i) {
- DWORD length = WideCharToMultiByte(CP_UTF8, 0, argList[i],
- -1, NULL, 0, NULL, NULL);
- if (length <= 0)
- goto fail_conv;
-
- utf8_argv[i] = calloc(1, length + 1);
- if (utf8_argv[i] == NULL)
- goto fail_oom;
-
- WideCharToMultiByte(CP_UTF8, 0, argList[i], -1,
- utf8_argv[i], length + 1, NULL, NULL);
- utf8_argv[i][length] = '\0';
- }
-
- LocalFree(argList);
- argList = NULL;
-
- /* call the actual main function */
- ret = sqfs_tools_main(utf8_argc, utf8_argv);
-
- /* cleanup */
- for (i = 0; i < utf8_argc; ++i)
- free(utf8_argv[i]);
-
- free(utf8_argv);
- return ret;
-fail_conv:
- w32_perror("Converting UTF-16 argument to UTF-8");
- goto fail;
-fail_oom:
- fputs("out of memory\n", stderr);
- goto fail;
-fail:
- if (utf8_argv != NULL) {
- for (i = 0; i < utf8_argc; ++i)
- free(utf8_argv[i]);
- free(utf8_argv);
- }
- if (argList != NULL) {
- LocalFree(argList);
- }
- return EXIT_FAILURE;
-}
-#endif