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