Page MenuHomeFreeBSD

D41026.diff
No OneTemporary

D41026.diff

diff --git a/usr.bin/unifdef/tests/Makefile b/usr.bin/unifdef/tests/Makefile
--- a/usr.bin/unifdef/tests/Makefile
+++ b/usr.bin/unifdef/tests/Makefile
@@ -2,6 +2,7 @@
PACKAGE= tests
+ATF_TESTS_SH= unifdef_test
NETBSD_ATF_TESTS_SH= basic_test
${PACKAGE}FILES+= d_basic.in
diff --git a/usr.bin/unifdef/tests/unifdef_test.sh b/usr.bin/unifdef/tests/unifdef_test.sh
new file mode 100644
--- /dev/null
+++ b/usr.bin/unifdef/tests/unifdef_test.sh
@@ -0,0 +1,22 @@
+#
+# Copyright (c) 2023 Klara, Inc.
+#
+# SPDX-License-Identifier: BSD-2-Clause
+#
+
+atf_test_case hash_comment
+hash_comment_head() {
+ atf_set descr "multiline comment follows directive"
+}
+hash_comment_body() {
+ cat >f <<EOF
+#if FOO
+#endif /*
+*/
+EOF
+ atf_check -o file:f unifdef <f
+}
+
+atf_init_test_cases() {
+ atf_add_test_case hash_comment
+}
diff --git a/usr.bin/unifdef/unifdef.c b/usr.bin/unifdef/unifdef.c
--- a/usr.bin/unifdef/unifdef.c
+++ b/usr.bin/unifdef/unifdef.c
@@ -886,8 +886,9 @@
retval = LT_ELIF;
}
/* the following can happen if the last line of the file lacks a
- newline or if there is too much whitespace in a directive */
- if (linestate == LS_HASH) {
+ newline or if there is too much whitespace in a directive,
+ or if a directive is followed by a multiline comment */
+ if (linestate == LS_HASH && !incomment) {
long len = cp - tline;
if (fgets(tline + len, MAXLINE - len, input) == NULL) {
if (ferror(input))

File Metadata

Mime Type
text/plain
Expires
Mon, Jan 27, 8:56 PM (7 h, 51 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
16174975
Default Alt Text
D41026.diff (1 KB)

Event Timeline