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

Reply via email to