MCPcopy Create free account
hub / github.com/eggert/tz / adjleap

Function adjleap

zic.c:3848–3875  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

3846 leap[i].roll = rolling;
3847 ++leapcnt;
3848}
3849
3850static void
3851adjleap(void)
3852{
3853 register ptrdiff_t i;
3854 register zic_t last = 0;
3855 register zic_t prevtrans = 0;
3856
3857 /*
3858 ** propagate leap seconds forward
3859 */
3860 for (i = 0; i < leapcnt; ++i) {
3861 if (leap[i].trans - prevtrans < 28 * SECSPERDAY) {
3862 error(N_("Leap seconds too close together"));
3863 exit(EXIT_FAILURE);
3864 }
3865 prevtrans = leap[i].trans;
3866 leap[i].trans = tadd(prevtrans, last);
3867 last = leap[i].corr += last;
3868 }
3869
3870 if (0 <= leapexpires) {
3871 leapexpires = oadd(leapexpires, last);
3872 if (! (leapcnt == 0 || (leap[leapcnt - 1].trans < leapexpires))) {
3873 error(N_("last Leap time does not precede Expires time"));
3874 exit(EXIT_FAILURE);
3875 }
3876 }
3877}
3878

Callers 1

mainFunction · 0.85

Calls 3

errorFunction · 0.85
taddFunction · 0.85
oaddFunction · 0.85

Tested by

no test coverage detected