Thread: pg_resetxlog options
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
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
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"
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
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/
>> 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