From dddfb43c33cb6d128e29af8059b1fda042d0a693 Mon Sep 17 00:00:00 2001 From: Cameron Purdy <699204+cpurdy@users.noreply.github.com> Date: Wed, 15 Jun 2022 13:47:00 -0400 Subject: [PATCH] Fixes for Windows (it's apparently an OS from some company in Washington State) --- .../java/org/xvm/runtime/NativeContainer.java | 6 +++ .../build/exe/windows_launcher.exe | Bin 381353 -> 381894 bytes javatools_launcher/src/main/c/os_windows.c | 39 ++++++++++++++++++ 3 files changed, 45 insertions(+) mode change 100644 => 100755 javatools_launcher/src/main/c/os_windows.c diff --git a/javatools/src/main/java/org/xvm/runtime/NativeContainer.java b/javatools/src/main/java/org/xvm/runtime/NativeContainer.java index bf3aae0ff1..3f0316a446 100644 --- a/javatools/src/main/java/org/xvm/runtime/NativeContainer.java +++ b/javatools/src/main/java/org/xvm/runtime/NativeContainer.java @@ -4,6 +4,10 @@ import java.io.File; import java.io.IOException; +import java.net.URLDecoder; + +import java.nio.charset.StandardCharsets; + import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; @@ -127,6 +131,8 @@ private ConstantPool loadNativeTemplates() } String sRoot = xObject.class.getProtectionDomain().getCodeSource().getLocation().getFile(); + sRoot = URLDecoder.decode(sRoot, StandardCharsets.UTF_8); + Map mapTemplateClasses = new HashMap<>(); if (sRoot.endsWith(".jar")) { diff --git a/javatools_launcher/build/exe/windows_launcher.exe b/javatools_launcher/build/exe/windows_launcher.exe index 36e390e430d2710c53298871349361376e514df9..3d104c68a7a80d75297d35d50f3e16fb00ec6b88 100755 GIT binary patch delta 18393 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 %*I5i(9ft=EmItwIAgIx6CXweIzUt@ zrpgIWEYMUr14xVpu>fh)jEkkLlx6}w2!uV(6=^@6dlUojAQXL?=*|HN)VTW)hyjI_ zUS)26W;USC7W@~;O-;LfaHDL{cuohh+mS8iXEL=N#o}$$w0S1XIyFmm9T4_7t9t;* zQw~??uBDYrtemUH&tBN9(`4ZgkQfc}29Ul+&0*zBK+bf^uC4duFS+ewm<93+Ysnc{z2oUx-XGa>4pBzCmT|SWQ0!F{HU+x8zqH$EMI&!AJ5r_fBo%z@fq{ETy z>iVjR1<>!+1bvA4ffHvyuL1d-;BWJt)n5kWt?9>WK&+baa05u7Y-3QTnTT6sZ;ed^ zkZ&BRu3l!v-^SwP;0S0*)e`nMY@7wi80Ym%5{ezxw4Pl^15l%`Zm6oOgVf}31c57{ zMK6i^@tqoQ9ty70WV;SXgU0#&tU5=O%+(fp=p`}R@-!5KHHx!9E;usGOfLf&r*U@; z$iFqEZUNDra|hsuuq&z5)Fp-&1cL9=45Kt4uA0>50SVRkoCKr^^*hJIY*s3b9){1M zR`A<3_FI9lb=ukQ9YD0(&`Xp*CPpt|ztY{*WbuE1bZRQ=1(Kqv;5Lv#P45rHZ%~}3 z8DT)~Xi6p1c2wDDf&zO;zoYn6R#@Y%3dlH3;nhIi(jeP_WMM*}i_}4R0LV`oo5Mh? zNSo8SeQTc<+$1$Kgm zjooP2vCY%j;srpMG&~ zY8vaYl4~4g!N}q;VvZ&Qxr0PF7wP#xv?umWKz?_$nw4q;vR_l`Ado^$h~2@Ze_sgB z!f3Fg^{eos9QzLMlLw0d-GQwIgC6cRL4SZ!9YB@N`!*Q=3Fed-(A{@J{8{MkeO0`y F|9=U+Jjeh5 diff --git a/javatools_launcher/src/main/c/os_windows.c b/javatools_launcher/src/main/c/os_windows.c old mode 100644 new mode 100755 index 7731820712..9034322a7f --- a/javatools_launcher/src/main/c/os_windows.c +++ b/javatools_launcher/src/main/c/os_windows.c @@ -28,6 +28,29 @@ const char* resolveLinks(const char* path) return path; } +const char* escapePath(const char* path) + { + if (*path == '\0' || *path == '\"' || !strchr(path, ' ')) + { + return path; + } + + int len = strlen(path); + char* result = allocBuffer(len+3); + result[0] = '\"'; + strcpy(result+1, path); + + // disallow path ending in slash + while (len >= 0 && result[len] == '\\') + { + --len; + } + + result[len+1] = '\"'; + result[len+2] = '\0'; + return result; + } + void execJava(const char* javaPath, const char* javaOpts, const char* jarPath, @@ -66,6 +89,22 @@ void execJava(const char* javaPath, --argc; ++argv; + // handle windows weirdness with paths + javaPath = escapePath(javaPath); + jarFile = escapePath(jarFile); + libPath = escapePath(libPath); + mackFile = escapePath(mackFile); + libFile = escapePath(libFile); + + #ifdef DEBUG + printf("after escape: javaPath=%s, jarFile=%s, tool=%s, libPath=%s, mackFile=%s, libFile=%s\n", + javaPath, jarFile, tool, libPath, mackFile, libFile); + for (int i = 0; i < argc; ++i) + { + printf("[%d] = \"%s\"\n", i, argv[i]); + } + #endif // DEBUG + // collect all arguments into one giant string, starting with the call to java int len = strlen(javaPath) + strlen(" ")