From 647c1a33c84c2cb8a9e4d0c4605b1cbdee983d9c Mon Sep 17 00:00:00 2001 From: "Dimitrie O. Paun" Date: Tue, 10 Dec 2002 19:16:24 +0000 Subject: [PATCH] Gracefully degrade to getopt if getopt_long does not exist. --- configure | 4 ++++ configure.ac | 2 ++ include/config.h.in | 6 ++++++ tools/wrc/wrc.c | 10 +++++++++- 4 files changed, 21 insertions(+), 1 deletion(-) diff --git a/configure b/configure index 0590c09f4f..6528970cc2 100755 --- a/configure +++ b/configure @@ -11552,6 +11552,7 @@ fi + for ac_func in \ @@ -11570,6 +11571,7 @@ for ac_func in \ ftruncate64 \ getnetbyaddr \ getnetbyname \ + getopt_long \ getpagesize \ getprotobyname \ getprotobynumber \ @@ -11743,6 +11745,7 @@ done + for ac_header in \ @@ -11752,6 +11755,7 @@ for ac_header in \ direct.h \ elf.h \ float.h \ + getopt.h \ ieeefp.h \ io.h \ libio.h \ diff --git a/configure.ac b/configure.ac index e9135cc265..f446767f85 100644 --- a/configure.ac +++ b/configure.ac @@ -932,6 +932,7 @@ AC_CHECK_FUNCS(\ ftruncate64 \ getnetbyaddr \ getnetbyname \ + getopt_long \ getpagesize \ getprotobyname \ getprotobynumber \ @@ -980,6 +981,7 @@ AC_CHECK_HEADERS(\ direct.h \ elf.h \ float.h \ + getopt.h \ ieeefp.h \ io.h \ libio.h \ diff --git a/include/config.h.in b/include/config.h.in index a0124e6b63..6d03a8d2c6 100644 --- a/include/config.h.in +++ b/include/config.h.in @@ -134,6 +134,12 @@ /* Define to 1 if you have the `getnetbyname' function. */ #undef HAVE_GETNETBYNAME +/* Define to 1 if you have the header file. */ +#undef HAVE_GETOPT_H + +/* Define to 1 if you have the `getopt_long' function. */ +#undef HAVE_GETOPT_LONG + /* Define to 1 if you have the `getpagesize' function. */ #undef HAVE_GETPAGESIZE diff --git a/tools/wrc/wrc.c b/tools/wrc/wrc.c index 96e39a3698..098eee4163 100644 --- a/tools/wrc/wrc.c +++ b/tools/wrc/wrc.c @@ -59,7 +59,9 @@ #include #include #include -#include +#ifdef HAVE_GETOPT_H +# include +#endif #include "wrc.h" #include "utils.h" @@ -284,6 +286,7 @@ int getopt (int argc, char *const *argv, const char *optstring); static void rm_tempfile(void); static void segvhandler(int sig); +#ifdef HAVE_GETOPT_LONG static struct option long_options[] = { { "input", 1, 0, 'i' }, { "output", 1, 0, 'o' }, @@ -297,6 +300,7 @@ static struct option long_options[] = { { "version", 0, 0, 3 }, { 0, 0, 0, 0 } }; +#endif int main(int argc,char *argv[]) { @@ -327,7 +331,11 @@ int main(int argc,char *argv[]) strcat(cmdline, " "); } +#ifdef HAVE_GETOPT_LONG while((optc = getopt_long(argc, argv, "a:AbB:cC:d:D:eEF:ghH:i:I:l:LmnNo:O:p:rstTVw:W", long_options, &opti)) != EOF) +#else + while((optc = getopt(argc, argv, "a:AbB:cC:d:D:eEF:ghH:i:I:l:LmnNo:O:p:rstTVw:W")) != EOF) +#endif { switch(optc) { -- 2.32.0.93.g670b81a890