Date: Wed, 14 Mar 2001 17:00:04 -0800 (PST) From: Seth Kingsley <sethk@osd.bsdi.com> To: freebsd-bugs@FreeBSD.org Subject: Re: bin/25627: Cannot append hash after .elif in Makefile, (but can after .if) Message-ID: <200103150100.f2F104k00932@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
The following reply was made to PR bin/25627; it has been noted by GNATS.
From: Seth Kingsley <sethk@osd.bsdi.com>
To: freebsd-gnats-submit@FreeBSD.org, jhs@jhs.muc.de
Cc:
Subject: Re: bin/25627: Cannot append hash after .elif in Makefile, (but can after .if)
Date: Wed, 14 Mar 2001 16:56:58 -0800
Make's parser skips down to the next conditional (line beginning with a
'.') when the current conditional evaluates to false. The function
parse.c:ParseSkipLine() does not handle comments in the same way that
parse.c:ParseReadLine() does, and thus causes errors such as this one.
This patch adds the correct behavior to parse.c:ParseSkipLine.
Index: parse.c
===================================================================
RCS file: /ncvs/src/usr.bin/make/parse.c,v
retrieving revision 1.22
diff -u -r1.22 parse.c
--- parse.c 1999/08/28 01:03:35 1.22
+++ parse.c 2001/03/14 21:02:37
@@ -2059,18 +2059,24 @@
while (((c = ParseReadc()) != '\n' || lastc == '\\')
&& c != EOF) {
- if (c == '\n') {
- Buf_ReplaceLastByte(buf, (Byte)' ');
- lineno++;
+ if (c == '#' && lastc != '\\') {
+ while ((c = ParseReadc()) != '\n' && c != EOF);
- while ((c = ParseReadc()) == ' ' || c == '\t');
+ break;
+ } else {
+ if (c == '\n') {
+ Buf_ReplaceLastByte(buf, (Byte)' ');
+ lineno++;
- if (c == EOF)
- break;
- }
+ while ((c = ParseReadc()) == ' ' || c == '\t');
+
+ if (c == EOF)
+ break;
+ }
- Buf_AddByte(buf, (Byte)c);
- lastc = c;
+ Buf_AddByte(buf, (Byte)c);
+ lastc = c;
+ }
}
if (c == EOF) {
--
|| Seth Kingsley || BSDi/Open Source Division || sethk@osd.bsdi.com ||
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200103150100.f2F104k00932>
