Update of /var/cvs/src/org/mmbase/util/transformers
In directory james.mmbase.org:/tmp/cvs-serv8079/src/org/mmbase/util/transformers
Modified Files:
Tag: MMBase-1_8
RegexpReplacer.java
Log Message:
fixed MMB-1568 for mode='words only
See also: http://cvs.mmbase.org/viewcvs/src/org/mmbase/util/transformers
See also: http://www.mmbase.org/jira/browse/MMB-1568
Index: RegexpReplacer.java
===================================================================
RCS file: /var/cvs/src/org/mmbase/util/transformers/RegexpReplacer.java,v
retrieving revision 1.14.2.1
retrieving revision 1.14.2.2
diff -u -b -r1.14.2.1 -r1.14.2.2
--- RegexpReplacer.java 11 Oct 2007 11:27:12 -0000 1.14.2.1
+++ RegexpReplacer.java 18 Mar 2008 16:31:30 -0000 1.14.2.2
@@ -173,21 +173,30 @@
if (replaceFirstAll && status.used.contains(p)) continue;
Matcher m = p.matcher(string);
String replacement = (String) entry.getValue();
- boolean result = m.find();
+ boolean result = false;
+ if (to == ChunkedTransformer.XMLTEXT_WORDS || to ==
ChunkedTransformer.WORDS) {
+ result = m.matches(); // try for a full match, as string is
one word.
+ } else {
+ result = m.find();
+ }
if (result) {
r = true;
StringBuffer sb = new StringBuffer();
do {
status.replaced++;
m.appendReplacement(sb, replacement);
- if (replaceFirst) break;
+ if (replaceFirst || replaceFirstAll ||
+ to == ChunkedTransformer.XMLTEXT_WORDS ||
+ to == ChunkedTransformer.WORDS) break;
result = m.find();
} while (result);
m.appendTail(sb);
if (replaceFirstAll) status.used.add(p);
string = sb.toString();
+ if (replaceFirst ||
+ to == ChunkedTransformer.XMLTEXT_WORDS ||
+ to == ChunkedTransformer.WORDS) break;
}
-
}
w.write(string);
return r;
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs