Module Name: src
Committed By: rillig
Date: Fri Sep 24 18:14:06 UTC 2021
Modified Files:
src/usr.bin/indent: indent.c indent_globs.h io.c lexi.c pr_comment.c
Log Message:
indent: group global variables for the comment buffer
No functional change.
To generate a diff of this commit:
cvs rdiff -u -r1.61 -r1.62 src/usr.bin/indent/indent.c
cvs rdiff -u -r1.21 -r1.22 src/usr.bin/indent/indent_globs.h
cvs rdiff -u -r1.51 -r1.52 src/usr.bin/indent/io.c
cvs rdiff -u -r1.44 -r1.45 src/usr.bin/indent/lexi.c
cvs rdiff -u -r1.35 -r1.36 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.61 src/usr.bin/indent/indent.c:1.62
--- src/usr.bin/indent/indent.c:1.61 Wed Aug 25 22:26:30 2021
+++ src/usr.bin/indent/indent.c Fri Sep 24 18:14:06 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: indent.c,v 1.61 2021/08/25 22:26:30 rillig Exp $ */
+/* $NetBSD: indent.c,v 1.62 2021/09/24 18:14:06 rillig Exp $ */
/*-
* SPDX-License-Identifier: BSD-4-Clause
@@ -46,7 +46,7 @@ static char sccsid[] = "@(#)indent.c 5.1
#include <sys/cdefs.h>
#ifndef lint
#if defined(__NetBSD__)
-__RCSID("$NetBSD: indent.c,v 1.61 2021/08/25 22:26:30 rillig Exp $");
+__RCSID("$NetBSD: indent.c,v 1.62 2021/09/24 18:14:06 rillig Exp $");
#elif defined(__FreeBSD__)
__FBSDID("$FreeBSD: head/usr.bin/indent/indent.c 340138 2018-11-04 19:24:49Z oshogbo $");
#endif
@@ -81,10 +81,7 @@ char *s_code;
char *e_code;
char *l_code;
-char *combuf;
-char *s_com;
-char *e_com;
-char *l_com;
+struct comment_buffer com;
char *tokenbuf;
char *s_token;
@@ -377,8 +374,8 @@ main_init_globals(void)
ps.last_nl = true; /* this is true if the last thing scanned was
* a newline */
ps.last_token = semicolon;
- combuf = malloc(bufsize);
- if (combuf == NULL)
+ com.buf = malloc(bufsize);
+ if (com.buf == NULL)
err(1, NULL);
labbuf = malloc(bufsize);
if (labbuf == NULL)
@@ -391,17 +388,17 @@ main_init_globals(void)
err(1, NULL);
alloc_typenames();
init_constant_tt();
- l_com = combuf + bufsize - 5;
+ com.l = com.buf + bufsize - 5;
l_lab = labbuf + bufsize - 5;
l_code = codebuf + bufsize - 5;
l_token = tokenbuf + bufsize - 5;
- combuf[0] = codebuf[0] = labbuf[0] = ' '; /* set up code, label, and
+ com.buf[0] = codebuf[0] = labbuf[0] = ' '; /* set up code, label, and
* comment buffers */
- combuf[1] = codebuf[1] = labbuf[1] = tokenbuf[1] = '\0';
+ com.buf[1] = codebuf[1] = labbuf[1] = tokenbuf[1] = '\0';
opt.else_if = 1; /* Default else-if special processing to on */
s_lab = e_lab = labbuf + 1;
s_code = e_code = codebuf + 1;
- s_com = e_com = combuf + 1;
+ com.s = com.e = com.buf + 1;
s_token = e_token = tokenbuf + 1;
in_buffer = malloc(10);
@@ -549,7 +546,7 @@ main_prepare_parsing(void)
static void __attribute__((__noreturn__))
process_end_of_file(void)
{
- if (s_lab != e_lab || s_code != e_code || s_com != e_com)
+ if (s_lab != e_lab || s_code != e_code || com.s != com.e)
dump_line();
if (ps.tos > 1) /* check for balanced braces */
@@ -584,18 +581,18 @@ process_comment_in_code(token_type type_
ps.in_stmt = true; /* turn on flag which causes an extra level of
* indentation. this is turned off by a ; or
* '}' */
- if (s_com != e_com) { /* the turkey has embedded a comment
+ if (com.s != com.e) { /* the turkey has embedded a comment
* in a line. fix it */
- size_t len = e_com - s_com;
+ size_t len = com.e - com.s;
check_size_code(len + 3);
*e_code++ = ' ';
- memcpy(e_code, s_com, len);
+ memcpy(e_code, com.s, len);
e_code += len;
*e_code++ = ' ';
*e_code = '\0'; /* null terminate code sect */
ps.want_blank = false;
- e_com = s_com;
+ com.e = com.s;
}
}
@@ -611,7 +608,7 @@ static void
process_newline(void)
{
if (ps.last_token != comma || ps.p_l_follow > 0
- || !opt.leave_comma || ps.block_init || !break_comma || s_com != e_com) {
+ || !opt.leave_comma || ps.block_init || !break_comma || com.s != com.e) {
dump_line();
ps.want_blank = false;
}
@@ -1123,7 +1120,7 @@ process_comma(int dec_ind, int tabs_to_v
static void
process_preprocessing(void)
{
- if (s_com != e_com || s_lab != e_lab || s_code != e_code)
+ if (com.s != com.e || s_lab != e_lab || s_code != e_code)
dump_line();
check_size_label(1);
*e_lab++ = '#'; /* move whole line to 'label' buffer */
Index: src/usr.bin/indent/indent_globs.h
diff -u src/usr.bin/indent/indent_globs.h:1.21 src/usr.bin/indent/indent_globs.h:1.22
--- src/usr.bin/indent/indent_globs.h:1.21 Sat Mar 13 23:36:10 2021
+++ src/usr.bin/indent/indent_globs.h Fri Sep 24 18:14:06 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: indent_globs.h,v 1.21 2021/03/13 23:36:10 rillig Exp $ */
+/* $NetBSD: indent_globs.h,v 1.22 2021/09/24 18:14:06 rillig Exp $ */
/*-
* SPDX-License-Identifier: BSD-4-Clause
@@ -63,10 +63,12 @@ extern char *s_code; /* start ...
extern char *e_code; /* .. and end of stored code */
extern char *l_code; /* limit of code section */
-extern char *combuf; /* buffer for comments */
-extern char *s_com; /* start ... */
-extern char *e_com; /* ... and end of stored comments */
-extern char *l_com; /* limit of comment buffer */
+extern struct comment_buffer {
+ char *buf; /* buffer for comments */
+ char *s; /* start ... */
+ char *e; /* ... and end of stored comments */
+ char *l; /* limit of comment buffer */
+} com;
#define token s_token
extern char *tokenbuf; /* the last token scanned */
Index: src/usr.bin/indent/io.c
diff -u src/usr.bin/indent/io.c:1.51 src/usr.bin/indent/io.c:1.52
--- src/usr.bin/indent/io.c:1.51 Fri Sep 24 18:00:13 2021
+++ src/usr.bin/indent/io.c Fri Sep 24 18:14:06 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: io.c,v 1.51 2021/09/24 18:00:13 rillig Exp $ */
+/* $NetBSD: io.c,v 1.52 2021/09/24 18:14:06 rillig Exp $ */
/*-
* SPDX-License-Identifier: BSD-4-Clause
@@ -46,7 +46,7 @@ static char sccsid[] = "@(#)io.c 8.1 (Be
#include <sys/cdefs.h>
#ifndef lint
#if defined(__NetBSD__)
-__RCSID("$NetBSD: io.c,v 1.51 2021/09/24 18:00:13 rillig Exp $");
+__RCSID("$NetBSD: io.c,v 1.52 2021/09/24 18:14:06 rillig Exp $");
#elif defined(__FreeBSD__)
__FBSDID("$FreeBSD: head/usr.bin/indent/io.c 334927 2018-06-10 16:44:18Z pstef $");
#endif
@@ -123,7 +123,7 @@ dump_line(void)
ps.procname[0] = 0;
}
- if (s_code == e_code && s_lab == e_lab && s_com == e_com) {
+ if (s_code == e_code && s_lab == e_lab && com.s == com.e) {
if (suppress_blanklines > 0)
suppress_blanklines--;
else {
@@ -217,9 +217,9 @@ dump_line(void)
output_range(s_code, e_code);
cur_col = 1 + indentation_after(cur_col - 1, s_code);
}
- if (s_com != e_com) { /* print comment, if any */
+ if (com.s != com.e) { /* print comment, if any */
int target_col = ps.com_col;
- char *com_st = s_com;
+ char *com_st = com.s;
target_col += ps.comment_delta;
while (*com_st == '\t') /* consider original indentation in
@@ -239,10 +239,10 @@ dump_line(void)
cur_col = 1;
++ps.out_lines;
}
- while (e_com > com_st && isspace((unsigned char)e_com[-1]))
- e_com--;
+ while (com.e > com_st && isspace((unsigned char)com.e[-1]))
+ com.e--;
(void)output_indent(cur_col - 1, target_col - 1);
- output_range(com_st, e_com);
+ output_range(com_st, com.e);
ps.comment_delta = ps.n_comment_delta;
++ps.com_lines; /* count lines with comments */
}
@@ -260,7 +260,7 @@ dump_line(void)
}
/* keep blank lines after '//' comments */
- if (e_com - s_com > 1 && s_com[1] == '/'
+ if (com.e - com.s > 1 && com.s[1] == '/'
&& s_token < e_token && isspace((unsigned char)s_token[0]))
output_range(s_token, e_token);
@@ -274,7 +274,7 @@ dump_line(void)
ps.dumped_decl_indent = 0;
*(e_lab = s_lab) = '\0'; /* reset buffers */
*(e_code = s_code) = '\0';
- *(e_com = s_com = combuf + 1) = '\0';
+ *(com.e = com.s = com.buf + 1) = '\0';
ps.ind_level = ps.i_l_follow;
ps.paren_level = ps.p_l_follow;
if (ps.paren_level > 0) {
@@ -406,7 +406,7 @@ fill_buffer(void)
while (*p == ' ' || *p == '\t')
p++;
if (p[0] == '*' && p[1] == '/' && p[2] == '\n' && comena) {
- if (s_com != e_com || s_lab != e_lab || s_code != e_code)
+ if (com.s != com.e || s_lab != e_lab || s_code != e_code)
dump_line();
if (!(inhibit_formatting = comena - 1)) {
n_real_blanklines = 0;
Index: src/usr.bin/indent/lexi.c
diff -u src/usr.bin/indent/lexi.c:1.44 src/usr.bin/indent/lexi.c:1.45
--- src/usr.bin/indent/lexi.c:1.44 Fri Sep 24 06:23:35 2021
+++ src/usr.bin/indent/lexi.c Fri Sep 24 18:14:06 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: lexi.c,v 1.44 2021/09/24 06:23:35 rillig Exp $ */
+/* $NetBSD: lexi.c,v 1.45 2021/09/24 18:14:06 rillig Exp $ */
/*-
* SPDX-License-Identifier: BSD-4-Clause
@@ -46,7 +46,7 @@ static char sccsid[] = "@(#)lexi.c 8.1 (
#include <sys/cdefs.h>
#ifndef lint
#if defined(__NetBSD__)
-__RCSID("$NetBSD: lexi.c,v 1.44 2021/09/24 06:23:35 rillig Exp $");
+__RCSID("$NetBSD: lexi.c,v 1.45 2021/09/24 18:14:06 rillig Exp $");
#elif defined(__FreeBSD__)
__FBSDID("$FreeBSD: head/usr.bin/indent/lexi.c 337862 2018-08-15 18:19:45Z pstef $");
#endif
@@ -275,7 +275,7 @@ lexi_end(token_type code)
print_buf("token", s_token, e_token);
print_buf("label", s_lab, e_lab);
print_buf("code", s_code, e_code);
- print_buf("comment", s_com, e_com);
+ print_buf("comment", com.s, com.e);
debug_printf("\n");
return code;
Index: src/usr.bin/indent/pr_comment.c
diff -u src/usr.bin/indent/pr_comment.c:1.35 src/usr.bin/indent/pr_comment.c:1.36
--- src/usr.bin/indent/pr_comment.c:1.35 Sun Mar 14 05:26:42 2021
+++ src/usr.bin/indent/pr_comment.c Fri Sep 24 18:14:06 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: pr_comment.c,v 1.35 2021/03/14 05:26:42 rillig Exp $ */
+/* $NetBSD: pr_comment.c,v 1.36 2021/09/24 18:14:06 rillig Exp $ */
/*-
* SPDX-License-Identifier: BSD-4-Clause
@@ -46,7 +46,7 @@ static char sccsid[] = "@(#)pr_comment.c
#include <sys/cdefs.h>
#ifndef lint
#if defined(__NetBSD__)
-__RCSID("$NetBSD: pr_comment.c,v 1.35 2021/03/14 05:26:42 rillig Exp $");
+__RCSID("$NetBSD: pr_comment.c,v 1.36 2021/09/24 18:14:06 rillig Exp $");
#elif defined(__FreeBSD__)
__FBSDID("$FreeBSD: head/usr.bin/indent/pr_comment.c 334927 2018-06-10 16:44:18Z pstef $");
#endif
@@ -62,17 +62,17 @@ __FBSDID("$FreeBSD: head/usr.bin/indent/
static void
check_size_comment(size_t desired_size)
{
- if (e_com + (desired_size) < l_com)
+ if (com.e + (desired_size) < com.l)
return;
- size_t nsize = l_com - s_com + 400 + desired_size;
- size_t com_len = e_com - s_com;
- combuf = realloc(combuf, nsize);
- if (combuf == NULL)
+ size_t nsize = com.l - com.s + 400 + desired_size;
+ size_t com_len = com.e - com.s;
+ com.buf = realloc(com.buf, nsize);
+ if (com.buf == NULL)
err(1, NULL);
- s_com = combuf + 1;
- e_com = s_com + com_len;
- l_com = combuf + nsize - 5;
+ com.s = com.buf + 1;
+ com.e = com.s + com_len;
+ com.l = com.buf + nsize - 5;
}
/*
@@ -98,7 +98,7 @@ process_comment(void)
{
int adj_max_line_length; /* Adjusted max_line_length for comments
* that spill over the right margin */
- ssize_t last_blank; /* index of the last blank in combuf */
+ ssize_t last_blank; /* index of the last blank in com.buf */
char *t_ptr; /* used for moving string */
int break_delim = opt.comment_delimiter_on_blankline;
int l_just_saw_decl = ps.just_saw_decl;
@@ -184,10 +184,10 @@ process_comment(void)
buf_ptr++;
}
ps.comment_delta = 0;
- *e_com++ = '/';
- *e_com++ = e_token[-1];
+ *com.e++ = '/';
+ *com.e++ = e_token[-1];
if (*buf_ptr != ' ' && !ps.box_com)
- *e_com++ = ' ';
+ *com.e++ = ' ';
/*
* Don't put a break delimiter if this is a one-liner that won't wrap.
@@ -211,15 +211,15 @@ process_comment(void)
}
if (break_delim) {
- char *t = e_com;
- e_com = s_com + 2;
- *e_com = 0;
+ char *t = com.e;
+ com.e = com.s + 2;
+ *com.e = 0;
if (opt.blanklines_before_blockcomments && ps.last_token != lbrace)
prefix_blankline_requested = 1;
dump_line();
- e_com = s_com = t;
+ com.e = com.s = t;
if (!ps.box_com && opt.star_comment_cont)
- *e_com++ = ' ', *e_com++ = '*', *e_com++ = ' ';
+ *com.e++ = ' ', *com.e++ = '*', *com.e++ = ' ';
}
/* Start to copy the comment */
@@ -235,13 +235,13 @@ process_comment(void)
dump_line();
last_blank = -1;
if (!ps.box_com && opt.star_comment_cont)
- *e_com++ = ' ', *e_com++ = '*', *e_com++ = ' ';
+ *com.e++ = ' ', *com.e++ = '*', *com.e++ = ' ';
while (*++buf_ptr == ' ' || *buf_ptr == '\t')
;
} else {
if (++buf_ptr >= buf_end)
fill_buffer();
- *e_com++ = 014;
+ *com.e++ = 014;
}
break;
@@ -259,21 +259,21 @@ process_comment(void)
check_size_comment(4);
if (ps.box_com || ps.last_nl) { /* if this is a boxed comment,
* we dont ignore the newline */
- if (s_com == e_com)
- *e_com++ = ' ';
- if (!ps.box_com && e_com - s_com > 3) {
+ if (com.s == com.e)
+ *com.e++ = ' ';
+ if (!ps.box_com && com.e - com.s > 3) {
dump_line();
if (opt.star_comment_cont)
- *e_com++ = ' ', *e_com++ = '*', *e_com++ = ' ';
+ *com.e++ = ' ', *com.e++ = '*', *com.e++ = ' ';
}
dump_line();
if (!ps.box_com && opt.star_comment_cont)
- *e_com++ = ' ', *e_com++ = '*', *e_com++ = ' ';
+ *com.e++ = ' ', *com.e++ = '*', *com.e++ = ' ';
} else {
ps.last_nl = 1;
- if (!(e_com[-1] == ' ' || e_com[-1] == '\t'))
- *e_com++ = ' ';
- last_blank = e_com - 1 - combuf;
+ if (!(com.e[-1] == ' ' || com.e[-1] == '\t'))
+ *com.e++ = ' ';
+ last_blank = com.e - 1 - com.buf;
}
++line_no; /* keep track of input line number */
if (!ps.box_com) {
@@ -303,68 +303,68 @@ process_comment(void)
if (++buf_ptr >= buf_end)
fill_buffer();
if (break_delim) {
- if (e_com > s_com + 3)
+ if (com.e > com.s + 3)
dump_line();
else
- s_com = e_com;
- *e_com++ = ' ';
+ com.s = com.e;
+ *com.e++ = ' ';
}
- if (e_com[-1] != ' ' && e_com[-1] != '\t' && !ps.box_com)
- *e_com++ = ' '; /* ensure blank before end */
+ if (com.e[-1] != ' ' && com.e[-1] != '\t' && !ps.box_com)
+ *com.e++ = ' '; /* ensure blank before end */
if (e_token[-1] == '/')
- *e_com++ = '\n', *e_com = '\0';
+ *com.e++ = '\n', *com.e = '\0';
else
- *e_com++ = '*', *e_com++ = '/', *e_com = '\0';
+ *com.e++ = '*', *com.e++ = '/', *com.e = '\0';
ps.just_saw_decl = l_just_saw_decl;
return;
} else /* handle isolated '*' */
- *e_com++ = '*';
+ *com.e++ = '*';
break;
default: /* we have a random char */
;
- int now_len = indentation_after_range(ps.com_col - 1, s_com, e_com);
+ int now_len = indentation_after_range(ps.com_col - 1, com.s, com.e);
do {
check_size_comment(1);
- *e_com = *buf_ptr++;
+ *com.e = *buf_ptr++;
if (buf_ptr >= buf_end)
fill_buffer();
- if (*e_com == ' ' || *e_com == '\t')
- last_blank = e_com - combuf; /* remember we saw a blank */
- ++e_com;
+ if (*com.e == ' ' || *com.e == '\t')
+ last_blank = com.e - com.buf; /* remember we saw a blank */
+ ++com.e;
now_len++;
} while (!memchr("*\n\r\b\t", *buf_ptr, 6) &&
(now_len < adj_max_line_length || last_blank == -1));
ps.last_nl = false;
/* XXX: signed character comparison '>' does not work for UTF-8 */
if (now_len > adj_max_line_length &&
- !ps.box_com && e_com[-1] > ' ') {
+ !ps.box_com && com.e[-1] > ' ') {
/*
* the comment is too long, it must be broken up
*/
if (last_blank == -1) {
dump_line();
if (!ps.box_com && opt.star_comment_cont)
- *e_com++ = ' ', *e_com++ = '*', *e_com++ = ' ';
+ *com.e++ = ' ', *com.e++ = '*', *com.e++ = ' ';
break;
}
- *e_com = '\0';
- e_com = combuf + last_blank;
+ *com.e = '\0';
+ com.e = com.buf + last_blank;
dump_line();
if (!ps.box_com && opt.star_comment_cont)
- *e_com++ = ' ', *e_com++ = '*', *e_com++ = ' ';
- for (t_ptr = combuf + last_blank + 1;
+ *com.e++ = ' ', *com.e++ = '*', *com.e++ = ' ';
+ for (t_ptr = com.buf + last_blank + 1;
*t_ptr == ' ' || *t_ptr == '\t'; t_ptr++)
continue;
last_blank = -1;
/*
- * t_ptr will be somewhere between e_com (dump_line() reset)
- * and l_com. So it's safe to copy byte by byte from t_ptr
- * to e_com without any check_size_comment().
+ * t_ptr will be somewhere between com.e (dump_line() reset)
+ * and com.l. So it's safe to copy byte by byte from t_ptr
+ * to com.e without any check_size_comment().
*/
while (*t_ptr != '\0') {
if (*t_ptr == ' ' || *t_ptr == '\t')
- last_blank = e_com - combuf;
- *e_com++ = *t_ptr++;
+ last_blank = com.e - com.buf;
+ *com.e++ = *t_ptr++;
}
}
break;