incubator-flex-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Justin Mclean <jus...@classsoftware.com>
Subject Re: Mustella with Spaces
Date Thu, 16 Aug 2012 14:20:50 GMT
Hi,

> I'd like to help resolve the issue you are having with spaces in paths.

Thanks much appreciated.

> Which OS are you using and can you identify a path that's causing the
> problem (e.g., your home directory, the Flex SDK directory). If you are
> using Windows, which Unix shell are you using?

I'm using OSX but the issue is many fold and not OSX specific.

First off minor issue with the build file - easily enough fixed.

-            <sysproperty key="mxmlc.args" value="${mxmlc.args} -source-path=${mustella.dir}/Assets
"/>
+            <sysproperty key="mxmlc.args" value="${mxmlc.args}" />
+        	<sysproperty key="source-path" value="${mustella.dir}/Assets"/>

Next issue I think is with how "-source-path" is added to arguments in CompileMustellaSwfs.java,
it's missing quotes this needs to be changed in a dozen or so places. Might be other ways
of solving this.

eg line 960 in CompileMustellaSwfs.java change
args+=" -source-path=" + pieces[i];
to
args+=" -source-path=\"" + pieces[i] + "\"";

Possibly similar changes need to be made in CompilUtils.java and MustellaDirs.java.

Next after the argument string is build up it's split on spaces via this (line 1007 in CompileMustellaSwfs.java)

    defaultArgs=StringUtils.StringToArray(args);

Not so easy to fix. I've played about changing it to something like this:

    Matcher match = Pattern.compile("([^\\S]*\"[^\"]*\")|(\\S+)").matcher(args);
    ArrayList argList = new ArrayList();
    
    while (match.find()) {
        if (match.group(1) == null) {
        	argList.add(match.group(2));
        } else {
        	argList.add(match.group(1));
        }
    }

Not quite right/working yet, but  you get the idea.

But the real issue with line 1007 is as far as I can see there's no need to build up a string
only to convert it to an array when you could build the array in the first place. That may
be the way to fix the issue rather than playing about with regular expressions.

Thanks,
Justin


Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message