|
From: <ha...@us...> - 2007-10-19 20:49:51
|
Revision: 1783
http://cogkit.svn.sourceforge.net/cogkit/?rev=1783&view=rev
Author: hategan
Date: 2007-10-19 13:49:30 -0700 (Fri, 19 Oct 2007)
Log Message:
-----------
better quoting and escaping
Modified Paths:
--------------
trunk/current/src/cog/modules/provider-localscheduler/src/org/globus/cog/abstraction/impl/scheduler/pbs/PBSExecutor.java
Modified: trunk/current/src/cog/modules/provider-localscheduler/src/org/globus/cog/abstraction/impl/scheduler/pbs/PBSExecutor.java
===================================================================
--- trunk/current/src/cog/modules/provider-localscheduler/src/org/globus/cog/abstraction/impl/scheduler/pbs/PBSExecutor.java 2007-10-19 20:26:38 UTC (rev 1782)
+++ trunk/current/src/cog/modules/provider-localscheduler/src/org/globus/cog/abstraction/impl/scheduler/pbs/PBSExecutor.java 2007-10-19 20:49:30 UTC (rev 1783)
@@ -195,15 +195,35 @@
wr.write("/bin/echo $? >" + exitcodefile + '\n');
wr.close();
}
+
+ private static final boolean[] TRIGGERS;
+
+ static {
+ TRIGGERS = new boolean[128];
+ TRIGGERS[' '] = true;
+ TRIGGERS['\n'] = true;
+ TRIGGERS['\t'] = true;
+ TRIGGERS['|'] = true;
+ TRIGGERS['\\'] = true;
+ TRIGGERS['>'] = true;
+ TRIGGERS['<'] = true;
+ }
protected String quote(String s) {
if ("".equals(s)) {
return "\"\"";
}
boolean quotes = false;
- if (s.indexOf(' ') != -1) {
- quotes = true;
+ for (int i = 0; i < s.length(); i++) {
+ char c = s.charAt(i);
+ if (c < 128 && TRIGGERS[c]) {
+ quotes = true;
+ break;
+ }
}
+ if (!quotes) {
+ return s;
+ }
StringBuffer sb = new StringBuffer();
if (quotes) {
sb.append('"');
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|