Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/usr.bin/indent use stdarg, annotate function as __printflike...



details:   https://anonhg.NetBSD.org/src/rev/29f76f8b1db7
branches:  trunk
changeset: 966227:29f76f8b1db7
user:      christos <christos%NetBSD.org@localhost>
date:      Sat Oct 19 15:44:31 2019 +0000

description:
use stdarg, annotate function as __printflike and fix broken formats.

diffstat:

 usr.bin/indent/indent.c |  38 +++++++++++++++---------------
 usr.bin/indent/indent.h |  14 +++++++++--
 usr.bin/indent/io.c     |  59 +++++++++++++-----------------------------------
 usr.bin/indent/lexi.c   |   6 ++--
 usr.bin/indent/parse.c  |   8 +++---
 5 files changed, 53 insertions(+), 72 deletions(-)

diffs (truncated from 359 to 300 lines):

diff -r a28a1190ba55 -r 29f76f8b1db7 usr.bin/indent/indent.c
--- a/usr.bin/indent/indent.c   Sat Oct 19 14:42:30 2019 +0000
+++ b/usr.bin/indent/indent.c   Sat Oct 19 15:44:31 2019 +0000
@@ -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 @@
 #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 @@
                        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 @@
                        *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 @@
                    || 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 @@
                    (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 @@
        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 @@
            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 @@
                 * 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 @@
 
            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 @@
                                                 * 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 @@
                                                                 * 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 @@
            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 @@
            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 @@
            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 @@
                    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 @@
            }
            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 @@
                    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;
                }
            }
diff -r a28a1190ba55 -r 29f76f8b1db7 usr.bin/indent/indent.h
--- a/usr.bin/indent/indent.h   Sat Oct 19 14:42:30 2019 +0000
+++ b/usr.bin/indent/indent.h   Sat Oct 19 15:44:31 2019 +0000
@@ -1,3 +1,5 @@
+/*     $NetBSD: indent.h,v 1.2 2019/10/19 15:44:31 christos Exp $      */
+
 /*-
  * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
  *
@@ -27,8 +29,16 @@
  */
 
 #if 0
+#if defined(__NetBSD__)
+__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
+#endif
+
+#ifndef nitems
+#define nitems(array) (sizeof (array) / sizeof (array[0]))
+#endif
 
 void   add_typename(const char *);
 void   alloc_typenames(void);
@@ -38,9 +48,7 @@
 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);
diff -r a28a1190ba55 -r 29f76f8b1db7 usr.bin/indent/io.c
--- a/usr.bin/indent/io.c       Sat Oct 19 14:42:30 2019 +0000
+++ b/usr.bin/indent/io.c       Sat Oct 19 15:44:31 2019 +0000
@@ -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 @@
 #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 @@
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
+#include <stdarg.h>
 #include "indent_globs.h"
 #include "indent.h"
 
@@ -484,52 +485,24 @@
 }
 
 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");
+       s = "/**INDENT** ";
+       e = " */";
+    } else {
+       s = e = "";
     }
-    else {
-       fprintf(stderr, "%s@%d: ", level == 0 ? "Warning" : "Error", line_no);
-       fprintf(stderr, "%s", msg);
-       fprintf(stderr, "\n");
-    }
+
+    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);
 }
diff -r a28a1190ba55 -r 29f76f8b1db7 usr.bin/indent/lexi.c
--- a/usr.bin/indent/lexi.c     Sat Oct 19 14:42:30 2019 +0000
+++ b/usr.bin/indent/lexi.c     Sat Oct 19 15:44:31 2019 +0000
@@ -1,4 +1,4 @@



Home | Main Index | Thread Index | Old Index