8006536: [launcher] removes trailing slashes on arguments

Reviewed-by: ksrini, akhil
This commit is contained in:
Jayashree Viswanathan 2013-02-01 07:25:51 -08:00 committed by Kumar Srinivasan
parent d0830009e8
commit 38f3a59c9a
2 changed files with 14 additions and 2 deletions

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -104,6 +104,11 @@ static char* next_arg(char* cmdline, char* arg, jboolean* wildcard) {
case ' ':
case '\t':
if (prev == '\\') {
for (i = 0 ; i < slashes; i++) {
*dest++ = prev;
}
}
if (quotes % 2 == 1) {
*dest++ = ch;
} else {
@ -591,6 +596,12 @@ int main(int argc, char* argv[]) {
// v->disable();
vectors[i++] = v;
v= new Vector(argv[0], "a b\\\\ d");
v->add("a", FALSE);
v->add("b\\\\", FALSE);
v->add("d", FALSE);
vectors[i++] = v;
dotest(vectors);
printf("All tests pass [%d]\n", i);
doexit(0);

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2007, 2012, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2007, 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -309,6 +309,7 @@ public class Arrrghs extends TestHelper {
checkArgumentParsing("../../*", "../../*");
checkArgumentParsing("..\\..\\", "..\\..\\");
checkArgumentParsing("../../", "../../");
checkArgumentParsing("a b\\ c", "a", "b\\", "c");
}
private void initEmptyDir(File emptyDir) throws IOException {