diff options
author | José Fonseca <jfonseca@vmware.com> | 2011-01-12 16:08:22 +0000 |
---|---|---|
committer | José Fonseca <jfonseca@vmware.com> | 2011-01-12 16:54:21 +0000 |
commit | f9bb5323eb96f47cfb4ab5f93165323df0a1fd61 (patch) | |
tree | fdc8f69ad6ed4bc345d464b97ea3cfeb76cbb722 /src/getopt | |
parent | 6d670f6c0f3b9383b8b4c8ed12beaeec56928266 (diff) |
getopt: Make code more portable.
Diffstat (limited to 'src/getopt')
-rw-r--r-- | src/getopt/SConscript | 2 | ||||
-rw-r--r-- | src/getopt/getopt.h | 12 | ||||
-rw-r--r-- | src/getopt/getopt_long.c | 16 |
3 files changed, 18 insertions, 12 deletions
diff --git a/src/getopt/SConscript b/src/getopt/SConscript index 0fbaab4af9..14cabed4e6 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 0311b078b7..117608f485 100644 --- a/src/getopt/getopt.h +++ b/src/getopt/getopt.h @@ -33,8 +33,6 @@ #ifndef _GETOPT_H_ #define _GETOPT_H_ -#include <sys/cdefs.h> - /* * 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 eb1e3ef4be..81268b8395 100644 --- a/src/getopt/getopt_long.c +++ b/src/getopt/getopt_long.c @@ -49,9 +49,9 @@ * POSSIBILITY OF SUCH DAMAGE. */ -#include <err.h> #include <errno.h> #include <getopt.h> +#include <stdio.h> #include <stdlib.h> #include <string.h> @@ -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 |