Module Name:    src
Committed By:   rillig
Date:           Tue Jun  6 05:11:11 UTC 2023

Modified Files:
        src/usr.bin/indent: debug.c io.c lexi.c parse.c

Log Message:
indent: sort functions in call order

No functional change.


To generate a diff of this commit:
cvs rdiff -u -r1.36 -r1.37 src/usr.bin/indent/debug.c
cvs rdiff -u -r1.199 -r1.200 src/usr.bin/indent/io.c
cvs rdiff -u -r1.214 -r1.215 src/usr.bin/indent/lexi.c
cvs rdiff -u -r1.67 -r1.68 src/usr.bin/indent/parse.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.36 src/usr.bin/indent/debug.c:1.37
--- src/usr.bin/indent/debug.c:1.36	Mon Jun  5 14:40:13 2023
+++ src/usr.bin/indent/debug.c	Tue Jun  6 05:11:11 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: debug.c,v 1.36 2023/06/05 14:40:13 rillig Exp $	*/
+/*	$NetBSD: debug.c,v 1.37 2023/06/06 05:11:11 rillig Exp $	*/
 
 /*-
  * Copyright (c) 2023 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__RCSID("$NetBSD: debug.c,v 1.36 2023/06/05 14:40:13 rillig Exp $");
+__RCSID("$NetBSD: debug.c,v 1.37 2023/06/06 05:11:11 rillig Exp $");
 
 #include <stdarg.h>
 
@@ -144,6 +144,7 @@ static const char *const decl_ptr_name[]
 
 static unsigned wrote_newlines = 1;
 
+
 void
 debug_printf(const char *fmt, ...)
 {

Index: src/usr.bin/indent/io.c
diff -u src/usr.bin/indent/io.c:1.199 src/usr.bin/indent/io.c:1.200
--- src/usr.bin/indent/io.c:1.199	Tue Jun  6 04:37:26 2023
+++ src/usr.bin/indent/io.c	Tue Jun  6 05:11:11 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: io.c,v 1.199 2023/06/06 04:37:26 rillig Exp $	*/
+/*	$NetBSD: io.c,v 1.200 2023/06/06 05:11:11 rillig Exp $	*/
 
 /*-
  * SPDX-License-Identifier: BSD-4-Clause
@@ -38,7 +38,7 @@
  */
 
 #include <sys/cdefs.h>
-__RCSID("$NetBSD: io.c,v 1.199 2023/06/06 04:37:26 rillig Exp $");
+__RCSID("$NetBSD: io.c,v 1.200 2023/06/06 05:11:11 rillig Exp $");
 
 #include <stdio.h>
 
@@ -55,22 +55,6 @@ static unsigned wrote_newlines = 2;	/* 0
 static int paren_indent;
 
 
-void
-inp_skip(void)
-{
-	inp_p++;
-	if ((size_t)(inp_p - inp.s) >= inp.len)
-		inp_read_line();
-}
-
-char
-inp_next(void)
-{
-	char ch = inp_p[0];
-	inp_skip();
-	return ch;
-}
-
 static void
 inp_read_next_line(FILE *f)
 {
@@ -95,6 +79,32 @@ inp_read_next_line(FILE *f)
 	inp_p = inp.s;
 }
 
+void
+inp_read_line(void)
+{
+	if (indent_enabled == indent_on)
+		out.indent_off_text.len = 0;
+	buf_add_chars(&out.indent_off_text, inp.s, inp.len);
+	inp_read_next_line(input);
+}
+
+void
+inp_skip(void)
+{
+	inp_p++;
+	if ((size_t)(inp_p - inp.s) >= inp.len)
+		inp_read_line();
+}
+
+char
+inp_next(void)
+{
+	char ch = inp_p[0];
+	inp_skip();
+	return ch;
+}
+
+
 static void
 output_newline(void)
 {
@@ -176,6 +186,26 @@ is_blank_line_optional(void)
 	return wrote_newlines >= 3;
 }
 
+static int
+compute_case_label_indent(void)
+{
+	int i = ps.tos;
+	while (i > 0 && ps.s_sym[i] != psym_switch_expr)
+		i--;
+	float case_ind = (float)ps.s_ind_level[i] + opt.case_indent;
+	return (int)(case_ind * (float)opt.indent_size);
+}
+
+int
+compute_label_indent(void)
+{
+	if (out.line_kind == lk_case_or_default)
+		return compute_case_label_indent();
+	if (lab.s[0] == '#')
+		return 0;
+	return opt.indent_size * (ps.ind_level - 2);
+}
+
 static void
 output_line_label(void)
 {
@@ -183,6 +213,53 @@ output_line_label(void)
 	output_range(lab.s, lab.len);
 }
 
+static int
+compute_code_indent_lineup(int base_ind)
+{
+	int ind = paren_indent;
+	int overflow = ind_add(ind, code.s, code.len) - opt.max_line_length;
+	if (overflow < 0)
+		return ind;
+
+	if (ind_add(base_ind, code.s, code.len) < opt.max_line_length) {
+		ind -= overflow + 2;
+		if (ind > base_ind)
+			return ind;
+		return base_ind;
+	}
+
+	return ind;
+}
+
+int
+compute_code_indent(void)
+{
+	int base_ind = ps.ind_level * opt.indent_size;
+
+	if (ps.line_start_nparen == 0) {
+		if (ps.tos >= 1 && ps.s_sym[ps.tos - 1] == psym_lbrace_enum)
+			return base_ind;
+		if (ps.in_stmt_cont)
+			return base_ind + opt.continuation_indent;
+		return base_ind;
+	}
+
+	if (opt.lineup_to_parens) {
+		if (opt.lineup_to_parens_always)
+			return paren_indent;
+		return compute_code_indent_lineup(base_ind);
+	}
+
+	if (ps.extra_expr_indent != eei_no)
+		return base_ind + 2 * opt.continuation_indent;
+
+	if (2 * opt.continuation_indent == opt.indent_size)
+		return base_ind + opt.continuation_indent;
+	else
+		return base_ind +
+		    opt.continuation_indent * ps.line_start_nparen;
+}
+
 static void
 output_line_code(void)
 {
@@ -314,79 +391,3 @@ dont_write_line:
 	ps.want_blank = false;
 	out.line_kind = lk_other;
 }
-
-static int
-compute_code_indent_lineup(int base_ind)
-{
-	int ind = paren_indent;
-	int overflow = ind_add(ind, code.s, code.len) - opt.max_line_length;
-	if (overflow < 0)
-		return ind;
-
-	if (ind_add(base_ind, code.s, code.len) < opt.max_line_length) {
-		ind -= overflow + 2;
-		if (ind > base_ind)
-			return ind;
-		return base_ind;
-	}
-
-	return ind;
-}
-
-int
-compute_code_indent(void)
-{
-	int base_ind = ps.ind_level * opt.indent_size;
-
-	if (ps.line_start_nparen == 0) {
-		if (ps.tos >= 1 && ps.s_sym[ps.tos - 1] == psym_lbrace_enum)
-			return base_ind;
-		if (ps.in_stmt_cont)
-			return base_ind + opt.continuation_indent;
-		return base_ind;
-	}
-
-	if (opt.lineup_to_parens) {
-		if (opt.lineup_to_parens_always)
-			return paren_indent;
-		return compute_code_indent_lineup(base_ind);
-	}
-
-	if (ps.extra_expr_indent != eei_no)
-		return base_ind + 2 * opt.continuation_indent;
-
-	if (2 * opt.continuation_indent == opt.indent_size)
-		return base_ind + opt.continuation_indent;
-	else
-		return base_ind +
-		    opt.continuation_indent * ps.line_start_nparen;
-}
-
-static int
-compute_case_label_indent(void)
-{
-	int i = ps.tos;
-	while (i > 0 && ps.s_sym[i] != psym_switch_expr)
-		i--;
-	float case_ind = (float)ps.s_ind_level[i] + opt.case_indent;
-	return (int)(case_ind * (float)opt.indent_size);
-}
-
-int
-compute_label_indent(void)
-{
-	if (out.line_kind == lk_case_or_default)
-		return compute_case_label_indent();
-	if (lab.s[0] == '#')
-		return 0;
-	return opt.indent_size * (ps.ind_level - 2);
-}
-
-void
-inp_read_line(void)
-{
-	if (indent_enabled == indent_on)
-		out.indent_off_text.len = 0;
-	buf_add_chars(&out.indent_off_text, inp.s, inp.len);
-	inp_read_next_line(input);
-}

Index: src/usr.bin/indent/lexi.c
diff -u src/usr.bin/indent/lexi.c:1.214 src/usr.bin/indent/lexi.c:1.215
--- src/usr.bin/indent/lexi.c:1.214	Sun Jun  4 22:57:18 2023
+++ src/usr.bin/indent/lexi.c	Tue Jun  6 05:11:11 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: lexi.c,v 1.214 2023/06/04 22:57:18 rillig Exp $	*/
+/*	$NetBSD: lexi.c,v 1.215 2023/06/06 05:11:11 rillig Exp $	*/
 
 /*-
  * SPDX-License-Identifier: BSD-4-Clause
@@ -38,7 +38,7 @@
  */
 
 #include <sys/cdefs.h>
-__RCSID("$NetBSD: lexi.c,v 1.214 2023/06/04 22:57:18 rillig Exp $");
+__RCSID("$NetBSD: lexi.c,v 1.215 2023/06/06 05:11:11 rillig Exp $");
 
 #include <stdlib.h>
 #include <string.h>
@@ -166,6 +166,7 @@ static const unsigned char lex_number_ro
 	['.'] = 15,
 };
 
+
 static void
 token_add_char(char ch)
 {

Index: src/usr.bin/indent/parse.c
diff -u src/usr.bin/indent/parse.c:1.67 src/usr.bin/indent/parse.c:1.68
--- src/usr.bin/indent/parse.c:1.67	Tue Jun  6 04:37:26 2023
+++ src/usr.bin/indent/parse.c	Tue Jun  6 05:11:11 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: parse.c,v 1.67 2023/06/06 04:37:26 rillig Exp $	*/
+/*	$NetBSD: parse.c,v 1.68 2023/06/06 05:11:11 rillig Exp $	*/
 
 /*-
  * SPDX-License-Identifier: BSD-4-Clause
@@ -38,13 +38,57 @@
  */
 
 #include <sys/cdefs.h>
-__RCSID("$NetBSD: parse.c,v 1.67 2023/06/06 04:37:26 rillig Exp $");
+__RCSID("$NetBSD: parse.c,v 1.68 2023/06/06 05:11:11 rillig Exp $");
 
 #include <err.h>
 
 #include "indent.h"
 
-static void reduce(void);
+/*
+ * Try to combine the statement on the top of the parse stack with the symbol
+ * directly below it, replacing these two symbols with a single symbol.
+ */
+static bool
+reduce_stmt(void)
+{
+	switch (ps.s_sym[ps.tos - 1]) {
+
+	case psym_stmt:
+	case psym_stmt_list:
+		ps.s_sym[--ps.tos] = psym_stmt_list;
+		return true;
+
+	case psym_do:
+		ps.s_sym[--ps.tos] = psym_do_stmt;
+		ps.ind_level_follow = ps.s_ind_level[ps.tos];
+		return true;
+
+	case psym_if_expr:
+		ps.s_sym[--ps.tos] = psym_if_expr_stmt;
+		int i = ps.tos - 1;
+		while (ps.s_sym[i] != psym_stmt &&
+		    ps.s_sym[i] != psym_stmt_list &&
+		    ps.s_sym[i] != psym_lbrace_block)
+			--i;
+		ps.ind_level_follow = ps.s_ind_level[i];
+		/* For the time being, assume that there is no 'else' on this
+		 * 'if', and set the indentation level accordingly. If an
+		 * 'else' is scanned, it will be fixed up later. */
+		return true;
+
+	case psym_switch_expr:
+	case psym_decl:
+	case psym_if_expr_stmt_else:
+	case psym_for_exprs:
+	case psym_while_expr:
+		ps.s_sym[--ps.tos] = psym_stmt;
+		ps.ind_level_follow = ps.s_ind_level[ps.tos];
+		return true;
+
+	default:
+		return false;
+	}
+}
 
 static int
 decl_level(void)
@@ -70,6 +114,23 @@ ps_push_follow(parser_symbol psym)
 	ps.s_ind_level[ps.tos] = ps.ind_level_follow;
 }
 
+/*
+ * Repeatedly try to reduce the top two symbols on the parse stack to a single
+ * symbol, until no more reductions are possible.
+ */
+static void
+reduce(void)
+{
+again:
+	if (ps.s_sym[ps.tos] == psym_stmt && reduce_stmt())
+		goto again;
+	if (ps.s_sym[ps.tos] == psym_while_expr &&
+	    ps.s_sym[ps.tos - 1] == psym_do_stmt) {
+		ps.tos -= 2;
+		goto again;
+	}
+}
+
 static bool
 is_lbrace(parser_symbol psym)
 {
@@ -203,66 +264,3 @@ parse(parser_symbol psym)
 	reduce();		/* see if any reduction can be done */
 	debug_parse_stack("after reduction");
 }
-
-/*
- * Try to combine the statement on the top of the parse stack with the symbol
- * directly below it, replacing these two symbols with a single symbol.
- */
-static bool
-reduce_stmt(void)
-{
-	switch (ps.s_sym[ps.tos - 1]) {
-
-	case psym_stmt:
-	case psym_stmt_list:
-		ps.s_sym[--ps.tos] = psym_stmt_list;
-		return true;
-
-	case psym_do:
-		ps.s_sym[--ps.tos] = psym_do_stmt;
-		ps.ind_level_follow = ps.s_ind_level[ps.tos];
-		return true;
-
-	case psym_if_expr:
-		ps.s_sym[--ps.tos] = psym_if_expr_stmt;
-		int i = ps.tos - 1;
-		while (ps.s_sym[i] != psym_stmt &&
-		    ps.s_sym[i] != psym_stmt_list &&
-		    ps.s_sym[i] != psym_lbrace_block)
-			--i;
-		ps.ind_level_follow = ps.s_ind_level[i];
-		/* For the time being, assume that there is no 'else' on this
-		 * 'if', and set the indentation level accordingly. If an
-		 * 'else' is scanned, it will be fixed up later. */
-		return true;
-
-	case psym_switch_expr:
-	case psym_decl:
-	case psym_if_expr_stmt_else:
-	case psym_for_exprs:
-	case psym_while_expr:
-		ps.s_sym[--ps.tos] = psym_stmt;
-		ps.ind_level_follow = ps.s_ind_level[ps.tos];
-		return true;
-
-	default:
-		return false;
-	}
-}
-
-/*
- * Repeatedly try to reduce the top two symbols on the parse stack to a single
- * symbol, until no more reductions are possible.
- */
-static void
-reduce(void)
-{
-again:
-	if (ps.s_sym[ps.tos] == psym_stmt && reduce_stmt())
-		goto again;
-	if (ps.s_sym[ps.tos] == psym_while_expr &&
-	    ps.s_sym[ps.tos - 1] == psym_do_stmt) {
-		ps.tos -= 2;
-		goto again;
-	}
-}

Reply via email to