From 7709f98eb6ffcbd732a9b9941d8e444fae6a58b1 Mon Sep 17 00:00:00 2001 From: Yasuhiro Matsumoto Date: Thu, 17 Apr 2025 16:39:37 +0900 Subject: [PATCH 1/3] fix qjsc for Windows --- qjsc.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/qjsc.c b/qjsc.c index f9e1928..3e79df9 100644 --- a/qjsc.c +++ b/qjsc.c @@ -374,10 +374,20 @@ void help(void) exit(1); } -#if defined(CONFIG_CC) && !defined(_WIN32) +#if defined(CONFIG_CC) int exec_cmd(char **argv) { +#ifdef _WIN32 + int ret; + + ret = _spawnvp(_P_WAIT, argv[0], (const char * const *)argv); + if (ret == -1) { + return -1; + } + + return ret; +#else int pid, status, ret; pid = fork(); @@ -392,6 +402,7 @@ int exec_cmd(char **argv) break; } return WEXITSTATUS(status); +#endif } static int output_executable(const char *out_filename, const char *cfilename, From d05865a12b1e788a47b91712361354d240dae5f7 Mon Sep 17 00:00:00 2001 From: Yasuhiro Matsumoto Date: Thu, 17 Apr 2025 16:42:08 +0900 Subject: [PATCH 2/3] use name "a.exe" for Windows --- qjsc.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/qjsc.c b/qjsc.c index 3e79df9..ac9a193 100644 --- a/qjsc.c +++ b/qjsc.c @@ -690,7 +690,11 @@ int main(int argc, char **argv) if (!out_filename) { if (output_type == OUTPUT_EXECUTABLE) { +#ifdef _WIN32 + out_filename = "a.exe"; +#else out_filename = "a.out"; +#endif } else { out_filename = "out.c"; } From f00c7171e6f315c2164e1857e6b67c2d9f788848 Mon Sep 17 00:00:00 2001 From: Yasuhiro Matsumoto Date: Thu, 17 Apr 2025 16:51:01 +0900 Subject: [PATCH 3/3] cosmetic changes --- qjsc.c | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/qjsc.c b/qjsc.c index ac9a193..e83fe57 100644 --- a/qjsc.c +++ b/qjsc.c @@ -379,14 +379,7 @@ void help(void) int exec_cmd(char **argv) { #ifdef _WIN32 - int ret; - - ret = _spawnvp(_P_WAIT, argv[0], (const char * const *)argv); - if (ret == -1) { - return -1; - } - - return ret; + return _spawnvp(_P_WAIT, argv[0], (const char * const *)argv); #else int pid, status, ret;