From f5759d11c933693cc90c5aa3fdea4f462a0e1643 Mon Sep 17 00:00:00 2001 From: Jef Driesen Date: Wed, 3 Feb 2010 08:42:28 +0000 Subject: [PATCH] Use the year stored in the dive header. --- src/oceanic_vtpro_parser.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/oceanic_vtpro_parser.c b/src/oceanic_vtpro_parser.c index df686fb..dd1d3f5 100644 --- a/src/oceanic_vtpro_parser.c +++ b/src/oceanic_vtpro_parser.c @@ -113,7 +113,12 @@ oceanic_vtpro_parser_get_datetime (parser_t *abstract, dc_datetime_t *datetime) const unsigned char *p = abstract->data; if (datetime) { - datetime->year = bcd2dec (p[4] & 0x0F) + 2000; + // The logbook entry can only store the last digit of the year field, + // but the full year is also available in the dive header. + if (abstract->size < 40) + datetime->year = bcd2dec (p[4] & 0x0F) + 2000; + else + datetime->year = bcd2dec (((p[32 + 3] & 0xC0) >> 2) + ((p[32 + 2] & 0xF0) >> 4)) + 2000; datetime->month = (p[4] & 0xF0) >> 4; datetime->day = bcd2dec (p[3]); datetime->hour = bcd2dec (p[1] & 0x7F);