My original code for initdb stripped the .exe suffix off the progname
stored, in this snippet of code:
carg0 = xstrdup(argv[0]);canonicalise_path(carg0);
lastsep = strrchr(carg0, *'/'*);progname = lastsep ? xstrdup(lastsep + 1) : carg0;
#*if* *defined*(__CYGWIN__) || *defined*(WIN32)*if* (strlen(progname) > 4 && (exe = progname + (strlen(progname) -
4))&& stricmp(exe, EXE) == 0){ //* strip .exe suffix, regardless of case *// *exe = *'\0'*;}
#*endif* //* defined(__CYGWIN__) || defined(WIN32) */
Somewhere along the way, probably when we moved to using a generalised get_progname(), that seems to have been lost.
Notonly is keeping the .exe suffix ugly, but it breaks the contrib installcheck regression tests on windows (hasn't
anyonerun these?)
A simple fix for this last problem would be to put some similar code to the above into psql, but something cleaner and
applicableto all users of get_progname might be nicer.
Thoughts?
andrew
/