From dcf1c686e5fd28bcf86345b971e33d9fcd30c592 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20T=C5=AFma?= Date: Sun, 9 Sep 2018 14:38:37 +0200 Subject: [PATCH] Added support for new IGC date header format Fixes #152 --- src/data/igcparser.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/data/igcparser.cpp b/src/data/igcparser.cpp index 94aeb015..a3d0d4cd 100644 --- a/src/data/igcparser.cpp +++ b/src/data/igcparser.cpp @@ -98,12 +98,14 @@ static bool readARecord(const char *line, qint64 len) bool IGCParser::readHRecord(const char *line, int len) { - if (len < 10 || ::strncmp(line, "HFDTE", 5)) + if (len < 11 || ::strncmp(line, "HFDTE", 5)) return true; - int d = str2int(line + 5, 2); - int m = str2int(line + 7, 2); - int y = str2int(line + 9, 2); + int offset = (len < 16 || ::strncmp(line + 5, "DATE:", 5)) ? 5 : 10; + + int d = str2int(line + offset, 2); + int m = str2int(line + offset + 2, 2); + int y = str2int(line + offset + 4, 2); if (y < 0 || m < 0 || d < 0) { _errorString = "Invalid date header format";