summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShawn O. Pearce <sop@google.com>2009-06-01 17:54:07 -0700
committerShawn O. Pearce <sop@google.com>2009-06-01 17:54:07 -0700
commit339a1c50d294c11f0d4d28200f9f49e8dc26d239 (patch)
treec33f181a27b2d0bb1c600ccef118c34ffca8088d
parenta30ed6c13a230d7f60c99b5e1e1dfbb709137ceb (diff)
downloadgwtexpui-339a1c50d294c11f0d4d28200f9f49e8dc26d239.tar.gz
Require balanced parens in hyperlinks, otherwise exclude it.
This makes links like "(http://foo/)" render more accurately, by skipping the parens the user placed around the link. Bug: GERRIT-163 Signed-off-by: Shawn O. Pearce <sop@google.com>
-rw-r--r--src/main/java/com/google/gwtexpui/safehtml/client/SafeHtml.java8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/main/java/com/google/gwtexpui/safehtml/client/SafeHtml.java b/src/main/java/com/google/gwtexpui/safehtml/client/SafeHtml.java
index 7bdd0db..4c61588 100644
--- a/src/main/java/com/google/gwtexpui/safehtml/client/SafeHtml.java
+++ b/src/main/java/com/google/gwtexpui/safehtml/client/SafeHtml.java
@@ -71,7 +71,13 @@ public abstract class SafeHtml {
/** Convert bare http:// and https:// URLs into &lt;a href&gt; tags. */
public SafeHtml linkify() {
return replaceAll(
- "(https?://[a-zA-Z0-9$_.+!*',%;:@&=?#/()-]{1,}[a-zA-Z0-9$_.+!*',%;:@&=?#/-])",
+ "(https?://" +
+ "[a-zA-Z0-9$_.+!*',%;:@&=?#/-]{2,}" +
+ "([(]" +
+ "[a-zA-Z0-9$_.+!*',%;:@&=?#/-]*" +
+ "[)])*" +
+ "[a-zA-Z0-9$_.+!*',%;:@&=?#/-]*" +
+ ")",
"<a href=\"$1\">$1</a>");
}