summaryrefslogtreecommitdiff
path: root/firmware/common
diff options
context:
space:
mode:
authorLinus Nielsen Feltzing <linus@haxx.se>2006-10-19 09:42:58 +0000
committerLinus Nielsen Feltzing <linus@haxx.se>2006-10-19 09:42:58 +0000
commitda153da0be485aa4b937d58ee209eda7fb342053 (patch)
tree3506b6bba4935fa252250b892d023203e54f3513 /firmware/common
parent1645d32aa38bd61806125c8d6b1c44fa3ac0f3ca (diff)
downloadrockbox-da153da0be485aa4b937d58ee209eda7fb342053.zip
rockbox-da153da0be485aa4b937d58ee209eda7fb342053.tar.gz
rockbox-da153da0be485aa4b937d58ee209eda7fb342053.tar.bz2
rockbox-da153da0be485aa4b937d58ee209eda7fb342053.tar.xz
Patch #5166 by Robert Keevil - Last.fm logging
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11269 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/common')
-rw-r--r--firmware/common/timefuncs.c35
1 files changed, 35 insertions, 0 deletions
diff --git a/firmware/common/timefuncs.c b/firmware/common/timefuncs.c
index fb16f0c..e48aadd 100644
--- a/firmware/common/timefuncs.c
+++ b/firmware/common/timefuncs.c
@@ -130,3 +130,38 @@ int set_time(const struct tm *tm)
return 0;
#endif
}
+
+/* mktime() code taken from lynx-2.8.5 source, written
+ by Philippe De Muyter <phdm@macqel.be> */
+time_t mktime(struct tm *t)
+{
+ short month, year;
+ time_t result;
+ static int m_to_d[12] =
+ {0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334};
+
+ month = t->tm_mon;
+ year = t->tm_year + month / 12 + 1900;
+ month %= 12;
+ if (month < 0)
+ {
+ year -= 1;
+ month += 12;
+ }
+ result = (year - 1970) * 365 + (year - 1969) / 4 + m_to_d[month];
+ result = (year - 1970) * 365 + m_to_d[month];
+ if (month <= 1)
+ year -= 1;
+ result += (year - 1968) / 4;
+ result -= (year - 1900) / 100;
+ result += (year - 1600) / 400;
+ result += t->tm_mday;
+ result -= 1;
+ result *= 24;
+ result += t->tm_hour;
+ result *= 60;
+ result += t->tm_min;
+ result *= 60;
+ result += t->tm_sec;
+ return(result);
+}