ncurses 6.0 - patch 20160820
[ncurses.git] / progs / infocmp.c
index d3fdc526175e797ed59ed45f72ca9445280a0c8c..62773d634abc1e7c2ae9acfb64f0a8e94c0d77a8 100644 (file)
@@ -42,7 +42,7 @@
 
 #include <dump_entry.h>
 
-MODULE_ID("$Id: infocmp.c,v 1.133 2015/05/27 00:57:41 tom Exp $")
+MODULE_ID("$Id: infocmp.c,v 1.136 2015/09/05 15:49:57 tom Exp $")
 
 #define L_CURL "{"
 #define R_CURL "}"
@@ -989,7 +989,8 @@ file_comparison(int argc, char *argv[])
     int i, n;
 
     memset(heads, 0, sizeof(heads));
-    dump_init((char *) 0, F_LITERAL, S_TERMINFO, 0, 65535, itrace, FALSE, FALSE);
+    dump_init((char *) 0, F_LITERAL, S_TERMINFO, 0, 65535, itrace, FALSE,
+             FALSE, FALSE);
 
     for (n = 0; n < argc && n < MAXCOMPARE; n++) {
        if (freopen(argv[n], "r", stdin) == 0)
@@ -1173,15 +1174,17 @@ usage(void)
     {
        "  -0    print single-row"
        ,"  -1    print single-column"
-       ,"  -K    use termcap-names and BSD syntax"
        ,"  -C    use termcap-names"
+       ,"  -D    print database locations"
+       ,"  -E    format output as C tables"
        ,"  -F    compare terminfo-files"
+       ,"  -G    format %{number} to %'char'"
        ,"  -I    use terminfo-names"
+       ,"  -K    use termcap-names and BSD syntax"
        ,"  -L    use long names"
        ,"  -R subset (see manpage)"
        ,"  -T    eliminate size limits (test)"
        ,"  -U    do not post-process entries"
-       ,"  -D    print database locations"
        ,"  -V    print version"
 #if NCURSES_XNAMES
        ,"  -a    with -F, list commented-out caps"
@@ -1189,14 +1192,13 @@ usage(void)
        ,"  -c    list common capabilities"
        ,"  -d    list different capabilities"
        ,"  -e    format output for C initializer"
-       ,"  -E    format output as C tables"
        ,"  -f    with -1, format complex strings"
-       ,"  -G    format %{number} to %'char'"
        ,"  -g    format %'char' to %{number}"
        ,"  -i    analyze initialization/reset"
        ,"  -l    output terminfo names"
        ,"  -n    list capabilities in neither"
        ,"  -p    ignore padding specifiers"
+       ,"  -Q number  dump compiled description"
        ,"  -q    brief listing, removes headers"
        ,"  -r    with -C, output in termcap form"
        ,"  -r    with -F, resolve use-references"
@@ -1506,6 +1508,7 @@ main(int argc, char *argv[])
     int initdump = 0;
     bool init_analyze = FALSE;
     bool suppress_untranslatable = FALSE;
+    int quickdump = 0;
 
     /* where is the terminfo database location going to default to? */
     restdir = firstdir = 0;
@@ -1527,7 +1530,7 @@ main(int argc, char *argv[])
 
     while ((c = getopt(argc,
                       argv,
-                      "01A:aB:CcDdEeFfGgIiKLlnpqR:rs:TtUuVv:w:x")) != -1) {
+                      "01A:aB:CcDdEeFfGgIiKLlnpQ:qR:rs:TtUuVv:w:x")) != -1) {
        switch (c) {
        case '0':
            mwidth = 65535;
@@ -1628,6 +1631,10 @@ main(int argc, char *argv[])
            ignorepads = TRUE;
            break;
 
+       case 'Q':
+           quickdump = optarg_to_number();
+           break;
+
        case 'q':
            quiet = TRUE;
            s_absent = "-";
@@ -1751,7 +1758,7 @@ main(int argc, char *argv[])
 
     /* set up for display */
     dump_init(tversion, outform, sortmode, mwidth, mheight, itrace,
-             formatted, FALSE);
+             formatted, FALSE, quickdump);
 
     if (!filecompare) {
        /* grab the entries */
@@ -1852,8 +1859,10 @@ main(int argc, char *argv[])
                                   "%s: about to dump %s\n",
                                   _nc_progname,
                                   tname[0]);
-               (void) printf("#\tReconstructed via infocmp from file: %s\n",
-                             tfile[0]);
+               if (!quiet)
+                   (void)
+                                 printf("#\tReconstructed via infocmp from file: %s\n",
+                                 tfile[0]);
                dump_entry(&entries[0].tterm,
                           suppress_untranslatable,
                           limited,