+
+ /* Apply its correction. */
+ *leap_correct = leaps[i].change;
+
+ if (timer == leaps[i].transition && /* Exactly at the transition time. */
+ ((i == 0 && leaps[i].change > 0) ||
+ leaps[i].change > leaps[i - 1].change))
+ {
+ *leap_hit = 1;
+ while (i > 0 &&
+ leaps[i].transition == leaps[i - 1].transition + 1 &&
+ leaps[i].change == leaps[i - 1].change + 1)
+ {
+ ++*leap_hit;
+ --i;
+ }
+ }
+