On Thu, Aug 28, 2014 at 03:53:13PM -0700, Junio C Hamano wrote: > Beat Bolli writes: > > + else if (mode == DATE_ISO8601_STRICT) > > + strbuf_addf(&timebuf, "%04d-%02d-%02dT%02d:%02d:%02d%+03d:%02d", > > + tm->tm_year + 1900, > > + tm->tm_mon + 1, > > + tm->tm_mday, > > + tm->tm_hour, tm->tm_min, tm->tm_sec, > > + tz / 100, abs(tz % 100)); > > Wouldn't this misidentify a zone that is 30 minutes off of GMT, > i.e. tz == -30? tz/100 would not be negative and "%+03d:" would > happily show "+00:", no? No. strbuf_addf uses strbuf_vaddf which uses vsnprintf(3). From man vsnprintf(3): > The flag characters > The character % is followed by zero or more of the following > flags: > > + A sign (+ or -) should always be placed before a number > produced by a signed conversion. By default a sign is > used only for negative numbers. A + overrides a space if > both are used. Perhaps you misread "%+03d:" as "+%02d:"? -- Scott Schmit -- 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