summaryrefslogtreecommitdiff
path: root/java
diff options
context:
space:
mode:
authorMark Spruiell <mes@zeroc.com>2004-07-14 23:19:03 +0000
committerMark Spruiell <mes@zeroc.com>2004-07-14 23:19:03 +0000
commitebd065ca0f56369cdbe64985b52fc5e09a8eb5a8 (patch)
tree44a19fb4d3fc6d89bbb9f16b6fde6e183546ff53 /java
parentchanging slice2java dependency output format (diff)
downloadice-ebd065ca0f56369cdbe64985b52fc5e09a8eb5a8.tar.bz2
ice-ebd065ca0f56369cdbe64985b52fc5e09a8eb5a8.tar.xz
ice-ebd065ca0f56369cdbe64985b52fc5e09a8eb5a8.zip
more dependency fixes
Diffstat (limited to 'java')
-rw-r--r--java/ant/Slice2FreezeJTask$Dict.classbin850 -> 850 bytes
-rw-r--r--java/ant/Slice2FreezeJTask$Index.classbin1048 -> 1048 bytes
-rw-r--r--java/ant/Slice2FreezeJTask.classbin6358 -> 6574 bytes
-rw-r--r--java/ant/Slice2FreezeJTask.java63
-rw-r--r--java/ant/Slice2JavaTask.classbin4855 -> 5181 bytes
-rw-r--r--java/ant/Slice2JavaTask.java55
-rw-r--r--java/ant/SliceTask$SliceDependency.classbin1209 -> 1209 bytes
-rw-r--r--java/ant/SliceTask.classbin5700 -> 5988 bytes
-rw-r--r--java/ant/SliceTask.java61
9 files changed, 137 insertions, 42 deletions
diff --git a/java/ant/Slice2FreezeJTask$Dict.class b/java/ant/Slice2FreezeJTask$Dict.class
index 46edb0f8173..e9ad310bf68 100644
--- a/java/ant/Slice2FreezeJTask$Dict.class
+++ b/java/ant/Slice2FreezeJTask$Dict.class
Binary files differ
diff --git a/java/ant/Slice2FreezeJTask$Index.class b/java/ant/Slice2FreezeJTask$Index.class
index 2583ac4b07a..f44df1c1fc9 100644
--- a/java/ant/Slice2FreezeJTask$Index.class
+++ b/java/ant/Slice2FreezeJTask$Index.class
Binary files differ
diff --git a/java/ant/Slice2FreezeJTask.class b/java/ant/Slice2FreezeJTask.class
index f9b968c8af7..04f6a4cbf77 100644
--- a/java/ant/Slice2FreezeJTask.class
+++ b/java/ant/Slice2FreezeJTask.class
Binary files differ
diff --git a/java/ant/Slice2FreezeJTask.java b/java/ant/Slice2FreezeJTask.java
index 5153aded9a1..39910a14b26 100644
--- a/java/ant/Slice2FreezeJTask.java
+++ b/java/ant/Slice2FreezeJTask.java
@@ -166,7 +166,6 @@ public class Slice2FreezeJTask extends SliceTask
break;
}
}
-
}
//
@@ -199,7 +198,6 @@ public class Slice2FreezeJTask extends SliceTask
}
}
-
if(!build)
{
log("skipping" + dictString + indexString);
@@ -225,7 +223,7 @@ public class Slice2FreezeJTask extends SliceTask
if(_outputDir != null)
{
cmd.append(" --output-dir ");
- cmd.append(_outputDir.toString());
+ cmd.append(_outputDirString);
}
//
@@ -245,7 +243,14 @@ public class Slice2FreezeJTask extends SliceTask
for(int i = 0; i < dirs.length; i++)
{
cmd.append(" -I");
- cmd.append(dirs[i]);
+ if(dirs[i].indexOf(' ') != -1)
+ {
+ cmd.append('"' + dirs[i] + '"');
+ }
+ else
+ {
+ cmd.append(dirs[i]);
+ }
}
}
@@ -274,7 +279,6 @@ public class Slice2FreezeJTask extends SliceTask
//
cmd.append(dictString);
-
//
// Add the --index options.
//
@@ -287,30 +291,44 @@ public class Slice2FreezeJTask extends SliceTask
while(p.hasNext())
{
File f = (File)p.next();
- cmd.append(" " + f);
+ cmd.append(" ");
+ String s = f.toString();
+ if(s.indexOf(' ') != -1)
+ {
+ cmd.append('"' + s + '"');
+ }
+ else
+ {
+ cmd.append(s);
+ }
}
+ String translator;
if(_translator == null)
{
if(_iceHome == null)
{
- _translator = new File("slice2freezej");
+ translator = "slice2freezej";
}
else
{
- _translator = new File(_iceHome + File.separator + "bin" + File.separator + "slice2freezej");
+ translator = new File(_iceHome + File.separator + "bin" + File.separator + "slice2freezej").toString();
}
}
+ else
+ {
+ translator = _translator.toString();
+ }
//
// Execute.
//
- log(_translator.toString() + " " + cmd);
+ log(translator + " " + cmd);
ExecTask task = (ExecTask)project.createTask("exec");
task.setFailonerror(true);
Argument arg = task.createArg();
arg.setLine(cmd.toString());
- task.setExecutable(_translator.toString());
+ task.setExecutable(translator);
task.execute();
//
@@ -329,7 +347,14 @@ public class Slice2FreezeJTask extends SliceTask
for(int i = 0; i < dirs.length; i++)
{
cmd.append(" -I");
- cmd.append(dirs[i]);
+ if(dirs[i].indexOf(' ') != -1)
+ {
+ cmd.append('"' + dirs[i] + '"');
+ }
+ else
+ {
+ cmd.append(dirs[i]);
+ }
}
}
@@ -340,7 +365,16 @@ public class Slice2FreezeJTask extends SliceTask
while(p.hasNext())
{
File f = (File)p.next();
- cmd.append(" " + f.toString());
+ cmd.append(" ");
+ String s = f.toString();
+ if(s.indexOf(' ') != -1)
+ {
+ cmd.append('"' + s + '"');
+ }
+ else
+ {
+ cmd.append(s);
+ }
}
//
@@ -363,7 +397,7 @@ public class Slice2FreezeJTask extends SliceTask
task.setFailonerror(true);
arg = task.createArg();
arg.setLine(cmd.toString());
- task.setExecutable(_translator.toString());
+ task.setExecutable(translator);
task.setOutputproperty(outputProperty);
task.execute();
@@ -473,7 +507,6 @@ public class Slice2FreezeJTask extends SliceTask
}
}
-
public class Index
{
private String _name;
@@ -528,10 +561,8 @@ public class Slice2FreezeJTask extends SliceTask
{
return _caseSensitive;
}
-
}
-
private java.util.List _dicts = new java.util.LinkedList();
private java.util.List _indices = new java.util.LinkedList();
}
diff --git a/java/ant/Slice2JavaTask.class b/java/ant/Slice2JavaTask.class
index 5f1174a8d0e..d36acb4486e 100644
--- a/java/ant/Slice2JavaTask.class
+++ b/java/ant/Slice2JavaTask.class
Binary files differ
diff --git a/java/ant/Slice2JavaTask.java b/java/ant/Slice2JavaTask.java
index 0a7bdae85d5..6d9479d7a38 100644
--- a/java/ant/Slice2JavaTask.java
+++ b/java/ant/Slice2JavaTask.java
@@ -139,17 +139,22 @@ public class Slice2JavaTask extends SliceTask
//
if(!buildList.isEmpty())
{
+ String translator;
if(_translator == null)
{
if(_iceHome == null)
{
- _translator = new File("slice2java");
+ translator = "slice2java";
}
else
{
- _translator = new File(_iceHome + File.separator + "bin" + File.separator + "slice2java");
+ translator = new File(_iceHome + File.separator + "bin" + File.separator + "slice2java").toString();
}
}
+ else
+ {
+ translator = _translator.toString();
+ }
StringBuffer cmd = new StringBuffer();
@@ -159,7 +164,7 @@ public class Slice2JavaTask extends SliceTask
if(_outputDir != null)
{
cmd.append(" --output-dir ");
- cmd.append(_outputDir.toString());
+ cmd.append(_outputDirString);
}
//
@@ -171,7 +176,14 @@ public class Slice2JavaTask extends SliceTask
for(int i = 0; i < dirs.length; i++)
{
cmd.append(" -I");
- cmd.append(dirs[i]);
+ if(dirs[i].indexOf(' ') != -1)
+ {
+ cmd.append('"' + dirs[i] + '"');
+ }
+ else
+ {
+ cmd.append(dirs[i]);
+ }
}
}
@@ -234,18 +246,26 @@ public class Slice2JavaTask extends SliceTask
{
File f = (File)buildList.elementAt(i);
cmd.append(" ");
- cmd.append(f.toString());
+ String s = f.toString();
+ if(s.indexOf(' ') != -1)
+ {
+ cmd.append('"' + s + '"');
+ }
+ else
+ {
+ cmd.append(s);
+ }
}
//
// Execute
//
- log(_translator.toString() + " " + cmd);
+ log(translator + " " + cmd);
ExecTask task = (ExecTask)project.createTask("exec");
task.setFailonerror(true);
Argument arg = task.createArg();
arg.setLine(cmd.toString());
- task.setExecutable(_translator.toString());
+ task.setExecutable(translator);
task.execute();
//
@@ -262,7 +282,14 @@ public class Slice2JavaTask extends SliceTask
for(int i = 0; i < dirs.length; i++)
{
cmd.append(" -I");
- cmd.append(dirs[i]);
+ if(dirs[i].indexOf(' ') != -1)
+ {
+ cmd.append('"' + dirs[i] + '"');
+ }
+ else
+ {
+ cmd.append(dirs[i]);
+ }
}
}
@@ -273,7 +300,15 @@ public class Slice2JavaTask extends SliceTask
{
File f = (File)buildList.elementAt(i);
cmd.append(" ");
- cmd.append(f.toString());
+ String s = f.toString();
+ if(s.indexOf(' ') != -1)
+ {
+ cmd.append('"' + s + '"');
+ }
+ else
+ {
+ cmd.append(s);
+ }
}
//
@@ -286,7 +321,7 @@ public class Slice2JavaTask extends SliceTask
task.setFailonerror(true);
arg = task.createArg();
arg.setLine(cmd.toString());
- task.setExecutable(_translator.toString());
+ task.setExecutable(translator);
task.setOutputproperty(outputProperty);
task.execute();
diff --git a/java/ant/SliceTask$SliceDependency.class b/java/ant/SliceTask$SliceDependency.class
index 0057d1bf927..c1ef2693045 100644
--- a/java/ant/SliceTask$SliceDependency.class
+++ b/java/ant/SliceTask$SliceDependency.class
Binary files differ
diff --git a/java/ant/SliceTask.class b/java/ant/SliceTask.class
index cccbbf7d0a2..fee66ac32ca 100644
--- a/java/ant/SliceTask.class
+++ b/java/ant/SliceTask.class
Binary files differ
diff --git a/java/ant/SliceTask.java b/java/ant/SliceTask.java
index 3a7a986ee10..125f1c3dbbd 100644
--- a/java/ant/SliceTask.java
+++ b/java/ant/SliceTask.java
@@ -57,6 +57,7 @@ public class SliceTask extends org.apache.tools.ant.Task
{
_dependencyFile = null;
_outputDir = null;
+ _outputDirString = null;
_caseSensitive = false;
_ice = false;
_includePath = null;
@@ -87,6 +88,11 @@ public class SliceTask extends org.apache.tools.ant.Task
setOutputdir(File dir)
{
_outputDir = dir;
+ _outputDirString = _outputDir.toString();
+ if(_outputDirString.indexOf(' ') != -1)
+ {
+ _outputDirString = '"' + _outputDirString + '"';
+ }
}
public void
@@ -225,21 +231,42 @@ public class SliceTask extends org.apache.tools.ant.Task
{
depline.append(line);
+ //
+ // It's easier to split up the filenames if we first convert Windows
+ // path separators into Unix path separators.
+ //
+ char[] chars = depline.toString().toCharArray();
+ int pos = 0;
+ while(pos < chars.length)
+ {
+ if(chars[pos] == '\\')
+ {
+ if(pos + 1 < chars.length)
+ {
+ //
+ // Only convert the backslash if it's not an escape.
+ //
+ if(chars[pos + 1] != ' ' && chars[pos + 1] != ':' && chars[pos + 1] != '\r' &&
+ chars[pos + 1] != '\n')
+ {
+ chars[pos] = '/';
+ }
+ }
+ }
+ ++pos;
+ }
+
//
// Split the dependencies up into filenames. Note that filenames containing
- // spaces are escaped (e.g., "C:/Program\ Files/..."), and the initial file
- // may have escaped colons.
+ // spaces are escaped and the initial file may have escaped colons
+ // (e.g., "C\:/Program\ Files/...").
//
- String str = depline.toString();
- int len = str.length();
java.util.ArrayList l = new java.util.ArrayList();
- int start = -1;
- int pos = 0;
StringBuffer file = new StringBuffer();
- while(pos < len)
+ pos = 0;
+ while(pos < chars.length)
{
- char ch = str.charAt(pos);
- if(Character.isWhitespace(ch))
+ if(Character.isWhitespace(chars[pos]))
{
if(file.length() > 0)
{
@@ -247,13 +274,9 @@ public class SliceTask extends org.apache.tools.ant.Task
file = new StringBuffer();
}
}
- else
+ else if(chars[pos] != '\\') // Skip backslash of an escaped character.
{
- if(ch == '\\') // Ignore escaped character.
- {
- ++pos;
- }
- file.append(ch);
+ file.append(chars[pos]);
}
++pos;
}
@@ -264,14 +287,19 @@ public class SliceTask extends org.apache.tools.ant.Task
//
// Create SliceDependency. We need to remove the trailing colon from the first file.
+ // We also normalize the pathname for this platform.
//
SliceDependency depend = new SliceDependency();
depend._dependencies = new String[l.size()];
l.toArray(depend._dependencies);
depend._timeStamp = new java.util.Date().getTime();
pos = depend._dependencies[0].lastIndexOf(':');
- assert(pos > 0);
+ assert(pos == depend._dependencies[0].length() - 1);
depend._dependencies[0] = depend._dependencies[0].substring(0, pos);
+ for(int i = 0; i < depend._dependencies.length; ++i)
+ {
+ depend._dependencies[i] = new File(depend._dependencies[i]).toString();
+ }
dependencies.add(depend);
depline = new StringBuffer();
@@ -336,6 +364,7 @@ public class SliceTask extends org.apache.tools.ant.Task
protected File _dependencyFile;
protected File _outputDir;
+ protected String _outputDirString;
protected boolean _caseSensitive;
protected boolean _ice;
protected Path _includePath;