[PATCH 1/2] cli: fix notmuch top level argument parsing
Jani Nikula
jani at nikula.org
Mon Dec 3 14:30:29 PST 2012
On Tue, 04 Dec 2012, Jani Nikula <jani at nikula.org> wrote:
> On Mon, 03 Dec 2012, Michal Nazarewicz <mina86 at mina86.com> wrote:
>> On Mon, Dec 03 2012, Jani Nikula wrote:
>>> Use strcmp instead of STRNCMP_LITERAL, which matches the prefix
>>> instead of the whole argument.
>>
>> Perhaps add and use this instead:
>>
>> #define STRCMP_LITERAL(var, literal) \
>> strncmp ((var), (literal), sizeof (literal))
>
> That's broken the same way STRNCMP_LITERAL is broken in this use case:
> it matches if literal is a prefix of var.
Err, that's bollocks. Missed the missing -1 there. ;)
>> Than again, it's argument parsing so hardly a performance critical path,
>> so maybe readability is more important.
I'll go with this. And I'm not even sure strncmp is faster than strcmp,
as it has to keep track of count.
BR,
Jani.
>>
>>> ---
>>> notmuch.c | 4 ++--
>>> 1 file changed, 2 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/notmuch.c b/notmuch.c
>>> index 477a09c..4ff66e3 100644
>>> --- a/notmuch.c
>>> +++ b/notmuch.c
>>> @@ -245,10 +245,10 @@ main (int argc, char *argv[])
>>> if (argc == 1)
>>> return notmuch (local);
>>>
>>> - if (STRNCMP_LITERAL (argv[1], "--help") == 0)
>>> + if (strcmp (argv[1], "--help") == 0)
>>> return notmuch_help_command (NULL, argc - 1, &argv[1]);
>>>
>>> - if (STRNCMP_LITERAL (argv[1], "--version") == 0) {
>>> + if (strcmp (argv[1], "--version") == 0) {
>>> printf ("notmuch " STRINGIFY(NOTMUCH_VERSION) "\n");
>>> return 0;
>>> }
>>
>> --
>> Best regards, _ _
>> .o. | Liege of Serenely Enlightened Majesty of o' \,=./ `o
>> ..o | Computer Science, Michał “mina86” Nazarewicz (o o)
>> ooo +----<email/xmpp: mpn at google.com>--------------ooO--(_)--Ooo--
More information about the notmuch
mailing list