ident: refactor NO_DATE flag in fmt_ident

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>

Jeff King committed May 24, 2012 at 19:26 UTC 359b27add341878a13c6a8b85849b75b78246c7e
1 file changed +9 -6
ident.c
+9 -6
@@ -268,7 +268,7 @@ const char *fmt_ident(const char *name, const char *email,
268 static struct strbuf ident = STRBUF_INIT;
269 char date[50];
270 int error_on_no_name = (flag & IDENT_ERROR_ON_NO_NAME);
271 - int name_addr_only = (flag & IDENT_NO_DATE);
271 + int want_date = !(flag & IDENT_NO_DATE);
272
273 if (!name)
274 name = ident_default_name();
@@ -287,10 +287,13 @@ const char *fmt_ident(const char *name, const char *email,
287 name = pw->pw_name;
288 }
289
290 - strcpy(date, ident_default_date());
291 - if (!name_addr_only && date_str && date_str[0]) {
292 - if (parse_date(date_str, date, sizeof(date)) < 0)
293 - die("invalid date format: %s", date_str);
290 + if (want_date) {
291 + if (date_str && date_str[0]) {
292 + if (parse_date(date_str, date, sizeof(date)) < 0)
293 + die("invalid date format: %s", date_str);
294 + }
295 + else
296 + strcpy(date, ident_default_date());
297 }
298
299 strbuf_reset(&ident);
@@ -298,7 +301,7 @@ const char *fmt_ident(const char *name, const char *email,
301 strbuf_addstr(&ident, " <");
302 strbuf_addstr_without_crud(&ident, email);
303 strbuf_addch(&ident, '>');
301 - if (!name_addr_only) {
304 + if (want_date) {
305 strbuf_addch(&ident, ' ');
306 strbuf_addstr_without_crud(&ident, date);
307 }