Add bsd_getopt
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
diff --git a/ChangeLog b/ChangeLog
index f33a120..bfb38ee 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2006-02-13 Robert Millan <rmh@aybabtu.com>
+
+ Add bsd_getopt.
+ * bsd_getopt.c: New.
+ * include/bsd/getopt.h: New.
+ * Versions: Add bsd_getopt and optreset.
+ * Makefile: Add bsd_getopt.c and include/bsd/getopt.h.
+
2006-02-10 Robert Millan <rmh@aybabtu.com>
Add errc, warnc, verrc and vwarnc.
diff --git a/Makefile b/Makefile
index 5190820..a028db0 100644
--- a/Makefile
+++ b/Makefile
@@ -4,9 +4,9 @@
# $Id$
#
-LIB_SRCS = arc4random.c err.c fgetln.c inet_net_pton.c strlcat.c strlcpy.c md5c.c fmtcheck.c
+LIB_SRCS = arc4random.c bsd_getopt.c err.c fgetln.c inet_net_pton.c strlcat.c strlcpy.c md5c.c fmtcheck.c
-LIB_INCLUDES = include/bsd/err.h include/bsd/ip_icmp.h include/bsd/random.h include/bsd/queue.h include/bsd/md5.h include/bsd/string.h include/bsd/bsd.h include/bsd/stdlib.h
+LIB_INCLUDES = include/bsd/err.h include/bsd/getopt.h include/bsd/ip_icmp.h include/bsd/random.h include/bsd/queue.h include/bsd/md5.h include/bsd/string.h include/bsd/bsd.h include/bsd/stdlib.h
LIB_MANS = man/arc4random.3 man/strlcpy.3 man/fgetln.3 man/fmtcheck.3
diff --git a/Versions b/Versions
index 49e068c..318bbc3 100644
--- a/Versions
+++ b/Versions
@@ -1,6 +1,7 @@
LIBBSD_0.0 {
global:
arc4random;
+ bsd_getopt; optreset;
errc; warnc; verrc; vwarnc;
fgetln;
fgetwln;
diff --git a/bsd_getopt.c b/bsd_getopt.c
new file mode 100644
index 0000000..8245fc8
--- /dev/null
+++ b/bsd_getopt.c
@@ -0,0 +1,15 @@
+#include <bsd/getopt.h>
+
+int optreset = 0;
+
+int
+bsd_getopt (int argc, char **argv, char *shortopts)
+{
+ if (optreset == 1)
+ {
+ optreset = 0;
+ optind = 0;
+ }
+
+ return getopt (argc, argv, shortopts);
+}
diff --git a/include/bsd/getopt.h b/include/bsd/getopt.h
new file mode 100644
index 0000000..bf78f01
--- /dev/null
+++ b/include/bsd/getopt.h
@@ -0,0 +1,4 @@
+#include <getopt.h>
+extern int optreset;
+
+int bsd_getopt (int, char **, char *);