On Mon, 03 Dec 2012, Michal Nazarewicz <mina86@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. BR, Jani. > > Than again, it's argument parsing so hardly a performance critical path, > so maybe readability is more important. > >> --- >> 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@google.com>--------------ooO--(_)--Ooo--