Module Name: src
Committed By: rillig
Date: Fri Oct 29 16:59:35 UTC 2021
Modified Files:
src/usr.bin/indent: indent.c indent.h lexi.c
Log Message:
indent: keep p_l_follow nonnegative, use consistent comparison
No functional change.
To generate a diff of this commit:
cvs rdiff -u -r1.168 -r1.169 src/usr.bin/indent/indent.c
cvs rdiff -u -r1.56 -r1.57 src/usr.bin/indent/indent.h
cvs rdiff -u -r1.108 -r1.109 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/usr.bin/indent/indent.c
diff -u src/usr.bin/indent/indent.c:1.168 src/usr.bin/indent/indent.c:1.169
--- src/usr.bin/indent/indent.c:1.168 Fri Oct 29 16:54:51 2021
+++ src/usr.bin/indent/indent.c Fri Oct 29 16:59:35 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: indent.c,v 1.168 2021/10/29 16:54:51 rillig Exp $ */
+/* $NetBSD: indent.c,v 1.169 2021/10/29 16:59:35 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.168 2021/10/29 16:54:51 rillig Exp $");
+__RCSID("$NetBSD: indent.c,v 1.169 2021/10/29 16:59:35 rillig Exp $");
#elif defined(__FreeBSD__)
__FBSDID("$FreeBSD: head/usr.bin/indent/indent.c 340138 2018-11-04 19:24:49Z oshogbo $");
#endif
@@ -774,10 +774,10 @@ process_rparen_or_rbracket(bool *spaced_
ps.want_blank = true;
ps.not_cast_mask &= (1 << ps.p_l_follow) - 1;
- if (--ps.p_l_follow < 0) {
- ps.p_l_follow = 0;
+ if (ps.p_l_follow > 0)
+ ps.p_l_follow--;
+ else
diag(0, "Extra '%c'", *token.s);
- }
if (code.e == code.s) /* if the paren starts the line */
ps.paren_level = ps.p_l_follow; /* then indent it */
@@ -915,8 +915,7 @@ process_semicolon(bool *seen_case, int *
}
*code.e++ = ';';
ps.want_blank = true;
- ps.in_stmt = ps.p_l_follow > 0; /* we are no longer in the middle of a
- * stmt */
+ ps.in_stmt = ps.p_l_follow > 0;
if (!*spaced_expr) { /* if not if for (;;) */
parse(psym_semicolon); /* let parser know about end of stmt */
@@ -1002,7 +1001,7 @@ process_rbrace(bool *spaced_expr, int *d
parse(psym_semicolon);
}
- if (ps.p_l_follow != 0) { /* check for unclosed if, for, else. */
+ if (ps.p_l_follow > 0) { /* check for unclosed if, for, else. */
diag(1, "Unbalanced parentheses");
ps.p_l_follow = 0;
*spaced_expr = false;
Index: src/usr.bin/indent/indent.h
diff -u src/usr.bin/indent/indent.h:1.56 src/usr.bin/indent/indent.h:1.57
--- src/usr.bin/indent/indent.h:1.56 Fri Oct 29 16:54:51 2021
+++ src/usr.bin/indent/indent.h Fri Oct 29 16:59:35 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: indent.h,v 1.56 2021/10/29 16:54:51 rillig Exp $ */
+/* $NetBSD: indent.h,v 1.57 2021/10/29 16:59:35 rillig Exp $ */
/*-
* SPDX-License-Identifier: BSD-2-Clause-FreeBSD
@@ -319,7 +319,7 @@ extern struct parser_state {
bool next_unary; /* whether the following operator should be
* unary */
int p_l_follow; /* used to remember how to indent the
- * following statement */
+ * remaining lines of the statement */
int paren_level; /* parenthesization level. used to indent
* within statements */
short paren_indents[20]; /* indentation of the operand/argument of each
Index: src/usr.bin/indent/lexi.c
diff -u src/usr.bin/indent/lexi.c:1.108 src/usr.bin/indent/lexi.c:1.109
--- src/usr.bin/indent/lexi.c:1.108 Fri Oct 29 16:54:51 2021
+++ src/usr.bin/indent/lexi.c Fri Oct 29 16:59:35 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: lexi.c,v 1.108 2021/10/29 16:54:51 rillig Exp $ */
+/* $NetBSD: lexi.c,v 1.109 2021/10/29 16:59:35 rillig Exp $ */
/*-
* SPDX-License-Identifier: BSD-4-Clause
@@ -43,7 +43,7 @@ static char sccsid[] = "@(#)lexi.c 8.1 (
#include <sys/cdefs.h>
#if defined(__NetBSD__)
-__RCSID("$NetBSD: lexi.c,v 1.108 2021/10/29 16:54:51 rillig Exp $");
+__RCSID("$NetBSD: lexi.c,v 1.109 2021/10/29 16:59:35 rillig Exp $");
#elif defined(__FreeBSD__)
__FBSDID("$FreeBSD: head/usr.bin/indent/lexi.c 337862 2018-08-15 18:19:45Z pstef $");
#endif
@@ -389,7 +389,7 @@ lex_char_or_string(void)
static bool
probably_typename(void)
{
- if (ps.p_l_follow != 0)
+ if (ps.p_l_follow > 0)
return false;
if (ps.block_init || ps.in_stmt)
return false;
@@ -487,7 +487,7 @@ lexi_alnum(void)
case kw_struct_or_union_or_enum:
case kw_type:
found_typename:
- if (ps.p_l_follow != 0) {
+ if (ps.p_l_follow > 0) {
/* inside parentheses: cast, param list, offsetof or sizeof */
ps.cast_mask |= (1 << ps.p_l_follow) & ~ps.not_cast_mask;
}
@@ -496,7 +496,7 @@ lexi_alnum(void)
break;
if (kw != NULL && kw->kind == kw_struct_or_union_or_enum)
return lsym_tag;
- if (ps.p_l_follow != 0)
+ if (ps.p_l_follow > 0)
break;
return lsym_type;