~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/repository.py

  • Committer: Canonical.com Patch Queue Manager
  • Date: 2006-07-10 20:30:06 UTC
  • mfrom: (1843.2.5 quote-file-ids)
  • Revision ID: pqm@pqm.ubuntu.com-20060710203006-17445a0e4b07b070
Add test of _unescape_xml

Show diffs side-by-side

added added

removed removed

Lines of Context:
2152
2152
        versionedfile.clear_cache()
2153
2153
 
2154
2154
 
2155
 
# Copied from xml.sax.saxutils
 
2155
_unescape_map = {
 
2156
    'apos':"'",
 
2157
    'quot':'"',
 
2158
    'amp':'&',
 
2159
    'lt':'<',
 
2160
    'gt':'>'
 
2161
}
 
2162
 
 
2163
 
 
2164
def _unescaper(match, _map=_unescape_map):
 
2165
    return _map[match.group(1)]
 
2166
 
 
2167
 
 
2168
_unescape_re = None
 
2169
 
 
2170
 
2156
2171
def _unescape_xml(data):
2157
 
    """Unescape &amp;, &lt;, and &gt; in a string of data.
2158
 
    """
2159
 
    data = data.replace("&lt;", "<")
2160
 
    data = data.replace("&gt;", ">")
2161
 
    # must do ampersand last
2162
 
    return data.replace("&amp;", "&")
 
2172
    """Unescape predefined XML entities in a string of data."""
 
2173
    global _unescape_re
 
2174
    if _unescape_re is None:
 
2175
        _unescape_re = re.compile('\&([^;]*);')
 
2176
    return _unescape_re.sub(_unescaper, data)