+
+ def _set_current_sort_(self, arg) :
+ self._current_sort = arg
+ self.list.clear()
+ self._list_dir_()
+
+# utils
+from unicodedata import decomposition
+from string import printable
+_printable = dict([(c, True) for c in printable])
+isPrintable = _printable.has_key
+
+def _recurseDecomposition(uc):
+ deco = decomposition(uc).split()
+ fullDeco = []
+ if deco :
+ while (deco) :
+ code = deco.pop()
+ if code.startswith('<') :
+ continue
+ c = unichr(int(code, 16))
+ subDeco = decomposition(c).split()
+ if subDeco :
+ deco.extend(subDeco)
+ else :
+ fullDeco.append(c)
+ fullDeco.reverse()
+ else :
+ fullDeco.append(uc)
+
+ fullDeco = u''.join(filter(lambda c : isPrintable(c), fullDeco))
+ return fullDeco
+
+def desacc(s) :
+ us = s.decode('utf-8', 'ignore')
+ ret = []
+ for uc in us :
+ ret.append(_recurseDecomposition(uc))
+ return u''.join(ret)
\ No newline at end of file