summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMalcolm Tredinnick <malcolm.tredinnick@gmail.com>2008-07-19 18:05:22 +0000
committerMalcolm Tredinnick <malcolm.tredinnick@gmail.com>2008-07-19 18:05:22 +0000
commitc09351aec63f004f89befa4752b386f2a2a3a63c (patch)
tree54d4b83d864cc214f15c47dfde3b8b4b0055c801
parent67eeb72e2681496d33a8fb0e44090a5107737e0a (diff)
Fixed #6965 -- Sped up the urlize and urlizetrunc filters. A nice patch from Andrew Badr.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@7985 bcc190cf-cafb-0310-a4f2-bffc1f526a37
-rw-r--r--django/utils/html.py6
1 files changed, 4 insertions, 2 deletions
diff --git a/django/utils/html.py b/django/utils/html.py
index 747af52879..9b3fad8b03 100644
--- a/django/utils/html.py
+++ b/django/utils/html.py
@@ -94,7 +94,9 @@ def urlize(text, trim_url_limit=None, nofollow=False, autoescape=False):
words = word_split_re.split(force_unicode(text))
nofollow_attr = nofollow and ' rel="nofollow"' or ''
for i, word in enumerate(words):
- match = punctuation_re.match(word)
+ match = None
+ if '.' in word or '@' in word or ':' in word:
+ match = punctuation_re.match(word)
if match:
lead, middle, trail = match.groups()
# Make URL we want to point to.
@@ -102,7 +104,7 @@ def urlize(text, trim_url_limit=None, nofollow=False, autoescape=False):
if middle.startswith('http://') or middle.startswith('https://'):
url = urlquote(middle, safe='/&=:;#?+*')
elif middle.startswith('www.') or ('@' not in middle and \
- len(middle) > 0 and middle[0] in string.ascii_letters + string.digits and \
+ middle and middle[0] in string.ascii_letters + string.digits and \
(middle.endswith('.org') or middle.endswith('.net') or middle.endswith('.com'))):
url = urlquote('http://%s' % middle, safe='/&=:;#?+*')
elif '@' in middle and not ':' in middle and simple_email_re.match(middle):