Author: mtredinnick
Date: 2008-07-19 13:05:22 -0500 (Sat, 19 Jul 2008)
New Revision: 7985

Modified:
   django/trunk/django/utils/html.py
Log:
Fixed #6965 -- Sped up the urlize and urlizetrunc filters. A nice patch from 
Andrew Badr.


Modified: django/trunk/django/utils/html.py
===================================================================
--- django/trunk/django/utils/html.py   2008-07-19 15:51:48 UTC (rev 7984)
+++ django/trunk/django/utils/html.py   2008-07-19 18:05:22 UTC (rev 7985)
@@ -94,7 +94,9 @@
     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 @@
             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):


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Django updates" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/django-updates?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to