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.