view src/timeconv.c @ 390:5c0ce43c7532

Fix a number of spelling mistakes Changes-by: codespell -w Suggested-by: codespell, spellintian, lintian I: libpst4: spelling-error-in-binary usr/lib/x86_64-linux-gnu/libpst.so.4.1.14 occured occurred I: libpst-dev: spelling-error-in-manpage usr/share/man/man5/outlook.pst.5.gz Attachement Attachment
author Paul Wise <pabs3@bonedaddy.net>
date Sat, 21 Dec 2019 21:25:45 +0800
parents ad7b880ad3d1
children
line wrap: on
line source

#include "define.h"



char* pst_fileTimeToAscii(const FILETIME* filetime, char* result) {
    time_t t;
    t = pst_fileTimeToUnixTime(filetime);
    return ctime_r(&t, result);
}

size_t pst_fileTimeToString(const FILETIME* filetime, const char* date_format, char* result) {
    time_t t;
    t = pst_fileTimeToUnixTime(filetime);
    return strftime(result, MAXDATEFMTLEN-1, date_format, localtime(&t));
}

void pst_fileTimeToStructTM (const FILETIME *filetime, struct tm *result) {
    time_t t1;
    t1 = pst_fileTimeToUnixTime(filetime);
    gmtime_r(&t1, result);
}


time_t pst_fileTimeToUnixTime(const FILETIME *filetime)
{
    uint64_t t = filetime->dwHighDateTime;
    const uint64_t bias = 11644473600LL;
    t <<= 32;
    t += filetime->dwLowDateTime;
    t /= 10000000;
    t -= bias;
    return ((t > (uint64_t)0x000000007fffffff) && (sizeof(time_t) <= 4)) ? 0 : (time_t)t;
}