ident: refactor NO_DATE flag in fmt_ident
authorJeff King <peff@peff.net>
Thu, 24 May 2012 23:26:50 +0000 (19:26 -0400)
committerJunio C Hamano <gitster@pobox.com>
Fri, 25 May 2012 00:16:40 +0000 (17:16 -0700)
As a short-hand, we extract this flag into the local
variable "name_addr_only". It's more accurate to simply
negate this and refer to it as "want_date", which will be
less confusing when we add more NO_* flags.

While we're touching this part of the code, let's move the
call to ident_default_date() only when we are actually going
to use it, not when we have NO_DATE set, or when we get a
date from the environment.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
ident.c

diff --git a/ident.c b/ident.c
index f5160e1f43bf06aaf2cddfc2fe66f8d463c3f6cc..59beef2f3591ebce662f0f468ccac537e28b370a 100644 (file)
--- a/ident.c
+++ b/ident.c
@@ -268,7 +268,7 @@ const char *fmt_ident(const char *name, const char *email,
        static struct strbuf ident = STRBUF_INIT;
        char date[50];
        int error_on_no_name = (flag & IDENT_ERROR_ON_NO_NAME);
-       int name_addr_only = (flag & IDENT_NO_DATE);
+       int want_date = !(flag & IDENT_NO_DATE);
 
        if (!name)
                name = ident_default_name();
@@ -287,10 +287,13 @@ const char *fmt_ident(const char *name, const char *email,
                name = pw->pw_name;
        }
 
-       strcpy(date, ident_default_date());
-       if (!name_addr_only && date_str && date_str[0]) {
-               if (parse_date(date_str, date, sizeof(date)) < 0)
-                       die("invalid date format: %s", date_str);
+       if (want_date) {
+               if (date_str && date_str[0]) {
+                       if (parse_date(date_str, date, sizeof(date)) < 0)
+                               die("invalid date format: %s", date_str);
+               }
+               else
+                       strcpy(date, ident_default_date());
        }
 
        strbuf_reset(&ident);
@@ -298,7 +301,7 @@ const char *fmt_ident(const char *name, const char *email,
        strbuf_addstr(&ident, " <");
        strbuf_addstr_without_crud(&ident, email);
        strbuf_addch(&ident, '>');
-       if (!name_addr_only) {
+       if (want_date) {
                strbuf_addch(&ident, ' ');
                strbuf_addstr_without_crud(&ident, date);
        }