[PATCH stable] pycompat: verify sys.argv exists before forwarding it (issue5493)

Augie Fackler raf at durin42.com
Tue Mar 7 18:32:41 UTC 2017


# HG changeset patch
# User Augie Fackler <augie at google.com>
# Date 1488911064 18000
#      Tue Mar 07 13:24:24 2017 -0500
# Branch stable
# Node ID b1e649de4c276133444234f33638cde393cbbfc8
# Parent  6b00c3ecd15b26587de8cca6fab811069cba3b2f
pycompat: verify sys.argv exists before forwarding it (issue5493)

ISAPI_WSGI doesn't set up sys.argv, so we have to look for the
attribute before assuming it exists.

diff --git a/mercurial/pycompat.py b/mercurial/pycompat.py
--- a/mercurial/pycompat.py
+++ b/mercurial/pycompat.py
@@ -69,7 +69,8 @@ if ispy3:
     #
     # TODO: On Windows, the native argv is wchar_t, so we'll need a different
     # workaround to simulate the Python 2 (i.e. ANSI Win32 API) behavior.
-    sysargv = list(map(os.fsencode, sys.argv))
+    if getattr(sys, 'argv', None) is not None:
+        sysargv = list(map(os.fsencode, sys.argv))
 
     def sysstr(s):
         """Return a keyword str to be passed to Python functions such as
@@ -165,7 +166,8 @@ else:
     stdin = sys.stdin
     stdout = sys.stdout
     stderr = sys.stderr
-    sysargv = sys.argv
+    if getattr(sys, 'argv', None) is not None:
+        sysargv = sys.argv
     sysplatform = sys.platform
     getcwd = os.getcwd
     sysexecutable = sys.executable


More information about the Mercurial-devel mailing list