Patchwork [07,of,12,py3] util: teach url object about __bytes__

login
register
mail settings
Submitter Augie Fackler
Date March 12, 2017, 7:49 p.m.
Message ID <84996257b560fa41535e.1489348196@augie-macbookair2.roam.corp.google.com>
Download mbox | patch
Permalink /patch/19223/
State Accepted
Headers show

Comments

Augie Fackler - March 12, 2017, 7:49 p.m.
# HG changeset patch
# User Augie Fackler <augie@google.com>
# Date 1489304002 14400
#      Sun Mar 12 03:33:22 2017 -0400
# Node ID 84996257b560fa41535e4d0360cb33436662581c
# Parent  5a0a53d127726a34013a34156d47ab873f6dc8df
util: teach url object about __bytes__

__str__ tries to do something reasonable, but someone else more
familiar with encoding bugs should check my work.

Patch

diff --git a/mercurial/util.py b/mercurial/util.py
--- a/mercurial/util.py
+++ b/mercurial/util.py
@@ -2651,6 +2651,11 @@  class url(object):
         >>> print url(r'file:///D:\data\hg')
         file:///D:\data\hg
         """
+        if pycompat.ispy3:
+            return encoding.fromlocal(self.__bytes__()).decode('utf-8')
+        return self.__bytes__()
+
+    def __bytes__(self):
         if self._localpath:
             s = self.path
             if self.scheme == 'bundle':