Module Name:    src
Committed By:   rillig
Date:           Sat Oct 30 16:57:18 UTC 2021

Modified Files:
        src/tests/usr.bin/indent: t_errors.sh token_comment.c
        src/usr.bin/indent: pr_comment.c

Log Message:
indent: fix assertion in fits_in_one_line


To generate a diff of this commit:
cvs rdiff -u -r1.16 -r1.17 src/tests/usr.bin/indent/t_errors.sh
cvs rdiff -u -r1.13 -r1.14 src/tests/usr.bin/indent/token_comment.c
cvs rdiff -u -r1.90 -r1.91 src/usr.bin/indent/pr_comment.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/tests/usr.bin/indent/t_errors.sh
diff -u src/tests/usr.bin/indent/t_errors.sh:1.16 src/tests/usr.bin/indent/t_errors.sh:1.17
--- src/tests/usr.bin/indent/t_errors.sh:1.16	Sat Oct 30 16:43:23 2021
+++ src/tests/usr.bin/indent/t_errors.sh	Sat Oct 30 16:57:18 2021
@@ -1,5 +1,5 @@
 #! /bin/sh
-# $NetBSD: t_errors.sh,v 1.16 2021/10/30 16:43:23 rillig Exp $
+# $NetBSD: t_errors.sh,v 1.17 2021/10/30 16:57:18 rillig Exp $
 #
 # Copyright (c) 2021 The NetBSD Foundation, Inc.
 # All rights reserved.
@@ -435,6 +435,8 @@ search_stmt_fits_in_one_line_body()
 	# The comment is placed after 'if (0) ...', where it is processed
 	# by search_stmt_comment. That function redirects the input buffer to
 	# a temporary buffer that is not guaranteed to be terminated by '\n'.
+	# Before NetBSD pr_comment.c 1.91 from 2021-10-30, this produced an
+	# assertion failure in fits_in_one_line.
 	cat <<EOF > code.c
 int f(void)
 {
@@ -443,7 +445,20 @@ int f(void)
 }
 EOF
 
-	atf_check -s 'signal' -o 'ignore' -e 'match:assert' \
+	# Indent tries hard to make the comment fit to the 34-character line
+	# length, but it is just not possible.
+	cat <<EOF > expected.out
+int
+f(void)
+{
+	if (0)
+		/*
+		 * 0123456789012345678901
+		  */ ;
+}
+EOF
+
+	atf_check -o 'file:expected.out' \
 	    "$indent" -l34 code.c -st
 }
 

Index: src/tests/usr.bin/indent/token_comment.c
diff -u src/tests/usr.bin/indent/token_comment.c:1.13 src/tests/usr.bin/indent/token_comment.c:1.14
--- src/tests/usr.bin/indent/token_comment.c:1.13	Sat Oct 30 15:26:58 2021
+++ src/tests/usr.bin/indent/token_comment.c	Sat Oct 30 16:57:18 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: token_comment.c,v 1.13 2021/10/30 15:26:58 rillig Exp $ */
+/* $NetBSD: token_comment.c,v 1.14 2021/10/30 16:57:18 rillig Exp $ */
 /* $FreeBSD$ */
 
 /*
@@ -913,3 +913,38 @@ end */
  * Ümläute
  */
 #indent end
+
+
+/*
+ *
+ */
+#indent input
+int f(void)
+{
+	if (0)
+		/* 12 1234 123 123456 1234 1234567 123 1234.  */;
+}
+#indent end
+
+/* The comment is too long to fit in a single line. */
+#indent run -l54
+int
+f(void)
+{
+	if (0)
+		/*
+		 * 12 1234 123 123456 1234 1234567 123
+		 * 1234.
+		  */ ;
+}
+#indent end
+
+/* The comment fits in a single line. */
+#indent run
+int
+f(void)
+{
+	if (0)
+		 /* 12 1234 123 123456 1234 1234567 123 1234.  */ ;
+}
+#indent end

Index: src/usr.bin/indent/pr_comment.c
diff -u src/usr.bin/indent/pr_comment.c:1.90 src/usr.bin/indent/pr_comment.c:1.91
--- src/usr.bin/indent/pr_comment.c:1.90	Fri Oct 29 20:27:42 2021
+++ src/usr.bin/indent/pr_comment.c	Sat Oct 30 16:57:18 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: pr_comment.c,v 1.90 2021/10/29 20:27:42 rillig Exp $	*/
+/*	$NetBSD: pr_comment.c,v 1.91 2021/10/30 16:57:18 rillig Exp $	*/
 
 /*-
  * SPDX-License-Identifier: BSD-4-Clause
@@ -43,7 +43,7 @@ static char sccsid[] = "@(#)pr_comment.c
 
 #include <sys/cdefs.h>
 #if defined(__NetBSD__)
-__RCSID("$NetBSD: pr_comment.c,v 1.90 2021/10/29 20:27:42 rillig Exp $");
+__RCSID("$NetBSD: pr_comment.c,v 1.91 2021/10/30 16:57:18 rillig Exp $");
 #elif defined(__FreeBSD__)
 __FBSDID("$FreeBSD: head/usr.bin/indent/pr_comment.c 334927 2018-06-10 16:44:18Z pstef $");
 #endif
@@ -94,8 +94,7 @@ fits_in_one_line(int max_line_length)
 
 	int len = indentation_after_range(ps.com_ind + 3, inp.s, p);
 	len += ch_isblank(p[-1]) ? 2 : 3;
-	if (len <= max_line_length)
-	    return true;
+	return len <= max_line_length;
     }
     return false;
 }

Reply via email to