[PATCH] refactor handle_switch_f

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This also fixes a possible source of bugs in parsing other
-f<whatever> options, i.e. -ftabstop=foo would set the option -ffoo.

Signed-off-by: Hannes Eder <hannes@xxxxxxxxxxxxxx>
---

On Thu, Jan 8, 2009 at 9:13 PM, Christopher Li <sparse@xxxxxxxxxxx> wrote:
> Is that the only portion that get changed between v2 and v3?
> It took me a while to realized what really get changed here.

Yes, only handle_switch_f has changed between v2 and v3.

> I suggest a new function: handle_switch_ftabstop() here.
>
> Then we do:
>
>       if (!strncmp(arg, "tabstop=", 8))
>           return handle_switch_ftabstop(arg+8, next);
>
> It will make handle_switch_f cleaner.

Good idea.

> I already apply your V2 patch. Can you make this change
> an incremental patch against my tree?

Here we go.

 lib.c |   31 ++++++++++++++++++++-----------
 1 files changed, 20 insertions(+), 11 deletions(-)

diff --git a/lib.c b/lib.c
index be9e8d7..54d8cf5 100644
--- a/lib.c
+++ b/lib.c
@@ -524,25 +524,34 @@ static char **handle_switch_O(char *arg, char **next)
 	return next;
 }
 
+static char **handle_switch_ftabstop(char *arg, char **next)
+{
+	char *end;
+	unsigned long val;
+
+	if (*arg == '\0')
+		die("error: missing argument to \"-ftabstop=\"");
+
+	/* we silently ignore silly values */
+	val = strtoul(arg, &end, 10);
+	if (*end == '\0' && 1 <= val && val <= 100)
+		tabstop = val;
+
+	return next;
+}
+
 static char **handle_switch_f(char *arg, char **next)
 {
 	int flag = 1;
 
 	arg++;
 
-	if (!strncmp(arg, "tabstop=", 8)) {
-		char *end;
-		unsigned long val;
-		arg += 8;
+	if (!strncmp(arg, "tabstop=", 8))
+		return handle_switch_ftabstop(arg+8, next);
 
-		if (*arg == '\0')
-			die("error: missing argument to \"-ftabstop=\"");
+	/* handle switches w/ arguments above, boolean and only boolean below */
 
-		/* we silently ignore silly values */
-		val = strtoul(arg, &end, 10);
-		if (*end == '\0' && 1 <= val && val <= 100)
-			tabstop = val;
-	} else if (!strncmp(arg, "no-", 3)) {
+	if (!strncmp(arg, "no-", 3)) {
 		flag = 0;
 		arg += 3;
 	}

--
To unsubscribe from this list: send the line "unsubscribe linux-sparse" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Newbies FAQ]     [LKML]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Trinity Fuzzer Tool]

  Powered by Linux