Skip site navigation (1) Skip section navigation (2)

Re: fix in --help output

From: Zdenek Kotala <Zdenek(dot)Kotala(at)Sun(dot)COM>
To: Andrew Dunstan <andrew(at)dunslane(dot)net>
Cc: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, pgsql-patches(at)postgresql(dot)org
Subject: Re: fix in --help output
Date: 2008-02-21 22:22:52
Message-ID: (view raw, whole thread or download thread mbox)
Lists: pgsql-patches
Andrew Dunstan napsal(a):
> Zdenek Kotala wrote:
>> Tom Lane napsal(a):
>>> Zdenek Kotala <Zdenek(dot)Kotala(at)Sun(dot)COM> writes:
>>>> I attach fix for --help output. I replaced --NAME... with -NAME and 
>>>> add some example. getopt parse -- as a end of options and rest of 
>>>> line is not parsed. 
>>> Surely this is outright wrong.  Or if you do have a getopt that acts
>>> that way, the bug is that we are using it rather than one that acts
>>> the way we want.
>> Ah, sorry it really does not work.
>> However, I get following error on Solaris:
>> bash-3.2$ /usr/postgres/8.2/bin/postgres -D /tmp/db --share_buffers=16000
>> /usr/postgres/8.2/bin/postgres: illegal option -- share_buffers=16000
>> Try "postgres --help" for more information.
>> but following command works fine:
>> /usr/postgres/8.2/bin/postgres -D /tmp/db -c shared_buffers=16000
>> By my opinion problem is in getopt which interprets -- as a end of 
>> options list.
>> See 
>> Guideline 10
>> It maybe work on linux but I think it is not portable solution.
> -- on its own might indicate the end of arguments, but that's quite 
> different from --foo=bar. Guideline 10 of the above surely only refers 
> to -- as an entire argument, not to -- as the first two characters of an 
> argument. If your getopt treats *any* -- as the end of options then I 
> think it is broken (complain to your vendor ;-) ). And the answer is 
> known - use the one we have in src/port.

You are not correct (I pointed to wrong Guidline). If you look to 
Guidline 3 it specific only alphanumeric character.  And  you can read 
"The implementation may accept other characters as an extension." in

It means that Solaris implementation is OK. Linux uses some extensions 
but it is not portable. If we want to use long options. We have 
getop_long for it.


In response to

pgsql-patches by date

Next:From: Stephen DaviesDate: 2008-02-22 00:07:32
Subject: Re: ts_headline
Previous:From: Andrew DunstanDate: 2008-02-21 21:31:41
Subject: Re: fix in --help output

Privacy Policy | About PostgreSQL
Copyright © 1996-2017 The PostgreSQL Global Development Group