20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
#include <string.h>
#include <time.h>
#import "macros.h"
const char *
of_strptime(const char *buffer, const char *format, struct tm *tm, int16_t *tz)
{
enum {
SEARCH_CONVERSION_SPECIFIER,
IN_CONVERSION_SPECIFIER
} state = SEARCH_CONVERSION_SPECIFIER;
size_t j, bufferLen, formatLen;
|
|
|
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
#include <string.h>
#include <time.h>
#import "macros.h"
const char *
of_strptime(const char *buffer, const char *format, struct tm *tm, short *tz)
{
enum {
SEARCH_CONVERSION_SPECIFIER,
IN_CONVERSION_SPECIFIER
} state = SEARCH_CONVERSION_SPECIFIER;
size_t j, bufferLen, formatLen;
|
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
|
if (bufferLen < j + 5)
return NULL;
if (tz == NULL)
break;
*tz = (((int16_t)b[1] - '0') * 600 +
((int16_t)b[2] - '0') * 60 +
((int16_t)b[3] - '0') * 10 +
((int16_t)b[4] - '0')) *
(b[0] == '-' ? -1 : 1);
j += 5;
} else if (buffer[j] == 'Z') {
if (tz != NULL)
*tz = 0;
|
|
|
|
|
|
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
|
if (bufferLen < j + 5)
return NULL;
if (tz == NULL)
break;
*tz = (((short)b[1] - '0') * 600 +
((short)b[2] - '0') * 60 +
((short)b[3] - '0') * 10 +
((short)b[4] - '0')) *
(b[0] == '-' ? -1 : 1);
j += 5;
} else if (buffer[j] == 'Z') {
if (tz != NULL)
*tz = 0;
|