From: Hannes Eder <hannes@hanneseder.net>
To: Christopher Li <sparse@chrisli.org>
Cc: linux-sparse@vger.kernel.org,
Alexey Zaytsev <alexey.zaytsev@gmail.com>,
Junio C Hamano <junio@pobox.com>
Subject: [PATCH] refactor handle_switch_f
Date: Thu, 08 Jan 2009 21:50:56 +0100 [thread overview]
Message-ID: <20090108204937.6511.56533.stgit@vmbox.hanneseder.net> (raw)
In-Reply-To: <70318cbf0901081213i22dc8054yda4230e8a6375e9a@mail.gmail.com>
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@hanneseder.net>
---
On Thu, Jan 8, 2009 at 9:13 PM, Christopher Li <sparse@chrisli.org> 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;
}
next prev parent reply other threads:[~2009-01-08 20:51 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-12-31 12:41 [PATCH] Add -ftabstop=WIDTH Hannes Eder
2008-12-31 15:29 ` Alexey Zaytsev
2008-12-31 20:26 ` Christopher Li
2009-01-02 14:22 ` [PATCH v2] " Hannes Eder
2009-01-03 12:01 ` Junio C Hamano
2009-01-03 23:19 ` Christopher Li
2009-01-04 9:05 ` Junio C Hamano
2009-01-07 0:37 ` Christopher Li
2009-01-08 19:18 ` [PATCH v3] " Hannes Eder
2009-01-08 20:13 ` Christopher Li
2009-01-08 20:50 ` Hannes Eder [this message]
2009-01-09 4:25 ` [PATCH] refactor handle_switch_f Christopher Li
2009-01-03 22:41 ` [PATCH v2] Add -ftabstop=WIDTH Christopher Li
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=20090108204937.6511.56533.stgit@vmbox.hanneseder.net \
--to=hannes@hanneseder.net \
--cc=alexey.zaytsev@gmail.com \
--cc=junio@pobox.com \
--cc=linux-sparse@vger.kernel.org \
--cc=sparse@chrisli.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).