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;