Commit 98e8afde7fe3e7a30d7e270d252dc28c1950f24f

  • avatar
  • Petr Ovtchenkov (Committer)
  • Tue Aug 18 07:26:06 CEST 2009
  • avatar
  • ddeakins <DavidDeakins @gm…l.com> (Author)
  • Sun Aug 16 23:57:12 CEST 2009
Fix formatting for %j and %y time formatting options.

The %j and %y options in __write_formatted_time do not correctly
pad with zeros. The code for these options was rewritten to use
_STLP_SPRINTF to request zero padding.

Signed-off-by: ddeakins <DavidDeakins@gmail.com>
  
260260 break;
261261
262262 case 'j':
263 _bend = __write_integer(_buf, 0, (long)((long)t->tm_yday + 1));
264 __append(buf, _buf, _bend, ct);
263 {
264 long yday = (long)((long)t->tm_yday + 1);
265 _STLP_SPRINTF(_buf, (modifier != '#') ? "%.3ld" : "%ld", yday);
266 __append(buf, _buf, (yday < 10L && modifier == '#') ? _buf + 1 : ((yday < 100L && modifier == '#') ? _buf + 2 : _buf + 3), ct);
265267 break;
268 }
266269
267270 case 'm':
268271 _STLP_SPRINTF(_buf, (modifier != '#') ? "%.2ld" : "%ld", (long)t->tm_mon + 1);
313313 break;
314314
315315 case 'y':
316 _bend = __write_integer(_buf, 0, (long)((long)(t->tm_year + 1900) % 100));
317 __append(buf, _buf, _bend, ct);
316 _STLP_SPRINTF(_buf, (modifier != '#') ? "%.2ld" : "%ld", (long)(t->tm_year % 100));
317 __append(buf, _buf, ((long)(t->tm_year % 100) < 10L && modifier == '#') ? _buf + 1 : _buf + 2, ct);
318318 break;
319319
320320 case 'Y':