date: for -uR and -uIh, timezone still have to be shown at +hhmm, not as abbreviation

function                                             old     new   delta
date_main                                            963     941     -22

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
Denys Vlasenko 2020-11-28 20:58:42 +01:00
parent 818a4aa2ef
commit ab6991c6f5

View File

@ -320,18 +320,16 @@ int date_main(int argc UNUSED_PARAM, char **argv)
i = 8 + 3 * ifmt;
if (ifmt != 0) {
/* TODO: if (ifmt==4) i += sprintf(&fmt_dt2str[i], ",%09u", nanoseconds); */
format_utc:
fmt_dt2str[i++] = '%';
fmt_dt2str[i++] = (opt & OPT_UTC) ? 'Z' : 'z';
fmt_dt2str[i++] = 'z';
/* FIXME: %z prints "+hhmm" timezone, but coreutils-8.30 prints "+hh:mm" */
}
fmt_dt2str[i] = '\0';
} else if (opt & OPT_RFC2822) {
/* -R. undo busybox.c setlocale */
if (ENABLE_LOCALE_SUPPORT)
setlocale(LC_TIME, "C");
strcpy(fmt_dt2str, "%a, %d %b %Y %H:%M:%S ");
i = sizeof("%a, %d %b %Y %H:%M:%S ")-1;
goto format_utc;
strcpy(fmt_dt2str, "%a, %d %b %Y %H:%M:%S %z");
} else { /* default case */
fmt_dt2str = (char*)"%a %b %e %H:%M:%S %Z %Y";
}