Author: emaste
Date: Mon Jun  9 20:49:13 2014
New Revision: 267298
URL: http://svnweb.freebsd.org/changeset/base/267298

Log:
  vt fontcvt: Hide stats by default and improve error handling
  
  The font stats are interesting, but rather verbose.

Modified:
  head/tools/tools/vt/fontcvt/fontcvt.c

Modified: head/tools/tools/vt/fontcvt/fontcvt.c
==============================================================================
--- head/tools/tools/vt/fontcvt/fontcvt.c       Mon Jun  9 20:48:38 2014        
(r267297)
+++ head/tools/tools/vt/fontcvt/fontcvt.c       Mon Jun  9 20:49:13 2014        
(r267298)
@@ -88,8 +88,8 @@ static void
 usage(void)
 {
 
-       fprintf(stderr,
-"usage: fontcvt [-w width] [-h height] normal.bdf [bold.bdf] out.fnt\n");
+       errx(1,
+"usage: fontcvt [-w width] [-h height] [-v] normal.bdf [bold.bdf] out.fnt\n");
        exit(1);
 }
 
@@ -137,7 +137,7 @@ add_mapping(struct glyph *gl, unsigned i
        ml = &maps[map_idx];
        if (TAILQ_LAST(ml, mapping_list) != NULL &&
            TAILQ_LAST(ml, mapping_list)->m_char >= c) {
-               fprintf(stderr, "Bad ordering at character %u\n", c);
+               errx(1, "Bad ordering at character %u\n", c);
                return (1);
        }
        TAILQ_INSERT_TAIL(ml, mp, m_list);
@@ -210,8 +210,8 @@ parse_bitmap_line(uint8_t *left, uint8_t
        unsigned int i, subline;
 
        if (dwidth != width && dwidth != width * 2) {
-               fprintf(stderr,
-                   "Unsupported width %u!\n", dwidth);
+               errx(1,
+                   "Bitmap with unsupported width %u!\n", dwidth);
                return (1);
        }
 
@@ -230,7 +230,7 @@ parse_bitmap_line(uint8_t *left, uint8_t
                        *p++ = subline >> 8;
                        *p = subline;
                } else {
-                       fprintf(stderr,
+                       errx(1,
                            "Unsupported wbytes %u!\n", wbytes);
                        return (1);
                }
@@ -264,7 +264,7 @@ parse_bdf(FILE *fp, unsigned int map_idx
                    (ln[6] == ' ' || ln[6] == '\0')) {
                        for (i = 0; i < height; i++) {
                                if ((ln = fgetln(fp, &length)) == NULL) {
-                                       fprintf(stderr, "Unexpected EOF!\n");
+                                       errx(1, "Unexpected EOF!\n");
                                        return (1);
                                }
                                ln[length - 1] = '\0';
@@ -450,10 +450,47 @@ write_fnt(const char *filename)
        return (0);
 }
 
+static void
+print_font_info(void)
+{
+       printf(
+"Statistics:\n"
+"- glyph_total:                 %5u\n"
+"- glyph_normal:                %5u\n"
+"- glyph_normal_right:          %5u\n"
+"- glyph_bold:                  %5u\n"
+"- glyph_bold_right:            %5u\n"
+"- glyph_unique:                %5u\n"
+"- glyph_dupe:                  %5u\n"
+"- mapping_total:               %5u\n"
+"- mapping_normal:              %5u\n"
+"- mapping_normal_folded:       %5u\n"
+"- mapping_normal_right:        %5u\n"
+"- mapping_normal_right_folded: %5u\n"
+"- mapping_bold:                %5u\n"
+"- mapping_bold_folded:         %5u\n"
+"- mapping_bold_right:          %5u\n"
+"- mapping_bold_right_folded:   %5u\n"
+"- mapping_unique:              %5u\n"
+"- mapping_dupe:                %5u\n",
+           glyph_total,
+           glyph_count[0],
+           glyph_count[1],
+           glyph_count[2],
+           glyph_count[3],
+           glyph_unique, glyph_dupe,
+           mapping_total,
+           map_count[0], map_folded_count[0],
+           map_count[1], map_folded_count[1],
+           map_count[2], map_folded_count[2],
+           map_count[3], map_folded_count[3],
+           mapping_unique, mapping_dupe);
+}
+
 int
 main(int argc, char *argv[])
 {
-       int ch;
+       int ch, val, verbose = 0;
 
        assert(sizeof(struct file_header) == 32);
        assert(sizeof(struct file_mapping) == 8);
@@ -461,10 +498,23 @@ main(int argc, char *argv[])
        while ((ch = getopt(argc, argv, "h:w:")) != -1) {
                switch (ch) {
                case 'h':
-                       height = atoi(optarg);
+                       val = atoi(optarg);
+                       if (val <= 0 || val > 128) {
+                               errx(1, "Invalid height %d", val);
+                               return (1);
+                       }
+                       height = val;
+                       break;
+               case 'v':
+                       verbose = 1;
                        break;
                case 'w':
-                       width = atoi(optarg);
+                       val = atoi(optarg);
+                       if (val <= 0 || val > 128) {
+                               errx(1, "Invalid width %d", val);
+                               return (1);
+                       }
+                       width = val;
                        break;
                case '?':
                default:
@@ -496,39 +546,9 @@ main(int argc, char *argv[])
        fold_mappings(3);
        if (write_fnt(argv[0]) != 0)
                return (1);
-       
-       printf(
-"Statistics:\n"
-"- glyph_total:                 %5u\n"
-"- glyph_normal:                %5u\n"
-"- glyph_normal_right:          %5u\n"
-"- glyph_bold:                  %5u\n"
-"- glyph_bold_right:            %5u\n"
-"- glyph_unique:                %5u\n"
-"- glyph_dupe:                  %5u\n"
-"- mapping_total:               %5u\n"
-"- mapping_normal:              %5u\n"
-"- mapping_normal_folded:       %5u\n"
-"- mapping_normal_right:        %5u\n"
-"- mapping_normal_right_folded: %5u\n"
-"- mapping_bold:                %5u\n"
-"- mapping_bold_folded:         %5u\n"
-"- mapping_bold_right:          %5u\n"
-"- mapping_bold_right_folded:   %5u\n"
-"- mapping_unique:              %5u\n"
-"- mapping_dupe:                %5u\n",
-           glyph_total,
-           glyph_count[0],
-           glyph_count[1],
-           glyph_count[2],
-           glyph_count[3],
-           glyph_unique, glyph_dupe,
-           mapping_total,
-           map_count[0], map_folded_count[0],
-           map_count[1], map_folded_count[1],
-           map_count[2], map_folded_count[2],
-           map_count[3], map_folded_count[3],
-           mapping_unique, mapping_dupe);
-       
+
+       if (verbose)
+               print_font_info();
+
        return (0);
 }
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to