From e818021bbf9633bbcd4b9a77769892c71aa18019 Mon Sep 17 00:00:00 2001 From: John McNamara Date: Mon, 11 Jul 2016 23:34:24 +0100 Subject: [PATCH] Change xlsx zip date to match Excel. Changed the xlsx file zipinfo date to 1 Jan 1980 to match Excel. This will make a binary comparison possible, in conjuction with document property dates, if required. --- .indent.pro | 1 + src/packager.c | 17 +++++++---------- 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/.indent.pro b/.indent.pro index b09c6396..166448dc 100644 --- a/.indent.pro +++ b/.indent.pro @@ -66,6 +66,7 @@ -T lxw_drawing -T lxw_drawing_coords -T lxw_drawing_object +-T lxw_error -T lxw_fill -T lxw_font -T lxw_format diff --git a/src/packager.c b/src/packager.c index 8ec8c71f..754d032b 100644 --- a/src/packager.c +++ b/src/packager.c @@ -70,8 +70,6 @@ _open_zipfile_win32(const char *filename) lxw_packager * lxw_packager_new(const char *filename, char *tmpdir) { - struct tm *file_date; - time_t now = time(NULL); lxw_packager *packager = calloc(1, sizeof(lxw_packager)); GOTO_LABEL_ON_MEM_ERROR(packager, mem_error); @@ -84,14 +82,13 @@ lxw_packager_new(const char *filename, char *tmpdir) packager->buffer_size = LXW_ZIP_BUFFER_SIZE; - /* Initialize the zip_fileinfo struct. */ - file_date = localtime(&now); - packager->zipfile_info.tmz_date.tm_sec = file_date->tm_sec; - packager->zipfile_info.tmz_date.tm_min = file_date->tm_min; - packager->zipfile_info.tmz_date.tm_hour = file_date->tm_hour; - packager->zipfile_info.tmz_date.tm_mday = file_date->tm_mday; - packager->zipfile_info.tmz_date.tm_mon = file_date->tm_mon; - packager->zipfile_info.tmz_date.tm_year = file_date->tm_year; + /* Initialize the zip_fileinfo struct to Jan 1 1980 like Excel. */ + packager->zipfile_info.tmz_date.tm_sec = 0; + packager->zipfile_info.tmz_date.tm_min = 0; + packager->zipfile_info.tmz_date.tm_hour = 0; + packager->zipfile_info.tmz_date.tm_mday = 1; + packager->zipfile_info.tmz_date.tm_mon = 0; + packager->zipfile_info.tmz_date.tm_year = 1980; packager->zipfile_info.dosDate = 0; packager->zipfile_info.internal_fa = 0; packager->zipfile_info.external_fa = 0;