Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/usr.bin/indent indent: fix assertion in fits_in_one_line



details:   https://anonhg.NetBSD.org/src/rev/4ed20614bd4b
branches:  trunk
changeset: 1024662:4ed20614bd4b
user:      rillig <rillig%NetBSD.org@localhost>
date:      Sat Oct 30 16:57:18 2021 +0000

description:
indent: fix assertion in fits_in_one_line

diffstat:

 tests/usr.bin/indent/t_errors.sh     |  19 ++++++++++++++++-
 tests/usr.bin/indent/token_comment.c |  37 +++++++++++++++++++++++++++++++++++-
 usr.bin/indent/pr_comment.c          |   7 ++---
 3 files changed, 56 insertions(+), 7 deletions(-)

diffs (117 lines):

diff -r 0aa4d1abfc8d -r 4ed20614bd4b tests/usr.bin/indent/t_errors.sh
--- a/tests/usr.bin/indent/t_errors.sh  Sat Oct 30 16:43:23 2021 +0000
+++ b/tests/usr.bin/indent/t_errors.sh  Sat Oct 30 16:57:18 2021 +0000
@@ -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 @@
        # 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 @@
 }
 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
 }
 
diff -r 0aa4d1abfc8d -r 4ed20614bd4b tests/usr.bin/indent/token_comment.c
--- a/tests/usr.bin/indent/token_comment.c      Sat Oct 30 16:43:23 2021 +0000
+++ b/tests/usr.bin/indent/token_comment.c      Sat Oct 30 16:57:18 2021 +0000
@@ -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 @@
  * Ü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
diff -r 0aa4d1abfc8d -r 4ed20614bd4b usr.bin/indent/pr_comment.c
--- a/usr.bin/indent/pr_comment.c       Sat Oct 30 16:43:23 2021 +0000
+++ b/usr.bin/indent/pr_comment.c       Sat Oct 30 16:57:18 2021 +0000
@@ -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 @@
 
 #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 @@
 
        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;
 }



Home | Main Index | Thread Index | Old Index