aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog7
-rw-r--r--NEWS8
-rw-r--r--manual/time.texi7
-rw-r--r--time/strftime_l.c2
4 files changed, 23 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index af78b36..64ed089 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2019-01-24 TAMUKI Shoichi <tamuki@linet.gr.jp>
+
+ [BZ #23758]
+ * manual/time.texi (strftime): Document "%Ey".
+ * time/strftime_l.c (__strftime_internal): Set the default width
+ padding with zero of "%Ey" to 2.
+
2019-01-24 Adhemerval Zanella <adhemerval.zanella@linaro.org>
* support/xsigstack.c (MAP_NORESERVE, MAP_STACK): Define if they
diff --git a/NEWS b/NEWS
index d863d80..aec1836 100644
--- a/NEWS
+++ b/NEWS
@@ -52,6 +52,14 @@ Major new features:
- C-SKY ABIV2 soft-float little-endian
- C-SKY ABIV2 hard-float little-endian
+* strftime's default formatting of a locale's alternative year (%Ey)
+ has been changed to zero-pad the year to a minimum of two digits,
+ like "%y". This improves the display of Japanese era years during
+ the first nine years of a new era, and is expected to be harmless
+ for all other locales (only Japanese locales regularly have
+ alternative year numbers less than 10). Zero-padding can be
+ overridden with the '_' or '-' flags (which are GNU extensions).
+
Deprecated and removed features, and other changes affecting compatibility:
* The glibc.tune tunable namespace has been renamed to glibc.cpu and the
diff --git a/manual/time.texi b/manual/time.texi
index fd7781c..03a8a0e 100644
--- a/manual/time.texi
+++ b/manual/time.texi
@@ -1568,6 +1568,13 @@ The preferred time of day representation for the current locale.
The year without a century as a decimal number (range @code{00} through
@code{99}). This is equivalent to the year modulo 100.
+If the @code{E} modifier is specified (@code{%Ey}), instead produces
+the year number according to a locale-specific alternative calendar.
+Unlike @code{%y}, the number is @emph{not} reduced modulo 100.
+However, by default it is zero-padded to a minimum of two digits (this
+can be overridden by an explicit field width or by the @code{_} and
+@code{-} flags).
+
@item %Y
The year as a decimal number, using the Gregorian calendar. Years
before the year @code{1} are numbered @code{0}, @code{-1}, and so on.
diff --git a/time/strftime_l.c b/time/strftime_l.c
index 7ba4179..cbe08e7 100644
--- a/time/strftime_l.c
+++ b/time/strftime_l.c
@@ -1294,7 +1294,7 @@ __strftime_internal (CHAR_T *s, size_t maxsize, const CHAR_T *format,
if (era)
{
int delta = tp->tm_year - era->start_date[0];
- DO_NUMBER (1, (era->offset
+ DO_NUMBER (2, (era->offset
+ delta * era->absolute_direction));
}
#else