pep8analysis: add copyright info for viz.js
[nit.git] / c_src / time._ffi.c
1 /*
2 Extern implementation of Nit module time
3 */
4 #include <stdlib.h>
5 #include <stdio.h>
6 #include "time._ffi.h"
7 #define NativeString_to_s_with_copy time___NativeString_to_s_with_copy
8 #define String_to_cstring time___String_to_cstring
9 #define NativeString_to_s time___NativeString_to_s
10
11 time_t time___new_TimeT___impl( )
12 {
13 #line 34 "lib/standard/time.nit"
14
15 return time(NULL); }
16
17 time_t time___new_TimeT_from_i___impl( int i )
18 {
19 #line 35 "lib/standard/time.nit"
20
21 return i; }
22
23 void time___TimeT_update___impl( time_t recv )
24 {
25 #line 37 "lib/standard/time.nit"
26
27 time(&recv); }
28
29 String time___TimeT_ctime___impl( time_t recv )
30 {
31 #line 39 "lib/standard/time.nit"
32
33
34 return NativeString_to_s_with_copy( ctime(&recv) );
35 }
36
37 double time___TimeT_difftime___impl( time_t recv, time_t start )
38 {
39 #line 44 "lib/standard/time.nit"
40
41 return difftime(recv, start); }
42
43 int time___TimeT_to_i___impl( time_t recv )
44 {
45 #line 47 "lib/standard/time.nit"
46
47 return (int)recv; }
48
49 struct tm * time___new_Tm_gmtime___impl( )
50 {
51 #line 52 "lib/standard/time.nit"
52
53
54 struct tm *tm;
55 time_t t = time(NULL);
56 tm = gmtime(&t);
57 return tm;
58 }
59
60 struct tm * time___new_Tm_gmtime_from_timet___impl( time_t t )
61 {
62 #line 58 "lib/standard/time.nit"
63
64
65 struct tm *tm;
66 tm = gmtime(&t);
67 return tm;
68 }
69
70 struct tm * time___new_Tm_localtime___impl( )
71 {
72 #line 64 "lib/standard/time.nit"
73
74
75 struct tm *tm;
76 time_t t = time(NULL);
77 tm = localtime(&t);
78 return tm;
79 }
80
81 struct tm * time___new_Tm_localtime_from_timet___impl( time_t t )
82 {
83 #line 70 "lib/standard/time.nit"
84
85
86 struct tm *tm;
87 tm = localtime(&t);
88 return tm;
89 }
90
91 time_t time___Tm_to_timet___impl( struct tm * recv )
92 {
93 #line 76 "lib/standard/time.nit"
94
95 return mktime(recv); }
96
97 int time___Tm_sec___impl( struct tm * recv )
98 {
99 #line 78 "lib/standard/time.nit"
100
101 return recv->tm_sec; }
102
103 int time___Tm_min___impl( struct tm * recv )
104 {
105 #line 79 "lib/standard/time.nit"
106
107 return recv->tm_min; }
108
109 int time___Tm_hour___impl( struct tm * recv )
110 {
111 #line 80 "lib/standard/time.nit"
112
113 return recv->tm_hour; }
114
115 int time___Tm_mday___impl( struct tm * recv )
116 {
117 #line 81 "lib/standard/time.nit"
118
119 return recv->tm_mday; }
120
121 int time___Tm_mon___impl( struct tm * recv )
122 {
123 #line 82 "lib/standard/time.nit"
124
125 return recv->tm_mon; }
126
127 int time___Tm_year___impl( struct tm * recv )
128 {
129 #line 83 "lib/standard/time.nit"
130
131 return recv->tm_year; }
132
133 int time___Tm_wday___impl( struct tm * recv )
134 {
135 #line 84 "lib/standard/time.nit"
136
137 return recv->tm_wday; }
138
139 int time___Tm_yday___impl( struct tm * recv )
140 {
141 #line 85 "lib/standard/time.nit"
142
143 return recv->tm_yday; }
144
145 int time___Tm_is_dst___impl( struct tm * recv )
146 {
147 #line 86 "lib/standard/time.nit"
148
149 return recv->tm_isdst; }
150
151 String time___Tm_asctime___impl( struct tm * recv )
152 {
153 #line 88 "lib/standard/time.nit"
154
155
156 return NativeString_to_s_with_copy( asctime(recv) );
157 }
158
159 String time___Tm_strftime___impl( struct tm * recv, String format )
160 {
161 #line 91 "lib/standard/time.nit"
162
163
164 char* buf, *c_format;
165 size_t res;
166
167 buf = (char*)malloc(100);
168 c_format = String_to_cstring(format);
169
170 res = strftime(buf, 100, c_format, recv);
171 return NativeString_to_s(buf);
172 }