Test Blame

src/test/java/org/apache/commons/exec/CommandLineTest.java
TagDateBlameLineSource
  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
    }

Found Source Blame

src/main/java/org/apache/commons/exec/util/StringUtils.java
TagDateBlameLineSource
  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;
src/main/java/org/apache/commons/exec/CommandLine.java
TagDateBlameLineSource
  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);