linux-sparse.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Luc Van Oostenryck <luc.vanoostenryck@gmail.com>
To: linux-sparse@vger.kernel.org
Cc: Luc Van Oostenryck <luc.vanoostenryck@gmail.com>
Subject: [PATCH 6/9] option: add support for '-<some-option>=unlimited'
Date: Wed,  8 Nov 2017 11:10:05 +0100	[thread overview]
Message-ID: <20171108101008.43804-7-luc.vanoostenryck@gmail.com> (raw)
In-Reply-To: <20171108101008.43804-1-luc.vanoostenryck@gmail.com>

For some options with a numerical value, it is sometimes desirable,
when the value is used to limits something, to easily specify we
want to remove any limits.

This patch allow to use 'unlimited' for this by interpreting it as
the maximum value.

Signed-off-by: Luc Van Oostenryck <luc.vanoostenryck@gmail.com>
---
 lib.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/lib.c b/lib.c
index 6352b4e93..4c210d58f 100644
--- a/lib.c
+++ b/lib.c
@@ -511,6 +511,7 @@ static int handle_simple_switch(const char *arg, const struct flag *flags)
 
 
 #define	OPTNUM_ZERO_IS_INF		1
+#define	OPTNUM_UNLIMITED		2
 
 #define OPT_NUMERIC(NAME, TYPE, FUNCTION)	\
 static int opt_##NAME(char *arg, const char *name, TYPE *ptr, int flag)	\
@@ -524,6 +525,9 @@ static int opt_##NAME(char *arg, const char *name, TYPE *ptr, int flag)	\
 	opt++; /* opt's last char is '=' */				\
 	val = FUNCTION(opt, &end, 0);					\
 	if (*end != '\0' || end == opt) {				\
+		if ((flag & OPTNUM_UNLIMITED) && !strcmp(opt, "unlimited"))	\
+			val = ~val;					\
+		else							\
 			die("error: missing argument to \"%s\"", name);	\
 	}								\
 	if ((flag & OPTNUM_ZERO_IS_INF) && val == 0)			\
-- 
2.14.0


  parent reply	other threads:[~2017-11-08 10:10 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-11-08 10:09 [PATCH 0/9] option parsing improvements Luc Van Oostenryck
2017-11-08 10:10 ` [PATCH 1/9] option: add helper to parse/match command line options Luc Van Oostenryck
2017-11-08 10:10 ` [PATCH 2/9] option: rename 'struct warning' to 'struct flag' Luc Van Oostenryck
2017-11-08 10:10 ` [PATCH 3/9] option: let handle_simple_switch() handle an array of flags Luc Van Oostenryck
2017-11-08 10:10 ` [PATCH 4/9] option: extract OPTION_NUMERIC() from handle_switch_fmemcpy_max_count() Luc Van Oostenryck
2017-11-08 10:10 ` [PATCH 5/9] option: add support for options with 'zero is infinity' Luc Van Oostenryck
2017-11-08 10:10 ` Luc Van Oostenryck [this message]
2017-11-08 10:10 ` [PATCH 7/9] option: use OPTION_NUMERIC() for handle_switch_fmemcpy_max_count() Luc Van Oostenryck
2017-11-08 10:10 ` [PATCH 8/9] option: constify match_option() Luc Van Oostenryck
2017-11-08 10:10 ` [PATCH 9/9] option: handle switches by table Luc Van Oostenryck
2017-11-09 18:42   ` Christopher Li
2017-11-09 21:02     ` Luc Van Oostenryck
  -- strict thread matches above, loose matches on Subject: below --
2017-09-15  7:32 [PATCH 0/9] Simplify the parsion of options Luc Van Oostenryck
2017-09-15  7:32 ` [PATCH 6/9] option: add support for '-<some-option>=unlimited' Luc Van Oostenryck

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20171108101008.43804-7-luc.vanoostenryck@gmail.com \
    --to=luc.vanoostenryck@gmail.com \
    --cc=linux-sparse@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).