Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
att
GitHub Repository: att/ast
Path: blob/master/src/lib/libast/comp/getdate.c
1810 views
1
/***********************************************************************
2
* *
3
* This software is part of the ast package *
4
* Copyright (c) 1985-2011 AT&T Intellectual Property *
5
* and is licensed under the *
6
* Eclipse Public License, Version 1.0 *
7
* by AT&T Intellectual Property *
8
* *
9
* A copy of the License is available at *
10
* http://www.eclipse.org/org/documents/epl-v10.html *
11
* (with md5 checksum b35adb5213ca9657e911e9befb180842) *
12
* *
13
* Information and Software Systems Research *
14
* AT&T Research *
15
* Florham Park NJ *
16
* *
17
* Glenn Fowler <[email protected]> *
18
* David Korn <[email protected]> *
19
* Phong Vo <[email protected]> *
20
* *
21
***********************************************************************/
22
#pragma prototyped
23
/*
24
* getdate implementation
25
*/
26
27
#define getdate ______getdate
28
29
#include <ast.h>
30
#include <tm.h>
31
32
#undef getdate
33
34
#undef _def_map_ast
35
#include <ast_map.h>
36
37
#undef _lib_getdate /* we can pass X/Open */
38
39
#if _lib_getdate
40
41
NoN(getdate)
42
43
#else
44
45
#ifndef getdate_err
46
__DEFINE__(int, getdate_err, 0);
47
#endif
48
49
#if defined(__EXPORT__)
50
#define extern __EXPORT__
51
#endif
52
53
extern struct tm*
54
getdate(const char* s)
55
{
56
char* e;
57
char* f;
58
time_t t;
59
Tm_t* tm;
60
61
static struct tm ts;
62
63
t = tmscan(s, &e, NiL, &f, NiL, TM_PEDANTIC);
64
if (*e || *f)
65
{
66
/* of course we all know what 7 means */
67
getdate_err = 7;
68
return 0;
69
}
70
tm = tmmake(&t);
71
ts.tm_sec = tm->tm_sec;
72
ts.tm_min = tm->tm_min;
73
ts.tm_hour = tm->tm_hour;
74
ts.tm_mday = tm->tm_mday;
75
ts.tm_mon = tm->tm_mon;
76
ts.tm_year = tm->tm_year;
77
ts.tm_wday = tm->tm_wday;
78
ts.tm_yday = tm->tm_yday;
79
ts.tm_isdst = tm->tm_isdst;
80
return &ts;
81
}
82
83
#endif
84
85