From: Guillem Jover Date: Wed, 25 May 2011 05:38:36 +0000 (+0200) Subject: Map getopt to bsd_getopt if we are using the overlay X-Git-Tag: 0.3.0~16 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=9d042171749b94510b071c9e800ed0d2a4e95bb9;p=thirdparty%2Flibbsd.git Map getopt to bsd_getopt if we are using the overlay This will ensure the code can safely and correctly use optreset transparently. --- diff --git a/include/bsd/getopt.h b/include/bsd/getopt.h index d2963cb..ba2c4eb 100644 --- a/include/bsd/getopt.h +++ b/include/bsd/getopt.h @@ -39,6 +39,11 @@ __BEGIN_DECLS extern int optreset; +#ifdef LIBBSD_OVERLAY +#undef getopt +#define getopt(argc, argv, optstr) bsd_getopt(argc, argv, optstr) +#endif + int bsd_getopt (int, char **, char *); __END_DECLS diff --git a/src/bsd_getopt.c b/src/bsd_getopt.c index f5fb304..3e89817 100644 --- a/src/bsd_getopt.c +++ b/src/bsd_getopt.c @@ -36,5 +36,9 @@ bsd_getopt(int argc, char **argv, char *shortopts) optind = 0; } - return getopt(argc, argv, shortopts); + /* + * Make sure we are using the system getopt() and not a possible + * overlay macro. + */ + return (getopt)(argc, argv, shortopts); }