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);