Module Name: src Committed By: rillig Date: Sat Jun 10 18:46:42 UTC 2023
Modified Files: src/tests/usr.bin/indent: lsym_if.c src/usr.bin/indent: debug.c indent.c Log Message: indent: fix line break between semicolon and brace To generate a diff of this commit: cvs rdiff -u -r1.5 -r1.6 src/tests/usr.bin/indent/lsym_if.c cvs rdiff -u -r1.50 -r1.51 src/usr.bin/indent/debug.c cvs rdiff -u -r1.354 -r1.355 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/lsym_if.c diff -u src/tests/usr.bin/indent/lsym_if.c:1.5 src/tests/usr.bin/indent/lsym_if.c:1.6 --- src/tests/usr.bin/indent/lsym_if.c:1.5 Sat Jun 10 16:43:56 2023 +++ src/tests/usr.bin/indent/lsym_if.c Sat Jun 10 18:46:42 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: lsym_if.c,v 1.5 2023/06/10 16:43:56 rillig Exp $ */ +/* $NetBSD: lsym_if.c,v 1.6 2023/06/10 18:46:42 rillig Exp $ */ /* * Tests for the token lsym_if, which represents the keyword 'if' that starts @@ -38,8 +38,8 @@ function(void) if (0) if (1) if (2) -// $ FIXME: The '{' must be on a separate line, with indentation 8. - stmt(); { - } + stmt(); + { + } } //indent end Index: src/usr.bin/indent/debug.c diff -u src/usr.bin/indent/debug.c:1.50 src/usr.bin/indent/debug.c:1.51 --- src/usr.bin/indent/debug.c:1.50 Sat Jun 10 16:43:55 2023 +++ src/usr.bin/indent/debug.c Sat Jun 10 18:46:42 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: debug.c,v 1.50 2023/06/10 16:43:55 rillig Exp $ */ +/* $NetBSD: debug.c,v 1.51 2023/06/10 18:46:42 rillig Exp $ */ /*- * Copyright (c) 2023 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> -__RCSID("$NetBSD: debug.c,v 1.50 2023/06/10 16:43:55 rillig Exp $"); +__RCSID("$NetBSD: debug.c,v 1.51 2023/06/10 18:46:42 rillig Exp $"); #include <stdarg.h> #include <string.h> @@ -395,6 +395,6 @@ debug_psyms_stack(const char *situation) for (int i = 0; i <= psyms->top; ++i) debug_printf(" %d %s", psyms->ind_level[i], psym_name[psyms->sym[i]]); - debug_blank_line(); + debug_println(""); } #endif Index: src/usr.bin/indent/indent.c diff -u src/usr.bin/indent/indent.c:1.354 src/usr.bin/indent/indent.c:1.355 --- src/usr.bin/indent/indent.c:1.354 Sat Jun 10 16:43:55 2023 +++ src/usr.bin/indent/indent.c Sat Jun 10 18:46:42 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: indent.c,v 1.354 2023/06/10 16:43:55 rillig Exp $ */ +/* $NetBSD: indent.c,v 1.355 2023/06/10 18:46:42 rillig Exp $ */ /*- * SPDX-License-Identifier: BSD-4-Clause @@ -38,7 +38,7 @@ */ #include <sys/cdefs.h> -__RCSID("$NetBSD: indent.c,v 1.354 2023/06/10 16:43:55 rillig Exp $"); +__RCSID("$NetBSD: indent.c,v 1.355 2023/06/10 18:46:42 rillig Exp $"); #include <sys/param.h> #include <err.h> @@ -314,19 +314,16 @@ set_initial_indentation(void) ps.ind_level = ps.ind_level_follow = ind / opt.indent_size; } -static void -maybe_break_line(lexer_symbol lsym) +static bool +should_break_line(lexer_symbol lsym) { - if (!ps.force_nl) - return; if (lsym == lsym_semicolon) - return; - if (lsym == lsym_lbrace && opt.brace_same_line - && ps.prev_lsym != lsym_lbrace) - return; - - output_line(); - ps.force_nl = false; + return false; + if (ps.prev_lsym == lsym_lbrace || ps.prev_lsym == lsym_semicolon) + return true; + if (lsym == lsym_lbrace && opt.brace_same_line) + return false; + return true; } static void @@ -1051,7 +1048,10 @@ indent(void) else if (lsym == lsym_comment) { /* no special processing */ } else { - maybe_break_line(lsym); + if (ps.force_nl && should_break_line(lsym)) { + ps.force_nl = false; + output_line(); + } ps.in_stmt_or_decl = true; if (com.len > 0) move_com_to_code(lsym);