Loading...
--- Libc/Libc-1725.40.4/stdtime/getdate.c
+++ Libc/Libc-763.12/stdtime/getdate.c
@@ -242,17 +242,14 @@
getdate_err = INVALID_DATE;
break;
}
- if(wday_set != UNDEFINED &&
- (dateset != (TM_YEAR_SET | TM_MON_SET | TM_MDAY_SET))) {
- /*
- * We got back a week day, but not enough information to resolve it
- * to a specific day, so we need to push forward the time to the
- * correct wday. <rdar://problem/27439823>
- */
+ if(wday_set != UNDEFINED) {
int delta = wday_set - tm.tm_wday;
- if(delta < 0) {
+ if(delta && (dateset & TM_MDAY_SET)) {
+ getdate_err = INVALID_DATE;
+ break;
+ }
+ if(delta < 0)
delta += 7;
- }
tm.tm_mday += delta;
if(mktime(&tm) == (time_t)-1) {
getdate_err = INVALID_DATE;