>From b1e7af28ebc4b7218b2a76eee1dca738d3224a63 Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Sun, 24 Feb 2019 23:59:22 -0800 Subject: [PATCH 2/3] =?UTF-8?q?date:=20=E2=80=98+=E2=80=99=20conversion=20?= =?UTF-8?q?specification=20flag?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The recent Gnulib update fixed Bug#34608; document and test this. * NEWS: Mention the change. * doc/coreutils.texi (Padding and other flags): Update doc to cover new flag and other POSIX.1-2017 changes. * tests/misc/date.pl (date-century-plus): New test. --- NEWS | 3 +++ doc/coreutils.texi | 15 ++++++++++++--- tests/misc/date.pl | 3 +++ 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/NEWS b/NEWS index 5d9956854..e73cb52b8 100644 --- a/NEWS +++ b/NEWS @@ -11,6 +11,9 @@ GNU coreutils NEWS -*- outline -*- after asking the user whether to proceed. [This bug was present in "the beginning".] + 'date' now supports the '+' conversion specification flag, + introduced in POSIX.1-2017. + df no longer corrupts displayed multibyte characters on macOS. [bug introduced with coreutils-8.18] diff --git a/doc/coreutils.texi b/doc/coreutils.texi index 028371673..d1427323c 100644 --- a/doc/coreutils.texi +++ b/doc/coreutils.texi @@ -15985,24 +15985,33 @@ example, numeric months are always output as two digits. Seconds since the epoch are not padded, though, since there is no natural width for them. -As a GNU extension, @command{date} recognizes any of the -following optional flags after the @samp{%}: +The following optional flags can appear after the @samp{%}: @table @samp @item - (hyphen) Do not pad the field; useful if the output is intended for human consumption. +This is a GNU extension. @item _ (underscore) Pad with spaces; useful if you need a fixed number of characters in the output, but zeros are too distracting. +This is a GNU extension. @item 0 (zero) Pad with zeros even if the conversion specifier would normally pad with spaces. address@hidden + +Pad with zeros, like @samp{0}. In addition, precede any year number +with @samp{+} if it exceeds 9999 or if its field width exceeds 4; +similarly, precede any century number with @samp{+} if it exceeds 99 +or if its field width exceeds 2. Preceding with @samp{+} is helpful +for generationg some ISO 8601 formats. @item ^ Use upper case characters if possible. +This is a GNU extension. @item # Use opposite case characters if possible. A field that is normally upper case becomes lower case, and vice versa. +This is a GNU extension. @end table @noindent @@ -16017,7 +16026,7 @@ date +%_d/%_m -d "Feb 1" @result{} 1/ 2 @end example -As a GNU extension, you can specify the field width +You can optionally specify the field width (after any flag, if present) as a decimal number. If the natural size of the output of the field has less than the specified number of characters, the result is written right adjusted and padded to the given diff --git a/tests/misc/date.pl b/tests/misc/date.pl index 5e12158e9..9ba3d3983 100755 --- a/tests/misc/date.pl +++ b/tests/misc/date.pl @@ -297,6 +297,9 @@ my @Tests = {ENV => 'TZ=PST8'}, {OUT => 'Wed Dec 31 21:00:00 PST 1969'}, ], + + # https://bugs.gnu.org/34608 + ['date-century-plus', '-d @0 +.%+4C.', {OUT => '.+019.'}], ); # Repeat the cross-dst test, using Jan 1, 2005 and every interval from 1..364. -- 2.17.1