Re: Command-line parsing in pg_ctl is not portable - Mailing list pgsql-hackers

From Bruce Momjian
Subject Re: Command-line parsing in pg_ctl is not portable
Date
Msg-id 200410260400.i9Q40XV04413@candle.pha.pa.us
Whole thread Raw
In response to Command-line parsing in pg_ctl is not portable  (Peter Eisentraut <peter_e@gmx.net>)
List pgsql-hackers
Peter Eisentraut wrote:
> The command-line argument parsing in pg_ctl is not portable.  This is the 
> output on a glibc system:
> 
> $ pg_ctl start stop
> pg_ctl: too many command-line arguments (first is "start")
> 
> But:
> 
> $ POSIXLY_CORRECT=1 pg_ctl start stop
> pg_ctl: too many command-line arguments (first is "stop")
> 
> This is probably because GNU getopt rearranges the arguments, and since pg_ctl 
> uses two while loops to try to allow non-option arguments before options, 
> things may get reordered multiple times.
> 
> Now this particular case is minor trouble, but I wonder in what other 
> situations arguments will get reordered where the order does make a 
> difference.

Yea, I found that GNU getopt reordering thing to be very strange.  I can
imagine some risks to such reordering.  Fortunately we don't have any
other commands where we have to do this weird double-calls.

--  Bruce Momjian                        |  http://candle.pha.pa.us pgman@candle.pha.pa.us               |  (610)
359-1001+  If your life is a hard drive,     |  13 Roberts Road +  Christ can be your backup.        |  Newtown Square,
Pennsylvania19073
 


pgsql-hackers by date:

Previous
From: Bruce Momjian
Date:
Subject: Re: Using ALTER TABLESPACE in pg_dump
Next
From: Greg Stark
Date:
Subject: Re: [PATCHES] ARC Memory Usage analysis