From: José Fonseca Date: Wed, 12 Jan 2011 16:08:22 +0000 (+0000) Subject: getopt: Make code more portable. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=f9bb5323eb96f47cfb4ab5f93165323df0a1fd61;p=mesa.git getopt: Make code more portable. --- diff --git a/src/getopt/SConscript b/src/getopt/SConscript index 0fbaab4af9c..14cabed4e64 100644 --- a/src/getopt/SConscript +++ b/src/getopt/SConscript @@ -5,6 +5,8 @@ if not env['msvc']: env = env.Clone() +env.Prepend(CPPPATH = ['.']) + getopt = env.ConvenienceLibrary( target = 'getopt', source = ['getopt_long.c'], diff --git a/src/getopt/getopt.h b/src/getopt/getopt.h index 0311b078b71..117608f485e 100644 --- a/src/getopt/getopt.h +++ b/src/getopt/getopt.h @@ -33,8 +33,6 @@ #ifndef _GETOPT_H_ #define _GETOPT_H_ -#include - /* * GNU-like getopt_long() and 4.4BSD getsubopt()/optreset extensions */ @@ -42,6 +40,10 @@ #define required_argument 1 #define optional_argument 2 +#ifdef __cplusplus +extern "C" { +#endif + struct option { /* name of long option */ const char *name; @@ -56,7 +58,6 @@ struct option { int val; }; -__BEGIN_DECLS int getopt_long(int, char * const *, const char *, const struct option *, int *); int getopt_long_only(int, char * const *, const char *, @@ -73,6 +74,9 @@ extern int optopt; extern int optreset; extern char *suboptarg; /* getsubopt(3) external variable */ #endif -__END_DECLS + +#ifdef __cplusplus +} +#endif #endif /* !_GETOPT_H_ */ diff --git a/src/getopt/getopt_long.c b/src/getopt/getopt_long.c index eb1e3ef4be5..81268b83953 100644 --- a/src/getopt/getopt_long.c +++ b/src/getopt/getopt_long.c @@ -49,9 +49,9 @@ * POSSIBILITY OF SUCH DAMAGE. */ -#include #include #include +#include #include #include @@ -198,7 +198,7 @@ parse_long_options(char * const *nargv, const char *options, else { /* ambiguous abbreviation */ if (PRINT_ERROR) - warnx(ambig, (int)current_argv_len, + fprintf(stderr, ambig, (int)current_argv_len, current_argv); optopt = 0; return (BADCH); @@ -208,7 +208,7 @@ parse_long_options(char * const *nargv, const char *options, if (long_options[match].has_arg == no_argument && has_equal) { if (PRINT_ERROR) - warnx(noarg, (int)current_argv_len, + fprintf(stderr, noarg, (int)current_argv_len, current_argv); /* * XXX: GNU sets optopt to val regardless of flag @@ -238,7 +238,7 @@ parse_long_options(char * const *nargv, const char *options, * should be generated. */ if (PRINT_ERROR) - warnx(recargstring, + fprintf(stderr, recargstring, current_argv); /* * XXX: GNU sets optopt to val regardless of flag @@ -256,7 +256,7 @@ parse_long_options(char * const *nargv, const char *options, return (-1); } if (PRINT_ERROR) - warnx(illoptstring, current_argv); + fprintf(stderr, illoptstring, current_argv); optopt = 0; return (BADCH); } @@ -418,7 +418,7 @@ start: if (!*place) ++optind; if (PRINT_ERROR) - warnx(illoptchar, optchar); + fprintf(stderr, illoptchar, optchar); optopt = optchar; return (BADCH); } @@ -429,7 +429,7 @@ start: else if (++optind >= nargc) { /* no arg */ place = EMSG; if (PRINT_ERROR) - warnx(recargchar, optchar); + fprintf(stderr, recargchar, optchar); optopt = optchar; return (BADARG); } else /* white space */ @@ -450,7 +450,7 @@ start: if (++optind >= nargc) { /* no arg */ place = EMSG; if (PRINT_ERROR) - warnx(recargchar, optchar); + fprintf(stderr, recargchar, optchar); optopt = optchar; return (BADARG); } else