summaryrefslogtreecommitdiff
path: root/lib/libc/string
diff options
context:
space:
mode:
authorjtc <jtc@NetBSD.org>1994-05-25 01:20:19 +0000
committerjtc <jtc@NetBSD.org>1994-05-25 01:20:19 +0000
commit15d0e3dedde4673798d5201a0b4e58b3aab7fd21 (patch)
tree99f3d2251f97f5e5e355a005b41f6bbbca50bee5 /lib/libc/string
parent962cf82dd8567f1606b6a7e7c22e3ee48934383a (diff)
Get the day, month, format, etc. strings from the current time locale
structure instead of static data.
Diffstat (limited to 'lib/libc/string')
-rw-r--r--lib/libc/string/strftime.c46
1 files changed, 12 insertions, 34 deletions
diff --git a/lib/libc/string/strftime.c b/lib/libc/string/strftime.c
index b924437c83a..9b099cd9809 100644
--- a/lib/libc/string/strftime.c
+++ b/lib/libc/string/strftime.c
@@ -33,37 +33,15 @@
#if defined(LIBC_SCCS) && !defined(lint)
/*static char *sccsid = "from: @(#)strftime.c 5.11 (Berkeley) 2/24/91";*/
-static char *rcsid = "$Id: strftime.c,v 1.6 1994/04/22 22:11:52 jtc Exp $";
+static char *rcsid = "$Id: strftime.c,v 1.7 1994/05/25 01:20:19 jtc Exp $";
#endif /* LIBC_SCCS and not lint */
+#define _LOCALE_PRIVATE
+#include <locale.h>
#include <string.h>
#include <tzfile.h>
#include <time.h>
-static const char *const abday[] = {
- "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat",
-};
-static const char *const day[] = {
- "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday",
- "Saturday",
-};
-static const char *const abmon[] = {
- "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep",
- "Oct", "Nov", "Dec",
-};
-static const char *const mon[] = {
- "January", "February", "March", "April", "May", "June", "July",
- "August", "September", "October", "November", "December",
-};
-static const char *const ampm[] = {
- "AM", "PM",
-};
-
-static const char *d_t_fmt = "%a %b %e %H:%M:%S %Y";
-static const char *d_fmt = "%m/%d/%y";
-static const char *t_fmt = "%H:%M:%S";
-static const char *t_fmt_ampm = "%I:%M:%S %p";
-
static size_t gsize;
static char *pt;
static int _add(), _conv(), _secs();
@@ -114,26 +92,26 @@ _fmt(format, t)
case 'A':
if (t->tm_wday < 0 || t->tm_wday > 6)
return(0);
- if (!_add(day[t->tm_wday]))
+ if (!_add(_CurrentTimeLocale->day[t->tm_wday]))
return(0);
continue;
case 'a':
if (t->tm_wday < 0 || t->tm_wday > 6)
return(0);
- if (!_add(abday[t->tm_wday]))
+ if (!_add(_CurrentTimeLocale->abday[t->tm_wday]))
return(0);
continue;
case 'B':
if (t->tm_mon < 0 || t->tm_mon > 11)
return(0);
- if (!_add(mon[t->tm_mon]))
+ if (!_add(_CurrentTimeLocale->mon[t->tm_mon]))
return(0);
continue;
case 'b':
case 'h':
if (t->tm_mon < 0 || t->tm_mon > 11)
return(0);
- if (!_add(abmon[t->tm_mon]))
+ if (!_add(_CurrentTimeLocale->abmon[t->tm_mon]))
return(0);
continue;
case 'C':
@@ -142,7 +120,7 @@ _fmt(format, t)
return(0);
continue;
case 'c':
- if (!_fmt(d_t_fmt, t))
+ if (!_fmt(_CurrentTimeLocale->d_t_fmt, t))
return(0);
continue;
case 'D':
@@ -192,7 +170,7 @@ _fmt(format, t)
return(0);
continue;
case 'p':
- if (!_add(ampm[t->tm_hour >= 12]))
+ if (!_add(_CurrentTimeLocale->am_pm[t->tm_hour >= 12]))
return(0);
continue;
case 'R':
@@ -200,7 +178,7 @@ _fmt(format, t)
return(0);
continue;
case 'r':
- if (!_fmt(t_fmt_ampm, t))
+ if (!_fmt(_CurrentTimeLocale->t_fmt_ampm, t))
return(0);
continue;
case 'S':
@@ -257,11 +235,11 @@ _fmt(format, t)
return(0);
continue;
case 'x':
- if (!_fmt(d_fmt, t))
+ if (!_fmt(_CurrentTimeLocale->d_fmt, t))
return(0);
continue;
case 'X':
- if (!_fmt(t_fmt, t))
+ if (!_fmt(_CurrentTimeLocale->t_fmt, t))
return(0);
continue;
case 'y':