On Thu, 20 Apr 2023 18:39:59 GMT, Jorn Vernee <jver...@openjdk.org> wrote:
> Simpler reproducer: > > ``` > bash -x ./make/scripts/fixpath.sh print '-Djava.library.path=/mnt/h/xyz > --add-exports=java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED' > ``` > > Shows: > > ``` > + print_command_line '-Djava.library.path=/mnt/h/xyz > --add-exports=java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED' > + converted_args= > + for arg in "$@" > + [[ -Djava.library.path=/mnt/h/xyz > --add-exports=java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED =~ ^@(.*$) > ]] > + convert_path '-Djava.library.path=/mnt/h/xyz > --add-exports=java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED' > + [[ -Djava.library.path=/mnt/h/xyz > --add-exports=java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED =~ : ]] > + arg='-Djava.library.path=/mnt/h/xyz > --add-exports=java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED' > + winpath= > + [[ -Djava.library.path=/mnt/h/xyz > --add-exports=java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED =~ > ^([^/]*|-[^:=]*[:=]|.*file://|/[a-zA-Z:]{1,3}:?)(/mnt/)([a-z])(/[^/]+.*$) ]] > + prefix=-Djava.library.path= > + winpath='h:/xyz > --add-exports=java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED' > + [[ 20 -eq 2 ]] > + [[ '' != true ]] > + winpath='h:\xyz > --add-exports=java.base\jdk.internal.org.objectweb.asm=ALL-UNNAMED' > + [[ h:\xyz > --add-exports=java.base\jdk.internal.org.objectweb.asm=ALL-UNNAMED != '' ]] > + result='-Djava.library.path=h:\xyz > --add-exports=java.base\jdk.internal.org.objectweb.asm=ALL-UNNAMED' > ``` > > i.e. fixpath thinks all of the stuff after `/mnt/h` is a part of the path Do you know if fixpath will take unix-style path with spaces as input? If it should reject spaces, then we can run fixpath before quote and reject this quoted argument with space, which is known to be absent in unix paths. ------------- PR Comment: https://git.openjdk.org/jdk/pull/13550#issuecomment-1516973910