py3: add __bytes__() for mq.patchheader and make sure __str__ returns str
Before this patch, __str__() function for mq.patchheader class return bytes
which is not str on Python 3. So let's move that logic to __bytes__() and for
__str__() convert the return value of __bytes__() to str.
Differential Revision: https://phab.mercurial-scm.org/D2042
--- a/hgext/mq.py Mon Feb 05 13:01:35 2018 +0530
+++ b/hgext/mq.py Mon Feb 05 13:10:33 2018 +0530
@@ -396,12 +396,14 @@
self.comments.append('')
self.comments.append(message)
- def __str__(self):
+ def __bytes__(self):
s = '\n'.join(self.comments).rstrip()
if not s:
return ''
return s + '\n\n'
+ __str__ = encoding.strmethod(__bytes__)
+
def _delmsg(self):
'''Remove existing message, keeping the rest of the comments fields.
If comments contains 'subject: ', message will prepend