Module Name: src Committed By: rillig Date: Sun May 14 14:14:07 UTC 2023
Modified Files: src/usr.bin/indent: indent.h io.c lexi.c pr_comment.c Log Message: indent: reduce code for scanning tokens The input line is guaranteed to end with '\n', so there's no need to carry another pointer around. No functional change. To generate a diff of this commit: cvs rdiff -u -r1.130 -r1.131 src/usr.bin/indent/indent.h cvs rdiff -u -r1.163 -r1.164 src/usr.bin/indent/io.c cvs rdiff -u -r1.182 -r1.183 src/usr.bin/indent/lexi.c cvs rdiff -u -r1.133 -r1.134 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/indent.h diff -u src/usr.bin/indent/indent.h:1.130 src/usr.bin/indent/indent.h:1.131 --- src/usr.bin/indent/indent.h:1.130 Sun May 14 12:12:02 2023 +++ src/usr.bin/indent/indent.h Sun May 14 14:14:07 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: indent.h,v 1.130 2023/05/14 12:12:02 rillig Exp $ */ +/* $NetBSD: indent.h,v 1.131 2023/05/14 14:14:07 rillig Exp $ */ /*- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD @@ -391,7 +391,6 @@ void inp_init(void); const char *inp_p(void); const char *inp_line_start(void); -const char *inp_line_end(void); char inp_peek(void); char inp_lookahead(size_t); void inp_skip(void); Index: src/usr.bin/indent/io.c diff -u src/usr.bin/indent/io.c:1.163 src/usr.bin/indent/io.c:1.164 --- src/usr.bin/indent/io.c:1.163 Sun May 14 12:12:02 2023 +++ src/usr.bin/indent/io.c Sun May 14 14:14:07 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: io.c,v 1.163 2023/05/14 12:12:02 rillig Exp $ */ +/* $NetBSD: io.c,v 1.164 2023/05/14 14:14:07 rillig Exp $ */ /*- * SPDX-License-Identifier: BSD-4-Clause @@ -38,7 +38,7 @@ */ #include <sys/cdefs.h> -__RCSID("$NetBSD: io.c,v 1.163 2023/05/14 12:12:02 rillig Exp $"); +__RCSID("$NetBSD: io.c,v 1.164 2023/05/14 14:14:07 rillig Exp $"); #include <assert.h> #include <stdio.h> @@ -77,12 +77,6 @@ inp_line_start(void) return inp.mem; } -const char * -inp_line_end(void) -{ - return inp.e; -} - char inp_peek(void) { Index: src/usr.bin/indent/lexi.c diff -u src/usr.bin/indent/lexi.c:1.182 src/usr.bin/indent/lexi.c:1.183 --- src/usr.bin/indent/lexi.c:1.182 Sun May 14 12:12:02 2023 +++ src/usr.bin/indent/lexi.c Sun May 14 14:14:07 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: lexi.c,v 1.182 2023/05/14 12:12:02 rillig Exp $ */ +/* $NetBSD: lexi.c,v 1.183 2023/05/14 14:14:07 rillig Exp $ */ /*- * SPDX-License-Identifier: BSD-4-Clause @@ -38,7 +38,7 @@ */ #include <sys/cdefs.h> -__RCSID("$NetBSD: lexi.c,v 1.182 2023/05/14 12:12:02 rillig Exp $"); +__RCSID("$NetBSD: lexi.c,v 1.183 2023/05/14 14:14:07 rillig Exp $"); #include <stdlib.h> #include <string.h> @@ -331,16 +331,16 @@ static bool probably_looking_at_definition(void) { int paren_level = 0; - for (const char *p = inp_p(), *e = inp_line_end(); p < e; p++) { + for (const char *p = inp_p(); *p != '\n'; p++) { if (*p == '(') paren_level++; if (*p == ')' && --paren_level == 0) { p++; - while (p < e && (ch_isspace(*p) || is_identifier_part(*p))) + while (*p != '\n' && (ch_isspace(*p) || is_identifier_part(*p))) p++; /* '__dead' or '__unused' */ - if (p == e) /* func(...) */ + if (*p == '\n') /* func(...) */ break; if (*p == ';') /* func(...); */ return false; @@ -472,21 +472,19 @@ lex_asterisk_unary(void) } if (ps.in_decl) { - const char *tp = inp_p(), *e = inp_line_end(); - - while (tp < e) { + for (const char *tp = inp_p(); *tp != '\n';) { if (ch_isspace(*tp)) tp++; else if (is_identifier_start(*tp)) { tp++; - while (tp < e && is_identifier_part(*tp)) + while (is_identifier_part(*tp)) tp++; - } else + } else { + if (*tp == '(') + ps.is_function_definition = true; break; + } } - - if (tp < e && *tp == '(') - ps.is_function_definition = true; } } Index: src/usr.bin/indent/pr_comment.c diff -u src/usr.bin/indent/pr_comment.c:1.133 src/usr.bin/indent/pr_comment.c:1.134 --- src/usr.bin/indent/pr_comment.c:1.133 Sun May 14 12:12:02 2023 +++ src/usr.bin/indent/pr_comment.c Sun May 14 14:14:07 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: pr_comment.c,v 1.133 2023/05/14 12:12:02 rillig Exp $ */ +/* $NetBSD: pr_comment.c,v 1.134 2023/05/14 14:14:07 rillig Exp $ */ /*- * SPDX-License-Identifier: BSD-4-Clause @@ -38,10 +38,8 @@ */ #include <sys/cdefs.h> -__RCSID("$NetBSD: pr_comment.c,v 1.133 2023/05/14 12:12:02 rillig Exp $"); +__RCSID("$NetBSD: pr_comment.c,v 1.134 2023/05/14 14:14:07 rillig Exp $"); -#include <assert.h> -#include <stdio.h> #include <string.h> #include "indent.h" @@ -74,15 +72,12 @@ com_terminate(void) static bool fits_in_one_line(int com_ind, int max_line_length) { - for (const char *p = inp_p(); *p != '\n'; p++) { - assert(*p != '\0'); - assert(inp_line_end() - p >= 2); - if (!(p[0] == '*' && p[1] == '/')) - continue; - - int len = ind_add(com_ind + 3, inp_p(), p); - len += ch_isblank(p[-1]) ? 2 : 3; - return len <= max_line_length; + for (const char *start = inp_p(), *p = start; *p != '\n'; p++) { + if (p[0] == '*' && p[1] == '/') { + int len = ind_add(com_ind + 3, start, p); + len += ch_isblank(p[-1]) ? 2 : 3; + return len <= max_line_length; + } } return false; } @@ -147,8 +142,7 @@ analyze_comment(bool *p_may_wrap, bool * * Find out how much indentation there was originally, because that * much will have to be ignored by output_complete_line. */ - const char *start = inp_line_start(); - ps.n_comment_delta = -ind_add(0, start, inp_p() - 2); + ps.n_comment_delta = -ind_add(0, inp_line_start(), inp_p() - 2); } else { ps.n_comment_delta = 0; while (ch_isblank(inp_peek()))