Move the sources to trunk
[opencv] / apps / cvenv / EiC / stdClib / time.c
1 /* time.c
2  *
3  *      (C) Copyright Dec 20 1998, Edmond J. Breen.
4  *                 ALL RIGHTS RESERVED.
5  * This code may be copied for personal, non-profit use only.
6  *
7  */
8
9 /* This file is broken into 2 parts
10  * the first part defines the interface routines
11  * and the 2nd part adds the interface routine
12  * to EiC's look up tables.
13  */
14
15
16 #ifndef NO_TIME
17
18 #include <time.h>
19 #include <stdlib.h>
20 #include <string.h>
21
22 #include "eic.h"
23 #include "stdliblocal.h"
24
25
26 val_t eic_asctime()
27 {
28     val_t v;
29     v.p.p = v.p.sp = asctime(arg(0,getargs(),ptr_t).p);
30     setEp( v.p, strlen((char*)v.p.p) + 1 );
31     return v;
32 }
33 val_t eic_clock()
34 {
35     val_t v;
36     v.lval = clock();
37     return v;
38 }
39 val_t eic_ctime()
40 {
41     val_t v;
42     v.p.p = v.p.sp = ctime(arg(0,getargs(),ptr_t).p);
43     setEp( v.p, strlen((char*)v.p.p) + 1 );
44     return v;
45 }
46
47 val_t eic_difftime()
48 {
49     val_t v;
50     time_t t0 = arg(0,getargs(),time_t);
51     time_t t1 = arg(1,getargs(),time_t);
52     v.dval = t0 > t1 ? t0 - t1: -t0 - t1;
53     return v;
54 }
55
56
57 val_t eic_localtime()
58 {
59     val_t v;
60     v.p.p = v.p.sp =  localtime(arg(0,getargs(),ptr_t).p);
61     setEp( v.p, sizeof(struct tm) );
62     return v;
63 }
64
65 val_t eic_gmtime()
66 {
67     val_t v;
68     v.p.p = v.p.sp =  gmtime(arg(0,getargs(),ptr_t).p);
69     setEp( v.p, sizeof(struct tm) );
70     return v;
71 }
72
73
74 val_t eic_mktime()
75 {
76     val_t v;
77 #ifndef _SUNOS
78     v.lval = mktime(arg(0,getargs(),ptr_t).p);
79 #endif
80     return v;
81 }
82
83
84 val_t eic_strftime()
85 {
86     val_t v;
87     v.szval = strftime(arg(0,getargs(),ptr_t).p,
88                       arg(1,getargs(),size_t),
89                       arg(2,getargs(),ptr_t).p,
90                       arg(3,getargs(),ptr_t).p);
91     return v;
92 }
93
94 val_t eic_time()
95 {
96     val_t v;
97     v.lval = time(arg(0,getargs(),ptr_t).p);
98     return v;
99 }
100
101 #endif
102
103 /***********************************************************/
104
105
106 void module_time()
107 {
108
109 #ifndef NO_TIME
110
111     /* TIME.H STUFF */
112     EiC_add_builtinfunc("asctime",eic_asctime);
113     EiC_add_builtinfunc("clock",eic_clock);
114     EiC_add_builtinfunc("ctime",eic_ctime);
115     EiC_add_builtinfunc("difftime",eic_difftime);
116     EiC_add_builtinfunc("gmtime",eic_gmtime);
117     EiC_add_builtinfunc("localtime",eic_localtime);
118     EiC_add_builtinfunc("mktime",eic_mktime);
119     EiC_add_builtinfunc("strftime",eic_strftime);
120     EiC_add_builtinfunc("time",eic_time);
121
122 #endif
123
124 }
125
126
127
128
129