calcurse uses long for times all over the place

Index: src/utils.c
--- src/utils.c.orig
+++ src/utils.c
@@ -1102,8 +1102,10 @@ int parse_date_increment(const char *string, unsigned 
 		long p;
 		if (overflow_mul(incr, DAYINSEC, &p))
 			return 0;
-		if (overflow_add(start, p, &start))
+		long start_l = start;
+		if (overflow_add(start, p, &start_l))
 			return 0;
+		start = start_l;
 		if (!check_sec(&start))
 			return 0;
 	}
@@ -1325,8 +1327,10 @@ int parse_datetime(const char *string, time_t *ts, tim
 	if (dur) {
 		/* want: sec = *ts + dur */
 		time_t sec;
-		if (overflow_add(*ts, dur, &sec))
+		long sec_l;
+		if (overflow_add(*ts, dur, &sec_l))
 			return 0;
+		sec = sec_l;
 		if (!check_sec(&sec))
 			return 0;
 	}
