From 86387d4eb3e8e6f97ab8b7f0e2d6988ed0e62e48 Mon Sep 17 00:00:00 2001 From: Salvatore Cro Date: Sun, 16 Aug 2015 20:53:37 -0700 Subject: Add argp implementation Argp is an advanced support for parsing unix-style argument vectors. In addition to the common getopt interface, it provides automatic response to `--help' and `--version' options and use of custom parser in conjunction with argp native option parser, among others. Argp support is required by elfutils package and prelink. In uClibc argp functionalities has been moved from C library to libuargp.so Further the libc.so linker script contains an AS_NEEDED entry so that it doesn't need to link libuargp.so explicitely. Disable argp test if feature disabled. Signed-off-by: Salvatore Cro Signed-off-by: Filippo Arcidiacono Signed-off-by: Carmelo Amoroso Signed-off-by: Khem Raj Signed-off-by: Waldemar Brodkorb --- libc/unistd/getopt.c | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) (limited to 'libc/unistd') diff --git a/libc/unistd/getopt.c b/libc/unistd/getopt.c index f63482bc8..db5e12c59 100644 --- a/libc/unistd/getopt.c +++ b/libc/unistd/getopt.c @@ -105,7 +105,7 @@ they can distinguish the relative order of options and other arguments. */ #include -#include "getopt_int.h" +#include /* For communication from `getopt' to the caller. @@ -1170,6 +1170,15 @@ getopt_long (int argc, char *const *argv, const char *options, return _getopt_internal (argc, argv, options, long_options, opt_index, 0); } +int +_getopt_long_r (int argc, char *const *argv, const char *options, + const struct option *long_options, int *opt_index, + struct _getopt_data *d) +{ + return _getopt_internal_r (argc, argv, options, long_options, opt_index, + 0, d); +} + /* Like getopt_long, but '-' as well as '--' can indicate a long option. If an option that starts with '-' (not '--') doesn't match a long option, but does match a short option, it is parsed as a short option @@ -1183,4 +1192,12 @@ getopt_long_only (int argc, char *const *argv, const char *options, } #endif /* __UCLIBC_HAS_GETOPT_LONG__ */ +int +_getopt_long_only_r (int argc, char *const *argv, const char *options, + const struct option *long_options, int *opt_index, + struct _getopt_data *d) +{ + return _getopt_internal_r (argc, argv, options, long_options, opt_index, 1, d); +} + #endif /* Not ELIDE_CODE. */ -- cgit v1.2.3