Subject: Make shell function doesn't strip \r
From: [email-masked] (Steve Schoettler)

15 Sep 1997 10:42:01 -0700
Message-ID: <[email-masked]>
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
To: [email-masked]
Cc: [email-masked]

When you issue the function $(shell foo), the \n is stripped off the end of
the command but not the \r that preceeds the \n. I seem to have this
problem both with the cygnus make b18 and the standard gnu distribution
3.75 built for NT. I'm using MKS sh.exe for the SHELL but it appears to
fail with cygnus bash too.

This problem can be fixed by changing function.c (from make-3.75 near line
547):

from

   if (buffer[i - 1] == '\n')
     buffer[--i] = '\0';
   else

to

   if (buffer[i - 1] == '\n') {
     buffer[--i] = '\0';
     if (buffer[i-1]=='\r')
       buffer[--i] = '\0';
   } else

This fixes the problem I'm seeing, but I wonder about all the processing
inside job.c where there are checks for backslash-escaped newlines but no
checks for \r.

Steve Schoettler
[email-masked]

-
For help on using this list (especially unsubscribing), send a message to
"[email-masked]" with one line of text: "help".