Patchwork D6782: py3: use pycompat.sysargv[0] for instead of fsencode(sys.argv[0])

login
register
mail settings
Submitter phabricator
Date Sept. 2, 2019, 6:52 a.m.
Message ID <9ed63261b6312a93a807e8c3d28b0b4c@localhost.localdomain>
Download mbox | patch
Permalink /patch/41464/
State Not Applicable
Headers show

Comments

phabricator - Sept. 2, 2019, 6:52 a.m.
martinvonz updated this revision to Diff 16363.

REPOSITORY
  rHG Mercurial

CHANGES SINCE LAST UPDATE
  https://phab.mercurial-scm.org/D6782?vs=16362&id=16363

CHANGES SINCE LAST ACTION
  https://phab.mercurial-scm.org/D6782/new/

REVISION DETAIL
  https://phab.mercurial-scm.org/D6782

AFFECTED FILES
  mercurial/utils/procutil.py

CHANGE DETAILS




To: martinvonz, #hg-reviewers
Cc: mercurial-devel
Yuya Nishihara - Sept. 5, 2019, 11:16 p.m.
> @@ -245,8 +245,11 @@
>              pycompat.fsencode(getattr(mainmod, '__file__', ''))) == 'hg'):
>              _sethgexecutable(pycompat.fsencode(mainmod.__file__))
>          else:
> -            exe = findexe('hg') or os.path.basename(sys.argv[0])
> -            _sethgexecutable(pycompat.fsencode(exe))
> +            exe = findexe('hg')
> +            if exe:
> +                _sethgexecutable(pycompat.fsencode(exe))
> +            else:
> +                _sethgexecutable(os.path.basename(pycompat.sysargv[0]))

`findexe()` is supposed to return bytes. If not always, it's the bug
of `findexe()`.
phabricator - Sept. 5, 2019, 11:20 p.m.
yuja added a comment.


  > @@ -245,8 +245,11 @@
  >
  >       pycompat.fsencode(getattr(mainmod, '__file__', ''))) == 'hg'):
  >       _sethgexecutable(pycompat.fsencode(mainmod.__file__))
  >   else:
  >
  > - exe = findexe('hg') or os.path.basename(sys.argv[0])
  > - _sethgexecutable(pycompat.fsencode(exe))
  >
  > +            exe = findexe('hg')
  > +            if exe:
  > +                _sethgexecutable(pycompat.fsencode(exe))
  > +            else:
  > +                _sethgexecutable(os.path.basename(pycompat.sysargv[0]))
  
  `findexe()` is supposed to return bytes. If not always, it's the bug
  of `findexe()`.

REPOSITORY
  rHG Mercurial

CHANGES SINCE LAST ACTION
  https://phab.mercurial-scm.org/D6782/new/

REVISION DETAIL
  https://phab.mercurial-scm.org/D6782

To: martinvonz, #hg-reviewers
Cc: yuja, mercurial-devel

Patch

diff --git a/mercurial/utils/procutil.py b/mercurial/utils/procutil.py
--- a/mercurial/utils/procutil.py
+++ b/mercurial/utils/procutil.py
@@ -245,8 +245,11 @@ 
             pycompat.fsencode(getattr(mainmod, '__file__', ''))) == 'hg'):
             _sethgexecutable(pycompat.fsencode(mainmod.__file__))
         else:
-            exe = findexe('hg') or os.path.basename(sys.argv[0])
-            _sethgexecutable(pycompat.fsencode(exe))
+            exe = findexe('hg')
+            if exe:
+                _sethgexecutable(pycompat.fsencode(exe))
+            else:
+                _sethgexecutable(os.path.basename(pycompat.sysargv[0]))
     return _hgexecutable
 
 def _sethgexecutable(path):