On Mon, Feb 24, 2014 at 12:21:33PM -0800, Junio C Hamano wrote: > >> > + if (date_overflows(date)) > >> > + date = 0; > >> > + else { > >> > + if (ident->tz_begin && ident->tz_end) > >> > + tz = strtol(ident->tz_begin, NULL, 10); > >> > + if (tz == LONG_MAX || tz == LONG_MIN) > >> > + tz = 0; > >> > + } > >> > >> ... don't we want to fix an input having a bogus timestamp and also > >> a bogus tz recorded in it? > > > > If there is a bogus timestamp, then we do not want to look at tz at all. > > We leave it at "0", so that we get a true sentinel: > > Ah, OK, I missed the initialization to 0 at the beginning. > > It might have been more clear if "int tz" declaration were left > uninitialized, and the variable were explicitly cleared to 0 in the > "date-overflows" error codepath, but it is not a big deal. It might be, but I think it would end up cumbersome. The initialization was already there from the previous version, which was hitting the else for "ident->tz_begin". Without fallback initializations, you end up with: if (ident->date_begin && ident->date_end) { date = strtoul(ident->date_begin, NULL, 10); if (date_overflows(date)) { date = 0; tz = 0; } else { if (ident->tz_begin && ident->tz_end) { tz = strtol(ident->tz_begin, NULL, 10); if (tz == LONG_MAX || tz == LONG_MIN) tz = 0; } else tz = 0; } } else { date = 0; tz = 0; } which I think is much more confusing (and hard to verify that the variables are always set). Checking !date as an error condition would make it a little more readable: if (ident->date_begin && ident->date_end) { date = strtoul(ident->date_begin, NULL, 10); if (date_overflows(date)) date = 0; } else date = 0; if (date) { if (ident->tz_begin && ident->tz_end) { tz = strtol(ident->tz_begin, NULL, 10); if (tz == LONG_MAX || tz == LONG_MIN) tz = 0; } else tz = 0; } else tz = 0; but then we treat date==0 as a sentinel, and can never correctly parse dates on Jan 1, 1970. So I'd be in favor of keeping it as-is, but feel free to mark it up if you feel strongly. -Peff -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html