* Do we have a pending number at the end, or when * we see a new one? Let's assume it's a month day, * as in "Dec 6, 1992" */
| 1106 | * as in "Dec 6, 1992" |
| 1107 | */ |
| 1108 | static void pending_number(struct tm *tm, int *num) |
| 1109 | { |
| 1110 | int number = *num; |
| 1111 | |
| 1112 | if (number) { |
| 1113 | *num = 0; |
| 1114 | if (tm->tm_mday < 0 && number < 32) |
| 1115 | tm->tm_mday = number; |
| 1116 | else if (tm->tm_mon < 0 && number < 13) |
| 1117 | tm->tm_mon = number-1; |
| 1118 | else if (tm->tm_year < 0) { |
| 1119 | if (number > 1969 && number < 2100) |
| 1120 | tm->tm_year = number - 1900; |
| 1121 | else if (number > 69 && number < 100) |
| 1122 | tm->tm_year = number; |
| 1123 | else if (number < 38) |
| 1124 | tm->tm_year = 100 + number; |
| 1125 | /* We screw up for number = 00 ? */ |
| 1126 | } |
| 1127 | } |
| 1128 | } |
| 1129 | |
| 1130 | static void date_now(struct tm *tm, struct tm *now, int *num) |
| 1131 | { |
no outgoing calls
no test coverage detected