Django

Code

Changeset 6845

Show
Ignore:
Timestamp:
12/02/07 14:17:10 (9 months ago)
Author:
mtredinnick
Message:

Fixed #6071 -- Fixed another infinite recursion problem in SafeString? and
SafeUnicode?. Thanks, Trey Long.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • django/trunk/AUTHORS

    r6820 r6845  
    208208    limodou 
    209209    Philip Lindborg <philip.lindborg@gmail.com> 
     210    Trey Long <trey@ktrl.com> 
    210211    msaelices <msaelices@gmail.com> 
    211212    Matt McClanahan <http://mmcc.cx/> 
  • django/trunk/django/utils/safestring.py

    r6807 r6845  
    3535        object is safe. Otherwise, the result is no longer safe. 
    3636        """ 
     37        t = super(SafeString, self).__add__(rhs) 
    3738        if isinstance(rhs, SafeUnicode): 
    38             return SafeUnicode(self + rhs
     39            return SafeUnicode(t
    3940        elif isinstance(rhs, SafeString): 
    40             return SafeString(self + rhs) 
    41         else: 
    42             return super(SafeString, self).__add__(rhs) 
    43  
     41            return SafeString(t) 
     42        return t 
     43         
    4444    def _proxy_method(self, *args, **kwargs): 
    4545        """ 
     
    6767        unicode object is safe. Otherwise, the result is no longer safe. 
    6868        """ 
     69        t = super(SafeUnicode, self).__add__(rhs) 
    6970        if isinstance(rhs, SafeData): 
    70             return SafeUnicode(self + rhs) 
    71         else: 
    72             return super(SafeUnicode, self).__add__(rhs) 
    73  
     71            return SafeUnicode(t) 
     72        return t 
     73     
    7474    def _proxy_method(self, *args, **kwargs): 
    7575        """ 
  • django/trunk/tests/regressiontests/i18n/tests.py

    r6681 r6845  
    4444status. 
    4545 
    46 >>> from django.utils.safestring import mark_safe 
     46>>> from django.utils.safestring import mark_safe, SafeString 
    4747>>> s = mark_safe('Password') 
    4848>>> type(s) 
     
    5252<class 'django.utils.safestring.SafeUnicode'> 
    5353>>> deactivate() 
     54 
     55>>> SafeString('a') + s 
     56'aPassword' 
     57>>> s + SafeString('a') 
     58'Passworda' 
     59>>> s + mark_safe('a') 
     60'Passworda' 
     61>>> mark_safe('a') + s 
     62'aPassword' 
     63>>> mark_safe('a') + mark_safe('s') 
     64'as' 
     65>>> print s 
     66Password 
    5467""" 
    5568