changeset 2402:b7cd5dd0b82e

Merge one more change from th-libs args processing.
author Matti Hamalainen <ccr@tnsp.org>
date Sun, 12 Jan 2020 20:50:45 +0200
parents 263093248f26
children 6e86a048a760
files src/dmargs.c src/dmargs.h tests/blittest.c tests/dzlibtest.c tools/64vw.c tools/data2inc.c tools/dumpmod.c tools/fanalyze.c tools/fontconv.c tools/gentab.c tools/gfxconv.c tools/mod2wav.c tools/objlink.c tools/packed.c tools/ppl.c tools/xm2jss.c
diffstat 16 files changed, 39 insertions(+), 37 deletions(-) [+]
line wrap: on
line diff
--- a/src/dmargs.c	Sun Jan 12 19:32:29 2020 +0200
+++ b/src/dmargs.c	Sun Jan 12 20:50:45 2020 +0200
@@ -254,7 +254,9 @@
 }
 
 
-static void dmArgsPrintHelpPrintItem(FILE *fh, const DMOptArg *opt, int *lineWidth, const int maxLineWidth, const BOOL doPrint)
+static void dmArgsPrintHelpPrintItem(FILE *fh, const DMOptArg *opt,
+    int *optWidth, const int maxOptWidth, const int termWidth,
+    const BOOL doPrint)
 {
     const char *arg = dmArgsGetOptArg(opt);
     char fmtBuf[32];
@@ -274,16 +276,16 @@
                 opt->o_short);
         }
 
-        *lineWidth = strlen(fmtBuf);
+        *optWidth = strlen(fmtBuf);
         if (doPrint)
-            padWidth = hasLongOpt ? 2 : maxLineWidth - *lineWidth;
+            padWidth = hasLongOpt ? 2 : maxOptWidth - *optWidth;
         else
             padWidth = 2;
     }
     else
     {
         fmtBuf[0] = 0;
-        *lineWidth = 0;
+        *optWidth = 0;
         padWidth = 4 + 2;
     }
 
@@ -292,7 +294,7 @@
         fputs(fmtBuf, fh);
         dmPrintPad(fh, padWidth, ' ');
     }
-    *lineWidth += padWidth;
+    *optWidth += padWidth;
 
     if (hasLongOpt)
     {
@@ -307,19 +309,19 @@
                 opt->o_long);
         }
 
-        *lineWidth += strlen(fmtBuf);
+        *optWidth += strlen(fmtBuf);
     }
     else
         fmtBuf[0] = 0;
 
     if (doPrint)
     {
-        padWidth = hasLongOpt ? maxLineWidth - *lineWidth : 0;
-        *lineWidth += padWidth;
+        padWidth = hasLongOpt ? maxOptWidth - *optWidth : 0;
+        *optWidth += padWidth;
 
         fputs(fmtBuf, fh);
         dmPrintPad(fh, padWidth, ' ');
-        dmPrintWrap(fh, *lineWidth, *lineWidth, 79, opt->desc);
+        dmPrintWrap(fh, *optWidth, *optWidth, termWidth, opt->desc);
     }
 }
 
@@ -330,30 +332,30 @@
  * @param opts options list array
  * @param nopts number of elements in options list array
  * @param flags flags (currently unused)
+ * @param width width of the terminal or desired width of the print out
  */
 void dmArgsPrintHelp(FILE *fh, const DMOptArg *opts,
-    const int nopts, const int flags)
+    const int nopts, const int flags, const int width)
 {
-    int index, maxLineWidth;
-
+    int index, maxOptWidth;
     (void) flags;
 
     // Determine width of the options and arguments
-    maxLineWidth = 0;
+    maxOptWidth = 0;
     for (index = 0; index < nopts; index++)
     {
-        int lineWidth = 0;
-        dmArgsPrintHelpPrintItem(NULL, &opts[index], &lineWidth, 0, FALSE);
-        if (lineWidth > maxLineWidth)
-            maxLineWidth = lineWidth;
+        int optWidth = 0;
+        dmArgsPrintHelpPrintItem(NULL, &opts[index], &optWidth, 0, width, FALSE);
+        if (optWidth > maxOptWidth)
+            maxOptWidth = optWidth;
     }
 
-    maxLineWidth += 2;
+    maxOptWidth += 2;
 
     // Print out the formatted option list
     for (index = 0; index < nopts; index++)
     {
-        int lineWidth;
-        dmArgsPrintHelpPrintItem(fh, &opts[index], &lineWidth, maxLineWidth, TRUE);
+        int optWidth;
+        dmArgsPrintHelpPrintItem(fh, &opts[index], &optWidth, maxOptWidth, width, TRUE);
     }
 }
--- a/src/dmargs.h	Sun Jan 12 19:32:29 2020 +0200
+++ b/src/dmargs.h	Sun Jan 12 20:50:45 2020 +0200
@@ -51,10 +51,10 @@
          BOOL (*handle_other)(char *), const int flags);
 
 void     dmArgsPrintHelp(FILE *fh, const DMOptArg *opts,
-         const int nopts, const int flags);
+         const int nopts, const int flags, const int width);
 
-void     dmPrintWrap(FILE *fh, const int spad, const int rpad,
-         const int width, const char *str);
+void     dmPrintWrap(FILE *fh, const int spad,
+         const int rpad, const int width, const char *str);
 
 #ifdef __cplusplus
 }
--- a/tests/blittest.c	Sun Jan 12 19:32:29 2020 +0200
+++ b/tests/blittest.c	Sun Jan 12 20:50:45 2020 +0200
@@ -29,7 +29,7 @@
 
 void argShowHelp()
 {
-    dmArgsPrintHelp(stdout, optList, optListN, 0);
+    dmArgsPrintHelp(stdout, optList, optListN, 0, 80 - 2);
 }
 
 
--- a/tests/dzlibtest.c	Sun Jan 12 19:32:29 2020 +0200
+++ b/tests/dzlibtest.c	Sun Jan 12 20:50:45 2020 +0200
@@ -32,7 +32,7 @@
 void argShowHelp()
 {
     dmPrintBanner(stdout, dmProgName, "[options] [input filename] [output filename]");
-    dmArgsPrintHelp(stdout, optList, optListN, 0);
+    dmArgsPrintHelp(stdout, optList, optListN, 0, 80 - 2);
 }
 
 
--- a/tools/64vw.c	Sun Jan 12 19:32:29 2020 +0200
+++ b/tools/64vw.c	Sun Jan 12 20:50:45 2020 +0200
@@ -60,7 +60,7 @@
 void argShowHelp()
 {
     dmPrintBanner(stdout, dmProgName, "[options] <input image file(s)>");
-    dmArgsPrintHelp(stdout, optList, optListN, 0);
+    dmArgsPrintHelp(stdout, optList, optListN, 0, 80 - 2);
 
     fprintf(stdout,
     "\n"
--- a/tools/data2inc.c	Sun Jan 12 19:32:29 2020 +0200
+++ b/tools/data2inc.c	Sun Jan 12 20:50:45 2020 +0200
@@ -76,7 +76,7 @@
     dmPrintBanner(stdout, dmProgName,
     "[options] [sourcefile] [destfile]");
 
-    dmArgsPrintHelp(stdout, optList, optListN, 0);
+    dmArgsPrintHelp(stdout, optList, optListN, 0, 80 - 2);
 
     fprintf(stdout,
     "\n"
--- a/tools/dumpmod.c	Sun Jan 12 19:32:29 2020 +0200
+++ b/tools/dumpmod.c	Sun Jan 12 20:50:45 2020 +0200
@@ -38,7 +38,7 @@
 void argShowHelp()
 {
     dmPrintBanner(stdout, dmProgName, "[options] [modfile]");
-    dmArgsPrintHelp(stdout, optList, optListN, 0);
+    dmArgsPrintHelp(stdout, optList, optListN, 0, 80 - 2);
 }
 
 
--- a/tools/fanalyze.c	Sun Jan 12 19:32:29 2020 +0200
+++ b/tools/fanalyze.c	Sun Jan 12 20:50:45 2020 +0200
@@ -178,7 +178,7 @@
 void argShowHelp()
 {
     dmPrintBanner(stdout, dmProgName, "[options] <input file #1> <input file #2> [...]");
-    dmArgsPrintHelp(stdout, optList, optListN, 0);
+    dmArgsPrintHelp(stdout, optList, optListN, 0, 80 - 2);
 
     fprintf(stdout,
     "\n"
--- a/tools/fontconv.c	Sun Jan 12 19:32:29 2020 +0200
+++ b/tools/fontconv.c	Sun Jan 12 20:50:45 2020 +0200
@@ -44,7 +44,7 @@
             dmPrintBanner(stdout, dmProgName,
                 "[options] <sourcefile.(ttf|fnt|dmf|png)> <outputfile.dmf>");
 
-            dmArgsPrintHelp(stdout, optList, optListN, 0);
+            dmArgsPrintHelp(stdout, optList, optListN, 0, 80 - 2);
             printf(
             "\n"
             "This utility can be used to convert TSFONT files to bitmap DMFONT (DMF)\n"
--- a/tools/gentab.c	Sun Jan 12 19:32:29 2020 +0200
+++ b/tools/gentab.c	Sun Jan 12 20:50:45 2020 +0200
@@ -77,7 +77,7 @@
 {
     int index;
     dmPrintBanner(stdout, dmProgName, "[options]");
-    dmArgsPrintHelp(stdout, optList, optListN, 0);
+    dmArgsPrintHelp(stdout, optList, optListN, 0, 80 - 2);
 
     printf("\nAvailable types:\n");
     for (index = 0; index < MT_LAST; index++)
--- a/tools/gfxconv.c	Sun Jan 12 19:32:29 2020 +0200
+++ b/tools/gfxconv.c	Sun Jan 12 20:50:45 2020 +0200
@@ -216,7 +216,7 @@
 void argShowHelp()
 {
     dmPrintBanner(stdout, dmProgName, "[options] <input file>");
-    dmArgsPrintHelp(stdout, optList, optListN, 0);
+    dmArgsPrintHelp(stdout, optList, optListN, 0, 80 - 2);
 
     fprintf(stdout,
     "\n"
--- a/tools/mod2wav.c	Sun Jan 12 19:32:29 2020 +0200
+++ b/tools/mod2wav.c	Sun Jan 12 20:50:45 2020 +0200
@@ -90,7 +90,7 @@
             dmPrintBanner(stdout, dmProgName,
                 "[options] [sourcefile] [destfile.wav]");
 
-            dmArgsPrintHelp(stdout, optList, optListN, 0);
+            dmArgsPrintHelp(stdout, optList, optListN, 0, 80 - 2);
             exit(0);
             break;
 
--- a/tools/objlink.c	Sun Jan 12 19:32:29 2020 +0200
+++ b/tools/objlink.c	Sun Jan 12 20:50:45 2020 +0200
@@ -170,7 +170,7 @@
 void argShowHelp()
 {
     dmPrintBanner(stdout, dmProgName, "[options]");
-    dmArgsPrintHelp(stdout, optList, optListN, 0);
+    dmArgsPrintHelp(stdout, optList, optListN, 0, 80 - 2);
 
     printf(
     "\n"
--- a/tools/packed.c	Sun Jan 12 19:32:29 2020 +0200
+++ b/tools/packed.c	Sun Jan 12 20:50:45 2020 +0200
@@ -80,7 +80,7 @@
 
     fprintf(stdout, "\n");
 
-    dmArgsPrintHelp(stdout, optList, optListN, 0);
+    dmArgsPrintHelp(stdout, optList, optListN, 0, 80 - 2);
 
     fprintf(stdout,
         "\n"
--- a/tools/ppl.c	Sun Jan 12 19:32:29 2020 +0200
+++ b/tools/ppl.c	Sun Jan 12 20:50:45 2020 +0200
@@ -91,7 +91,7 @@
 void argShowHelp()
 {
     dmPrintBanner(stdout, dmProgName, "[options] <module>");
-    dmArgsPrintHelp(stdout, optList, optListN, 0);
+    dmArgsPrintHelp(stdout, optList, optListN, 0, 80 - 2);
 }
 
 
--- a/tools/xm2jss.c	Sun Jan 12 19:32:29 2020 +0200
+++ b/tools/xm2jss.c	Sun Jan 12 20:50:45 2020 +0200
@@ -65,7 +65,7 @@
 void argShowHelp()
 {
     dmPrintBanner(stdout, dmProgName, "[options] <input.xm> <output.jmod>");
-    dmArgsPrintHelp(stdout, optList, optListN, 0);
+    dmArgsPrintHelp(stdout, optList, optListN, 0, 80 - 2);
 
     printf("\n"
     "Pattern storage modes:\n");