[RFA] Add missing fields to struct lc_time_T

Howland Craig D (Craig) howland@LGSInnovations.com
Thu Feb 18 16:53:00 GMT 2010


Corinna:
It would be nice if the comments being added to timelocal.h did what
the existing ones do by including the structure member being
initialized.
Following is a suggestion enhancing your patch.  (I did check against
POSIX, and added members look proper.)
Craig

Index: timelocal.c
===================================================================
RCS file: /cvs/src/src/newlib/libc/locale/timelocal.c,v
retrieving revision 1.3
diff -p -u -r1.3 timelocal.c
--- timelocal.c	9 Feb 2010 08:58:38 -0000	1.3
+++ timelocal.c	18 Feb 2010 16:49:43 -0000
@@ -92,7 +92,29 @@ static const struct lc_time_T	_C_time_lo
 	/* ampm_fmt
 	 * To determine 12-hour clock format time (empty, if N/A)
 	 */
-	"%I:%M:%S %p"
+	"%I:%M:%S %p",
+
+	/* era
+	 * This and the following entries are used if the alternative
+	 * date format is specified in strftime
+	 */
+	"",
+
+	/* era_d_fmt
+	 * Era date format used with the %Ex */
+	"",
+
+	/* era_d_t_fmt
+	 * Era date/time format (%Ec) */
+	"",
+
+	/* era_t_fmt
+	 * Era time format (%EX) */
+	"",
+
+	/* alt_digits
+	 * Alternate digits used if %O format prefix is specified */
+	""
 };
 
 struct lc_time_T *




-----Original Message-----
From: newlib-owner@sourceware.org [mailto:newlib-owner@sourceware.org]
On Behalf Of Corinna Vinschen
Sent: Thursday, February 18, 2010 11:14 AM
To: newlib@sourceware.org
Subject: [RFA] Add missing fields to struct lc_time_T

Hi,

the current struct lc_time_T in libc/locale/timelocal.h is missing the
ERA related LC_TIME members required by POSIX-1.2008(*).  Only with
these fields we can correctly implement the %E and %O format modifiers
in the strftime and strptime functions at one point.

The below patch adds these fields and the required changes to
timeformat.c and nl_langinfo.c.

Ok to apply?


Thanks,
Corinna

(*)
http://www.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap07.html#t
ag_07


	* libc/locale/timelocal.h (struct lc_time_T): Add missing
ERA-related
	members.
	* libc/locale/timelocal.c (_C_time_local): Set new members to
empty
	strings.
...
 
 struct lc_time_T *__get_current_time_locale(void);
Index: libc/locale/timelocal.c
===================================================================
RCS file: /cvs/src/src/newlib/libc/locale/timelocal.c,v
retrieving revision 1.3
diff -u -p -r1.3 timelocal.c
--- libc/locale/timelocal.c	9 Feb 2010 08:58:38 -0000	1.3
+++ libc/locale/timelocal.c	18 Feb 2010 16:05:12 -0000
@@ -92,7 +92,24 @@ static const struct lc_time_T	_C_time_lo
 	/* ampm_fmt
 	 * To determine 12-hour clock format time (empty, if N/A)
 	 */
-	"%I:%M:%S %p"
+	"%I:%M:%S %p",
+
+	/* Era.  This and the following entries are used if the
alternative
+	 * date format is specified in strftime
+	 */
+	"",
+
+	/* Era date format used with the %Ex */
+	"",
+
+	/* Era date/time format (%Ec) */
+	"",
+
+	/* Era time format (%EX) */
+	"",
+
+	/* Alternate digits used if %O format prefix is specified */
+	""
 };
 
 struct lc_time_T *
...



More information about the Newlib mailing list