tLet the user configure the displayed menu items - sacc - sacc (saccomys): simple gopher client.
Log
Files
Refs
LICENSE
---
commit 80db85ac77a36eb3f591ea7f38816b6339607821
parent 0cb0ce0bb84aca55dd9d66d22fd6550ee0a58ada
Author: Quentin Rameau 
Date:   Mon, 13 Aug 2018 11:08:36 +0200

Let the user configure the displayed menu items

Diffstat:
  M common.h                            |      21 +++++++++++++++++++++
  M config.def.h                        |      22 ++++++++++++++++++++++
  M sacc.c                              |      37 +++++++++++++++----------------
  M ui_ti.c                             |       2 +-
  M ui_txt.c                            |       2 +-

5 files changed, 63 insertions(+), 21 deletions(-)
---
diff --git a/common.h b/common.h
t@@ -3,6 +3,27 @@
 typedef struct item Item;
 typedef struct dir Dir;
 
+enum {
+        TXT,
+        DIR,
+        CSO,
+        ERR,
+        MAC,
+        DOS,
+        UUE,
+        IND,
+        TLN,
+        BIN,
+        MIR,
+        IBM,
+        GIF,
+        IMG,
+        URL,
+        INF,
+        UNK,
+        BRK,
+};
+
 struct item {
         char type;
         char redtype;
diff --git a/config.def.h b/config.def.h
t@@ -25,3 +25,25 @@ static char *plumber = "xdg-open";
 
 /* temporary directory template (must end with six 'X' characters) */
 static char tmpdir[] = "/tmp/sacc-XXXXXX";
+
+/* menu items strings */
+static char *typestr[] = {
+        [TXT] = "Txt+",
+        [DIR] = "Dir+",
+        [CSO] = "CSO|",
+        [ERR] = "Err|",
+        [MAC] = "Mac+",
+        [DOS] = "DOS+",
+        [UUE] = "UUE+",
+        [IND] = "Ind+",
+        [TLN] = "Tln|",
+        [BIN] = "Bin+",
+        [MIR] = "Mir+",
+        [IBM] = "IBM|",
+        [GIF] = "GIF+",
+        [IMG] = "Img+",
+        [URL] = "URL+",
+        [INF] = "   |",
+        [UNK] = " ? +",
+        [BRK] = "!  |", /* malformed entry */
+};
diff --git a/sacc.c b/sacc.c
t@@ -19,7 +19,6 @@
 #include 
 
 #include "common.h"
-
 #include "config.h"
 
 static char *mainurl;
t@@ -223,43 +222,43 @@ typedisplay(char t)
 {
         switch (t) {
         case '0':
-                return "Text+";
+                return typestr[TXT];
         case '1':
-                return "Dir +";
+                return typestr[DIR];
         case '2':
-                return "CSO |";
+                return typestr[CSO];
         case '3':
-                return "Err |";
+                return typestr[ERR];
         case '4':
-                return "Macf+";
+                return typestr[MAC];
         case '5':
-                return "DOSf+";
+                return typestr[DOS];
         case '6':
-                return "UUEf+";
+                return typestr[UUE];
         case '7':
-                return "Find+";
+                return typestr[IND];
         case '8':
-                return "Tlnt+";
+                return typestr[TLN];
         case '9':
-                return "Binf+";
+                return typestr[BIN];
         case '+':
-                return "Mirr+";
+                return typestr[MIR];
         case 'T':
-                return "IBMt|";
+                return typestr[IBM];
         case 'g':
-                return "GIF +";
+                return typestr[GIF];
         case 'I':
-                return "Img +";
+                return typestr[IMG];
         case 'h':
-                return "HTML+";
+                return typestr[URL];
         case 'i':
-                return "    |";
+                return typestr[INF];
         default:
                 /* "Characters '0' through 'Z' are reserved." (ASCII) */
                 if (t >= '0' && t <= 'Z')
-                        return "!   |";
+                        return typestr[BRK];
                 else
-                        return "UNKN|";
+                        return typestr[UNK];
         }
 }
 
diff --git a/ui_ti.c b/ui_ti.c
t@@ -7,8 +7,8 @@
 #include 
 #include 
 
-#include "config.h"
 #include "common.h"
+#include "config.h"
 
 #define C(c) #c
 #define S(c) C(c)
diff --git a/ui_txt.c b/ui_txt.c
t@@ -103,7 +103,7 @@ printstatus(Item *item, char c)
               "%3lld%%%*c %s/%c%s [%c]: ";
         if (snprintf(bufout, sizeof(bufout), fmt,
                      (printoff + lines-1 >= nitems) ? 100 :
-                     (printoff + lines) * 100 / nitems, ndigits(nitems)+2, '|',
+                     (printoff + lines) * 100 / nitems, ndigits(nitems)+1, '|',
                      item->host, item->type, item->selector, c, item->port)
             >= sizeof(bufout))
                 bufout[sizeof(bufout)-1] = '\0';