Module Name: src Committed By: rillig Date: Tue Oct 5 05:39:14 UTC 2021
Modified Files: src/usr.bin/indent: indent.c indent.h lexi.c pr_comment.c Log Message: indent: merge duplicate code for reading from input buffer No functional change. To generate a diff of this commit: cvs rdiff -u -r1.98 -r1.99 src/usr.bin/indent/indent.c cvs rdiff -u -r1.27 -r1.28 src/usr.bin/indent/indent.h cvs rdiff -u -r1.65 -r1.66 src/usr.bin/indent/lexi.c cvs rdiff -u -r1.47 -r1.48 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.c diff -u src/usr.bin/indent/indent.c:1.98 src/usr.bin/indent/indent.c:1.99 --- src/usr.bin/indent/indent.c:1.98 Sun Oct 3 18:44:51 2021 +++ src/usr.bin/indent/indent.c Tue Oct 5 05:39:14 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: indent.c,v 1.98 2021/10/03 18:44:51 rillig Exp $ */ +/* $NetBSD: indent.c,v 1.99 2021/10/05 05:39:14 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.98 2021/10/03 18:44:51 rillig Exp $"); +__RCSID("$NetBSD: indent.c,v 1.99 2021/10/05 05:39:14 rillig Exp $"); #elif defined(__FreeBSD__) __FBSDID("$FreeBSD: head/usr.bin/indent/indent.c 340138 2018-11-04 19:24:49Z oshogbo $"); #endif @@ -199,9 +199,7 @@ search_brace_comment(bool *inout_comment *sc_end++ = '/'; /* copy in start of comment */ *sc_end++ = '*'; for (;;) { /* loop until the end of the comment */ - *sc_end = *buf_ptr++; - if (buf_ptr >= buf_end) - fill_buffer(); + *sc_end = inbuf_next(); if (*sc_end++ == '*' && *buf_ptr == '/') break; /* we are at end of comment */ if (sc_end >= &save_com[sc_size]) { /* check for temp buffer @@ -212,8 +210,7 @@ search_brace_comment(bool *inout_comment } } *sc_end++ = '/'; /* add ending slash */ - if (++buf_ptr >= buf_end) /* get past / in buffer */ - fill_buffer(); + inbuf_skip(); /* get past / in buffer */ } static bool @@ -232,8 +229,7 @@ search_brace_lbrace(void) * resulting from the "{" before, it must be scanned now and ignored. */ while (isspace((unsigned char)*buf_ptr)) { - if (++buf_ptr >= buf_end) - fill_buffer(); + inbuf_skip(); if (*buf_ptr == '\n') break; } @@ -334,9 +330,8 @@ search_brace_lookahead(token_type *inout errx(1, "input too long"); } } - if (buf_ptr >= buf_end) { + if (buf_ptr >= buf_end) fill_buffer(); - } } struct parser_state transient_state; @@ -1109,23 +1104,16 @@ process_preprocessing(void) char quote = '\0'; int com_end = 0; - while (*buf_ptr == ' ' || *buf_ptr == '\t') { - buf_ptr++; - if (buf_ptr >= buf_end) - fill_buffer(); - } + while (*buf_ptr == ' ' || *buf_ptr == '\t') + inbuf_skip(); + while (*buf_ptr != '\n' || (in_comment && !had_eof)) { check_size_label(2); - *lab.e = *buf_ptr++; - if (buf_ptr >= buf_end) - fill_buffer(); + *lab.e = inbuf_next(); switch (*lab.e++) { case '\\': - if (!in_comment) { - *lab.e++ = *buf_ptr++; - if (buf_ptr >= buf_end) - fill_buffer(); - } + if (!in_comment) + *lab.e++ = inbuf_next(); break; case '/': if (*buf_ptr == '*' && !in_comment && quote == '\0') { Index: src/usr.bin/indent/indent.h diff -u src/usr.bin/indent/indent.h:1.27 src/usr.bin/indent/indent.h:1.28 --- src/usr.bin/indent/indent.h:1.27 Sun Oct 3 18:44:51 2021 +++ src/usr.bin/indent/indent.h Tue Oct 5 05:39:14 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: indent.h,v 1.27 2021/10/03 18:44:51 rillig Exp $ */ +/* $NetBSD: indent.h,v 1.28 2021/10/05 05:39:14 rillig Exp $ */ /*- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD @@ -57,6 +57,8 @@ const char * token_type_name(token_type) #define debug_println(fmt, ...) do { } while (false) #define debug_vis_range(prefix, s, e, suffix) do { } while (false) #endif +void inbuf_skip(void); +char inbuf_next(void); token_type lexi(struct parser_state *); void diag(int, const char *, ...) __printflike(2, 3); void dump_line(void); Index: src/usr.bin/indent/lexi.c diff -u src/usr.bin/indent/lexi.c:1.65 src/usr.bin/indent/lexi.c:1.66 --- src/usr.bin/indent/lexi.c:1.65 Sun Oct 3 20:35:59 2021 +++ src/usr.bin/indent/lexi.c Tue Oct 5 05:39:14 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: lexi.c,v 1.65 2021/10/03 20:35:59 rillig Exp $ */ +/* $NetBSD: lexi.c,v 1.66 2021/10/05 05:39:14 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.65 2021/10/03 20:35:59 rillig Exp $"); +__RCSID("$NetBSD: lexi.c,v 1.66 2021/10/05 05:39:14 rillig Exp $"); #elif defined(__FreeBSD__) __FBSDID("$FreeBSD: head/usr.bin/indent/lexi.c 337862 2018-08-15 18:19:45Z pstef $"); #endif @@ -180,7 +180,7 @@ inbuf_peek(void) return *buf_ptr; } -static void +void inbuf_skip(void) { buf_ptr++; @@ -188,7 +188,7 @@ inbuf_skip(void) fill_buffer(); } -static char +char inbuf_next(void) { char ch = inbuf_peek(); @@ -392,7 +392,7 @@ lexi(struct parser_state *state) return lexi_end(string_prefix); while (*buf_ptr == ' ' || *buf_ptr == '\t') /* get rid of blanks */ - inbuf_next(); + inbuf_skip(); state->keyword = kw_0; if (state->last_token == keyword_struct_union_enum && Index: src/usr.bin/indent/pr_comment.c diff -u src/usr.bin/indent/pr_comment.c:1.47 src/usr.bin/indent/pr_comment.c:1.48 --- src/usr.bin/indent/pr_comment.c:1.47 Sun Sep 26 19:37:11 2021 +++ src/usr.bin/indent/pr_comment.c Tue Oct 5 05:39:14 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: pr_comment.c,v 1.47 2021/09/26 19:37:11 rillig Exp $ */ +/* $NetBSD: pr_comment.c,v 1.48 2021/10/05 05:39:14 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.47 2021/09/26 19:37:11 rillig Exp $"); +__RCSID("$NetBSD: pr_comment.c,v 1.48 2021/10/05 05:39:14 rillig Exp $"); #elif defined(__FreeBSD__) __FBSDID("$FreeBSD: head/usr.bin/indent/pr_comment.c 334927 2018-06-10 16:44:18Z pstef $"); #endif @@ -219,8 +219,7 @@ process_comment(void) while (*++buf_ptr == ' ' || *buf_ptr == '\t') ; } else { - if (++buf_ptr >= buf_end) - fill_buffer(); + inbuf_skip(); *com.e++ = 014; } break; @@ -260,28 +259,24 @@ process_comment(void) int nstar = 1; do { /* flush any blanks and/or tabs at start of * next line */ - if (++buf_ptr >= buf_end) - fill_buffer(); + inbuf_skip(); if (*buf_ptr == '*' && --nstar >= 0) { - if (++buf_ptr >= buf_end) - fill_buffer(); + inbuf_skip(); if (*buf_ptr == '/') goto end_of_comment; } } while (*buf_ptr == ' ' || *buf_ptr == '\t'); - } else if (++buf_ptr >= buf_end) - fill_buffer(); + } else + inbuf_skip(); break; /* end of case for newline */ case '*': /* must check for possibility of being at end * of comment */ - if (++buf_ptr >= buf_end) /* get to next char after * */ - fill_buffer(); + inbuf_skip(); check_size_comment(4); if (*buf_ptr == '/') { /* it is the end!!! */ end_of_comment: - if (++buf_ptr >= buf_end) - fill_buffer(); + inbuf_skip(); if (break_delim) { if (com.e > com.s + 3) dump_line(); @@ -305,9 +300,7 @@ process_comment(void) int now_len = indentation_after_range(ps.com_col - 1, com.s, com.e); do { check_size_comment(1); - *com.e = *buf_ptr++; - if (buf_ptr >= buf_end) - fill_buffer(); + *com.e = inbuf_next(); if (*com.e == ' ' || *com.e == '\t') last_blank = com.e - com.buf; /* remember we saw a * blank */