|
|
|
@ -25,6 +25,7 @@ timelib_rel_time *timelib_diff(timelib_time *one, timelib_time *two) |
|
|
|
timelib_rel_time *rt; |
|
|
|
timelib_time *swp; |
|
|
|
timelib_sll dst_h_corr = 0, dst_m_corr = 0; |
|
|
|
timelib_time one_backup, two_backup; |
|
|
|
|
|
|
|
rt = timelib_rel_time_ctor(); |
|
|
|
rt->invert = 0; |
|
|
|
@ -45,6 +46,10 @@ timelib_rel_time *timelib_diff(timelib_time *one, timelib_time *two) |
|
|
|
dst_m_corr = ((two->z - one->z) % 3600) / 60; |
|
|
|
} |
|
|
|
|
|
|
|
/* Save old TZ info */ |
|
|
|
memcpy(&one_backup, one, sizeof(one_backup)); |
|
|
|
memcpy(&two_backup, two, sizeof(two_backup)); |
|
|
|
|
|
|
|
timelib_apply_localtime(one, 0); |
|
|
|
timelib_apply_localtime(two, 0); |
|
|
|
|
|
|
|
@ -58,8 +63,9 @@ timelib_rel_time *timelib_diff(timelib_time *one, timelib_time *two) |
|
|
|
|
|
|
|
timelib_do_rel_normalize(rt->invert ? one : two, rt); |
|
|
|
|
|
|
|
timelib_apply_localtime(one, 1); |
|
|
|
timelib_apply_localtime(two, 1); |
|
|
|
/* Restore old TZ info */ |
|
|
|
memcpy(one, &one_backup, sizeof(one_backup)); |
|
|
|
memcpy(two, &two_backup, sizeof(two_backup)); |
|
|
|
|
|
|
|
return rt; |
|
|
|
} |