Module Name:    src
Committed By:   rillig
Date:           Tue Oct 26 21:37:27 UTC 2021

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

Log Message:
indent: clean up process_comment

There is no undefined behavior since the compared characters are always
from the basic execution character set. All other cases are covered by
the condition above for now_len.

Fix debug logging for non-ASCII characters, previously a character was
output as \xffffffc3.


To generate a diff of this commit:
cvs rdiff -u -r1.7 -r1.8 src/tests/usr.bin/indent/token_comment.c
cvs rdiff -u -r1.161 -r1.162 src/usr.bin/indent/indent.c
cvs rdiff -u -r1.86 -r1.87 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/token_comment.c
diff -u src/tests/usr.bin/indent/token_comment.c:1.7 src/tests/usr.bin/indent/token_comment.c:1.8
--- src/tests/usr.bin/indent/token_comment.c:1.7	Sun Oct 24 21:55:07 2021
+++ src/tests/usr.bin/indent/token_comment.c	Tue Oct 26 21:37:27 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: token_comment.c,v 1.7 2021/10/24 21:55:07 rillig Exp $ */
+/* $NetBSD: token_comment.c,v 1.8 2021/10/26 21:37:27 rillig Exp $ */
 /* $FreeBSD$ */
 
 /*
@@ -729,3 +729,15 @@ end */
 #indent end
 
 #indent run-equals-input -nfc1
+
+
+#indent input
+/* comment comment comment comment Ümläute */
+#indent end
+
+#indent run -l40
+/*
+ * comment comment comment comment
+ * Ümläute
+ */
+#indent end

Index: src/usr.bin/indent/indent.c
diff -u src/usr.bin/indent/indent.c:1.161 src/usr.bin/indent/indent.c:1.162
--- src/usr.bin/indent/indent.c:1.161	Tue Oct 26 20:43:35 2021
+++ src/usr.bin/indent/indent.c	Tue Oct 26 21:37:27 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: indent.c,v 1.161 2021/10/26 20:43:35 rillig Exp $	*/
+/*	$NetBSD: indent.c,v 1.162 2021/10/26 21:37:27 rillig Exp $	*/
 
 /*-
  * SPDX-License-Identifier: BSD-4-Clause
@@ -43,7 +43,7 @@ static char sccsid[] = "@(#)indent.c	5.1
 
 #include <sys/cdefs.h>
 #if defined(__NetBSD__)
-__RCSID("$NetBSD: indent.c,v 1.161 2021/10/26 20:43:35 rillig Exp $");
+__RCSID("$NetBSD: indent.c,v 1.162 2021/10/26 21:37:27 rillig Exp $");
 #elif defined(__FreeBSD__)
 __FBSDID("$FreeBSD: head/usr.bin/indent/indent.c 340138 2018-11-04 19:24:49Z oshogbo $");
 #endif
@@ -1562,7 +1562,7 @@ debug_vis_range(const char *prefix, cons
 	else if (*p == '\t')
 	    debug_printf("\\t");
 	else
-	    debug_printf("\\x%02x", *p);
+	    debug_printf("\\x%02x", (unsigned char)*p);
     }
     debug_printf("%s", suffix);
 }

Index: src/usr.bin/indent/pr_comment.c
diff -u src/usr.bin/indent/pr_comment.c:1.86 src/usr.bin/indent/pr_comment.c:1.87
--- src/usr.bin/indent/pr_comment.c:1.86	Tue Oct 26 21:23:52 2021
+++ src/usr.bin/indent/pr_comment.c	Tue Oct 26 21:37:27 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: pr_comment.c,v 1.86 2021/10/26 21:23:52 rillig Exp $	*/
+/*	$NetBSD: pr_comment.c,v 1.87 2021/10/26 21:37:27 rillig Exp $	*/
 
 /*-
  * SPDX-License-Identifier: BSD-4-Clause
@@ -43,12 +43,13 @@ static char sccsid[] = "@(#)pr_comment.c
 
 #include <sys/cdefs.h>
 #if defined(__NetBSD__)
-__RCSID("$NetBSD: pr_comment.c,v 1.86 2021/10/26 21:23:52 rillig Exp $");
+__RCSID("$NetBSD: pr_comment.c,v 1.87 2021/10/26 21:37:27 rillig Exp $");
 #elif defined(__FreeBSD__)
 __FBSDID("$FreeBSD: head/usr.bin/indent/pr_comment.c 334927 2018-06-10 16:44:18Z pstef $");
 #endif
 
 #include <assert.h>
+#include <ctype.h>
 #include <stdio.h>
 #include <string.h>
 
@@ -333,8 +334,7 @@ process_comment(void)
 
 	    if (now_len <= adj_max_line_length || !may_wrap)
 		break;
-	    /* XXX: signed character comparison '>' does not work for UTF-8 */
-	    if (com.e[-1] <= ' ')
+	    if (isspace((unsigned char)com.e[-1]))
 		break;
 
 	    if (last_blank == -1) {	/* only a single word in this line */

Reply via email to