8006536: [launcher] removes trailing slashes on arguments
Reviewed-by: ksrini, akhil
Contributed-by: jviswana@linux.vnet.ibm.com
--- a/jdk/src/windows/bin/cmdtoargs.c Fri Feb 01 06:51:37 2013 +0000
+++ b/jdk/src/windows/bin/cmdtoargs.c Fri Feb 01 07:25:51 2013 -0800
@@ -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 @@
case ' ':
case '\t':
+ if (prev == '\\') {
+ for (i = 0 ; i < slashes; i++) {
+ *dest++ = prev;
+ }
+ }
if (quotes % 2 == 1) {
*dest++ = ch;
} else {
@@ -591,6 +596,12 @@
// 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);
--- a/jdk/test/tools/launcher/Arrrghs.java Fri Feb 01 06:51:37 2013 +0000
+++ b/jdk/test/tools/launcher/Arrrghs.java Fri Feb 01 07:25:51 2013 -0800
@@ -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 @@
checkArgumentParsing("../../*", "../../*");
checkArgumentParsing("..\\..\\", "..\\..\\");
checkArgumentParsing("../../", "../../");
+ checkArgumentParsing("a b\\ c", "a", "b\\", "c");
}
private void initEmptyDir(File emptyDir) throws IOException {