=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/make/job.c,v retrieving revision 1.72 retrieving revision 1.73 diff -c -r1.72 -r1.73 *** src/usr.bin/make/job.c 2007/09/17 10:31:13 1.72 --- src/usr.bin/make/job.c 2007/09/17 10:33:28 1.73 *************** *** 1,5 **** /* $OpenPackages$ */ ! /* $OpenBSD: job.c,v 1.72 2007/09/17 10:31:13 espie Exp $ */ /* $NetBSD: job.c,v 1.16 1996/11/06 17:59:08 christos Exp $ */ /* --- 1,5 ---- /* $OpenPackages$ */ ! /* $OpenBSD: job.c,v 1.73 2007/09/17 10:33:28 espie Exp $ */ /* $NetBSD: job.c,v 1.16 1996/11/06 17:59:08 christos Exp $ */ /* *************** *** 1248,1282 **** argv[0] = (char *)shellName; argc = 1; ! if ((commandShell->exit && *commandShell->exit != '-') || ! (commandShell->echo && *commandShell->echo != '-')) { ! /* ! * At least one of the flags doesn't have a minus before it, so ! * merge them together. Have to do this because the ! * *(&(@*#*&#$# Bourne shell thinks its second argument is a ! * file to source. Grrrr. Note the ten-character limitation on ! * the combined arguments. ! */ ! (void)snprintf(args, sizeof(args), "-%s%s", ! ((job->flags & JOB_IGNERR) ? "" : ! (commandShell->exit ? commandShell->exit : "")), ! ((job->flags & JOB_SILENT) ? "" : ! (commandShell->echo ? commandShell->echo : ""))); ! if (args[1]) { ! argv[argc] = args; ! argc++; ! } ! } else { ! if (!(job->flags & JOB_IGNERR) && commandShell->exit) { ! argv[argc] = commandShell->exit; ! argc++; ! } ! if (!(job->flags & JOB_SILENT) && commandShell->echo) { ! argv[argc] = commandShell->echo; ! argc++; ! } ! } argv[argc] = NULL; } --- 1248,1261 ---- argv[0] = (char *)shellName; argc = 1; ! (void)snprintf(args, sizeof(args), "-%s%s", ! (job->flags & JOB_IGNERR) ? "" : SHELL_ERROR_FLAG, ! (job->flags & JOB_SILENT) ? "" : SHELL_ECHO_FLAG); ! if (args[1]) { ! argv[argc] = args; ! argc++; ! } argv[argc] = NULL; }