diff options
author | 2014-12-28 15:48:52 +0000 | |
---|---|---|
committer | 2014-12-28 15:48:52 +0000 | |
commit | beba0da1f69717d462ce646ef5a6c92fbce8b667 (patch) | |
tree | a58df5b2065a47a4fa1f4136349d14eab9c78f9f | |
parent | Attach USB HID devices from the Generic Destop page, usage pointer to (diff) | |
download | wireguard-openbsd-beba0da1f69717d462ce646ef5a6c92fbce8b667.tar.xz wireguard-openbsd-beba0da1f69717d462ce646ef5a6c92fbce8b667.zip |
Provide a mechanism for option parsing to return the number of arguments
that it has consumed. This allows for the handling of multiple unnamed
arguments, including lists of filenames.
-rw-r--r-- | usr.bin/openssl/apps.c | 11 | ||||
-rw-r--r-- | usr.bin/openssl/apps.h | 5 | ||||
-rw-r--r-- | usr.bin/openssl/crl.c | 4 | ||||
-rw-r--r-- | usr.bin/openssl/ecparam.c | 4 | ||||
-rw-r--r-- | usr.bin/openssl/prime.c | 4 | ||||
-rw-r--r-- | usr.bin/openssl/rand.c | 4 | ||||
-rw-r--r-- | usr.bin/openssl/version.c | 4 |
7 files changed, 22 insertions, 14 deletions
diff --git a/usr.bin/openssl/apps.c b/usr.bin/openssl/apps.c index 506e421cc12..7c774e40776 100644 --- a/usr.bin/openssl/apps.c +++ b/usr.bin/openssl/apps.c @@ -1,4 +1,4 @@ -/* $OpenBSD: apps.c,v 1.17 2014/12/28 15:05:38 jsing Exp $ */ +/* $OpenBSD: apps.c,v 1.18 2014/12/28 15:48:52 jsing Exp $ */ /* * Copyright (c) 2014 Joel Sing <jsing@openbsd.org> * @@ -2242,7 +2242,8 @@ options_usage(struct option *opts) } int -options_parse(int argc, char **argv, struct option *opts, char **unnamed) +options_parse(int argc, char **argv, struct option *opts, char **unnamed, + int *argsused) { const char *errstr; struct option *opt; @@ -2260,6 +2261,8 @@ options_parse(int argc, char **argv, struct option *opts, char **unnamed) /* Single unnamed argument (without leading hyphen). */ if (*p++ != '-') { + if (argsused != NULL) + goto done; if (unnamed == NULL) goto unknown; if (*unnamed != NULL) @@ -2344,6 +2347,10 @@ options_parse(int argc, char **argv, struct option *opts, char **unnamed) } } +done: + if (argsused != NULL) + *argsused = i; + return (0); toomany: diff --git a/usr.bin/openssl/apps.h b/usr.bin/openssl/apps.h index b069d2d29bf..c448e85d879 100644 --- a/usr.bin/openssl/apps.h +++ b/usr.bin/openssl/apps.h @@ -1,4 +1,4 @@ -/* $OpenBSD: apps.h,v 1.10 2014/12/28 14:21:42 jsing Exp $ */ +/* $OpenBSD: apps.h,v 1.11 2014/12/28 15:48:52 jsing Exp $ */ /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) * All rights reserved. * @@ -305,6 +305,7 @@ struct option { }; void options_usage(struct option *opts); -int options_parse(int argc, char **argv, struct option *opts, char **unnamed); +int options_parse(int argc, char **argv, struct option *opts, char **unnamed, + int *argsused); #endif diff --git a/usr.bin/openssl/crl.c b/usr.bin/openssl/crl.c index 0391e6e4dc0..2b6a4a3e5df 100644 --- a/usr.bin/openssl/crl.c +++ b/usr.bin/openssl/crl.c @@ -1,4 +1,4 @@ -/* $OpenBSD: crl.c,v 1.5 2014/10/13 02:46:14 bcook Exp $ */ +/* $OpenBSD: crl.c,v 1.6 2014/12/28 15:48:52 jsing Exp $ */ /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) * All rights reserved. * @@ -244,7 +244,7 @@ crl_main(int argc, char **argv) crl_config.informat = FORMAT_PEM; crl_config.outformat = FORMAT_PEM; - if (options_parse(argc, argv, crl_options, &digest_name) != 0) { + if (options_parse(argc, argv, crl_options, &digest_name, NULL) != 0) { crl_usage(); goto end; } diff --git a/usr.bin/openssl/ecparam.c b/usr.bin/openssl/ecparam.c index 57797a8e4e6..c958c1f51b2 100644 --- a/usr.bin/openssl/ecparam.c +++ b/usr.bin/openssl/ecparam.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ecparam.c,v 1.7 2014/12/28 14:21:42 jsing Exp $ */ +/* $OpenBSD: ecparam.c,v 1.8 2014/12/28 15:48:52 jsing Exp $ */ /* * Written by Nils Larsch for the OpenSSL project. */ @@ -277,7 +277,7 @@ ecparam_main(int argc, char **argv) ecparam_config.informat = FORMAT_PEM; ecparam_config.outformat = FORMAT_PEM; - if (options_parse(argc, argv, ecparam_options, NULL) != 0) { + if (options_parse(argc, argv, ecparam_options, NULL, NULL) != 0) { ecparam_usage(); goto end; } diff --git a/usr.bin/openssl/prime.c b/usr.bin/openssl/prime.c index d9237f9070a..fca3701632c 100644 --- a/usr.bin/openssl/prime.c +++ b/usr.bin/openssl/prime.c @@ -1,4 +1,4 @@ -/* $OpenBSD: prime.c,v 1.3 2014/10/13 02:46:14 bcook Exp $ */ +/* $OpenBSD: prime.c,v 1.4 2014/12/28 15:48:52 jsing Exp $ */ /* ==================================================================== * Copyright (c) 2004 The OpenSSL Project. All rights reserved. * @@ -123,7 +123,7 @@ prime_main(int argc, char **argv) /* Default iterations for Miller-Rabin probabilistic primality test. */ prime_config.checks = 20; - if (options_parse(argc, argv, prime_options, &prime) != 0) { + if (options_parse(argc, argv, prime_options, &prime, NULL) != 0) { prime_usage(); return (1); } diff --git a/usr.bin/openssl/rand.c b/usr.bin/openssl/rand.c index 6de2208b425..eccf4dee866 100644 --- a/usr.bin/openssl/rand.c +++ b/usr.bin/openssl/rand.c @@ -1,4 +1,4 @@ -/* $OpenBSD: rand.c,v 1.5 2014/10/22 13:54:03 jsing Exp $ */ +/* $OpenBSD: rand.c,v 1.6 2014/12/28 15:48:52 jsing Exp $ */ /* ==================================================================== * Copyright (c) 1998-2001 The OpenSSL Project. All rights reserved. * @@ -123,7 +123,7 @@ rand_main(int argc, char **argv) memset(&rand_config, 0, sizeof(rand_config)); - if (options_parse(argc, argv, rand_options, &num_bytes) != 0) { + if (options_parse(argc, argv, rand_options, &num_bytes, NULL) != 0) { rand_usage(); return (1); } diff --git a/usr.bin/openssl/version.c b/usr.bin/openssl/version.c index 953d0c3afea..2e28fa4345b 100644 --- a/usr.bin/openssl/version.c +++ b/usr.bin/openssl/version.c @@ -1,4 +1,4 @@ -/* $OpenBSD: version.c,v 1.4 2014/12/28 14:21:42 jsing Exp $ */ +/* $OpenBSD: version.c,v 1.5 2014/12/28 15:48:52 jsing Exp $ */ /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) * All rights reserved. * @@ -217,7 +217,7 @@ version_main(int argc, char **argv) { memset(&version_config, 0, sizeof(version_config)); - if (options_parse(argc, argv, version_options, NULL) != 0) { + if (options_parse(argc, argv, version_options, NULL, NULL) != 0) { version_usage(); return (1); } |