Yuya noted in a recent review that fsencode(sys.argv[0]) could be
incorrect on Windows.
Details
Details
- Reviewers
- None
- Group Reviewers
hg-reviewers - Commits
- rHGdb51a4ac85ac: py3: use pycompat.sysargv[0] for instead of fsencode(sys.argv[0])
Diff Detail
Diff Detail
- Repository
- rHG Mercurial
- Lint
Lint Skipped - Unit
Unit Tests Skipped
Event Timeline
Comment Actions
@@ -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().
Comment Actions
Oh, findexe() is our own function. I somehow thought it was from the standard library. I'll send another follow-up. Thanks.