Module Name: src Committed By: rillig Date: Fri Nov 19 18:23:59 UTC 2021
Modified Files: src/usr.bin/indent: indent.h io.c pr_comment.c Log Message: indent: use character input API from pr_comment.c No functional change. To generate a diff of this commit: cvs rdiff -u -r1.94 -r1.95 src/usr.bin/indent/indent.h cvs rdiff -u -r1.122 -r1.123 src/usr.bin/indent/io.c cvs rdiff -u -r1.119 -r1.120 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.94 src/usr.bin/indent/indent.h:1.95 --- src/usr.bin/indent/indent.h:1.94 Fri Nov 19 18:14:18 2021 +++ src/usr.bin/indent/indent.h Fri Nov 19 18:23:59 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: indent.h,v 1.94 2021/11/19 18:14:18 rillig Exp $ */ +/* $NetBSD: indent.h,v 1.95 2021/11/19 18:23:59 rillig Exp $ */ /*- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD @@ -380,6 +380,7 @@ int ind_add(int, const char *, const cha 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); Index: src/usr.bin/indent/io.c diff -u src/usr.bin/indent/io.c:1.122 src/usr.bin/indent/io.c:1.123 --- src/usr.bin/indent/io.c:1.122 Fri Nov 19 18:14:18 2021 +++ src/usr.bin/indent/io.c Fri Nov 19 18:23:59 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: io.c,v 1.122 2021/11/19 18:14:18 rillig Exp $ */ +/* $NetBSD: io.c,v 1.123 2021/11/19 18:23:59 rillig Exp $ */ /*- * SPDX-License-Identifier: BSD-4-Clause @@ -43,7 +43,7 @@ static char sccsid[] = "@(#)io.c 8.1 (Be #include <sys/cdefs.h> #if defined(__NetBSD__) -__RCSID("$NetBSD: io.c,v 1.122 2021/11/19 18:14:18 rillig Exp $"); +__RCSID("$NetBSD: io.c,v 1.123 2021/11/19 18:23:59 rillig Exp $"); #elif defined(__FreeBSD__) __FBSDID("$FreeBSD: head/usr.bin/indent/io.c 334927 2018-06-10 16:44:18Z pstef $"); #endif @@ -79,6 +79,21 @@ inp_p(void) } const char * +inp_line_start(void) +{ + /* + * The comment we're about to read usually comes from inp.buf, unless + * it has been copied into save_com. + * + * XXX: ordered comparison between pointers from different objects + * invokes undefined behavior (C99 6.5.8). + */ + return inbuf.inp.s >= inbuf.save_com_buf && + inbuf.inp.s < inbuf.save_com_buf + array_length(inbuf.save_com_buf) + ? inbuf.save_com_buf : inbuf.inp.buf; +} + +const char * inp_line_end(void) { return inbuf.inp.e; Index: src/usr.bin/indent/pr_comment.c diff -u src/usr.bin/indent/pr_comment.c:1.119 src/usr.bin/indent/pr_comment.c:1.120 --- src/usr.bin/indent/pr_comment.c:1.119 Fri Nov 19 17:11:46 2021 +++ src/usr.bin/indent/pr_comment.c Fri Nov 19 18:23:59 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: pr_comment.c,v 1.119 2021/11/19 17:11:46 rillig Exp $ */ +/* $NetBSD: pr_comment.c,v 1.120 2021/11/19 18:23:59 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.119 2021/11/19 17:11:46 rillig Exp $"); +__RCSID("$NetBSD: pr_comment.c,v 1.120 2021/11/19 18:23:59 rillig Exp $"); #elif defined(__FreeBSD__) __FBSDID("$FreeBSD: head/usr.bin/indent/pr_comment.c 334927 2018-06-10 16:44:18Z pstef $"); #endif @@ -86,13 +86,13 @@ com_terminate(void) static bool fits_in_one_line(int max_line_length) { - for (const char *p = inbuf.inp.s; *p != '\n'; p++) { + for (const char *p = inp_p(); *p != '\n'; p++) { assert(*p != '\0'); - assert(inbuf.inp.e - p >= 2); + assert(inp_line_end() - p >= 2); if (!(p[0] == '*' && p[1] == '/')) continue; - int len = ind_add(ps.com_ind + 3, inbuf.inp.s, p); + int len = ind_add(ps.com_ind + 3, inp_p(), p); len += ch_isblank(p[-1]) ? 2 : 3; return len <= max_line_length; } @@ -152,22 +152,13 @@ analyze_comment(bool *p_may_wrap, bool * /* * Find out how much indentation there was originally, because that * much will have to be ignored by dump_line(). - * - * The comment we're about to read usually comes from inp.buf, unless - * it has been copied into save_com. - * - * XXX: ordered comparison between pointers from different objects - * invokes undefined behavior (C99 6.5.8). */ - const char *start = inbuf.inp.s >= inbuf.save_com_buf && - inbuf.inp.s < - inbuf.save_com_buf + array_length(inbuf.save_com_buf) - ? inbuf.save_com_buf : inbuf.inp.buf; - ps.n_comment_delta = -ind_add(0, start, inbuf.inp.s - 2); + const char *start = inp_line_start(); + ps.n_comment_delta = -ind_add(0, start, inp_p() - 2); } else { ps.n_comment_delta = 0; while (ch_isblank(inp_peek())) - inbuf.inp.s++; + inp_skip(); } ps.comment_delta = 0; @@ -213,9 +204,9 @@ copy_comment_wrap(int adj_max_line_lengt dump_line_ff(); last_blank = -1; com_add_delim(); - inbuf.inp.s++; + inp_skip(); while (ch_isblank(inp_peek())) - inbuf.inp.s++; + inp_skip(); break; case '\n':