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
 *  on the command line are preserved:
 *
 *   - no /S switch
 *   - exactly two quote characters
 *   - no special characters between the two quote characters, where special
 *     is one of: &<>()@^|
 *   - there are one or more whitespace characters between 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, strip the leading character and remove the last
 *   quote character on the command line, preserving any text after the last
 *   quote character.

-- 
  Bruce Momjian   [EMAIL PROTECTED]
  EnterpriseDB    http://www.enterprisedb.com

  + If your life is a hard drive, Christ can be your backup. +

---------------------------(end of broadcast)---------------------------
TIP 6: explain analyze is your friend

Reply via email to