[newlib-cygwin/cygwin-3_4-branch] newlib: nl_langinfo: Fix a bug of time stuff.

Takashi Yano tyan0@sourceware.org
Fri Nov 24 10:37:15 GMT 2023


https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=4a7cc5af01e438b33f6544d99548fe5f4d2cb776

commit 4a7cc5af01e438b33f6544d99548fe5f4d2cb776
Author: Takashi Yano <takashi.yano@nifty.ne.jp>
Date:   Thu Nov 23 20:00:55 2023 +0900

    newlib: nl_langinfo: Fix a bug of time stuff.
    
    Previously, e.g. nl_langinfo(_NL_TIME_WMONTH_1) returns "February"
    due to the bug. Similarly, nl_langinfo(_NL_TIME_WWDAY_1) returns
    "Mon". This occurs because wide char month and weekday arrays are
    pointed off-by-one (e.g. the array wmon[12] is reffered as wmon[1-12]
    rather than wmon[0-11]). This patch fixes that.
    
    Fixes: d47d5b850bed ("Extend locale support to maintain wide char values of native strings")
    Reviewed-by: Corinna Vinschen <corinna@vinschen.de>
    Signed-off-by: Takashi Yano <takashi.yano@nifty.ne.jp>

Diff:
---
 newlib/libc/locale/nl_langinfo.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/newlib/libc/locale/nl_langinfo.c b/newlib/libc/locale/nl_langinfo.c
index eb984912f..f8fcbb462 100644
--- a/newlib/libc/locale/nl_langinfo.c
+++ b/newlib/libc/locale/nl_langinfo.c
@@ -78,6 +78,7 @@ static struct _nl_item_t
   _NLITEM (ctype, woutdigits[8]),
   _NLITEM (ctype, woutdigits[9]),
   _NLITEM (time, codeset),
+  _NLITEM (time, wmon[0]),
   _NLITEM (time, wmon[1]),
   _NLITEM (time, wmon[2]),
   _NLITEM (time, wmon[3]),
@@ -89,7 +90,7 @@ static struct _nl_item_t
   _NLITEM (time, wmon[9]),
   _NLITEM (time, wmon[10]),
   _NLITEM (time, wmon[11]),
-  _NLITEM (time, wmon[12]),
+  _NLITEM (time, wmonth[0]),
   _NLITEM (time, wmonth[1]),
   _NLITEM (time, wmonth[2]),
   _NLITEM (time, wmonth[3]),
@@ -101,21 +102,20 @@ static struct _nl_item_t
   _NLITEM (time, wmonth[9]),
   _NLITEM (time, wmonth[10]),
   _NLITEM (time, wmonth[11]),
-  _NLITEM (time, wmonth[12]),
+  _NLITEM (time, wwday[0]),
   _NLITEM (time, wwday[1]),
   _NLITEM (time, wwday[2]),
   _NLITEM (time, wwday[3]),
   _NLITEM (time, wwday[4]),
   _NLITEM (time, wwday[5]),
   _NLITEM (time, wwday[6]),
-  _NLITEM (time, wwday[7]),
+  _NLITEM (time, wweekday[0]),
   _NLITEM (time, wweekday[1]),
   _NLITEM (time, wweekday[2]),
   _NLITEM (time, wweekday[3]),
   _NLITEM (time, wweekday[4]),
   _NLITEM (time, wweekday[5]),
   _NLITEM (time, wweekday[6]),
-  _NLITEM (time, wweekday[7]),
   _NLITEM (time, wX_fmt),
   _NLITEM (time, wx_fmt),
   _NLITEM (time, wc_fmt),


More information about the Newlib-cvs mailing list