# HG changeset patch # User Yuya Nishihara # Date 1520079865 18000 # Node ID edd3974bd50046eeea44c8205e6bf6837eea9d2b # Parent 3118766266ae1c8c9861e39d2d69f189101bf30a py3: do not pass a memoryview to bdiff.bdiff() This doesn't look nice, but I don't know how to make a zero-copy slice of bytes which is compatible with the buffer protocol. diff -r 3118766266ae -r edd3974bd500 mercurial/mdiff.py --- a/mercurial/mdiff.py Sat Mar 03 07:00:37 2018 -0500 +++ b/mercurial/mdiff.py Sat Mar 03 07:24:25 2018 -0500 @@ -30,9 +30,17 @@ fixws = bdiff.fixws patches = mpatch.patches patchedsize = mpatch.patchedsize -textdiff = bdiff.bdiff +_textdiff = bdiff.bdiff splitnewlines = bdiff.splitnewlines +# On Python 3, util.buffer() creates a memoryview, which appears not +# supporting the buffer protocol +if pycompat.ispy3: + def textdiff(a, b): + return _textdiff(bytes(a), bytes(b)) +else: + textdiff = _textdiff + class diffopts(object): '''context is the number of context lines text treats all files as text