(DATE_FMT_LANGINFO): New macro, taken from sh-utils/src/date.c.
(print_long_format): Use it to determine "date" format.
Do not wrap "%b %e %Y" and "%b %e %H:%M" in _(), as it results in
incorrect behavior when LC_ALL is unset, LC_TIME is "C", and
LC_MESSAGES or LANG is set to something disagreeing with the POSIX
locale.
# endif
#endif
+#if HAVE_LANGINFO_H
+# include <langinfo.h>
+#endif
+#ifdef _DATE_FMT
+# define DATE_FMT_LANGINFO() nl_langinfo (_DATE_FMT)
+#else
+# define DATE_FMT_LANGINFO() ""
+#endif
+
#include "system.h"
#include <fnmatch.h>
if (full_time)
{
- fmt = _("%a %b %d %H:%M:%S %Y");
+ char *date_fmt = DATE_FMT_LANGINFO ();
+ fmt = *date_fmt ? date_fmt : "%a %b %e %H:%M:%S %Z %Y";
}
else
{
Allow a 1 hour slop factor for what is considered "the future",
to allow for NFS server/client clock disagreement.
Show the year instead of the time of day. */
- fmt = _("%b %e %Y");
+ fmt = "%b %e %Y";
}
else
{
- fmt = _("%b %e %H:%M");
+ fmt = "%b %e %H:%M";
}
}