Module Name: src Committed By: rillig Date: Fri Jun 16 12:55:57 UTC 2023
Modified Files: src/tests/usr.bin/indent: fmt_expr.c lsym_unary_op.c src/usr.bin/indent: indent.c Log Message: indent: improve heuristics for casts To generate a diff of this commit: cvs rdiff -u -r1.8 -r1.9 src/tests/usr.bin/indent/fmt_expr.c cvs rdiff -u -r1.10 -r1.11 src/tests/usr.bin/indent/lsym_unary_op.c cvs rdiff -u -r1.374 -r1.375 src/usr.bin/indent/indent.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/fmt_expr.c diff -u src/tests/usr.bin/indent/fmt_expr.c:1.8 src/tests/usr.bin/indent/fmt_expr.c:1.9 --- src/tests/usr.bin/indent/fmt_expr.c:1.8 Wed Jun 14 17:07:32 2023 +++ src/tests/usr.bin/indent/fmt_expr.c Fri Jun 16 12:55:57 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: fmt_expr.c,v 1.8 2023/06/14 17:07:32 rillig Exp $ */ +/* $NetBSD: fmt_expr.c,v 1.9 2023/06/16 12:55:57 rillig Exp $ */ /* * Tests for all kinds of expressions that are not directly related to unary @@ -19,8 +19,7 @@ x = ((struct point){0, 0}).x; for (ln = gnodes->first; ln != NULL; ln = ln->next) -// $ FIXME: No space after the cast. - *(GNode **) Vector_Push(&vec) = ln->datum; + *(GNode **)Vector_Push(&vec) = ln->datum; } //indent end Index: src/tests/usr.bin/indent/lsym_unary_op.c diff -u src/tests/usr.bin/indent/lsym_unary_op.c:1.10 src/tests/usr.bin/indent/lsym_unary_op.c:1.11 --- src/tests/usr.bin/indent/lsym_unary_op.c:1.10 Thu Jun 8 21:18:54 2023 +++ src/tests/usr.bin/indent/lsym_unary_op.c Fri Jun 16 12:55:57 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: lsym_unary_op.c,v 1.10 2023/06/08 21:18:54 rillig Exp $ */ +/* $NetBSD: lsym_unary_op.c,v 1.11 2023/06/16 12:55:57 rillig Exp $ */ /* * Tests for the token lsym_unary_op, which represents a unary operator. @@ -85,17 +85,10 @@ unary_operators(void) */ //indent input { -sbuf_t *sb = *(sbuf_t **)sp; -return (int)(a * (float)b); -a = (2 * b == c); -} -//indent end - -//indent run -di0 -{ -// $ FIXME: Wrong spacing after the cast. - sbuf_t *sb = *(sbuf_t **) sp; + sbuf_t *sb = *(sbuf_t **)sp; return (int)(a * (float)b); a = (2 * b == c); } //indent end + +//indent run-equals-input -di0 Index: src/usr.bin/indent/indent.c diff -u src/usr.bin/indent/indent.c:1.374 src/usr.bin/indent/indent.c:1.375 --- src/usr.bin/indent/indent.c:1.374 Fri Jun 16 12:30:45 2023 +++ src/usr.bin/indent/indent.c Fri Jun 16 12:55:57 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: indent.c,v 1.374 2023/06/16 12:30:45 rillig Exp $ */ +/* $NetBSD: indent.c,v 1.375 2023/06/16 12:55:57 rillig Exp $ */ /*- * SPDX-License-Identifier: BSD-4-Clause @@ -38,7 +38,7 @@ */ #include <sys/cdefs.h> -__RCSID("$NetBSD: indent.c,v 1.374 2023/06/16 12:30:45 rillig Exp $"); +__RCSID("$NetBSD: indent.c,v 1.375 2023/06/16 12:55:57 rillig Exp $"); #include <sys/param.h> #include <err.h> @@ -627,6 +627,8 @@ process_rparen(void) && ps.paren.item[--ps.paren.len].cast == cast_maybe && !ps.in_func_def_params && !(ps.line_has_decl && !ps.in_init); + if (ps.prev_lsym == lsym_unary_op) + ps.prev_paren_was_cast = true; if (ps.prev_paren_was_cast) { ps.next_unary = true; ps.want_blank = opt.space_after_cast;