Make ctime_r, asctime_r, gmtime_r, and localtime_r available in libc.
This commit is contained in:
parent
73a5bda360
commit
de16000123
@ -131,18 +131,15 @@ time_t mktime __P((struct tm *));
|
||||
size_t strftime __P((char *, size_t, const char *, const struct tm *));
|
||||
time_t time __P((time_t *));
|
||||
|
||||
#ifdef _THREAD_SAFE
|
||||
char *asctime_r __P((const struct tm *, char *));
|
||||
char *ctime_r __P((const time_t *, char *));
|
||||
struct tm *gmtime_r __P((const time_t *, struct tm *));
|
||||
struct tm *localtime_r __P((const time_t *, struct tm *));
|
||||
#endif
|
||||
|
||||
#ifndef _ANSI_SOURCE
|
||||
void tzset __P((void));
|
||||
#endif /* not ANSI */
|
||||
|
||||
#if !defined(_ANSI_SOURCE) && !defined(_POSIX_SOURCE)
|
||||
char *asctime_r __P((const struct tm *, char *));
|
||||
char *ctime_r __P((const time_t *, char *));
|
||||
struct tm *gmtime_r __P((const time_t *, struct tm *));
|
||||
struct tm *localtime_r __P((const time_t *, struct tm *));
|
||||
char *strptime __P((const char *, const char *, struct tm *));
|
||||
char *timezone __P((int, int));
|
||||
void tzsetwall __P((void));
|
||||
|
@ -14,10 +14,6 @@ static char elsieid[] = "@(#)asctime.c 7.7";
|
||||
#include "private.h"
|
||||
#include "tzfile.h"
|
||||
|
||||
#ifndef _THREAD_SAFE
|
||||
static char *asctime_r __P((const struct tm *, char *));
|
||||
#endif
|
||||
|
||||
/*
|
||||
** A la X3J11, with core dump avoidance.
|
||||
*/
|
||||
@ -32,9 +28,6 @@ const struct tm * timeptr;
|
||||
return(asctime_r(timeptr, result));
|
||||
}
|
||||
|
||||
#ifndef _THREAD_SAFE
|
||||
static
|
||||
#endif
|
||||
char *
|
||||
asctime_r(timeptr, result)
|
||||
const struct tm * timeptr;
|
||||
|
@ -1082,19 +1082,21 @@ struct tm * const tmp;
|
||||
#endif /* defined TM_ZONE */
|
||||
}
|
||||
|
||||
#ifdef _THREAD_SAFE
|
||||
struct tm *
|
||||
localtime_r(timep, p_tm)
|
||||
const time_t * const timep;
|
||||
struct tm *p_tm;
|
||||
{
|
||||
#ifdef _THREAD_SAFE
|
||||
pthread_mutex_lock(&lcl_mutex);
|
||||
#endif
|
||||
tzset();
|
||||
localsub(timep, 0L, p_tm);
|
||||
#ifdef _THREAD_SAFE
|
||||
pthread_mutex_unlock(&lcl_mutex);
|
||||
#endif
|
||||
return(p_tm);
|
||||
}
|
||||
#endif
|
||||
|
||||
struct tm *
|
||||
localtime(timep)
|
||||
@ -1214,14 +1216,12 @@ const time_t * const timep;
|
||||
#endif
|
||||
}
|
||||
|
||||
#ifdef _THREAD_SAFE
|
||||
struct tm *
|
||||
gmtime_r(const time_t * timep, struct tm * tm)
|
||||
{
|
||||
gmtsub(timep, 0L, tm);
|
||||
return(tm);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef STD_INSPIRED
|
||||
|
||||
@ -1350,7 +1350,6 @@ const time_t * const timep;
|
||||
return asctime(localtime(timep));
|
||||
}
|
||||
|
||||
#ifdef _THREAD_SAFE
|
||||
char *
|
||||
ctime_r(timep, buf)
|
||||
const time_t * const timep;
|
||||
@ -1359,7 +1358,6 @@ char *buf;
|
||||
struct tm tm;
|
||||
return asctime_r(localtime_r(timep, &tm), buf);
|
||||
}
|
||||
#endif
|
||||
|
||||
/*
|
||||
** Adapted from code provided by Robert Elz, who writes:
|
||||
|
Loading…
x
Reference in New Issue
Block a user