[PATCH py3] setup: hide octal literals inside strings so they're portable (issue4554)

Augie Fackler raf at durin42.com
Tue May 5 16:33:16 UTC 2015


# HG changeset patch
# User Augie Fackler <augie at google.com>
# Date 1428867370 14400
#      Sun Apr 12 15:36:10 2015 -0400
# Node ID b6f858be11d6eeb8f9f3595773782f08e7fd1a46
# Parent  e5b507efb36e2b9ad8edb1a38459d26c934d74dd
setup: hide octal literals inside strings so they're portable (issue4554)

diff --git a/setup.py b/setup.py
--- a/setup.py
+++ b/setup.py
@@ -408,11 +408,12 @@ class hginstalllib(install_lib):
                 # Persist executable bit (apply it to group and other if user
                 # has it)
                 if st[stat.ST_MODE] & stat.S_IXUSR:
-                    setmode = 0755
+                    setmode = int('0755', 8)
                 else:
-                    setmode = 0644
-                os.chmod(dst, (stat.S_IMODE(st[stat.ST_MODE]) & ~0777) |
-                         setmode)
+                    setmode = int('0644', 8)
+                m = stat.S_IMODE(st[stat.ST_MODE])
+                m = (m & ~int('0777', 8)) | setmode
+                os.chmod(dst, m)
         file_util.copy_file = copyfileandsetmode
         try:
             install_lib.run(self)


More information about the Mercurial-devel mailing list