We have a system that contains spaces in some of its path names. Since they are part of the core code, they cannot be renamed. Dealing with this in tools that invoke command line commands was just a matter of adding sets of double quotes.
However, I haven't found a way to deal with this in the xml code that's used by the Build Forge adaptor.
For example, when attempting to have the adaptor execute the following command:
cleartool describe "foo bar"@@\main\1
The code would like the following:
<match pattern="^(.*?)\@\@(.*?)$">
<run command="cc_describe" params="$1 $2"/>
<command name="cc_describe">
<execute>
pushd cleartool desc $1@@$2;
</execute>
</command>
Assume $1 = "foo bar" and $2 = "\main\1"
At execution time, the second parameter is - of course - ignored because the first one contains a space:
Preparsing Command Set: [pushd cleartool desc $1@@$2], using Params: 'foo bar main\1'.
Command Set Parsed To: [pushd cleartool desc "foo@@bar"]
I tried fixing this by adding double quotes in the calling command:
<run command="cc_describe" params=""$1" $2"/>
The double quotes make it into the command, but do not make a difference:
Preparsing Command Set: [pushd cleartool desc $1@@$2], using Params: '"foo bar" \main\1'.
Command Set Parsed To: [pushd cleartool desc "foo@@bar"]
Attempted solution: move @@ to the calling command, remove it from the receiving command and add additional parameter (to be able to handle 1 space):
<run command="cc_describe" params="$1@@$2"/>
<command name="cc_describe">
<execute>
pushd cleartool desc $1$2$3;
</execute>
</command>
Execution result:
Preparsing Command Set: [pushd cleartool desc $1@@$2$3], using Params: 'foo bar \main\1'.
Command Set Parsed To: [pushd cleartool desc "foobar@@\main\1"]