Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!utgpu!water!watmath!clyde!rutgers!ames!hc!beta!cmcl2!brl-adm!brl-smoke!gwyn From: gwyn@brl-smoke.UUCP Newsgroups: comp.bugs.sys5 Subject: Re: even more bugs in make Message-ID: <5952@brl-smoke.ARPA> Date: Thu, 4-Jun-87 02:51:21 EDT Article-I.D.: brl-smok.5952 Posted: Thu Jun 4 02:51:21 1987 Date-Received: Sat, 6-Jun-87 06:36:12 EDT References: <2888@cit-vax.Caltech.Edu> Distribution: world Organization: Ballistic Research Lab (BRL), APG, MD. Lines: 16 Keywords: IFS, shell script, make In article <2888@cit-vax.Caltech.Edu>, fritz@polecat.caltech.edu (Fritz Nordby) writes: > ... If the IFS environment variable is set > when make is invoked, then make resets IFS to an empty string. That isn't quite what's happening. Environment strings are handed to the YACC-based parser inside "make", with the idea that they'll be treated just like a "NAME=value" definition within a makefile. Eventually it is the parsed-and-assigned-to-"make"-variables values that get put back in the environment when augmented "make" forks a shell. What is happening here is that the parser cannot handle environment variables containing funny stuff like newlines. I don't know how to fix this other than to rip all the environment fooey out of "make". Better to not screw around with IFS. I think every shell should set IFS to defaults when it starts up rather than trusting the IFS that may be in the environment. That would also avoid your problem.