| 4187 | ++i; |
| 4188 | } else { |
| 4189 | dayoff = oadd(dayoff, -1); |
| 4190 | if (--wday < 0) |
| 4191 | wday = DAYSPERWEEK - 1; |
| 4192 | --i; |
| 4193 | } |
| 4194 | if (i < 0 || i >= len_months[isleap(y)][m]) { |
| 4195 | if (noise) |
| 4196 | warning(N_("rule goes past start/end of month;" |
| 4197 | " will not work with pre-2004" |
| 4198 | " versions of zic")); |
| 4199 | } |
| 4200 | } |
| 4201 | t = omul(dayoff, SECSPERDAY); |
| 4202 | return tadd(t, rp->r_tod); |
| 4203 | } |
| 4204 | |
| 4205 | static void |
| 4206 | checkabbr(char const *string) |
| 4207 | { |
| 4208 | if (strcmp(string, GRANDPARENTED) != 0) { |
| 4209 | register const char * cp; |
| 4210 | const char * mp; |
| 4211 | |
| 4212 | cp = string; |
| 4213 | mp = NULL; |