From 8f1bc1f00ba230e49281a31036f1f19e455bf54b Mon Sep 17 00:00:00 2001 From: Robert Kukla Date: Sat, 31 Mar 2007 13:04:22 +0000 Subject: pre-set date fields in time/date screen to build date ( FS#6831 & FS#6939 ) git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12982 a1c6a512-1295-4272-9138-f99709370657 --- apps/menus/settings_menu.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) (limited to 'apps/menus') diff --git a/apps/menus/settings_menu.c b/apps/menus/settings_menu.c index 939a2f3c8c..bc253ed398 100644 --- a/apps/menus/settings_menu.c +++ b/apps/menus/settings_menu.c @@ -202,14 +202,20 @@ static int timedate_set(void) /* This prevents problems with time/date setting after a power loss */ if (!valid_time(&tm)) { - /* hour */ +/* Macros to convert a 2-digit string to a decimal constant. + (YEAR), MONTH and DAY are set by the date command, which outputs + DAY as 00..31 and MONTH as 01..12. The leading zero would lead to + misinterpretation as an octal constant. */ +#define S100(x) 1 ## x +#define C2DIG2DEC(x) (S100(x)-100) + tm.tm_hour = 0; tm.tm_min = 0; tm.tm_sec = 0; - tm.tm_mday = 1; - tm.tm_mon = 0; + tm.tm_mday = C2DIG2DEC(DAY); + tm.tm_mon = C2DIG2DEC(MONTH)-1; tm.tm_wday = 1; - tm.tm_year = 100; + tm.tm_year = YEAR-1900; } result = (int)set_time_screen(str(LANG_TIME), &tm); -- cgit v1.2.3