Module Name: src
Committed By: christos
Date: Sat Oct 19 15:44:31 UTC 2019
Modified Files:
src/usr.bin/indent: indent.c indent.h io.c lexi.c parse.c
Log Message:
use stdarg, annotate function as __printflike and fix broken formats.
To generate a diff of this commit:
cvs rdiff -u -r1.25 -r1.26 src/usr.bin/indent/indent.c
cvs rdiff -u -r1.1 -r1.2 src/usr.bin/indent/indent.h
cvs rdiff -u -r1.19 -r1.20 src/usr.bin/indent/io.c
cvs rdiff -u -r1.16 -r1.17 src/usr.bin/indent/lexi.c
cvs rdiff -u -r1.9 -r1.10 src/usr.bin/indent/parse.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.25 src/usr.bin/indent/indent.c:1.26
--- src/usr.bin/indent/indent.c:1.25 Thu Apr 4 11:22:13 2019
+++ src/usr.bin/indent/indent.c Sat Oct 19 11:44:31 2019
@@ -1,4 +1,4 @@
-/* $NetBSD: indent.c,v 1.25 2019/04/04 15:22:13 kamil Exp $ */
+/* $NetBSD: indent.c,v 1.26 2019/10/19 15:44:31 christos 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.25 2019/04/04 15:22:13 kamil Exp $");
+__RCSID("$NetBSD: indent.c,v 1.26 2019/10/19 15:44:31 christos Exp $");
#elif defined(__FreeBSD__)
__FBSDID("$FreeBSD: head/usr.bin/indent/indent.c 340138 2018-11-04 19:24:49Z oshogbo $");
#endif
@@ -360,7 +360,7 @@ main(int argc, char **argv)
break; /* we are at end of comment */
if (sc_end >= &save_com[sc_size]) { /* check for temp buffer
* overflow */
- diag2(1, "Internal buffer overflow - Move big comment from right after if, while, or whatever");
+ diag(1, "Internal buffer overflow - Move big comment from right after if, while, or whatever");
fflush(output);
exit(1);
}
@@ -429,7 +429,7 @@ main(int argc, char **argv)
*sc_end++ = ' ';
if (opt.verbose) /* print error msg if the line was
* not already broken */
- diag2(0, "Line broken");
+ diag(0, "Line broken");
}
for (t_ptr = token; *t_ptr; ++t_ptr)
*sc_end++ = *t_ptr;
@@ -498,7 +498,7 @@ check_type:
|| s_com != e_com) /* must dump end of line */
dump_line();
if (ps.tos > 1) /* check for balanced braces */
- diag2(1, "Stuff missing from end of file");
+ diag(1, "Stuff missing from end of file");
if (opt.verbose) {
printf("There were %d output lines and %d comments\n",
@@ -519,7 +519,7 @@ check_type:
(type_code != lbrace || !opt.btype_2)) {
/* we should force a broken line here */
if (opt.verbose)
- diag2(0, "Line broken");
+ diag(0, "Line broken");
dump_line();
ps.want_blank = false; /* dont insert blank at line start */
force_nl = false;
@@ -574,7 +574,7 @@ check_type:
case lparen: /* got a '(' or '[' */
/* count parens to make Healy happy */
if (++ps.p_l_follow == nitems(ps.paren_indents)) {
- diag3(0, "Reached internal limit of %d unclosed parens",
+ diag(0, "Reached internal limit of %zu unclosed parens",
nitems(ps.paren_indents));
ps.p_l_follow--;
}
@@ -625,7 +625,7 @@ check_type:
ps.not_cast_mask &= (1 << ps.p_l_follow) - 1;
if (--ps.p_l_follow < 0) {
ps.p_l_follow = 0;
- diag3(0, "Extra %c", *token);
+ diag(0, "Extra %c", *token);
}
if (e_code == s_code) /* if the paren starts the line */
ps.paren_level = ps.p_l_follow; /* then indent it */
@@ -779,7 +779,7 @@ check_type:
* stmt. It is a bit complicated, because the semicolon might
* be in a for stmt
*/
- diag2(1, "Unbalanced parens");
+ diag(1, "Unbalanced parens");
ps.p_l_follow = 0;
if (sp_sw) { /* this is a check for an if, while, etc. with
* unbalanced parens */
@@ -828,7 +828,7 @@ check_type:
if (ps.p_l_follow > 0) { /* check for preceding unbalanced
* parens */
- diag2(1, "Unbalanced parens");
+ diag(1, "Unbalanced parens");
ps.p_l_follow = 0;
if (sp_sw) { /* check for unclosed if, for, etc. */
sp_sw = false;
@@ -843,7 +843,7 @@ check_type:
* declaration or an init */
di_stack[ps.dec_nest] = dec_ind;
if (++ps.dec_nest == nitems(di_stack)) {
- diag3(0, "Reached internal limit of %d struct levels",
+ diag(0, "Reached internal limit of %zu struct levels",
nitems(di_stack));
ps.dec_nest--;
}
@@ -876,7 +876,7 @@ check_type:
* declarations */
parse(semicolon);
if (ps.p_l_follow) {/* check for unclosed if, for, else. */
- diag2(1, "Unbalanced parens");
+ diag(1, "Unbalanced parens");
ps.p_l_follow = 0;
sp_sw = false;
}
@@ -885,7 +885,7 @@ check_type:
if (s_code != e_code && !ps.block_init) { /* '}' must be first on
* line */
if (opt.verbose)
- diag2(0, "Line broken");
+ diag(0, "Line broken");
dump_line();
}
*e_code++ = '}';
@@ -928,7 +928,7 @@ check_type:
if (*token == 'e') {
if (e_code != s_code && (!opt.cuddle_else || e_code[-1] != '}')) {
if (opt.verbose)
- diag2(0, "Line broken");
+ diag(0, "Line broken");
dump_line();/* make sure this starts a line */
ps.want_blank = false;
}
@@ -939,7 +939,7 @@ check_type:
else {
if (e_code != s_code) { /* make sure this starts a line */
if (opt.verbose)
- diag2(0, "Line broken");
+ diag(0, "Line broken");
dump_line();
ps.want_blank = false;
}
@@ -1170,11 +1170,11 @@ check_type:
state_stack[ifdef_level++] = ps;
}
else
- diag2(1, "#if stack overflow");
+ diag(1, "#if stack overflow");
}
else if (strncmp(s_lab, "#el", 3) == 0) { /* else, elif */
if (ifdef_level <= 0)
- diag2(1, s_lab[3] == 'i' ? "Unmatched #elif" : "Unmatched #else");
+ diag(1, s_lab[3] == 'i' ? "Unmatched #elif" : "Unmatched #else");
else {
match_state[ifdef_level - 1] = ps;
ps = state_stack[ifdef_level - 1];
@@ -1182,7 +1182,7 @@ check_type:
}
else if (strncmp(s_lab, "#endif", 6) == 0) {
if (ifdef_level <= 0)
- diag2(1, "Unmatched #endif");
+ diag(1, "Unmatched #endif");
else
ifdef_level--;
} else {
@@ -1203,7 +1203,7 @@ check_type:
if (strncmp(s_lab + 1, recognized[d].string, recognized[d].size) == 0)
break;
if (d < 0) {
- diag2(1, "Unrecognized cpp directive");
+ diag(1, "Unrecognized cpp directive");
break;
}
}
Index: src/usr.bin/indent/indent.h
diff -u src/usr.bin/indent/indent.h:1.1 src/usr.bin/indent/indent.h:1.2
--- src/usr.bin/indent/indent.h:1.1 Thu Apr 4 11:27:35 2019
+++ src/usr.bin/indent/indent.h Sat Oct 19 11:44:31 2019
@@ -1,4 +1,4 @@
-/* $NetBSD: indent.h,v 1.1 2019/04/04 15:27:35 kamil Exp $ */
+/* $NetBSD: indent.h,v 1.2 2019/10/19 15:44:31 christos Exp $ */
/*-
* SPDX-License-Identifier: BSD-2-Clause-FreeBSD
@@ -30,7 +30,7 @@
#if 0
#if defined(__NetBSD__)
-__RCSID("$NetBSD: indent.h,v 1.1 2019/04/04 15:27:35 kamil Exp $");
+__RCSID("$NetBSD: indent.h,v 1.2 2019/10/19 15:44:31 christos Exp $");
#elif defined(__FreeBSD__)
__FBSDID("$FreeBSD: head/usr.bin/indent/indent.h 336333 2018-07-16 05:46:50Z pstef $");
#endif
@@ -48,9 +48,7 @@ int count_spaces(int, char *);
int count_spaces_until(int, char *, char *);
void init_constant_tt(void);
int lexi(struct parser_state *);
-void diag2(int, const char *);
-void diag3(int, const char *, int);
-void diag4(int, const char *, int, int);
+void diag(int, const char *, ...) __printflike(2, 3);
void dump_line(void);
void fill_buffer(void);
void parse(int);
Index: src/usr.bin/indent/io.c
diff -u src/usr.bin/indent/io.c:1.19 src/usr.bin/indent/io.c:1.20
--- src/usr.bin/indent/io.c:1.19 Thu Apr 4 11:22:13 2019
+++ src/usr.bin/indent/io.c Sat Oct 19 11:44:31 2019
@@ -1,4 +1,4 @@
-/* $NetBSD: io.c,v 1.19 2019/04/04 15:22:13 kamil Exp $ */
+/* $NetBSD: io.c,v 1.20 2019/10/19 15:44:31 christos 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.19 2019/04/04 15:22:13 kamil Exp $");
+__RCSID("$NetBSD: io.c,v 1.20 2019/10/19 15:44:31 christos Exp $");
#elif defined(__FreeBSD__)
__FBSDID("$FreeBSD: head/usr.bin/indent/io.c 334927 2018-06-10 16:44:18Z pstef $");
#endif
@@ -57,6 +57,7 @@ __FBSDID("$FreeBSD: head/usr.bin/indent/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
+#include <stdarg.h>
#include "indent_globs.h"
#include "indent.h"
@@ -484,52 +485,24 @@ count_spaces(int cur, char *buffer)
}
void
-diag4(int level, const char *msg, int a, int b)
+diag(int level, const char *msg, ...)
{
- if (level)
- found_err = 1;
- if (output == stdout) {
- fprintf(stdout, "/**INDENT** %s@%d: ", level == 0 ? "Warning" : "Error", line_no);
- fprintf(stdout, msg, a, b);
- fprintf(stdout, " */\n");
- }
- else {
- fprintf(stderr, "%s@%d: ", level == 0 ? "Warning" : "Error", line_no);
- fprintf(stderr, msg, a, b);
- fprintf(stderr, "\n");
- }
-}
+ va_list ap;
+ const char *s, *e;
-void
-diag3(int level, const char *msg, int a)
-{
if (level)
found_err = 1;
- if (output == stdout) {
- fprintf(stdout, "/**INDENT** %s@%d: ", level == 0 ? "Warning" : "Error", line_no);
- fprintf(stdout, msg, a);
- fprintf(stdout, " */\n");
- }
- else {
- fprintf(stderr, "%s@%d: ", level == 0 ? "Warning" : "Error", line_no);
- fprintf(stderr, msg, a);
- fprintf(stderr, "\n");
- }
-}
-void
-diag2(int level, const char *msg)
-{
- if (level)
- found_err = 1;
if (output == stdout) {
- fprintf(stdout, "/**INDENT** %s@%d: ", level == 0 ? "Warning" : "Error", line_no);
- fprintf(stdout, "%s", msg);
- fprintf(stdout, " */\n");
- }
- else {
- fprintf(stderr, "%s@%d: ", level == 0 ? "Warning" : "Error", line_no);
- fprintf(stderr, "%s", msg);
- fprintf(stderr, "\n");
+ s = "/**INDENT** ";
+ e = " */";
+ } else {
+ s = e = "";
}
+
+ va_start(ap, msg);
+ fprintf(stderr, "%s%s@%d: ", s, level == 0 ? "Warning" : "Error", line_no);
+ vfprintf(stderr, msg, ap);
+ fprintf(stderr, "%s\n", e);
+ va_end(ap);
}
Index: src/usr.bin/indent/lexi.c
diff -u src/usr.bin/indent/lexi.c:1.16 src/usr.bin/indent/lexi.c:1.17
--- src/usr.bin/indent/lexi.c:1.16 Thu Apr 4 11:22:13 2019
+++ src/usr.bin/indent/lexi.c Sat Oct 19 11:44:31 2019
@@ -1,4 +1,4 @@
-/* $NetBSD: lexi.c,v 1.16 2019/04/04 15:22:13 kamil Exp $ */
+/* $NetBSD: lexi.c,v 1.17 2019/10/19 15:44:31 christos 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.16 2019/04/04 15:22:13 kamil Exp $");
+__RCSID("$NetBSD: lexi.c,v 1.17 2019/10/19 15:44:31 christos Exp $");
#elif defined(__FreeBSD__)
__FBSDID("$FreeBSD: head/usr.bin/indent/lexi.c 337862 2018-08-15 18:19:45Z pstef $");
#endif
@@ -392,7 +392,7 @@ lexi(struct parser_state *state)
do { /* copy the string */
while (1) { /* move one character or [/<char>]<char> */
if (*buf_ptr == '\n') {
- diag2(1, "Unterminated literal");
+ diag(1, "Unterminated literal");
goto stop_lit;
}
CHECK_SIZE_TOKEN(2);
Index: src/usr.bin/indent/parse.c
diff -u src/usr.bin/indent/parse.c:1.9 src/usr.bin/indent/parse.c:1.10
--- src/usr.bin/indent/parse.c:1.9 Thu Apr 4 11:22:13 2019
+++ src/usr.bin/indent/parse.c Sat Oct 19 11:44:31 2019
@@ -1,4 +1,4 @@
-/* $NetBSD: parse.c,v 1.9 2019/04/04 15:22:13 kamil Exp $ */
+/* $NetBSD: parse.c,v 1.10 2019/10/19 15:44:31 christos Exp $ */
/*-
* SPDX-License-Identifier: BSD-4-Clause
@@ -169,7 +169,7 @@ parse(int tk) /* tk: the code for the co
case elselit: /* scanned an else */
if (ps.p_stack[ps.tos] != ifhead)
- diag2(1, "Unmatched 'else'");
+ diag(1, "Unmatched 'else'");
else {
ps.ind_level = ps.il[ps.tos]; /* indentation for else should
* be same as for if */
@@ -188,7 +188,7 @@ parse(int tk) /* tk: the code for the co
ps.p_stack[ps.tos] = stmt;
}
else
- diag2(1, "Statement nesting error");
+ diag(1, "Statement nesting error");
break;
case swstmt: /* had switch (...) */
@@ -212,7 +212,7 @@ parse(int tk) /* tk: the code for the co
break;
default: /* this is an error */
- diag2(1, "Unknown code to parser");
+ diag(1, "Unknown code to parser");
return;