Module Name: src
Committed By: rillig
Date: Fri Nov 19 15:28:32 UTC 2021
Modified Files:
src/usr.bin/indent: indent.c indent.h io.c lexi.c pr_comment.c
Log Message:
indent: group variables for input handling
No functional change.
To generate a diff of this commit:
cvs rdiff -u -r1.218 -r1.219 src/usr.bin/indent/indent.c
cvs rdiff -u -r1.86 -r1.87 src/usr.bin/indent/indent.h
cvs rdiff -u -r1.116 -r1.117 src/usr.bin/indent/io.c \
src/usr.bin/indent/pr_comment.c
cvs rdiff -u -r1.139 -r1.140 src/usr.bin/indent/lexi.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.218 src/usr.bin/indent/indent.c:1.219
--- src/usr.bin/indent/indent.c:1.218 Sun Nov 7 19:18:56 2021
+++ src/usr.bin/indent/indent.c Fri Nov 19 15:28:32 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: indent.c,v 1.218 2021/11/07 19:18:56 rillig Exp $ */
+/* $NetBSD: indent.c,v 1.219 2021/11/19 15:28:32 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.218 2021/11/07 19:18:56 rillig Exp $");
+__RCSID("$NetBSD: indent.c,v 1.219 2021/11/19 15:28:32 rillig Exp $");
#elif defined(__FreeBSD__)
__FBSDID("$FreeBSD: head/usr.bin/indent/indent.c 340138 2018-11-04 19:24:49Z oshogbo $");
#endif
@@ -88,7 +88,7 @@ struct options opt = {
struct parser_state ps;
-struct buffer inp;
+struct input_buffer inbuf;
struct buffer token;
@@ -96,13 +96,6 @@ struct buffer lab;
struct buffer code;
struct buffer com;
-char sc_buf[sc_size];
-char *save_com;
-static char *sc_end; /* pointer into save_com buffer */
-
-char *saved_inp_s;
-char *saved_inp_e;
-
bool found_err;
int blank_lines_to_output;
bool blank_line_before;
@@ -229,7 +222,7 @@ static void
debug_save_com(const char *prefix)
{
debug_printf("%s: save_com is ", prefix);
- debug_vis_range("\"", save_com, sc_end, "\"\n");
+ debug_vis_range("\"", inbuf.save_com, inbuf.sc_end, "\"\n");
}
#else
#define debug_save_com(prefix) do { } while (false)
@@ -238,7 +231,7 @@ debug_save_com(const char *prefix)
static void
sc_check_size(size_t n)
{
- if ((size_t)(sc_end - sc_buf) + n <= sc_size)
+ if ((size_t)(inbuf.sc_end - inbuf.sc_buf) + n <= sc_size)
return;
diag(1, "Internal buffer overflow - "
@@ -251,7 +244,7 @@ static void
sc_add_char(char ch)
{
sc_check_size(1);
- *sc_end++ = ch;
+ *inbuf.sc_end++ = ch;
}
static void
@@ -259,17 +252,17 @@ sc_add_range(const char *s, const char *
{
size_t len = (size_t)(e - s);
sc_check_size(len);
- memcpy(sc_end, s, len);
- sc_end += len;
+ memcpy(inbuf.sc_end, s, len);
+ inbuf.sc_end += len;
}
static void
search_stmt_newline(bool *force_nl)
{
- if (sc_end == NULL) {
- save_com = sc_buf;
- save_com[0] = save_com[1] = ' ';
- sc_end = &save_com[2];
+ if (inbuf.sc_end == NULL) {
+ inbuf.save_com = inbuf.sc_buf;
+ inbuf.save_com[0] = inbuf.save_com[1] = ' ';
+ inbuf.sc_end = &inbuf.save_com[2];
debug_save_com("search_stmt_newline init");
}
sc_add_char('\n');
@@ -291,7 +284,7 @@ search_stmt_newline(bool *force_nl)
static void
search_stmt_comment(void)
{
- if (sc_end == NULL) {
+ if (inbuf.sc_end == NULL) {
/*
* Copy everything from the start of the line, because
* process_comment() will use that to calculate the original
@@ -303,26 +296,26 @@ search_stmt_comment(void)
* is an additional line break before the ')', memcpy tries to copy
* (size_t)-1 bytes.
*/
- assert((size_t)(inp.s - inp.buf) >= 4);
- size_t line_len = (size_t)(inp.s - inp.buf) - 4;
- assert(line_len < array_length(sc_buf));
- memcpy(sc_buf, inp.buf, line_len);
- save_com = sc_buf + line_len;
- save_com[0] = save_com[1] = ' ';
- sc_end = &save_com[2];
+ assert((size_t)(inbuf.inp.s - inbuf.inp.buf) >= 4);
+ size_t line_len = (size_t)(inbuf.inp.s - inbuf.inp.buf) - 4;
+ assert(line_len < array_length(inbuf.sc_buf));
+ memcpy(inbuf.sc_buf, inbuf.inp.buf, line_len);
+ inbuf.save_com = inbuf.sc_buf + line_len;
+ inbuf.save_com[0] = inbuf.save_com[1] = ' ';
+ inbuf.sc_end = &inbuf.save_com[2];
debug_vis_range("search_stmt_comment: before save_com is \"",
- sc_buf, save_com, "\"\n");
+ inbuf.sc_buf, inbuf.save_com, "\"\n");
debug_vis_range("search_stmt_comment: save_com is \"",
- save_com, sc_end, "\"\n");
+ inbuf.save_com, inbuf.sc_end, "\"\n");
}
sc_add_range(token.s, token.e);
if (token.e[-1] == '/') {
- while (inp.s[0] != '\n')
+ while (inbuf.inp.s[0] != '\n')
sc_add_char(inp_next());
debug_save_com("search_stmt_comment end C99");
} else {
- while (!(sc_end[-2] == '*' && sc_end[-1] == '/'))
+ while (!(inbuf.sc_end[-2] == '*' && inbuf.sc_end[-1] == '/'))
sc_add_char(inp_next());
debug_save_com("search_stmt_comment end block");
}
@@ -335,17 +328,17 @@ search_stmt_lbrace(void)
* Put KNF-style lbraces before the buffered up tokens and jump out of
* this loop in order to avoid copying the token again.
*/
- if (sc_end != NULL && opt.brace_same_line) {
- assert(save_com[0] == ' '); /* see search_stmt_comment */
- save_com[0] = '{';
+ if (inbuf.sc_end != NULL && opt.brace_same_line) {
+ assert(inbuf.save_com[0] == ' '); /* see search_stmt_comment */
+ inbuf.save_com[0] = '{';
/*
* Originally the lbrace may have been alone on its own line, but it
* will be moved into "the else's line", so if there was a newline
* resulting from the "{" before, it must be scanned now and ignored.
*/
- while (isspace((unsigned char)*inp.s)) {
+ while (isspace((unsigned char)*inbuf.inp.s)) {
inp_skip();
- if (*inp.s == '\n')
+ if (*inbuf.inp.s == '\n')
break;
}
debug_save_com(__func__);
@@ -368,21 +361,21 @@ search_stmt_other(lexer_symbol lsym, boo
if (remove_newlines)
*force_nl = false;
- if (sc_end == NULL) { /* ignore buffering if comment wasn't saved
+ if (inbuf.sc_end == NULL) { /* ignore buffering if comment wasn't saved
* up */
ps.search_stmt = false;
return false;
}
debug_save_com(__func__);
- while (sc_end > save_com && ch_isblank(sc_end[-1]))
- sc_end--;
+ while (inbuf.sc_end > inbuf.save_com && ch_isblank(inbuf.sc_end[-1]))
+ inbuf.sc_end--;
if (opt.swallow_optional_blanklines ||
(!comment_buffered && remove_newlines)) {
*force_nl = !remove_newlines;
- while (sc_end > save_com && sc_end[-1] == '\n')
- sc_end--;
+ while (inbuf.sc_end > inbuf.save_com && inbuf.sc_end[-1] == '\n')
+ inbuf.sc_end--;
}
if (*force_nl) { /* if we should insert a nl here, put it into
@@ -409,12 +402,12 @@ switch_buffer(void)
sc_add_char(' '); /* add trailing blank, just in case */
debug_save_com(__func__);
- saved_inp_s = inp.s;
- saved_inp_e = inp.e;
+ inbuf.saved_inp_s = inbuf.inp.s;
+ inbuf.saved_inp_e = inbuf.inp.e;
- inp.s = save_com; /* redirect lexi input to save_com */
- inp.e = sc_end;
- sc_end = NULL;
+ inbuf.inp.s = inbuf.save_com; /* redirect lexi input to save_com */
+ inbuf.inp.e = inbuf.sc_end;
+ inbuf.sc_end = NULL;
debug_println("switched inp.s to save_com");
}
@@ -441,8 +434,8 @@ search_stmt_lookahead(lexer_symbol *lsym
* Work around the latter problem by copying all whitespace characters
* into the buffer so that the later lexi() call will read them.
*/
- if (sc_end != NULL) {
- while (ch_isblank(*inp.s))
+ if (inbuf.sc_end != NULL) {
+ while (ch_isblank(*inbuf.inp.s))
sc_add_char(inp_next());
debug_save_com(__func__);
}
@@ -500,10 +493,10 @@ search_stmt(lexer_symbol *lsym, bool *fo
static void
main_init_globals(void)
{
- inp.buf = xmalloc(10);
- inp.l = inp.buf + 8;
- inp.s = inp.buf;
- inp.e = inp.buf;
+ inbuf.inp.buf = xmalloc(10);
+ inbuf.inp.l = inbuf.inp.buf + 8;
+ inbuf.inp.s = inbuf.inp.buf;
+ inbuf.inp.e = inbuf.inp.buf;
buf_init(&token);
@@ -630,7 +623,7 @@ main_prepare_parsing(void)
inp_read_line();
int ind = 0;
- for (const char *p = inp.s;; p++) {
+ for (const char *p = inbuf.inp.s;; p++) {
if (*p == ' ')
ind++;
else if (*p == '\t')
@@ -1245,10 +1238,10 @@ read_preprocessing_line(void)
state = PLAIN;
int com_start = 0, com_end = 0;
- while (ch_isblank(*inp.s))
+ while (ch_isblank(*inbuf.inp.s))
inp_skip();
- while (*inp.s != '\n' || (state == COMM && !had_eof)) {
+ while (*inbuf.inp.s != '\n' || (state == COMM && !had_eof)) {
buf_reserve(&lab, 2);
*lab.e++ = inp_next();
switch (lab.e[-1]) {
@@ -1257,9 +1250,9 @@ read_preprocessing_line(void)
*lab.e++ = inp_next();
break;
case '/':
- if (*inp.s == '*' && state == PLAIN) {
+ if (*inbuf.inp.s == '*' && state == PLAIN) {
state = COMM;
- *lab.e++ = *inp.s++;
+ *lab.e++ = *inbuf.inp.s++;
com_start = (int)buf_len(&lab) - 2;
}
break;
@@ -1276,9 +1269,9 @@ read_preprocessing_line(void)
state = CHR;
break;
case '*':
- if (*inp.s == '/' && state == COMM) {
+ if (*inbuf.inp.s == '/' && state == COMM) {
state = PLAIN;
- *lab.e++ = *inp.s++;
+ *lab.e++ = *inbuf.inp.s++;
com_end = (int)buf_len(&lab);
}
break;
@@ -1287,12 +1280,12 @@ read_preprocessing_line(void)
while (lab.e > lab.s && ch_isblank(lab.e[-1]))
lab.e--;
- if (lab.e - lab.s == com_end && saved_inp_s == NULL) {
+ if (lab.e - lab.s == com_end && inbuf.saved_inp_s == NULL) {
/* comment on preprocessor line */
- if (sc_end == NULL) { /* if this is the first comment, we must set
+ if (inbuf.sc_end == NULL) { /* if this is the first comment, we must set
* up the buffer */
- save_com = sc_buf;
- sc_end = save_com;
+ inbuf.save_com = inbuf.sc_buf;
+ inbuf.sc_end = inbuf.save_com;
} else {
sc_add_char('\n'); /* add newline between comments */
sc_add_char(' ');
@@ -1302,14 +1295,14 @@ read_preprocessing_line(void)
lab.e = lab.s + com_start;
while (lab.e > lab.s && ch_isblank(lab.e[-1]))
lab.e--;
- saved_inp_s = inp.s; /* save current input buffer */
- saved_inp_e = inp.e;
- inp.s = save_com; /* fix so that subsequent calls to lexi will
+ inbuf.saved_inp_s = inbuf.inp.s; /* save current input buffer */
+ inbuf.saved_inp_e = inbuf.inp.e;
+ inbuf.inp.s = inbuf.save_com; /* fix so that subsequent calls to lexi will
* take tokens out of save_com */
sc_add_char(' '); /* add trailing blank, just in case */
debug_save_com(__func__);
- inp.e = sc_end;
- sc_end = NULL;
+ inbuf.inp.e = inbuf.sc_end;
+ inbuf.sc_end = NULL;
debug_println("switched inp.s to save_com");
}
buf_terminate(&lab);
Index: src/usr.bin/indent/indent.h
diff -u src/usr.bin/indent/indent.h:1.86 src/usr.bin/indent/indent.h:1.87
--- src/usr.bin/indent/indent.h:1.86 Sun Nov 7 18:26:17 2021
+++ src/usr.bin/indent/indent.h Fri Nov 19 15:28:32 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: indent.h,v 1.86 2021/11/07 18:26:17 rillig Exp $ */
+/* $NetBSD: indent.h,v 1.87 2021/11/19 15:28:32 rillig Exp $ */
/*-
* SPDX-License-Identifier: BSD-2-Clause-FreeBSD
@@ -146,12 +146,22 @@ struct buffer {
char *l; /* end of the allocated memory */
};
-extern FILE *input;
-extern FILE *output;
-
-extern struct buffer inp; /* one line of input, ready to be split into
+extern struct input_buffer {
+ struct buffer inp; /* one line of input, ready to be split into
* tokens; occasionally this buffer switches
* to sc_buf */
+ char sc_buf[sc_size]; /* input text is saved here when looking for
+ * the brace after an if, while, etc */
+ char *save_com; /* start of the comment stored in sc_buf */
+ char *sc_end; /* pointer into save_com buffer */
+
+ char *saved_inp_s; /* saved value of inp.s when taking input from
+ * save_com */
+ char *saved_inp_e; /* similarly saved value of inp.e */
+} inbuf;
+
+extern FILE *input;
+extern FILE *output;
extern struct buffer token; /* the current token to be processed, is
* typically copied to the buffer 'code',
@@ -164,15 +174,6 @@ extern struct buffer com; /* the trailin
* while in process_comment, a single line of
* a multi-line comment */
-extern char sc_buf[sc_size]; /* input text is saved here when looking for
- * the brace after an if, while, etc */
-extern char *save_com; /* start of the comment stored in sc_buf */
-
-extern char *saved_inp_s; /* saved value of inp.s when taking input from
- * save_com */
-extern char *saved_inp_e; /* similarly saved value of inp.e */
-
-
extern struct options {
bool blanklines_around_conditional_compilation;
bool blanklines_after_decl_at_top; /* this is vaguely similar to
Index: src/usr.bin/indent/io.c
diff -u src/usr.bin/indent/io.c:1.116 src/usr.bin/indent/io.c:1.117
--- src/usr.bin/indent/io.c:1.116 Sun Nov 7 07:06:00 2021
+++ src/usr.bin/indent/io.c Fri Nov 19 15:28:32 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: io.c,v 1.116 2021/11/07 07:06:00 rillig Exp $ */
+/* $NetBSD: io.c,v 1.117 2021/11/19 15:28:32 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.116 2021/11/07 07:06:00 rillig Exp $");
+__RCSID("$NetBSD: io.c,v 1.117 2021/11/19 15:28:32 rillig Exp $");
#elif defined(__FreeBSD__)
__FBSDID("$FreeBSD: head/usr.bin/indent/io.c 334927 2018-06-10 16:44:18Z pstef $");
#endif
@@ -367,7 +367,7 @@ parse_indent_comment(void)
{
bool on;
- const char *p = inp.buf;
+ const char *p = inbuf.inp.buf;
skip_blank(&p);
if (!skip_string(&p, "/*"))
@@ -412,23 +412,23 @@ inp_read_line(void)
int ch;
FILE *f = input;
- if (saved_inp_s != NULL) { /* there is a partly filled input buffer left */
- inp.s = saved_inp_s; /* do not read anything, just switch buffers */
- inp.e = saved_inp_e;
- saved_inp_s = saved_inp_e = NULL;
+ if (inbuf.saved_inp_s != NULL) { /* there is a partly filled input buffer left */
+ inbuf.inp.s = inbuf.saved_inp_s; /* do not read anything, just switch buffers */
+ inbuf.inp.e = inbuf.saved_inp_e;
+ inbuf.saved_inp_s = inbuf.saved_inp_e = NULL;
debug_println("switched inp.s back to saved_inp_s");
- if (inp.s < inp.e)
+ if (inbuf.inp.s < inbuf.inp.e)
return; /* only return if there is really something in
* this buffer */
}
- for (p = inp.buf;;) {
- if (p >= inp.l) {
- size_t size = (size_t)(inp.l - inp.buf) * 2 + 10;
- size_t offset = (size_t)(p - inp.buf);
- inp.buf = xrealloc(inp.buf, size);
- p = inp.buf + offset;
- inp.l = inp.buf + size - 2;
+ for (p = inbuf.inp.buf;;) {
+ if (p >= inbuf.inp.l) {
+ size_t size = (size_t)(inbuf.inp.l - inbuf.inp.buf) * 2 + 10;
+ size_t offset = (size_t)(p - inbuf.inp.buf);
+ inbuf.inp.buf = xrealloc(inbuf.inp.buf, size);
+ p = inbuf.inp.buf + offset;
+ inbuf.inp.l = inbuf.inp.buf + size - 2;
}
if ((ch = getc(f)) == EOF) {
@@ -446,14 +446,14 @@ inp_read_line(void)
break;
}
- inp.s = inp.buf;
- inp.e = p;
+ inbuf.inp.s = inbuf.inp.buf;
+ inbuf.inp.e = p;
- if (p - inp.s >= 3 && p[-3] == '*' && p[-2] == '/')
+ if (p - inbuf.inp.s >= 3 && p[-3] == '*' && p[-2] == '/')
parse_indent_comment();
if (inhibit_formatting)
- output_range(inp.s, inp.e);
+ output_range(inbuf.inp.s, inbuf.inp.e);
}
int
Index: src/usr.bin/indent/pr_comment.c
diff -u src/usr.bin/indent/pr_comment.c:1.116 src/usr.bin/indent/pr_comment.c:1.117
--- src/usr.bin/indent/pr_comment.c:1.116 Sun Nov 7 18:26:17 2021
+++ src/usr.bin/indent/pr_comment.c Fri Nov 19 15:28:32 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: pr_comment.c,v 1.116 2021/11/07 18:26:17 rillig Exp $ */
+/* $NetBSD: pr_comment.c,v 1.117 2021/11/19 15:28:32 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.116 2021/11/07 18:26:17 rillig Exp $");
+__RCSID("$NetBSD: pr_comment.c,v 1.117 2021/11/19 15:28:32 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 = inp.s; *p != '\n'; p++) {
+ for (const char *p = inbuf.inp.s; *p != '\n'; p++) {
assert(*p != '\0');
- assert(inp.e - p >= 2);
+ assert(inbuf.inp.e - p >= 2);
if (!(p[0] == '*' && p[1] == '/'))
continue;
- int len = ind_add(ps.com_ind + 3, inp.s, p);
+ int len = ind_add(ps.com_ind + 3, inbuf.inp.s, p);
len += ch_isblank(p[-1]) ? 2 : 3;
return len <= max_line_length;
}
@@ -117,8 +117,9 @@ analyze_comment(bool *p_may_wrap, bool *
com_ind = 0;
} else {
- if (*inp.s == '-' || *inp.s == '*' || token.e[-1] == '/' ||
- (*inp.s == '\n' && !opt.format_block_comments)) {
+ if (*inbuf.inp.s == '-' || *inbuf.inp.s == '*' ||
+ token.e[-1] == '/' ||
+ (*inbuf.inp.s == '\n' && !opt.format_block_comments)) {
may_wrap = false;
break_delim = false;
}
@@ -158,13 +159,14 @@ analyze_comment(bool *p_may_wrap, bool *
* XXX: ordered comparison between pointers from different objects
* invokes undefined behavior (C99 6.5.8).
*/
- const char *start = inp.s >= sc_buf && inp.s < sc_buf + sc_size
- ? sc_buf : inp.buf;
- ps.n_comment_delta = -ind_add(0, start, inp.s - 2);
+ const char *start = inbuf.inp.s >= inbuf.sc_buf &&
+ inbuf.inp.s < inbuf.sc_buf + sc_size
+ ? inbuf.sc_buf : inbuf.inp.buf;
+ ps.n_comment_delta = -ind_add(0, start, inbuf.inp.s - 2);
} else {
ps.n_comment_delta = 0;
- while (ch_isblank(*inp.s))
- inp.s++;
+ while (ch_isblank(*inbuf.inp.s))
+ inbuf.inp.s++;
}
ps.comment_delta = 0;
@@ -172,7 +174,7 @@ analyze_comment(bool *p_may_wrap, bool *
com_add_char(token.e[-1]); /* either '*' or '/' */
/* TODO: Maybe preserve a single '\t' as well. */
- if (*inp.s != ' ' && may_wrap)
+ if (*inbuf.inp.s != ' ' && may_wrap)
com_add_char(' ');
if (break_delim && fits_in_one_line(adj_max_line_length))
@@ -205,14 +207,14 @@ copy_comment_wrap(int adj_max_line_lengt
ssize_t last_blank = -1; /* index of the last blank in com.buf */
for (;;) {
- switch (*inp.s) {
+ switch (*inbuf.inp.s) {
case '\f':
dump_line_ff();
last_blank = -1;
com_add_delim();
- inp.s++;
- while (ch_isblank(*inp.s))
- inp.s++;
+ inbuf.inp.s++;
+ while (ch_isblank(*inbuf.inp.s))
+ inbuf.inp.s++;
break;
case '\n':
@@ -245,19 +247,19 @@ copy_comment_wrap(int adj_max_line_lengt
do { /* flush any blanks and/or tabs at start of
* next line */
inp_skip();
- if (*inp.s == '*' && skip_asterisk) {
+ if (*inbuf.inp.s == '*' && skip_asterisk) {
skip_asterisk = false;
inp_skip();
- if (*inp.s == '/')
+ if (*inbuf.inp.s == '/')
goto end_of_comment;
}
- } while (ch_isblank(*inp.s));
+ } while (ch_isblank(*inbuf.inp.s));
break; /* end of case for newline */
case '*':
inp_skip();
- if (*inp.s == '/') {
+ if (*inbuf.inp.s == '/') {
end_of_comment:
inp_skip();
@@ -289,7 +291,7 @@ copy_comment_wrap(int adj_max_line_lengt
last_blank = com.e - com.buf;
com_add_char(ch);
now_len++;
- if (memchr("*\n\r\b\t", *inp.s, 6) != NULL)
+ if (memchr("*\n\r\b\t", *inbuf.inp.s, 6) != NULL)
break;
if (now_len >= adj_max_line_length && last_blank != -1)
break;
@@ -325,7 +327,7 @@ static void
copy_comment_nowrap(void)
{
for (;;) {
- if (*inp.s == '\n') {
+ if (*inbuf.inp.s == '\n') {
if (token.e[-1] == '/')
goto finish;
Index: src/usr.bin/indent/lexi.c
diff -u src/usr.bin/indent/lexi.c:1.139 src/usr.bin/indent/lexi.c:1.140
--- src/usr.bin/indent/lexi.c:1.139 Thu Nov 18 23:26:58 2021
+++ src/usr.bin/indent/lexi.c Fri Nov 19 15:28:32 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: lexi.c,v 1.139 2021/11/18 23:26:58 rillig Exp $ */
+/* $NetBSD: lexi.c,v 1.140 2021/11/19 15:28:32 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.139 2021/11/18 23:26:58 rillig Exp $");
+__RCSID("$NetBSD: lexi.c,v 1.140 2021/11/19 15:28:32 rillig Exp $");
#elif defined(__FreeBSD__)
__FBSDID("$FreeBSD: head/usr.bin/indent/lexi.c 337862 2018-08-15 18:19:45Z pstef $");
#endif
@@ -181,14 +181,14 @@ static const unsigned char lex_number_ro
static char
inp_peek(void)
{
- return *inp.s;
+ return *inbuf.inp.s;
}
void
inp_skip(void)
{
- inp.s++;
- if (inp.s >= inp.e)
+ inbuf.inp.s++;
+ if (inbuf.inp.s >= inbuf.inp.e)
inp_read_line();
}
@@ -352,7 +352,7 @@ static void
lex_number(void)
{
for (unsigned char s = 'A'; s != 'f' && s != 'i' && s != 'u';) {
- unsigned char ch = (unsigned char)*inp.s;
+ unsigned char ch = (unsigned char)*inbuf.inp.s;
if (ch >= array_length(lex_number_row) || lex_number_row[ch] == 0)
break;
@@ -373,14 +373,14 @@ lex_number(void)
static void
lex_word(void)
{
- while (isalnum((unsigned char)*inp.s) ||
- *inp.s == '\\' ||
- *inp.s == '_' || *inp.s == '$') {
-
- if (*inp.s == '\\') {
- if (inp.s[1] == '\n') {
- inp.s += 2;
- if (inp.s >= inp.e)
+ while (isalnum((unsigned char)*inbuf.inp.s) ||
+ *inbuf.inp.s == '\\' ||
+ *inbuf.inp.s == '_' || *inbuf.inp.s == '$') {
+
+ if (*inbuf.inp.s == '\\') {
+ if (inbuf.inp.s[1] == '\n') {
+ inbuf.inp.s += 2;
+ if (inbuf.inp.s >= inbuf.inp.e)
inp_read_line();
} else
break;
@@ -394,7 +394,7 @@ static void
lex_char_or_string(void)
{
for (char delim = token.e[-1];;) {
- if (*inp.s == '\n') {
+ if (*inbuf.inp.s == '\n') {
diag(1, "Unterminated literal");
return;
}
@@ -404,7 +404,7 @@ lex_char_or_string(void)
return;
if (token.e[-1] == '\\') {
- if (*inp.s == '\n')
+ if (*inbuf.inp.s == '\n')
++line_no;
token_add_char(inp_next());
}
@@ -417,9 +417,9 @@ probably_typename(void)
{
if (ps.block_init || ps.in_stmt)
return false;
- if (inp.s[0] == '*' && inp.s[1] != '=')
+ if (inbuf.inp.s[0] == '*' && inbuf.inp.s[1] != '=')
goto maybe;
- if (isalpha((unsigned char)*inp.s))
+ if (isalpha((unsigned char)*inbuf.inp.s))
goto maybe;
return false;
maybe:
@@ -468,11 +468,11 @@ cmp_keyword_by_name(const void *key, con
static lexer_symbol
lexi_alnum(void)
{
- if (isdigit((unsigned char)*inp.s) ||
- (inp.s[0] == '.' && isdigit((unsigned char)inp.s[1]))) {
+ if (isdigit((unsigned char)*inbuf.inp.s) ||
+ (inbuf.inp.s[0] == '.' && isdigit((unsigned char)inbuf.inp.s[1]))) {
lex_number();
- } else if (isalnum((unsigned char)*inp.s) ||
- *inp.s == '_' || *inp.s == '$') {
+ } else if (isalnum((unsigned char)*inbuf.inp.s) ||
+ *inbuf.inp.s == '_' || *inbuf.inp.s == '$') {
lex_word();
} else
return lsym_eof; /* just as a placeholder */
@@ -480,7 +480,7 @@ lexi_alnum(void)
*token.e = '\0';
if (token.s[0] == 'L' && token.s[1] == '\0' &&
- (*inp.s == '"' || *inp.s == '\''))
+ (*inbuf.inp.s == '"' || *inbuf.inp.s == '\''))
return lsym_string_prefix;
while (ch_isblank(inp_peek()))
@@ -523,10 +523,10 @@ found_typename:
}
}
- if (*inp.s == '(' && ps.tos <= 1 && ps.ind_level == 0 &&
+ if (*inbuf.inp.s == '(' && ps.tos <= 1 && ps.ind_level == 0 &&
!ps.in_parameter_declaration && !ps.block_init) {
- for (const char *p = inp.s; p < inp.e;)
+ for (const char *p = inbuf.inp.s; p < inbuf.inp.e;)
if (*p++ == ')' && (*p == ';' || *p == ','))
goto no_function_definition;
@@ -552,7 +552,7 @@ lexi(void)
ps.curr_col_1 = ps.next_col_1;
ps.next_col_1 = false;
- while (ch_isblank(*inp.s)) {
+ while (ch_isblank(*inbuf.inp.s)) {
ps.curr_col_1 = false;
inp_skip();
}
@@ -647,19 +647,19 @@ lexi(void)
lsym = ps.next_unary ? lsym_unary_op : lsym_binary_op;
unary_delim = true;
- if (*inp.s == token.e[-1]) { /* ++, -- */
- *token.e++ = *inp.s++;
+ if (*inbuf.inp.s == token.e[-1]) { /* ++, -- */
+ *token.e++ = *inbuf.inp.s++;
if (ps.prev_token == lsym_word ||
ps.prev_token == lsym_rparen_or_rbracket) {
lsym = ps.next_unary ? lsym_unary_op : lsym_postfix_op;
unary_delim = false;
}
- } else if (*inp.s == '=') { /* += */
- *token.e++ = *inp.s++;
+ } else if (*inbuf.inp.s == '=') { /* += */
+ *token.e++ = *inbuf.inp.s++;
- } else if (*inp.s == '>') { /* -> */
- *token.e++ = *inp.s++;
+ } else if (*inbuf.inp.s == '>') { /* -> */
+ *token.e++ = *inbuf.inp.s++;
unary_delim = false;
lsym = lsym_unary_op;
ps.want_blank = false;
@@ -669,8 +669,8 @@ lexi(void)
case '=':
if (ps.init_or_struct)
ps.block_init = true;
- if (*inp.s == '=') { /* == */
- *token.e++ = *inp.s++;
+ if (*inbuf.inp.s == '=') { /* == */
+ *token.e++ = *inbuf.inp.s++;
*token.e = '\0';
}
lsym = lsym_binary_op;
@@ -680,10 +680,10 @@ lexi(void)
case '>':
case '<':
case '!': /* ops like <, <<, <=, !=, etc */
- if (*inp.s == '>' || *inp.s == '<' || *inp.s == '=')
+ if (*inbuf.inp.s == '>' || *inbuf.inp.s == '<' || *inbuf.inp.s == '=')
*token.e++ = inp_next();
- if (*inp.s == '=')
- *token.e++ = *inp.s++;
+ if (*inbuf.inp.s == '=')
+ *token.e++ = *inbuf.inp.s++;
lsym = ps.next_unary ? lsym_unary_op : lsym_binary_op;
unary_delim = true;
break;
@@ -691,27 +691,27 @@ lexi(void)
case '*':
unary_delim = true;
if (!ps.next_unary) {
- if (*inp.s == '=')
- *token.e++ = *inp.s++;
+ if (*inbuf.inp.s == '=')
+ *token.e++ = *inbuf.inp.s++;
lsym = lsym_binary_op;
break;
}
- while (*inp.s == '*' || isspace((unsigned char)*inp.s)) {
- if (*inp.s == '*')
+ while (*inbuf.inp.s == '*' || isspace((unsigned char)*inbuf.inp.s)) {
+ if (*inbuf.inp.s == '*')
token_add_char('*');
inp_skip();
}
if (ps.in_decl) {
- char *tp = inp.s;
+ char *tp = inbuf.inp.s;
while (isalpha((unsigned char)*tp) ||
isspace((unsigned char)*tp)) {
- if (++tp >= inp.e) {
- const char *s_before = inp.s;
+ if (++tp >= inbuf.inp.e) {
+ const char *s_before = inbuf.inp.s;
inp_read_line();
- if (inp.s != s_before)
+ if (inbuf.inp.s != s_before)
abort();
}
}
@@ -723,7 +723,7 @@ lexi(void)
break;
default:
- if (token.e[-1] == '/' && (*inp.s == '*' || *inp.s == '/')) {
+ if (token.e[-1] == '/' && (*inbuf.inp.s == '*' || *inbuf.inp.s == '/')) {
*token.e++ = inp_next();
lsym = lsym_comment;
unary_delim = ps.next_unary;
@@ -731,14 +731,14 @@ lexi(void)
}
/* handle '||', '&&', etc., and also things as in 'int *****i' */
- while (token.e[-1] == *inp.s || *inp.s == '=')
+ while (token.e[-1] == *inbuf.inp.s || *inbuf.inp.s == '=')
token_add_char(inp_next());
lsym = ps.next_unary ? lsym_unary_op : lsym_binary_op;
unary_delim = true;
}
- if (inp.s >= inp.e)
+ if (inbuf.inp.s >= inbuf.inp.e)
inp_read_line();
ps.next_unary = unary_delim;