Module Name: src Committed By: rillig Date: Thu Nov 4 17:12:12 UTC 2021
Modified Files: src/tests/usr.bin/indent: token_binary_op.c token_unary_op.c src/usr.bin/indent: indent.c Log Message: indent: fix joining of adjacent unary '+' operators To generate a diff of this commit: cvs rdiff -u -r1.6 -r1.7 src/tests/usr.bin/indent/token_binary_op.c cvs rdiff -u -r1.1 -r1.2 src/tests/usr.bin/indent/token_unary_op.c cvs rdiff -u -r1.205 -r1.206 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/token_binary_op.c diff -u src/tests/usr.bin/indent/token_binary_op.c:1.6 src/tests/usr.bin/indent/token_binary_op.c:1.7 --- src/tests/usr.bin/indent/token_binary_op.c:1.6 Sat Oct 30 22:36:07 2021 +++ src/tests/usr.bin/indent/token_binary_op.c Thu Nov 4 17:12:12 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: token_binary_op.c,v 1.6 2021/10/30 22:36:07 rillig Exp $ */ +/* $NetBSD: token_binary_op.c,v 1.7 2021/11/04 17:12:12 rillig Exp $ */ /* $FreeBSD$ */ /* @@ -214,7 +214,7 @@ peculiarities(void) * * See lexi.c, lexi, "case '+':". */ - if (a++ ++ +++b) + if (a++ ++ ++ +b) return; } #indent end Index: src/tests/usr.bin/indent/token_unary_op.c diff -u src/tests/usr.bin/indent/token_unary_op.c:1.1 src/tests/usr.bin/indent/token_unary_op.c:1.2 --- src/tests/usr.bin/indent/token_unary_op.c:1.1 Mon Oct 18 22:30:34 2021 +++ src/tests/usr.bin/indent/token_unary_op.c Thu Nov 4 17:12:12 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: token_unary_op.c,v 1.1 2021/10/18 22:30:34 rillig Exp $ */ +/* $NetBSD: token_unary_op.c,v 1.2 2021/11/04 17:12:12 rillig Exp $ */ /* $FreeBSD$ */ /* @@ -16,7 +16,5 @@ int same = + + + + + - - - - - 3; int var = +3; int mixed = +-+-+-+-+-+-+-+-+-+-+-+-+-3; int count = ~-~-~-~-~-~-~-~-~-~-~-~-~-3; -/* $ FIXME: There must be spaces between adjacent '+'. */ -/* $ FIXME: There must be spaces between adjacent '-'. */ -int same = +++++-----3; +int same = + + + + +- - - - -3; #indent end Index: src/usr.bin/indent/indent.c diff -u src/usr.bin/indent/indent.c:1.205 src/usr.bin/indent/indent.c:1.206 --- src/usr.bin/indent/indent.c:1.205 Wed Nov 3 21:47:35 2021 +++ src/usr.bin/indent/indent.c Thu Nov 4 17:12:12 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: indent.c,v 1.205 2021/11/03 21:47:35 rillig Exp $ */ +/* $NetBSD: indent.c,v 1.206 2021/11/04 17:12:12 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.205 2021/11/03 21:47:35 rillig Exp $"); +__RCSID("$NetBSD: indent.c,v 1.206 2021/11/04 17:12:12 rillig Exp $"); #elif defined(__FreeBSD__) __FBSDID("$FreeBSD: head/usr.bin/indent/indent.c 340138 2018-11-04 19:24:49Z oshogbo $"); #endif @@ -834,6 +834,16 @@ process_rparen_or_rbracket(bool *spaced_ ps.search_stmt = opt.brace_same_line; } +static bool +want_blank_before_unary_op(void) +{ + if (ps.want_blank) + return true; + if (token.s[0] == '+' || token.s[0] == '-') + return code.e[-1] == token.s[0]; + return false; +} + static void process_unary_op(int decl_ind, bool tabs_to_var) { @@ -842,7 +852,7 @@ process_unary_op(int decl_ind, bool tabs /* pointer declarations */ code_add_decl_indent(decl_ind - (int)buf_len(&token), tabs_to_var); ps.decl_indent_done = true; - } else if (ps.want_blank) + } else if (want_blank_before_unary_op()) *code.e++ = ' '; buf_add_buf(&code, &token);