Module Name: src
Committed By: rillig
Date: Mon Jun 26 20:23:41 UTC 2023
Modified Files:
src/tests/usr.bin/indent: lsym_for.c
src/usr.bin/indent: lexi.c
Log Message:
indent: improve heuristics for '*' as pointer in for loops
To generate a diff of this commit:
cvs rdiff -u -r1.8 -r1.9 src/tests/usr.bin/indent/lsym_for.c
cvs rdiff -u -r1.238 -r1.239 src/usr.bin/indent/lexi.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/lsym_for.c
diff -u src/tests/usr.bin/indent/lsym_for.c:1.8 src/tests/usr.bin/indent/lsym_for.c:1.9
--- src/tests/usr.bin/indent/lsym_for.c:1.8 Mon Jun 26 20:10:23 2023
+++ src/tests/usr.bin/indent/lsym_for.c Mon Jun 26 20:23:40 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: lsym_for.c,v 1.8 2023/06/26 20:10:23 rillig Exp $ */
+/* $NetBSD: lsym_for.c,v 1.9 2023/06/26 20:23:40 rillig Exp $ */
/*
* Tests for the token lsym_for, which represents the keyword 'for' that
@@ -103,17 +103,4 @@ function(void)
}
//indent end
-//indent run
-{
- for (const list_item *i = first; i != NULL; i = i->next) {
- }
-// $ FIXME: There should be no space after the '*'.
- for (list_item * *i = first; i != NULL; i = i->next) {
- }
-// $ FIXME: There should be no space after the '*'.
- for (list_item * const *i = first; i != NULL; i = i->next) {
- }
- for (const char *const *i = first; i != NULL; i = i->next) {
- }
-}
-//indent end
+//indent run-equals-input
Index: src/usr.bin/indent/lexi.c
diff -u src/usr.bin/indent/lexi.c:1.238 src/usr.bin/indent/lexi.c:1.239
--- src/usr.bin/indent/lexi.c:1.238 Mon Jun 26 20:10:23 2023
+++ src/usr.bin/indent/lexi.c Mon Jun 26 20:23:40 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: lexi.c,v 1.238 2023/06/26 20:10:23 rillig Exp $ */
+/* $NetBSD: lexi.c,v 1.239 2023/06/26 20:23:40 rillig Exp $ */
/*-
* SPDX-License-Identifier: BSD-4-Clause
@@ -38,7 +38,7 @@
*/
#include <sys/cdefs.h>
-__RCSID("$NetBSD: lexi.c,v 1.238 2023/06/26 20:10:23 rillig Exp $");
+__RCSID("$NetBSD: lexi.c,v 1.239 2023/06/26 20:23:40 rillig Exp $");
#include <stdlib.h>
#include <string.h>
@@ -406,6 +406,12 @@ lexi_alnum(void)
if (ps.prev_lsym == lsym_tag && ps.paren.len == 0)
return lsym_type;
+ if (ps.spaced_expr_psym == psym_for_exprs
+ && ps.prev_lsym == lsym_lparen && ps.paren.len == 1
+ && *inp_p == '*') {
+ ps.next_unary = true;
+ return lsym_type;
+ }
token_add_char('\0'); // Terminate in non-debug mode as well.
token.len--;