Module Name: src Committed By: rillig Date: Sat May 13 14:30:49 UTC 2023
Modified Files: src/usr.bin/indent: debug.c indent.c indent.h io.c pr_comment.c Log Message: indent: use enum instead of magic numbers for tracking declarations No functional change. To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.3 src/usr.bin/indent/debug.c cvs rdiff -u -r1.259 -r1.260 src/usr.bin/indent/indent.c cvs rdiff -u -r1.126 -r1.127 src/usr.bin/indent/indent.h cvs rdiff -u -r1.158 -r1.159 src/usr.bin/indent/io.c cvs rdiff -u -r1.131 -r1.132 src/usr.bin/indent/pr_comment.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/debug.c diff -u src/usr.bin/indent/debug.c:1.2 src/usr.bin/indent/debug.c:1.3 --- src/usr.bin/indent/debug.c:1.2 Sat May 13 13:45:24 2023 +++ src/usr.bin/indent/debug.c Sat May 13 14:30:48 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: debug.c,v 1.2 2023/05/13 13:45:24 rillig Exp $ */ +/* $NetBSD: debug.c,v 1.3 2023/05/13 14:30:48 rillig Exp $ */ /*- * Copyright (c) 2023 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> -__RCSID("$NetBSD: debug.c,v 1.2 2023/05/13 13:45:24 rillig Exp $"); +__RCSID("$NetBSD: debug.c,v 1.3 2023/05/13 14:30:48 rillig Exp $"); #include "indent.h" @@ -90,6 +90,12 @@ const char *const psym_name[] = { "while_expr", }; +static const char *declaration_name[] = { + "no", + "begin", + "end", +}; + static const char *in_enum_name[] = { "no", "enum", @@ -217,7 +223,7 @@ debug_parser_state(lexer_symbol lsym) debug_ps_int(decl_level); debug_ps_bool(decl_on_line); debug_ps_bool(in_decl); - debug_ps_int(just_saw_decl); + debug_ps_enum(declaration, declaration_name); debug_ps_bool(in_func_def_params); debug_ps_enum(in_enum, in_enum_name); debug_ps_bool(decl_indent_done); Index: src/usr.bin/indent/indent.c diff -u src/usr.bin/indent/indent.c:1.259 src/usr.bin/indent/indent.c:1.260 --- src/usr.bin/indent/indent.c:1.259 Sat May 13 12:31:02 2023 +++ src/usr.bin/indent/indent.c Sat May 13 14:30:48 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: indent.c,v 1.259 2023/05/13 12:31:02 rillig Exp $ */ +/* $NetBSD: indent.c,v 1.260 2023/05/13 14:30:48 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.259 2023/05/13 12:31:02 rillig Exp $"); +__RCSID("$NetBSD: indent.c,v 1.260 2023/05/13 14:30:48 rillig Exp $"); #elif defined(__FreeBSD__) __FBSDID("$FreeBSD: head/usr.bin/indent/indent.c 340138 2018-11-04 19:24:49Z oshogbo $"); #endif @@ -630,7 +630,7 @@ process_semicolon(void) ps.in_func_def_params = false; ps.block_init = false; ps.block_init_level = 0; - ps.just_saw_decl--; + ps.declaration = ps.declaration == decl_begin ? decl_end : decl_no; if (ps.in_decl && code.s == code.e && !ps.block_init && !ps.decl_indent_done && ps.line_start_nparen == 0) { @@ -725,7 +725,7 @@ process_lbrace(void) *code.e++ = ' '; ps.want_blank = false; *code.e++ = '{'; - ps.just_saw_decl = 0; + ps.declaration = decl_no; } static void @@ -737,7 +737,7 @@ process_rbrace(void) ps.spaced_expr_psym = psym_0; } - ps.just_saw_decl = 0; + ps.declaration = decl_no; ps.block_init_level--; if (code.s != code.e && !ps.block_init) { /* '}' must be first on line */ @@ -754,7 +754,7 @@ process_rbrace(void) if (ps.decl_level > 0) { /* multi-level structure declaration */ ps.decl_ind = ps.di_stack[--ps.decl_level]; if (ps.decl_level == 0 && !ps.in_func_def_params) { - ps.just_saw_decl = 2; + ps.declaration = decl_begin; ps.decl_ind = ps.ind_level == 0 ? opt.decl_indent : opt.local_decl_indent; } @@ -817,7 +817,7 @@ process_type(void) ps.init_or_struct = /* maybe */ true; ps.in_decl = ps.decl_on_line = ps.prev_token != lsym_typedef; if (ps.decl_level <= 0) - ps.just_saw_decl = 2; + ps.declaration = decl_begin; int len = (int)buf_len(&token) + 1; int ind = ps.ind_level == 0 || ps.decl_level > 0 Index: src/usr.bin/indent/indent.h diff -u src/usr.bin/indent/indent.h:1.126 src/usr.bin/indent/indent.h:1.127 --- src/usr.bin/indent/indent.h:1.126 Sat May 13 13:48:54 2023 +++ src/usr.bin/indent/indent.h Sat May 13 14:30:48 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: indent.h,v 1.126 2023/05/13 13:48:54 rillig Exp $ */ +/* $NetBSD: indent.h,v 1.127 2023/05/13 14:30:48 rillig Exp $ */ /*- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD @@ -306,7 +306,11 @@ extern struct parser_state { bool in_decl; /* whether we are in a declaration. The * processing of braces is then slightly * different */ - int just_saw_decl; + enum declaration { + decl_no, /* no declaration anywhere nearby */ + decl_begin, /* collecting tokens of a declaration */ + decl_end, /* finished a declaration */ + } declaration; bool in_func_def_params; enum { in_enum_no, /* outside any 'enum { ... }' */ Index: src/usr.bin/indent/io.c diff -u src/usr.bin/indent/io.c:1.158 src/usr.bin/indent/io.c:1.159 --- src/usr.bin/indent/io.c:1.158 Sat May 13 13:48:54 2023 +++ src/usr.bin/indent/io.c Sat May 13 14:30:48 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: io.c,v 1.158 2023/05/13 13:48:54 rillig Exp $ */ +/* $NetBSD: io.c,v 1.159 2023/05/13 14:30:48 rillig Exp $ */ /*- * SPDX-License-Identifier: BSD-4-Clause @@ -43,7 +43,7 @@ static char sccsid[] = "@(#)io.c 8.1 (Be #include <sys/cdefs.h> #if defined(__NetBSD__) -__RCSID("$NetBSD: io.c,v 1.158 2023/05/13 13:48:54 rillig Exp $"); +__RCSID("$NetBSD: io.c,v 1.159 2023/05/13 14:30:48 rillig Exp $"); #elif defined(__FreeBSD__) __FBSDID("$FreeBSD: head/usr.bin/indent/io.c 334927 2018-06-10 16:44:18Z pstef $"); #endif @@ -302,8 +302,8 @@ output_complete_line(char line_terminato output_char(line_terminator); - if (ps.just_saw_decl == 1 && opt.blank_line_after_decl) - ps.just_saw_decl = 0; + if (ps.declaration == decl_end && opt.blank_line_after_decl) + ps.declaration = decl_no; } ps.decl_on_line = ps.in_decl; /* for proper comment indentation */ Index: src/usr.bin/indent/pr_comment.c diff -u src/usr.bin/indent/pr_comment.c:1.131 src/usr.bin/indent/pr_comment.c:1.132 --- src/usr.bin/indent/pr_comment.c:1.131 Sat May 13 12:31:02 2023 +++ src/usr.bin/indent/pr_comment.c Sat May 13 14:30:48 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: pr_comment.c,v 1.131 2023/05/13 12:31:02 rillig Exp $ */ +/* $NetBSD: pr_comment.c,v 1.132 2023/05/13 14:30:48 rillig Exp $ */ /*- * SPDX-License-Identifier: BSD-4-Clause @@ -43,7 +43,7 @@ static char sccsid[] = "@(#)pr_comment.c #include <sys/cdefs.h> #if defined(__NetBSD__) -__RCSID("$NetBSD: pr_comment.c,v 1.131 2023/05/13 12:31:02 rillig Exp $"); +__RCSID("$NetBSD: pr_comment.c,v 1.132 2023/05/13 14:30:48 rillig Exp $"); #elif defined(__FreeBSD__) __FBSDID("$FreeBSD: head/usr.bin/indent/pr_comment.c 334927 2018-06-10 16:44:18Z pstef $"); #endif @@ -354,13 +354,13 @@ process_comment(void) int adj_max_line_length; bool may_wrap, break_delim; - ps.just_saw_decl = 0; + ps.declaration = decl_no; - int saved_just_saw_decl = ps.just_saw_decl; + enum declaration saved_just_saw_decl = ps.declaration; analyze_comment(&may_wrap, &break_delim, &adj_max_line_length); if (may_wrap) copy_comment_wrap(adj_max_line_length, break_delim); else copy_comment_nowrap(); - ps.just_saw_decl = saved_just_saw_decl; + ps.declaration = saved_just_saw_decl; }