summaryrefslogtreecommitdiff
path: root/firmware/drivers/fat.c
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/drivers/fat.c')
-rw-r--r--firmware/drivers/fat.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/firmware/drivers/fat.c b/firmware/drivers/fat.c
index c11a9f1247..7bb2645506 100644
--- a/firmware/drivers/fat.c
+++ b/firmware/drivers/fat.c
@@ -1059,8 +1059,15 @@ static void fat_time(unsigned short* date,
1059 { 1059 {
1060 if (0 == *date) 1060 if (0 == *date)
1061 { 1061 {
1062 /* set to 1 August 2003 */ 1062/* Macros to convert a 2-digit string to a decimal constant.
1063 *date = ((2003 - 1980) << 9) | (8 << 5) | 1; 1063 (YEAR), MONTH and DAY are set by the date command, which outputs
1064 DAY as 00..31 and MONTH as 01..12. The leading zero would lead to
1065 misinterpretation as an octal constant. */
1066#define S100(x) 1 ## x
1067#define C2DIG2DEC(x) (S100(x)-100)
1068 /* set to build date */
1069 *date = ((YEAR - 1980) << 9) | (C2DIG2DEC(MONTH) << 5)
1070 | C2DIG2DEC(DAY);
1064 } 1071 }
1065 else 1072 else
1066 { 1073 {