blob: 91e677f76fa44fe686908d38acc1368d39f592cd (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
|
/*
* tclDate.h --
*
* This header file handles common usage of clock primitives
* between tclDate.c (yacc) and tclClock.c.
*
* Copyright (c) 2014 Serg G. Brester (aka sebres)
*
* See the file "license.terms" for information on usage and redistribution
* of this file, and for a DISCLAIMER OF ALL WARRANTIES.
*/
#ifndef _TCLCLOCK_H
#define _TCLCLOCK_H
/*
* Structure contains return parsed fields.
*/
typedef struct DateInfo {
Tcl_Obj* messages; /* Error messages */
const char* separatrix; /* String separating messages */
time_t dateYear;
time_t dateMonth;
time_t dateDay;
int dateHaveDate;
time_t dateHour;
time_t dateMinutes;
time_t dateSeconds;
int dateMeridian;
int dateHaveTime;
time_t dateTimezone;
int dateDSTmode;
int dateHaveZone;
time_t dateRelMonth;
time_t dateRelDay;
time_t dateRelSeconds;
int dateHaveRel;
time_t dateMonthOrdinal;
int dateHaveOrdinalMonth;
time_t dateDayOrdinal;
time_t dateDayNumber;
int dateHaveDay;
const char *dateStart;
const char *dateInput;
time_t *dateRelPointer;
int dateDigitCount;
} DateInfo;
/*
* Meridian: am, pm, or 24-hour style.
*/
typedef enum _MERIDIAN {
MERam, MERpm, MER24
} MERIDIAN;
/*
* Prototypes of module functions.
*/
MODULE_SCOPE time_t ToSeconds(time_t Hours, time_t Minutes,
time_t Seconds, MERIDIAN Meridian);
MODULE_SCOPE int TclClockFreeScan(Tcl_Interp *interp, DateInfo *info);
#endif /* _TCLCLOCK_H */
|