Module Name:    src
Committed By:   rillig
Date:           Sun Feb 13 12:09:19 UTC 2022

Modified Files:
        src/usr.bin/indent: indent.c indent.h lexi.c

Log Message:
indent: change parser_state.cast_mask to 0-based indexing

Having 1-based indexing was completely unexpected, and it didn't match
the 0-based indexing of parser_state.paren_indents.

No functional change.


To generate a diff of this commit:
cvs rdiff -u -r1.239 -r1.240 src/usr.bin/indent/indent.c
cvs rdiff -u -r1.108 -r1.109 src/usr.bin/indent/indent.h
cvs rdiff -u -r1.169 -r1.170 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.239 src/usr.bin/indent/indent.c:1.240
--- src/usr.bin/indent/indent.c:1.239	Sun Nov 28 14:29:03 2021
+++ src/usr.bin/indent/indent.c	Sun Feb 13 12:09:19 2022
@@ -1,4 +1,4 @@
-/*	$NetBSD: indent.c,v 1.239 2021/11/28 14:29:03 rillig Exp $	*/
+/*	$NetBSD: indent.c,v 1.240 2022/02/13 12:09:19 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.239 2021/11/28 14:29:03 rillig Exp $");
+__RCSID("$NetBSD: indent.c,v 1.240 2022/02/13 12:09:19 rillig Exp $");
 #elif defined(__FreeBSD__)
 __FBSDID("$FreeBSD: head/usr.bin/indent/indent.c 340138 2018-11-04 19:24:49Z oshogbo $");
 #endif
@@ -721,19 +721,19 @@ process_lparen_or_lbracket(int decl_ind,
 
     /* parenthesized type following sizeof or offsetof is not a cast */
     if (ps.prev_token == lsym_offsetof || ps.prev_token == lsym_sizeof)
-	ps.not_cast_mask |= 1 << ps.p_l_follow;
+	ps.not_cast_mask0 |= 1 << (ps.p_l_follow - 1);
 }
 
 static void
 process_rparen_or_rbracket(bool *spaced_expr, bool *force_nl, stmt_head hd)
 {
-    if ((ps.cast_mask & (1 << ps.p_l_follow) & ~ps.not_cast_mask) != 0) {
+    if ((ps.cast_mask0 & (1 << (ps.p_l_follow - 1)) & ~ps.not_cast_mask0) != 0) {
 	ps.next_unary = true;
-	ps.cast_mask &= (1 << ps.p_l_follow) - 1;
+	ps.cast_mask0 &= (1 << (ps.p_l_follow - 1)) - 1;
 	ps.want_blank = opt.space_after_cast;
     } else
 	ps.want_blank = true;
-    ps.not_cast_mask &= (1 << ps.p_l_follow) - 1;
+    ps.not_cast_mask0 &= (1 << (ps.p_l_follow - 1)) - 1;
 
     if (ps.p_l_follow > 0)
 	ps.p_l_follow--;
@@ -855,8 +855,8 @@ process_semicolon(bool *seen_case, int *
     *quest_level = 0;
     if (ps.prev_token == lsym_rparen_or_rbracket)
 	ps.in_func_def_params = false;
-    ps.cast_mask = 0;
-    ps.not_cast_mask = 0;
+    ps.cast_mask0 = 0;
+    ps.not_cast_mask0 = 0;
     ps.block_init = false;
     ps.block_init_level = 0;
     ps.just_saw_decl--;

Index: src/usr.bin/indent/indent.h
diff -u src/usr.bin/indent/indent.h:1.108 src/usr.bin/indent/indent.h:1.109
--- src/usr.bin/indent/indent.h:1.108	Sat Feb 12 19:56:52 2022
+++ src/usr.bin/indent/indent.h	Sun Feb 13 12:09:19 2022
@@ -1,4 +1,4 @@
-/*	$NetBSD: indent.h,v 1.108 2022/02/12 19:56:52 rillig Exp $	*/
+/*	$NetBSD: indent.h,v 1.109 2022/02/13 12:09:19 rillig Exp $	*/
 
 /*-
  * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
@@ -272,9 +272,9 @@ extern struct parser_state {
 				 * level of parentheses or brackets, relative
 				 * to the enclosing statement; if negative,
 				 * reflected at -1 */
-    int cast_mask;		/* indicates which close parentheses
+    int cast_mask0;		/* indicates which close parentheses
 				 * potentially close off casts */
-    int not_cast_mask;		/* indicates which close parentheses
+    int not_cast_mask0;		/* indicates which close parentheses
 				 * definitely close off something else than
 				 * casts */
 

Index: src/usr.bin/indent/lexi.c
diff -u src/usr.bin/indent/lexi.c:1.169 src/usr.bin/indent/lexi.c:1.170
--- src/usr.bin/indent/lexi.c:1.169	Sat Feb 12 19:56:52 2022
+++ src/usr.bin/indent/lexi.c	Sun Feb 13 12:09:19 2022
@@ -1,4 +1,4 @@
-/*	$NetBSD: lexi.c,v 1.169 2022/02/12 19:56:52 rillig Exp $	*/
+/*	$NetBSD: lexi.c,v 1.170 2022/02/13 12:09:19 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.169 2022/02/12 19:56:52 rillig Exp $");
+__RCSID("$NetBSD: lexi.c,v 1.170 2022/02/13 12:09:19 rillig Exp $");
 #elif defined(__FreeBSD__)
 __FBSDID("$FreeBSD: head/usr.bin/indent/lexi.c 337862 2018-08-15 18:19:45Z pstef $");
 #endif
@@ -293,8 +293,8 @@ debug_lexi(lexer_symbol lsym)
 	    debug_printf(" %d", ps.paren_indents[i]);
 	debug_println("");
     }
-    debug_ps_int(cast_mask);
-    debug_ps_int(not_cast_mask);
+    debug_ps_int(cast_mask0);
+    debug_ps_int(not_cast_mask0);
 
     debug_ps_int(comment_delta);
     debug_ps_int(n_comment_delta);
@@ -556,7 +556,7 @@ lexi_alnum(void)
 found_typename:
 	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;
+	    ps.cast_mask0 |= (1 << (ps.p_l_follow - 1)) & ~ps.not_cast_mask0;
 	}
 	if (ps.prev_token != lsym_period && ps.prev_token != lsym_unary_op) {
 	    if (kw != NULL && kw->lsym == lsym_tag) {

Reply via email to