Tom Lane wrote:
> In src/include/port.h we have
>
> /*
> * Win32 needs double quotes at the beginning and end of system()
> * strings. If not, it gets confused with multiple quoted strings.
> * It also requires double-quotes around the executable name and
> * any files used for redirection. Other args can use single-quotes.
> *
> * See the "Notes" section about quotes at:
> * http://home.earthlink.net/~rlively/MANUALS/COMMANDS/C/CMD.HTM
> */
>
> The referenced link seems to be dead :-( but AFAICS the pg_regress code
> is following the stated rules. Also, how is it getting past the "make
> install" step which is quoting things just the same? Puzzling.
I found the description somewhere else and copied it into our header
file:
* From http://www.computerhope.com/cmd.htm:** 1. If all of the following conditions are met, then quote characters*
onthe command line are preserved:** - no /S switch* - exactly two quote characters* - no special characters
betweenthe two quote characters, where special* is one of: &<>()@^|* - there are one or more whitespace
charactersbetween the the two quote* characters* - the string between the two quote characters is the name of an*
executable file.** 2. Otherwise, old behavior is to see if the first character is a quote* character and if so,
stripthe leading character and remove the last* quote character on the command line, preserving any text after the
last* quote character.
-- Bruce Momjian bruce@momjian.us EnterpriseDB http://www.enterprisedb.com
+ If your life is a hard drive, Christ can be your backup. +