diff options
Diffstat (limited to 'pym/portage/util.py')
-rw-r--r-- | pym/portage/util.py | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/pym/portage/util.py b/pym/portage/util.py index 5b860218d..0a8035de6 100644 --- a/pym/portage/util.py +++ b/pym/portage/util.py @@ -350,6 +350,19 @@ def writedict(mydict,myfilename,writekey=True): return 0 return 1 +def shlex_split(s): + """ + This is equivalent to shlex.split but it temporarily encodes unicode + strings to bytes since shlex.split() doesn't handle unicode strings. + """ + is_unicode = isinstance(s, unicode) + if is_unicode: + s = s.encode('utf_8', 'replace') + rval = shlex.split(s) + if is_unicode: + rval = [unicode(x, encoding='utf_8', errors='replace') for x in rval] + return rval + class _tolerant_shlex(shlex.shlex): def sourcehook(self, newfile): try: |