Module Name: src
Committed By: sjg
Date: Wed Jan 3 20:24:16 UTC 2024
Modified Files:
src/usr.bin/make: parse.c
Log Message:
make: do not add newline to an empty buffer
When LoadFile reads from /dev/null the buffer will be empty,
appending "\n" just results in an unnecessary extra call
to ParseRawLine.
Reviewed by: rillig
To generate a diff of this commit:
cvs rdiff -u -r1.713 -r1.714 src/usr.bin/make/parse.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/usr.bin/make/parse.c
diff -u src/usr.bin/make/parse.c:1.713 src/usr.bin/make/parse.c:1.714
--- src/usr.bin/make/parse.c:1.713 Fri Dec 29 20:43:58 2023
+++ src/usr.bin/make/parse.c Wed Jan 3 20:24:16 2024
@@ -1,4 +1,4 @@
-/* $NetBSD: parse.c,v 1.713 2023/12/29 20:43:58 rillig Exp $ */
+/* $NetBSD: parse.c,v 1.714 2024/01/03 20:24:16 sjg Exp $ */
/*
* Copyright (c) 1988, 1989, 1990, 1993
@@ -105,7 +105,7 @@
#include "pathnames.h"
/* "@(#)parse.c 8.3 (Berkeley) 3/19/94" */
-MAKE_RCSID("$NetBSD: parse.c,v 1.713 2023/12/29 20:43:58 rillig Exp $");
+MAKE_RCSID("$NetBSD: parse.c,v 1.714 2024/01/03 20:24:16 sjg Exp $");
/* Detects a multiple-inclusion guard in a makefile. */
typedef enum {
@@ -383,7 +383,7 @@ LoadFile(const char *path, int fd)
}
assert(buf.len <= buf.cap);
- if (!Buf_EndsWith(&buf, '\n'))
+ if (buf.len > 0 && !Buf_EndsWith(&buf, '\n'))
Buf_AddByte(&buf, '\n');
return buf; /* may not be null-terminated */