Patchwork D6103: py3: use pycompat.iterbytestr to convert memoryview slice to bytestring before passing to itertools.takewhile

login
register
mail settings
Submitter phabricator
Date March 14, 2019, 3:41 p.m.
Message ID <672ef90971fa785875d3c6ea51c5871a@localhost.localdomain>
Download mbox | patch
Permalink /patch/39248/
State Not Applicable
Headers show

Comments

phabricator - March 14, 2019, 3:41 p.m.
Kwan updated this revision to Diff 14494.
Kwan retitled this revision from "py3: use pycompat.iterbytestr to convert itertools.takewhile result back to bytes" to "py3: use pycompat.iterbytestr to convert memoryview slice to bytestring before passing to itertools.takewhile".
Kwan edited the summary of this revision.

REPOSITORY
  rHG Mercurial

CHANGES SINCE LAST UPDATE
  https://phab.mercurial-scm.org/D6103?vs=14416&id=14494

REVISION DETAIL
  https://phab.mercurial-scm.org/D6103

AFFECTED FILES
  hgext/phabricator.py

CHANGE DETAILS




To: Kwan, #hg-reviewers
Cc: yuja, mercurial-devel

Patch

diff --git a/hgext/phabricator.py b/hgext/phabricator.py
--- a/hgext/phabricator.py
+++ b/hgext/phabricator.py
@@ -671,8 +671,10 @@ 
     pos = 0
     length = len(text)
     while pos < length:
-        symbol = b''.join(itertools.takewhile(lambda ch: ch not in special,
-                                              view[pos:]))
+        symbol = b''.join(itertools.takewhile(
+            lambda ch: ch not in special,
+            pycompat.iterbytestr(view[pos:])
+        ))
         if symbol:
             yield (b'symbol', symbol, pos)
             pos += len(symbol)