When generating ICU sort keys handle strings with NULL bytes in them

This commit is contained in:
Kovid Goyal 2012-08-25 08:08:12 +05:30
parent 872a1434c7
commit f754786d12

View File

@ -71,10 +71,16 @@ def icu_sort_key(collator, obj):
if not obj: if not obj:
return _none2 return _none2
try: try:
try:
return _secondary_collator.sort_key(obj)
except AttributeError:
return secondary_collator().sort_key(obj)
except TypeError:
if isinstance(obj, unicode):
obj = obj.replace(u'\0', u'')
else:
obj = obj.replace(b'\0', b'')
return _secondary_collator.sort_key(obj) return _secondary_collator.sort_key(obj)
except AttributeError:
return secondary_collator().sort_key(obj)
def py_find(pattern, source): def py_find(pattern, source):
pos = source.find(pattern) pos = source.find(pattern)