Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 14 Aug 1995 19:04:04 +0200
From:      Wolfram Schneider <wosch@cs.tu-berlin.de>
To:        Bruce Evans <bde@zeta.org.au>
Cc:        wollman@halloran-eldar.lcs.mit.edu, current@freebsd.org
Subject:   Re: make(1) extension for SHELL COMMANDS
Message-ID:  <199508141704.TAA17375@caramba.cs.tu-berlin.de>
In-Reply-To: <199508141637.CAA22537@godzilla.zeta.org.au>
References:  <199508141637.CAA22537@godzilla.zeta.org.au>

next in thread | previous in thread | raw e-mail | index | archive | help
Bruce Evans writes:
>>pmake use /bin/sh -c or /bin/sh -ec
>
>>    } else {
>>        /*
>>         * No meta-characters, so no need to exec a shell. Break the command
>>         * into words to form an argument vector we can execute.
>>         * brk_string sticks our name in av[0], so we have to
>>         * skip over it...
>>         */
>>        av = brk_string(cmd, &argc, TRUE);
>
>Does it handle weird $IFS's?

No. 
$ egrep IFS /src/usr.bin/make/* | grep -v WIFS


This do only gnu-make:

make-3.74/job.c:
/* Figure out the argument list necessary to run LINE as a command.  Try to
   avoid using a shell.  This routine handles only ' quoting, and " quoting
   when no backslash, $ or ` characters are seen in the quotes.  Starting
   quotes may be escaped with a backslash.  If any of the characters in
   sh_chars[] is seen, or any of the builtin commands listed in sh_cmds[]
   is the first word of a line, the shell is used.

   If RESTP is not NULL, *RESTP is set to point to the first newline in LINE.
   If *RESTP is NULL, newlines will be ignored.

   SHELL is the shell to use, or nil to use the default shell.
   IFS is the value of $IFS, or nil (meaning the default).  */


Wolfram



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199508141704.TAA17375>