summaryrefslogtreecommitdiff
path: root/firmware/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/drivers')
-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 c11a9f1..7bb2645 100644
--- a/firmware/drivers/fat.c
+++ b/firmware/drivers/fat.c
@@ -1059,8 +1059,15 @@ static void fat_time(unsigned short* date,
{
if (0 == *date)
{
- /* set to 1 August 2003 */
- *date = ((2003 - 1980) << 9) | (8 << 5) | 1;
+/* 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)
+ /* set to build date */
+ *date = ((YEAR - 1980) << 9) | (C2DIG2DEC(MONTH) << 5)
+ | C2DIG2DEC(DAY);
}
else
{