summaryrefslogtreecommitdiff
path: root/java/ant/SliceTask.java
diff options
context:
space:
mode:
authorMark Spruiell <mes@zeroc.com>2004-07-12 01:02:50 +0000
committerMark Spruiell <mes@zeroc.com>2004-07-12 01:02:50 +0000
commit4e36b22335941e6a450384ade21d57cc2e185de1 (patch)
treec5236a00d72d241679bc66e337a9ca9bcfe11253 /java/ant/SliceTask.java
parentrenaming icicle to icecs (diff)
downloadice-4e36b22335941e6a450384ade21d57cc2e185de1.tar.bz2
ice-4e36b22335941e6a450384ade21d57cc2e185de1.tar.xz
ice-4e36b22335941e6a450384ade21d57cc2e185de1.zip
fixing dependencies
Diffstat (limited to 'java/ant/SliceTask.java')
-rw-r--r--java/ant/SliceTask.java48
1 files changed, 44 insertions, 4 deletions
diff --git a/java/ant/SliceTask.java b/java/ant/SliceTask.java
index f405fe10ca5..1601c23c05e 100644
--- a/java/ant/SliceTask.java
+++ b/java/ant/SliceTask.java
@@ -225,12 +225,52 @@ public class SliceTask extends org.apache.tools.ant.Task
{
depline.append(line);
+ //
+ // Split the dependencies up into filenames. Note that filenames containing
+ // spaces are escaped (e.g., "C:/Program\ Files/...").
+ //
+ // We skip the initial file (which is not a complete path) that is terminated
+ // with a colon.
+ //
+ String str = depline.toString();
+ int len = str.length();
+ java.util.ArrayList l = new java.util.ArrayList();
+ int start = -1;
+ int pos = str.indexOf(':') + 1;
+ assert(pos > 0);
+ while(pos < len)
+ {
+ char ch = str.charAt(pos);
+ if(Character.isWhitespace(ch))
+ {
+ if(start != -1)
+ {
+ l.add(str.substring(start, pos));
+ start = -1;
+ }
+ }
+ else if(ch == '\\') // Ignore escaped character.
+ {
+ ++pos;
+ }
+ else if(start == -1)
+ {
+ start = pos;
+ }
+ ++pos;
+ }
+ if(start != -1);
+ {
+ l.add(str.substring(start));
+ }
+
+ //
+ // Create SliceDependency. We need to remove the trailing colon from the first file.
+ //
SliceDependency depend = new SliceDependency();
-
- depend._dependencies = depline.toString().split("[ \t\n\r]+");
- assert(depend._dependencies.length > 0);
+ depend._dependencies = new String[l.size()];
+ l.toArray(depend._dependencies);
depend._timeStamp = new java.util.Date().getTime();
-
dependencies.add(depend);
depline = new StringBuffer();