about summary refs log tree commit diff
path: root/locale
diff options
context:
space:
mode:
Diffstat (limited to 'locale')
-rw-r--r--locale/C-time.c56
-rw-r--r--locale/categories.def17
-rw-r--r--locale/langinfo.h60
-rw-r--r--locale/localeinfo.h7
4 files changed, 135 insertions, 5 deletions
diff --git a/locale/C-time.c b/locale/C-time.c
index 673d9bd478..6a846e4cae 100644
--- a/locale/C-time.c
+++ b/locale/C-time.c
@@ -1,6 +1,6 @@
-/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1995, 1996, 1997, 1999 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
+   Contributed by Ulrich Drepper <drepper@gnu.org>, 1995.
 
    The GNU C Library is free software; you can redistribute it and/or
    modify it under the terms of the GNU Library General Public License as
@@ -27,7 +27,7 @@ const struct locale_data _nl_C_LC_TIME =
   _nl_C_name,
   NULL, 0, 0, /* no file mapped */
   UNDELETABLE,
-  54,
+  104,
   {
     { string: "Sun" },
     { string: "Mon" },
@@ -83,5 +83,55 @@ const struct locale_data _nl_C_LC_TIME =
     { word: 0 },
     { string: "" },
     { string: "" },
+    { wstr: L"Sun" },
+    { wstr: L"Mon" },
+    { wstr: L"Tue" },
+    { wstr: L"Wed" },
+    { wstr: L"Thu" },
+    { wstr: L"Fri" },
+    { wstr: L"Sat" },
+    { wstr: L"Sunday" },
+    { wstr: L"Monday" },
+    { wstr: L"Tuesday" },
+    { wstr: L"Wednesday" },
+    { wstr: L"Thursday" },
+    { wstr: L"Friday" },
+    { wstr: L"Saturday" },
+    { wstr: L"Jan" },
+    { wstr: L"Feb" },
+    { wstr: L"Mar" },
+    { wstr: L"Apr" },
+    { wstr: L"May" },
+    { wstr: L"Jun" },
+    { wstr: L"Jul" },
+    { wstr: L"Aug" },
+    { wstr: L"Sep" },
+    { wstr: L"Oct" },
+    { wstr: L"Nov" },
+    { wstr: L"Dec" },
+    { wstr: L"January" },
+    { wstr: L"February" },
+    { wstr: L"March" },
+    { wstr: L"April" },
+    { wstr: L"May" },
+    { wstr: L"June" },
+    { wstr: L"July" },
+    { wstr: L"August" },
+    { wstr: L"September" },
+    { wstr: L"October" },
+    { wstr: L"November" },
+    { wstr: L"December" },
+    { wstr: L"AM" },
+    { wstr: L"PM" },
+    { wstr: L"%a %b %e %H:%M:%S %Y" },
+    { wstr: L"%m/%d/%y" },
+    { wstr: L"%H:%M:%S" },
+    { wstr: L"%I:%M:%S %p" },
+    { string: NULL },
+    { string: "" },
+    { string: "" },
+    { string: "" },
+    { string: "" },
+    { string: "" },
   }
 };
diff --git a/locale/categories.def b/locale/categories.def
index 098d712172..71cb86d9f3 100644
--- a/locale/categories.def
+++ b/locale/categories.def
@@ -1,5 +1,5 @@
 /* Definition of all available locale categories and their items.  -*- C -*-
-   Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
+   Copyright (C) 1995, 1996, 1997, 1999 Free Software Foundation, Inc.
 
    The GNU C Library is free software; you can redistribute it and/or
    modify it under the terms of the GNU Library General Public License as
@@ -147,6 +147,21 @@ DEFINE_CATEGORY
   DEFINE_ELEMENT (_NL_TIME_ERA_NUM_ENTRIES, "time-era-num-entries", opt, word)
   DEFINE_ELEMENT (_NL_TIME_ERA_ENTRIES_EB,  "time-era-entries-eb", opt, string)
   DEFINE_ELEMENT (_NL_TIME_ERA_ENTRIES_EL,  "time-era-entries-el", opt, string)
+  DEFINE_ELEMENT (_NL_WABDAY_1,     "wide-abday",       std, stringarray,  7,  7)
+  DEFINE_ELEMENT (_NL_WDAY_1,       "wide-day",         std, stringarray,  7,  7)
+  DEFINE_ELEMENT (_NL_WABMON_1,     "wide-abmon",       std, stringarray, 12, 12)
+  DEFINE_ELEMENT (_NL_WMON_1,       "wide-mon",         std, stringarray, 12, 12)
+  DEFINE_ELEMENT (_NL_WAM_STR,      "wide-am_pm",       std, stringarray,  2,  2)
+  DEFINE_ELEMENT (_NL_WD_T_FMT,     "wide-d_t_fmt",     std, string)
+  DEFINE_ELEMENT (_NL_WD_FMT,       "wide-d_fmt",       std, string)
+  DEFINE_ELEMENT (_NL_WT_FMT,       "wide-t_fmt",       std, string)
+  DEFINE_ELEMENT (_NL_WT_FMT_AMPM,  "wide-t_fmt_ampm",  std, string)
+  DEFINE_ELEMENT (_NL_WERA,         "wide-era",         opt, stringarray)
+  DEFINE_ELEMENT (_NL_WERA_YEAR,    "wide-era_year",    opt, string)
+  DEFINE_ELEMENT (_NL_WERA_D_FMT,   "wide-era_d_fmt",   opt, string)
+  DEFINE_ELEMENT (_NL_WALT_DIGITS,  "wide-alt_digits",  opt, stringarray,  0, 100)
+  DEFINE_ELEMENT (_NL_WERA_D_T_FMT, "wide-era_d_t_fmt", opt, string)
+  DEFINE_ELEMENT (_NL_WERA_T_FMT,   "wide-era_t_fmt",   opt, string)
   ), _nl_postload_time, NULL, NULL, NULL)
 
 
diff --git a/locale/langinfo.h b/locale/langinfo.h
index a96e52f902..935a3818bf 100644
--- a/locale/langinfo.h
+++ b/locale/langinfo.h
@@ -161,6 +161,66 @@ enum
   _NL_TIME_ERA_ENTRIES_EB,	/* Structure with era entries in usable form.*/
   _NL_TIME_ERA_ENTRIES_EL,
 
+  _NL_WABDAY_1, /* Sun */
+  _NL_WABDAY_2,
+  _NL_WABDAY_3,
+  _NL_WABDAY_4,
+  _NL_WABDAY_5,
+  _NL_WABDAY_6,
+  _NL_WABDAY_7,
+
+  /* Long-named days of the week. */
+  _NL_WDAY_1,			/* Sunday */
+  _NL_WDAY_2,			/* Monday */
+  _NL_WDAY_3,			/* Tuesday */
+  _NL_WDAY_4,			/* Wednesday */
+  _NL_WDAY_5,			/* Thursday */
+  _NL_WDAY_6,			/* Friday */
+  _NL_WDAY_7,			/* Saturday */
+
+  /* Abbreviated month names.  */
+  _NL_WABMON_1,			/* Jan */
+  _NL_WABMON_2,
+  _NL_WABMON_3,
+  _NL_WABMON_4,
+  _NL_WABMON_5,
+  _NL_WABMON_6,
+  _NL_WABMON_7,
+  _NL_WABMON_8,
+  _NL_WABMON_9,
+  _NL_WABMON_10,
+  _NL_WABMON_11,
+  _NL_WABMON_12,
+
+  /* Long month names.  */
+  _NL_WMON_1,			/* January */
+  _NL_WMON_2,
+  _NL_WMON_3,
+  _NL_WMON_4,
+  _NL_WMON_5,
+  _NL_WMON_6,
+  _NL_WMON_7,
+  _NL_WMON_8,
+  _NL_WMON_9,
+  _NL_WMON_10,
+  _NL_WMON_11,
+  _NL_WMON_12,
+
+  _NL_WAM_STR,			/* Ante meridian string.  */
+  _NL_WPM_STR,			/* Post meridian string.  */
+
+  _NL_WD_T_FMT,			/* Date and time format for strftime.  */
+  _NL_WD_FMT,			/* Date format for strftime.  */
+  _NL_WT_FMT,			/* Time format for strftime.  */
+  _NL_WT_FMT_AMPM,		/* 12-hour time format for strftime.  */
+
+  _NL_WERA,			/* Alternate era.  */
+  _NL_WERA_YEAR,		/* Year in alternate era format.  */
+  _NL_WERA_D_FMT,		/* Date in alternate era format.  */
+  _NL_WALT_DIGITS,		/* Alternate symbols for digits.  */
+  _NL_WERA_D_T_FMT,		/* Date and time in alternate era format.  */
+  _NL_WERA_T_FMT,		/* Time in alternate era format.  */
+
   _NL_NUM_LC_TIME,		/* Number of indices in LC_TIME category.  */
 
   /* LC_COLLATE category: text sorting.
diff --git a/locale/localeinfo.h b/locale/localeinfo.h
index dddacfe28d..2c1ce65557 100644
--- a/locale/localeinfo.h
+++ b/locale/localeinfo.h
@@ -112,9 +112,14 @@ extern struct locale_data * *const _nl_current[LC_ALL + 1];
 extern const char _nl_C_name[];
 extern const char _nl_POSIX_name[];
 
+/* XXX Temporily until the locale data has everything.  */
+extern struct locale_data _nl_C_LC_TIME;
+
 /* Extract the current CATEGORY locale's string for ITEM.  */
 #define _NL_CURRENT(category, item) \
-  (_nl_current_##category->values[_NL_ITEM_INDEX (item)].string)
+  ((item) < _NL_WABDAY_1 || (item) > _NL_WALT_DIGITS			      \
+   ? (_nl_current_##category->values[_NL_ITEM_INDEX (item)].string)	      \
+   : _nl_C_LC_TIME.values[_NL_ITEM_INDEX (item)].string)
 
 /* Extract the current CATEGORY locale's word for ITEM.  */
 #define _NL_CURRENT_WORD(category, item) \