Index: PlugIn.java
===================================================================
RCS file: /cvsroot/shingetsu/shingetsu-java/net/sourceforge/shingetsu/server/cgi/PlugIn.java,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- PlugIn.java 4 Nov 2004 14:07:42 -0000 1.10
+++ PlugIn.java 6 Nov 2004 16:47:11 -0000 1.11
@@ -457,6 +457,9 @@
*/
public String createBracketLink(String body)
throws UnsupportedEncodingException {
+ StringBuffer buffer = new StringBuffer();
+ int lastIndex = 0;
+
String regex = "\\[\\[([^/]+)\\]\\]";
Matcher matcher = Pattern.compile(regex).matcher(body);
@@ -467,12 +470,24 @@
String encodedName = encode(name);
String link = "[[" + name + "]]";
- body = matcher.replaceAll(link);
+
+ matcher.appendReplacement(buffer, link);
+
+ StringBuffer tailBuffer = new StringBuffer(buffer.toString());
+ matcher.appendTail(tailBuffer);
+
+ lastIndex = matcher.end();
}
+ matcher.appendTail(buffer);
+ body = buffer.toString();
+
+ buffer = new StringBuffer();
+ lastIndex = 0;
+
regex = "\\[\\[([^/]+)/([0-9a-f]+)\\]\\]";
matcher = Pattern.compile(regex).matcher(body);
-
+
while(matcher.find()) {
int wholeGroup = 0;
int nameGroup = 1;
@@ -485,12 +500,24 @@
String encodedName = encode(name);
String link = "" + whole + "";
- body = matcher.replaceAll(link);
+
+ matcher.appendReplacement(buffer, link);
+
+ StringBuffer tailBuffer = new StringBuffer(buffer.toString());
+ matcher.appendTail(tailBuffer);
+
+ lastIndex = matcher.end();
}
+ matcher.appendTail(buffer);
+ body = buffer.toString();
+
+ buffer = new StringBuffer();
+ lastIndex = 0;
+
regex = "\\[\\[/(" + TYPE_LIST + "|" + TYPE_NOTE + "|" + TYPE_THREAD + ")/([^/\\]]+)\\]\\]";
matcher = Pattern.compile(regex).matcher(body);
-
+
while(matcher.find()) {
int wholeGroup = 0;
int typeGroup = 1;
@@ -503,9 +530,21 @@
String encodedName = encode(name);
String link = "" + whole + "";
- body = matcher.replaceAll(link);
+
+ matcher.appendReplacement(buffer, link);
+
+ StringBuffer tailBuffer = new StringBuffer(buffer.toString());
+ matcher.appendTail(tailBuffer);
+
+ lastIndex = matcher.end();
}
+ matcher.appendTail(buffer);
+ body = buffer.toString();
+
+ buffer = new StringBuffer();
+ lastIndex = 0;
+
regex = "\\[\\[/(" + TYPE_LIST + "|" + TYPE_NOTE + "|" + TYPE_THREAD
+ ")/([^\\]]+)/([0-9a-f]+)\\]\\]";
@@ -526,8 +565,17 @@
String link = "" + whole + "";
- body = matcher.replaceAll(link);
- }
+
+ matcher.appendReplacement(buffer, link);
+
+ StringBuffer tailBuffer = new StringBuffer(buffer.toString());
+ matcher.appendTail(tailBuffer);
+
+ lastIndex = matcher.end();
+ }
+
+ matcher.appendTail(buffer);
+ body = buffer.toString();
return body;
}