| Tag | Date | Blame | Line | Source |
|---|---|---|---|---|
| EXEC_1_0_1_RC1 | Mon Apr 27 00:01:06 JST 2009 | 12b4a2 | 391 | public void testCommandLineParsingWithExpansion3(){ |
| EXEC_1_0_1_RC1 | Mon Apr 27 00:01:06 JST 2009 | 12b4a2 | 392 | CommandLine cmdl = CommandLine.parse("AcroRd32.exe"); |
| EXEC_1_0_1_RC1 | Mon Apr 27 00:01:06 JST 2009 | 12b4a2 | 393 | cmdl.addArgument("/p"); |
| EXEC_1_0_1_RC1 | Mon Apr 27 00:01:06 JST 2009 | 12b4a2 | 394 | cmdl.addArgument("/h"); |
| EXEC_1_0_1_RC1 | Mon Apr 27 00:01:06 JST 2009 | 12b4a2 | 395 | cmdl.addArgument("${file}"); |
| EXEC_1_0_1_RC1 | Mon Apr 27 00:01:06 JST 2009 | 12b4a2 | 396 | HashMap params = new HashMap(); |
| EXEC_1_0_1_RC1 | Mon Apr 27 00:01:06 JST 2009 | 12b4a2 | 397 | params.put("file", "C:\\Document And Settings\\documents\\432432.pdf"); |
| EXEC_1_0_1_RC1 | Mon Apr 27 00:01:06 JST 2009 | 12b4a2 | 398 | cmdl.setSubstitutionMap(params); |
| EXEC_1_0_1_RC1 | Mon Apr 27 00:01:06 JST 2009 | 12b4a2 | 399 | String[] result = cmdl.toStrings(); |
| EXEC_1_0_1_RC1 | Mon Apr 27 00:01:06 JST 2009 | 12b4a2 | 400 | assertEquals("AcroRd32.exe", result[0]); |
| EXEC_1_0_1_RC1 | Mon Apr 27 00:01:06 JST 2009 | 12b4a2 | 401 | assertEquals("/p", result[1]); |
| EXEC_1_0_1_RC1 | Mon Apr 27 00:01:06 JST 2009 | 12b4a2 | 402 | assertEquals("/h", result[2]); |
| EXEC_1_0_1_RC1 | Mon Apr 27 00:01:06 JST 2009 | 12b4a2 | 403 | assertEquals("C:\\Document And Settings\\documents\\432432.pdf", result[3]); |
| EXEC_1_0_1_RC1 | Mon Apr 27 00:01:06 JST 2009 | 12b4a2 | 404 | |
| EXEC_1_0_1_RC1 | Mon Apr 27 00:01:06 JST 2009 | 12b4a2 | 405 | } |
| Tag | Date | Blame | Line | Source |
|---|---|---|---|---|
| EXEC_1_0_0_RC1 | Sat Jul 19 04:39:05 JST 2008 | dcbad9 | 59 | StringBuffer argBuf = new StringBuffer(); |
| EXEC_1_0_0_RC1 | Sat Jul 19 04:39:05 JST 2008 | dcbad9 | 61 | if (argStr == null || argStr.length() == 0) { |
| EXEC_1_0_0_RC1 | Sat Jul 19 04:39:05 JST 2008 | dcbad9 | 65 | if (vars == null || vars.size() == 0) { |
| EXEC_1_0_0_RC1 | Sat Jul 19 04:39:05 JST 2008 | dcbad9 | 69 | int argStrLength = argStr.length(); |
| EXEC_1_0_0_RC1 | Sat Jul 19 04:39:05 JST 2008 | dcbad9 | 71 | for (int cIdx = 0; cIdx < argStrLength;) { |
| EXEC_1_0_0_RC1 | Sat Jul 19 04:39:05 JST 2008 | dcbad9 | 73 | char ch = argStr.charAt(cIdx); |
| EXEC_1_0_0_RC1 | Sat Jul 19 04:39:05 JST 2008 | dcbad9 | 74 | char del = ' '; |
| EXEC_1_0_0_RC1 | Sat Jul 19 04:39:05 JST 2008 | dcbad9 | 76 | switch (ch) { |
| EXEC_1_0_0_RC1 | Sat Jul 19 04:39:05 JST 2008 | dcbad9 | 79 | StringBuffer nameBuf = new StringBuffer(); |
| EXEC_1_0_0_RC1 | Sat Jul 19 04:39:05 JST 2008 | dcbad9 | 80 | del = argStr.charAt(cIdx + 1); |
| EXEC_1_0_0_RC1 | Sat Jul 19 04:39:05 JST 2008 | dcbad9 | 81 | if (del == '{') { |
| EXEC_1_0_0_RC1 | Sat Jul 19 04:39:05 JST 2008 | dcbad9 | 82 | cIdx++; |
| EXEC_1_0_0_RC1 | Sat Jul 19 04:39:05 JST 2008 | dcbad9 | 84 | for (++cIdx; cIdx < argStr.length(); ++cIdx) { |
| EXEC_1_0_0_RC1 | Sat Jul 19 04:39:05 JST 2008 | dcbad9 | 85 | ch = argStr.charAt(cIdx); |
| EXEC_1_0_0_RC1 | Sat Jul 19 04:39:05 JST 2008 | dcbad9 | 86 | if (ch == '_' || ch == '.' || ch == '-' || ch == '+' || Character.isLetterOrDigit(ch)) |
| EXEC_1_0_0_RC1 | Sat Jul 19 04:39:05 JST 2008 | dcbad9 | 87 | nameBuf.append(ch); |
| EXEC_1_0_0_RC1 | Sat Jul 19 04:39:05 JST 2008 | dcbad9 | 92 | if (nameBuf.length() > 0) { |
| EXEC_1_0_0_RC1 | Sat Jul 19 04:39:05 JST 2008 | dcbad9 | 93 | Object temp = vars.get(nameBuf.toString()); |
| EXEC_1_0_0_RC1 | Sat Jul 19 04:39:05 JST 2008 | dcbad9 | 94 | String value = (temp != null ? temp.toString() : null); |
| EXEC_1_0_0_RC1 | Sat Jul 19 04:39:05 JST 2008 | dcbad9 | 96 | if (value != null) { |
| EXEC_1_0_0_RC1 | Sat Jul 19 04:39:05 JST 2008 | dcbad9 | 97 | argBuf.append(value); |
| EXEC_1_0_0_RC1 | Sat Jul 19 04:39:05 JST 2008 | dcbad9 | 108 | del = argStr.charAt(cIdx); |
| EXEC_1_0_0_RC1 | Sat Jul 19 04:39:05 JST 2008 | dcbad9 | 110 | if (del != '}') { |
| EXEC_1_0_0_RC1 | Sat Jul 19 04:39:05 JST 2008 | dcbad9 | 115 | cIdx++; |
| EXEC_1_0_0_RC1 | Sat Jul 19 04:39:05 JST 2008 | dcbad9 | 124 | argBuf.append(ch); |
| EXEC_1_0_0_RC1 | Sat Jul 19 04:39:05 JST 2008 | dcbad9 | 125 | ++cIdx; |
| EXEC_1_0_0_RC1 | Sat Jul 19 04:39:05 JST 2008 | dcbad9 | 128 | } |
| EXEC_1_0_0_RC1 | Sat Jul 19 04:39:05 JST 2008 | dcbad9 | 130 | return argBuf; |
| EXEC_1_0_0_RC1 | Sat Jul 19 05:25:50 JST 2008 | 963a84 | 163 | return arg.replace(SLASH_CHAR, File.separatorChar).replace( |
| EXEC_1_0_0_RC1 | Sat Jul 19 05:25:50 JST 2008 | 963a84 | 199 | String cleanedArgument = argument.trim(); |
| EXEC_1_0_0_RC1 | Sat Jul 19 05:25:50 JST 2008 | 963a84 | 201 | while(cleanedArgument.startsWith(SINGLE_QUOTE) || cleanedArgument.startsWith(DOUBLE_QUOTE)) { |
| EXEC_1_0_0_RC1 | Sat Jul 19 05:25:50 JST 2008 | 963a84 | 204 | while(cleanedArgument.endsWith(SINGLE_QUOTE) || cleanedArgument.endsWith(DOUBLE_QUOTE)) { |
| EXEC_1_0_0_RC1 | Sat Jul 19 05:25:50 JST 2008 | 963a84 | 208 | final StringBuffer buf = new StringBuffer(); |
| EXEC_1_0_0_RC1 | Sat Jul 19 05:25:50 JST 2008 | 963a84 | 209 | if (cleanedArgument.indexOf(DOUBLE_QUOTE) > -1) { |
| EXEC_1_0_0_RC1 | Sat Jul 19 05:25:50 JST 2008 | 963a84 | 217 | } else if (cleanedArgument.indexOf(SINGLE_QUOTE) > -1 |
| EXEC_1_0_0_RC1 | Sat Jul 19 05:25:50 JST 2008 | 963a84 | 218 | || cleanedArgument.indexOf(" ") > -1) { |
| EXEC_1_0_0_RC1 | Sat Jul 19 05:25:50 JST 2008 | 963a84 | 222 | return cleanedArgument; |
| Tag | Date | Blame | Line | Source |
|---|---|---|---|---|
| EXEC_1_0_0 | Tue Feb 24 01:03:17 JST 2009 | 7c5d81 | 37 | private final Vector arguments = new Vector(); |
| sandbox | Sat Dec 08 01:38:27 JST 2007 | 29abee | 62 | return parse(line, null); |
| sandbox | Sun Mar 12 21:07:59 JST 2006 | a3538e | 75 | if (line == null) { |
| sandbox | Sun Mar 12 21:07:59 JST 2006 | a3538e | 77 | } else if (line.trim().length() == 0) { |
| sandbox | Sun Mar 12 21:07:59 JST 2006 | a3538e | 80 | String[] tmp = translateCommandline(line); |
| sandbox | Sun Mar 12 21:07:59 JST 2006 | a3538e | 82 | CommandLine cl = new CommandLine(tmp[0]); |
| sandbox | Sat Dec 08 01:38:27 JST 2007 | 29abee | 83 | cl.setSubstitutionMap(substitutionMap); |
| sandbox | Sun Mar 12 04:18:50 JST 2006 | 18cb09 | 84 | for (int i = 1; i < tmp.length; i++) { |
| sandbox | Sun Mar 12 21:07:59 JST 2006 | a3538e | 88 | return cl; |
| sandbox | Sun Mar 12 21:07:59 JST 2006 | a3538e | 97 | public CommandLine(String executable) { |
| sandbox | Sat Apr 12 01:37:11 JST 2008 | 7aa110 | 98 | this.isFile=false; |
| EXEC_1_0_0 | Tue Feb 24 01:03:17 JST 2009 | 7c5d81 | 99 | this.executable=getExecutable(executable); |
| sandbox | Sun Mar 12 04:18:50 JST 2006 | 18cb09 | 100 | } |
| EXEC_1_0_0_RC1 | Sat Jul 19 05:40:44 JST 2008 | b95e06 | 121 | return StringUtils.fixFileSeparatorChar(expandArgument(executable)); |
| sandbox | Wed Dec 05 07:15:42 JST 2007 | 0b6989 | 194 | return this.addArgument(argument, true); |
| sandbox | Wed Dec 05 07:15:42 JST 2007 | 0b6989 | 205 | if (argument == null) { |
| sandbox | Wed Dec 05 07:15:42 JST 2007 | 0b6989 | 209 | if(handleQuoting) { |
| EXEC_1_0_0_RC1 | Sat Jul 19 05:23:35 JST 2008 | 43d166 | 210 | arguments.add(StringUtils.quoteArgument(argument)); |
| sandbox | Wed Dec 05 07:15:42 JST 2007 | 0b6989 | 216 | return this; |
| sandbox | Sat Dec 08 01:38:27 JST 2007 | 29abee | 225 | String[] result = new String[arguments.size()]; |
| sandbox | Sat Dec 08 01:38:27 JST 2007 | 29abee | 226 | result = (String[]) arguments.toArray(result); |
| sandbox | Sat Dec 08 01:38:27 JST 2007 | 29abee | 227 | return this.expandArguments(result); |
| sandbox | Sat Dec 08 01:38:27 JST 2007 | 29abee | 234 | return substitutionMap; |
| sandbox | Sat Dec 08 01:38:27 JST 2007 | 29abee | 244 | this.substitutionMap = substitutionMap; |
| sandbox | Sun Mar 12 04:18:50 JST 2006 | 18cb09 | 245 | } |
| EXEC_1_0_0_RC1 | Sat Jul 19 05:23:35 JST 2008 | 43d166 | 253 | final String[] result = new String[arguments.size() + 1]; |
| EXEC_1_0_0_RC1 | Sat Jul 19 05:23:35 JST 2008 | 43d166 | 254 | result[0] = this.getExecutable(); |
| EXEC_1_0_0_RC1 | Sat Jul 19 05:23:35 JST 2008 | 43d166 | 255 | System.arraycopy(getArguments(), 0, result, 1, result.length-1); |
| EXEC_1_0_0_RC1 | Sat Jul 19 05:23:35 JST 2008 | 43d166 | 256 | return result; |
| sandbox | Sat Dec 08 01:38:27 JST 2007 | 29abee | 298 | StringBuffer stringBuffer = StringUtils.stringSubstitution(argument, this.getSubstitutionMap(), true); |
| sandbox | Sat Dec 08 01:38:27 JST 2007 | 29abee | 299 | return stringBuffer.toString(); |
| sandbox | Sat Dec 08 01:38:27 JST 2007 | 29abee | 309 | String[] result = new String[arguments.length]; |
| sandbox | Sat Dec 08 01:38:27 JST 2007 | 29abee | 310 | for(int i=0; i |
| sandbox | Sat Dec 08 01:38:27 JST 2007 | 29abee | 311 | result[i] = this.expandArgument(arguments[i]); |
| sandbox | Sat Dec 08 01:38:27 JST 2007 | 29abee | 313 | return result; |
| sandbox | Sun Mar 12 04:18:50 JST 2006 | 18cb09 | 326 | if (toProcess == null || toProcess.length() == 0) { |
| sandbox | Sun Mar 12 04:18:50 JST 2006 | 18cb09 | 333 | final int normal = 0; |
| sandbox | Sun Mar 12 04:18:50 JST 2006 | 18cb09 | 334 | final int inQuote = 1; |
| sandbox | Sun Mar 12 04:18:50 JST 2006 | 18cb09 | 335 | final int inDoubleQuote = 2; |
| sandbox | Sun Mar 12 04:18:50 JST 2006 | 18cb09 | 336 | int state = normal; |
| sandbox | Sun Mar 12 04:18:50 JST 2006 | 18cb09 | 337 | StringTokenizer tok = new StringTokenizer(toProcess, "\"\' ", true); |
| sandbox | Sun Mar 12 04:18:50 JST 2006 | 18cb09 | 338 | Vector v = new Vector(); |
| sandbox | Sun Mar 12 04:18:50 JST 2006 | 18cb09 | 339 | StringBuffer current = new StringBuffer(); |
| sandbox | Sun Mar 12 04:18:50 JST 2006 | 18cb09 | 340 | boolean lastTokenHasBeenQuoted = false; |
| sandbox | Sun Mar 12 04:18:50 JST 2006 | 18cb09 | 342 | while (tok.hasMoreTokens()) { |
| sandbox | Sun Mar 12 04:18:50 JST 2006 | 18cb09 | 343 | String nextTok = tok.nextToken(); |
| sandbox | Sun Mar 12 04:18:50 JST 2006 | 18cb09 | 344 | switch (state) { |
| sandbox | Sun Mar 12 04:18:50 JST 2006 | 18cb09 | 362 | if ("\'".equals(nextTok)) { |
| sandbox | Sun Mar 12 04:18:50 JST 2006 | 18cb09 | 364 | } else if ("\"".equals(nextTok)) { |
| sandbox | Sun Mar 12 04:18:50 JST 2006 | 18cb09 | 366 | } else if (" ".equals(nextTok)) { |
| sandbox | Sun Mar 12 04:18:50 JST 2006 | 18cb09 | 372 | current.append(nextTok); |
| sandbox | Sun Mar 12 04:18:50 JST 2006 | 18cb09 | 374 | lastTokenHasBeenQuoted = false; |
| sandbox | Sun Mar 12 04:18:50 JST 2006 | 18cb09 | 377 | } |
| sandbox | Sun Mar 12 04:18:50 JST 2006 | 18cb09 | 379 | if (lastTokenHasBeenQuoted || current.length() != 0) { |
| sandbox | Sun Mar 12 04:18:50 JST 2006 | 18cb09 | 380 | v.addElement(current.toString()); |
| sandbox | Sun Mar 12 04:18:50 JST 2006 | 18cb09 | 383 | if (state == inQuote || state == inDoubleQuote) { |
| sandbox | Sun Mar 12 04:18:50 JST 2006 | 18cb09 | 388 | String[] args = new String[v.size()]; |
| sandbox | Sun Mar 12 04:18:50 JST 2006 | 18cb09 | 389 | v.copyInto(args); |
| sandbox | Sun Mar 12 04:18:50 JST 2006 | 18cb09 | 390 | return args; |
| sandbox | Wed Dec 05 07:15:42 JST 2007 | 0b6989 | 401 | if (executable == null) { |
| sandbox | Wed Dec 05 07:15:42 JST 2007 | 0b6989 | 403 | } else if(executable.trim().length() == 0) { |
| EXEC_1_0_0 | Tue Feb 24 01:03:17 JST 2009 | 7c5d81 | 406 | return StringUtils.fixFileSeparatorChar(executable); |