diff options
Diffstat (limited to 'apps/plugins')
-rw-r--r-- | apps/plugins/lua/SOURCES | 1 | ||||
-rw-r--r-- | apps/plugins/lua/gmtime.c | 58 | ||||
-rw-r--r-- | apps/plugins/lua/rockaux.c | 6 |
3 files changed, 6 insertions, 59 deletions
diff --git a/apps/plugins/lua/SOURCES b/apps/plugins/lua/SOURCES index 1c4dcc4a36..3fea681a50 100644 --- a/apps/plugins/lua/SOURCES +++ b/apps/plugins/lua/SOURCES | |||
@@ -31,7 +31,6 @@ rocklib.c | |||
31 | rocklib_img.c | 31 | rocklib_img.c |
32 | tlsf_helper.c | 32 | tlsf_helper.c |
33 | fscanf.c | 33 | fscanf.c |
34 | gmtime.c | ||
35 | strcspn.c | 34 | strcspn.c |
36 | strftime.c | 35 | strftime.c |
37 | strncat.c | 36 | strncat.c |
diff --git a/apps/plugins/lua/gmtime.c b/apps/plugins/lua/gmtime.c deleted file mode 100644 index 19ff3bc088..0000000000 --- a/apps/plugins/lua/gmtime.c +++ /dev/null | |||
@@ -1,58 +0,0 @@ | |||
1 | #include <time.h> | ||
2 | |||
3 | /* seconds per day */ | ||
4 | #define SPD 24*60*60 | ||
5 | |||
6 | /* days per month -- nonleap! */ | ||
7 | static const short __spm[13] = | ||
8 | { 0, | ||
9 | (31), | ||
10 | (31+28), | ||
11 | (31+28+31), | ||
12 | (31+28+31+30), | ||
13 | (31+28+31+30+31), | ||
14 | (31+28+31+30+31+30), | ||
15 | (31+28+31+30+31+30+31), | ||
16 | (31+28+31+30+31+30+31+31), | ||
17 | (31+28+31+30+31+30+31+31+30), | ||
18 | (31+28+31+30+31+30+31+31+30+31), | ||
19 | (31+28+31+30+31+30+31+31+30+31+30), | ||
20 | (31+28+31+30+31+30+31+31+30+31+30+31), | ||
21 | }; | ||
22 | |||
23 | static inline int isleap(int year) { | ||
24 | /* every fourth year is a leap year except for century years that are | ||
25 | * not divisible by 400. */ | ||
26 | /* return (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0)); */ | ||
27 | return (!(year%4) && ((year%100) || !(year%400))); | ||
28 | } | ||
29 | |||
30 | struct tm *gmtime(const time_t *timep) { | ||
31 | static struct tm r; | ||
32 | time_t i; | ||
33 | register time_t work=*timep%(SPD); | ||
34 | r.tm_sec=work%60; work/=60; | ||
35 | r.tm_min=work%60; r.tm_hour=work/60; | ||
36 | work=*timep/(SPD); | ||
37 | r.tm_wday=(4+work)%7; | ||
38 | for (i=1970; ; ++i) { | ||
39 | register time_t k=isleap(i)?366:365; | ||
40 | if (work>=k) | ||
41 | work-=k; | ||
42 | else | ||
43 | break; | ||
44 | } | ||
45 | r.tm_year=i-1900; | ||
46 | r.tm_yday=work; | ||
47 | |||
48 | r.tm_mday=1; | ||
49 | if (isleap(i) && (work>58)) { | ||
50 | if (work==59) r.tm_mday=2; /* 29.2. */ | ||
51 | work-=1; | ||
52 | } | ||
53 | |||
54 | for (i=11; i && (__spm[i]>work); --i) ; | ||
55 | r.tm_mon=i; | ||
56 | r.tm_mday+=work-__spm[i]; | ||
57 | return &r; | ||
58 | } | ||
diff --git a/apps/plugins/lua/rockaux.c b/apps/plugins/lua/rockaux.c index b51364f718..ba3a37343b 100644 --- a/apps/plugins/lua/rockaux.c +++ b/apps/plugins/lua/rockaux.c | |||
@@ -73,6 +73,12 @@ int strcoll(const char * str1, const char * str2) | |||
73 | return rb->strcmp(str1, str2); | 73 | return rb->strcmp(str1, str2); |
74 | } | 74 | } |
75 | 75 | ||
76 | struct tm * gmtime(const time_t *timep) | ||
77 | { | ||
78 | static struct tm time; | ||
79 | return rb->gmtime_r(timep, &time); | ||
80 | } | ||
81 | |||
76 | int get_current_path(lua_State *L, int level) | 82 | int get_current_path(lua_State *L, int level) |
77 | { | 83 | { |
78 | lua_Debug ar; | 84 | lua_Debug ar; |