chip@ateng.ateng.com (Chip Salzenberg) (10/11/89)
[BUG FIX] Fix creation of MFLAGS/MAKEFLAGS when job_slots > 1. The old code wrote "-j#" in the string array, then advanced the pointer too far. The result was that "-j#" was the last option propagated to child makes. Index: main.c *************** *** 1108,1115 **** i = 0; - flags[i++] = '-'; for (cs = switches; cs->c != '\0'; ++cs) ! if (cs->toenv) switch (cs->type) { --- 1129,1139 ---- i = 0; for (cs = switches; cs->c != '\0'; ++cs) ! { ! if (! cs->toenv) ! continue; ! if (i == 0 || flags[i - 1] == ' ') ! flags[i++] = '-'; switch (cs->type) { *************** *** 1142,1153 **** { strcpy (&flags[i], "j1 "); ! i += 5; } else { ! char *p = &flags[i]; ! sprintf (p, "%c%u ", cs->c, *(unsigned int *) cs->value_ptr); ! i += strlen (p); } } --- 1166,1176 ---- { strcpy (&flags[i], "j1 "); ! i += strlen (&flags[i]); } else { ! sprintf (&flags[i], "%c%u ", cs->c, *(unsigned int *) cs->value_ptr); ! i += strlen (&flags[i]); } } *************** *** 1174,1177 **** --- 1197,1201 ---- break; } + } if (i == 0)