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 */

Reply via email to