Index: src/backend/postmaster/postmaster.c =================================================================== RCS file: /cvsroot/pgsql-server/src/backend/postmaster/postmaster.c,v retrieving revision 1.388 diff -c -c -r1.388 postmaster.c *** src/backend/postmaster/postmaster.c 17 May 2004 14:35:29 -0000 1.388 --- src/backend/postmaster/postmaster.c 18 May 2004 18:18:26 -0000 *************** *** 295,302 **** #ifdef EXEC_BACKEND - static char postgres_exec_path[MAXPGPATH]; - #ifdef WIN32 pid_t win32_forkexec(const char* path, char *argv[]); --- 295,300 ---- *************** *** 463,468 **** --- 461,471 ---- IgnoreSystemIndexes(false); + if (find_my_exec(argv[0], my_exec_path) < 0) + ereport(FATAL, + (errmsg("%s: could not locate my own executable path", + progname))); + /* * Options setup */ *************** *** 690,702 **** (errmsg_internal("-----------------------------------------"))); } - /* - * On some systems our dynloader code needs the executable's pathname. - */ - if (find_my_exec(argv[0], my_exec_path) < 0) - ereport(FATAL, - (errmsg("%s: could not locate my own executable path", - progname))); if (strlen(pkglib_path) == 0) get_pkglib_path(my_exec_path, pkglib_path); --- 693,698 ---- Index: src/backend/tcop/postgres.c =================================================================== RCS file: /cvsroot/pgsql-server/src/backend/tcop/postgres.c,v retrieving revision 1.407 diff -c -c -r1.407 postgres.c *** src/backend/tcop/postgres.c 17 May 2004 14:35:31 -0000 1.407 --- src/backend/tcop/postgres.c 18 May 2004 18:18:29 -0000 *************** *** 2190,2195 **** --- 2190,2200 ---- */ EchoQuery = false; + if (strlen(my_exec_path) == 0 && find_my_exec(argv[0], my_exec_path) < 0) + ereport(FATAL, + (errmsg("%s: could not locate postgres executable", + argv[0]))); + if (!IsUnderPostmaster) { InitializeGUCOptions(); *************** *** 2549,2554 **** --- 2554,2562 ---- } Assert(DataDir); + if (strlen(pkglib_path) == 0) + get_pkglib_path(my_exec_path, pkglib_path); + /* Acquire configuration parameters */ if (IsUnderPostmaster) { *************** *** 2645,2660 **** argv[0]))); } - /* - * On some systems our dynloader code needs the executable's pathname. - */ - if (strlen(my_exec_path) == 0 && find_my_exec(argv[0], my_exec_path) < 0) - ereport(FATAL, - (errmsg("%s: could not locate postgres executable", - argv[0]))); - if (strlen(pkglib_path) == 0) - get_pkglib_path(my_exec_path, pkglib_path); - /* * Validate we have been given a reasonable-looking DataDir (if * under postmaster, assume postmaster did this already). --- 2653,2658 ---- Index: src/bin/psql/print.c =================================================================== RCS file: /cvsroot/pgsql-server/src/bin/psql/print.c,v retrieving revision 1.46 diff -c -c -r1.46 print.c *** src/bin/psql/print.c 24 Jan 2004 20:43:26 -0000 1.46 --- src/bin/psql/print.c 18 May 2004 18:18:30 -0000 *************** *** 388,394 **** --- 388,397 ---- for (ptr = footers; *ptr; ptr++) fprintf(fout, "%s\n", *ptr); + #ifndef __MINGW32__ + /* for some reason MinGW outputs an extra newline, so this supresses it */ fputc('\n', fout); + #endif /* clean up */ free(cell_w); Index: src/port/exec.c =================================================================== RCS file: /cvsroot/pgsql-server/src/port/exec.c,v retrieving revision 1.7 diff -c -c -r1.7 exec.c *** src/port/exec.c 18 May 2004 03:36:45 -0000 1.7 --- src/port/exec.c 18 May 2004 18:18:31 -0000 *************** *** 23,28 **** --- 23,32 ---- #include #include + #include + + #define _(x) gettext((x)) + #include "miscadmin.h" /* $PATH (or %PATH%) path separator */ *************** *** 331,336 **** --- 335,380 ---- /* + * pclose() plus useful error reporting + * Is this necessary? bjm 2004-05-11 + * It is better here because pipe.c has win32 backend linkage. + */ + int + pclose_check(FILE *stream) + { + int exitstatus; + + exitstatus = pclose(stream); + + if (exitstatus == 0) + return 0; /* all is well */ + + if (exitstatus == -1) + { + /* pclose() itself failed, and hopefully set errno */ + perror("pclose failed"); + } + else if (WIFEXITED(exitstatus)) + { + fprintf(stderr, _("child process exited with exit code %d\n"), + WEXITSTATUS(exitstatus)); + } + else if (WIFSIGNALED(exitstatus)) + { + fprintf(stderr, _("child process was terminated by signal %d\n"), + WTERMSIG(exitstatus)); + } + else + { + fprintf(stderr, _("child process exited with unrecognized status %d\n"), + exitstatus); + } + + return -1; + } + + + /* * Windows doesn't like relative paths to executables (other things work fine) * so we call its builtin function to expand them. Elsewhere this is a NOOP * *************** *** 353,356 **** --- 397,401 ---- #endif return; } + Index: src/port/pipe.c =================================================================== RCS file: /cvsroot/pgsql-server/src/port/pipe.c,v retrieving revision 1.3 diff -c -c -r1.3 pipe.c *** src/port/pipe.c 11 May 2004 21:57:15 -0000 1.3 --- src/port/pipe.c 18 May 2004 18:18:31 -0000 *************** *** 17,26 **** #include "postgres.h" - #include - - #define _(x) gettext((x)) - #ifdef WIN32 int pgpipe(int handles[2]) --- 17,22 ---- *************** *** 70,109 **** } #endif - /* - * pclose() plus useful error reporting - * Is this necessary? bjm 2004-05-11 - */ - int - pclose_check(FILE *stream) - { - int exitstatus; - - exitstatus = pclose(stream); - - if (exitstatus == 0) - return 0; /* all is well */ - - if (exitstatus == -1) - { - /* pclose() itself failed, and hopefully set errno */ - perror("pclose failed"); - } - else if (WIFEXITED(exitstatus)) - { - fprintf(stderr, _("child process exited with exit code %d\n"), - WEXITSTATUS(exitstatus)); - } - else if (WIFSIGNALED(exitstatus)) - { - fprintf(stderr, _("child process was terminated by signal %d\n"), - WTERMSIG(exitstatus)); - } - else - { - fprintf(stderr, _("child process exited with unrecognized status %d\n"), - exitstatus); - } - - return -1; - } --- 66,68 ----