Обсуждение: pg_resetxlog options

Поиск
Список
Период
Сортировка

pg_resetxlog options

От
Andrew Dunstan
Дата:
Why does pg_resetxlog seem top be the only one of our programs that has 
no long form options (or at least the only one that calls getopt rather 
than getopt_long)? Should we make it consistent with everything else?

I noticed this when examining a compile warning about implicit 
declaration of getopt().

cheers

andrew


Re: pg_resetxlog options

От
Tom Lane
Дата:
Andrew Dunstan <andrew@dunslane.net> writes:
> Why does pg_resetxlog seem top be the only one of our programs that has 
> no long form options (or at least the only one that calls getopt rather 
> than getopt_long)? Should we make it consistent with everything else?

I think just laziness on my part when I first wrote it --- it only had
one or two options anyway, and didn't seem to need long options.  But if
converting to getopt_long is the easy way to avoid a porting problem,
do it.
        regards, tom lane


Re: pg_resetxlog options

От
Andrew Dunstan
Дата:

Tom Lane wrote:

>Andrew Dunstan <andrew@dunslane.net> writes:
>
>
>>Why does pg_resetxlog seem top be the only one of our programs that has
>>no long form options (or at least the only one that calls getopt rather
>>than getopt_long)? Should we make it consistent with everything else?
>>
>>
>
>I think just laziness on my part when I first wrote it --- it only had
>one or two options anyway, and didn't seem to need long options.  But if
>converting to getopt_long is the easy way to avoid a porting problem,
>do it.
>
>
>

Some other time maybe. Meanwhile, this patch ought to make it compile
more cleanly on Windows - not sure why I get errors there but not Linux.

cheers

andrew
Index: src/bin/pg_resetxlog/pg_resetxlog.c
===================================================================
RCS file: /home/cvsmirror/pgsql/src/bin/pg_resetxlog/pg_resetxlog.c,v
retrieving revision 1.24
diff -c -r1.24 pg_resetxlog.c
*** src/bin/pg_resetxlog/pg_resetxlog.c    29 Aug 2004 16:34:48 -0000    1.24
--- src/bin/pg_resetxlog/pg_resetxlog.c    17 Nov 2004 20:24:43 -0000
***************
*** 36,41 ****
--- 36,45 ----
  #include <sys/time.h>
  #include <time.h>
  #include <unistd.h>
+ #ifdef HAVE_GETOPT_H
+ #include <getopt.h>
+ #endif
+

  #include "access/xlog.h"
  #include "access/xlog_internal.h"

Re: pg_resetxlog options

От
Tom Lane
Дата:
Andrew Dunstan <andrew@dunslane.net> writes:
> Some other time maybe. Meanwhile, this patch ought to make it compile
> more cleanly on Windows - not sure why I get errors there but not
> Linux.

The Single Unix Spec says that getopt() is supposed to be defined by
<unistd.h>, but I guess reading the spec closely is not a hobby in
Redmond...

Patch applied.

            regards, tom lane

Re: pg_resetxlog options

От
Peter Eisentraut
Дата:
Andrew Dunstan wrote:
> Some other time maybe. Meanwhile, this patch ought to make it compile
> more cleanly on Windows - not sure why I get errors there but not
> Linux.

Because getopt() is normally declared in unistd.h, not getopt.h (Windows
being an exception?).

--
Peter Eisentraut
http://developer.postgresql.org/~petere/


Re: pg_resetxlog options

От
"Zeugswetter Andreas DAZ SD"
Дата:
>> Some other time maybe. Meanwhile, this patch ought to make it compile
>> more cleanly on Windows - not sure why I get errors there but not
>> Linux.
>
> Because getopt() is normally declared in unistd.h, not getopt.h (Windows
> being an exception?).

getopt is not in any standard Windows headers. The getopt.h header is from mingw
to assist porting (don't know why they didn't put it in unistd.h ?).

Andreas