1
0
mirror of git://git.sv.gnu.org/coreutils.git synced 2026-02-22 07:05:07 +02:00

date: fix newly-introduced %%-N bug

* src/date.c (adjust_resolution): Don’t mishandle %%-N.
* tests/misc/date.pl (pct-pct): New test.
This commit is contained in:
Paul Eggert
2022-03-05 11:23:01 -08:00
parent 8f31074cb4
commit 4306bb6246
2 changed files with 13 additions and 5 deletions

View File

@@ -310,12 +310,17 @@ adjust_resolution (char const *format)
char *copy = NULL;
for (char const *f = format; *f; f++)
if (f[0] == '%' && f[1] == '-' && f[2] == 'N')
if (f[0] == '%')
{
if (!copy)
copy = xstrdup (format);
copy[f + 1 - format] = '0' + res_width (gettime_res ());
f += 2;
if (f[1] == '-' && f[2] == 'N')
{
if (!copy)
copy = xstrdup (format);
copy[f + 1 - format] = '0' + res_width (gettime_res ());
f += 2;
}
else
f += f[1] == '%';
}
return copy;

View File

@@ -313,6 +313,9 @@ my @Tests =
['mtz4', '-u -d "09:00T" +%T', {OUT => '16:00:00'}],
['mtz5', '-u -d "09:00X" +%T', {OUT => '20:00:00'}],
['mtz6', '-u -d "09:00Z" +%T', {OUT => '09:00:00'}],
# test with %%-N
['pct-pct', '+%%-N', {OUT => '%-N'}],
);
# Repeat the cross-dst test, using Jan 1, 2005 and every interval from 1..364.