summaryrefslogtreecommitdiffstats
path: root/src/getopt
diff options
context:
space:
mode:
authorJosé Fonseca <[email protected]>2011-01-12 16:08:22 +0000
committerJosé Fonseca <[email protected]>2011-01-12 16:54:21 +0000
commitf9bb5323eb96f47cfb4ab5f93165323df0a1fd61 (patch)
treefdc8f69ad6ed4bc345d464b97ea3cfeb76cbb722 /src/getopt
parent6d670f6c0f3b9383b8b4c8ed12beaeec56928266 (diff)
getopt: Make code more portable.
Diffstat (limited to 'src/getopt')
-rw-r--r--src/getopt/SConscript2
-rw-r--r--src/getopt/getopt.h12
-rw-r--r--src/getopt/getopt_long.c16
3 files changed, 18 insertions, 12 deletions
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 <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 eb1e3ef4be5..81268b83953 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