# HG changeset patch
# User Matt Harbison <matt_harbi...@yahoo.com>
# Date 1543030077 18000
#      Fri Nov 23 22:27:57 2018 -0500
# Node ID 1f9de5636e5f7f4bfe2d3fb8c5dde543a1870161
# Parent  2abf33243bea3e4679ac944315d82fce21918d8f
procutil: don't allow the main 'hg' script to be treated as the Windows exe

Previously, there were a handful of errors like this:

     $ hg prefetch --repack
     (running background incremental repack)
  +  abort: %1 is not a valid Win32 application
  +  [255]

CreateProcess() doesn't append .exe when `lpApplicationName` contains a path,
and a python script isn't directly executable.

diff --git a/mercurial/utils/procutil.py b/mercurial/utils/procutil.py
--- a/mercurial/utils/procutil.py
+++ b/mercurial/utils/procutil.py
@@ -241,7 +241,7 @@ def hgexecutable():
                 _sethgexecutable(encoding.environ['EXECUTABLEPATH'])
             else:
                 _sethgexecutable(pycompat.sysexecutable)
-        elif (os.path.basename(
+        elif (not pycompat.iswindows and os.path.basename(
             pycompat.fsencode(getattr(mainmod, '__file__', ''))) == 'hg'):
             _sethgexecutable(pycompat.fsencode(mainmod.__file__))
         else:
_______________________________________________
Mercurial-devel mailing list
Mercurial-devel@mercurial-scm.org
https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel

Reply via email to