Simplify milestone selection logic.
Benjamin Drung
10 years ago
245 | 245 | int date_index, ssize_t *days) { |
246 | 246 | const date_t *first; |
247 | 247 | const date_t *second; |
248 | date_t *milestone = NULL; | |
249 | 248 | int direction; |
250 | 249 | |
251 | if(date_index == MILESTONE_CREATED) { | |
252 | milestone = distro->milestones[MILESTONE_CREATED]; | |
253 | } else if(date_index == MILESTONE_RELEASE) { | |
254 | milestone = distro->milestones[MILESTONE_RELEASE]; | |
255 | } else if(date_index == MILESTONE_EOL) { | |
256 | milestone = distro->milestones[MILESTONE_EOL]; | |
257 | } | |
258 | #ifdef UBUNTU | |
259 | else if(date_index == MILESTONE_EOL_SERVER) { | |
260 | milestone = distro->milestones[MILESTONE_EOL_SERVER]; | |
261 | if(!milestone) { | |
262 | return false; | |
263 | } | |
264 | } | |
265 | #endif | |
250 | assert(date_index >= 0 && date_index < MILESTONE_COUNT); | |
266 | 251 | |
267 | 252 | /* distro may not have specified a particular milestone date |
268 | 253 | * (yet). |
269 | 254 | */ |
270 | if(!milestone) { | |
255 | if(!distro->milestones[date_index]) { | |
271 | 256 | return false; |
272 | 257 | } |
273 | 258 | |
274 | if(date_ge(date, milestone)) { | |
259 | if(date_ge(date, distro->milestones[date_index])) { | |
275 | 260 | first = date; |
276 | second = milestone; | |
261 | second = distro->milestones[date_index]; | |
277 | 262 | direction = -1; |
278 | 263 | } else { |
279 | first = milestone; | |
264 | first = distro->milestones[date_index]; | |
280 | 265 | second = date; |
281 | 266 | direction = 1; |
282 | 267 | } |