Johannes Schindelin [off-list ref] writes:
When the program 'git' is in the PATH, the argv[0] is set to the basename.
While it may be true, I do not think it matters that we cannot get the
full path _UNLESS_ we are doing the relative "../" business.
However, argv0_path needs the full path, so add a function to discover the
program by traversing the PATH manually.
I think unconditionally requiring argv0_path to be set is the root cause
of the bug. Unless we do not fix _that_, we will have to make a needless
call to lookup_program_in_path() even when nobody needs that information,
which is unacceptable.