| 3264 | week = rp->r_dayofmonth / DAYSPERWEEK; |
| 3265 | } |
| 3266 | } else return -1; /* "cannot happen" */ |
| 3267 | if (wday < 0) |
| 3268 | wday += DAYSPERWEEK; |
| 3269 | result += sprintf(result, "M%d.%d.%d", |
| 3270 | rp->r_month + 1, week, wday); |
| 3271 | } |
| 3272 | if (rp->r_todisut) |
| 3273 | tod += stdoff; |
| 3274 | if (rp->r_todisstd && !rp->r_isdst) |
| 3275 | tod += save; |
| 3276 | if (tod != 2 * SECSPERMIN * MINSPERHOUR) { |
| 3277 | *result++ = '/'; |
| 3278 | if (! stringoffset(result, tod)) |
| 3279 | return -1; |
| 3280 | if (tod < 0) { |
| 3281 | if (compat < 2013) |
| 3282 | compat = 2013; |
| 3283 | } else if (SECSPERDAY <= tod) { |