From d01ecd8cea64ea6a34f6c11837810fc80d1b804f Mon Sep 17 00:00:00 2001 From: alok Date: Thu, 12 Dec 2013 23:15:26 -0500 Subject: [PATCH] Use difftime to do time_t math This avoid any assumptions of what the underlying time_t type is. --- push.cpp | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/push.cpp b/push.cpp index ecc8767..d71e32e 100644 --- a/push.cpp +++ b/push.cpp @@ -692,10 +692,9 @@ class CPushMod : public CModule */ bool idle() { - int value = options["idle"].ToInt(); + unsigned int value = options["idle"].ToUInt(); time_t now = time(NULL); - return value <= 0 - || idle_time + value < now; + return value == 0 || difftime(now, idle_time) >= value; } /** @@ -706,11 +705,11 @@ class CPushMod : public CModule */ bool last_active(const CString& context) { - int value = options["last_active"].ToInt(); + unsigned int value = options["last_active"].ToUInt(); time_t now = time(NULL); - return value <= 0 + return value == 0 || last_active_time.count(context) < 1 - || last_active_time[context] + value < now; + || difftime(now, last_active_time[context]) >= value; } /** @@ -721,11 +720,11 @@ class CPushMod : public CModule */ bool last_notification(const CString& context) { - int value = options["last_notification"].ToInt(); + unsigned int value = options["last_notification"].ToUInt(); time_t now = time(NULL); - return value <= 0 + return value == 0 || last_notification_time.count(context) < 1 - || last_notification_time[context] + value < now; + || difftime(now, last_notification_time[context]) >= value; } /**