]> git.pond.sub.org Git - empserver/commitdiff
(xdopt,xdver,xdump): Add meta data for opt and ver.
authorRon Koenderink <rkoenderink@yahoo.ca>
Sat, 5 Nov 2005 01:49:47 +0000 (01:49 +0000)
committerRon Koenderink <rkoenderink@yahoo.ca>
Sat, 5 Nov 2005 01:49:47 +0000 (01:49 +0000)
src/lib/commands/xdump.c

index afd5f5dad84f52b2c062ca2ab0389493ad2f3d2d..66f77f4373d9f7e6d1d1114590ae302c4616cffa 100644 (file)
@@ -274,10 +274,27 @@ xdmeta(int type)
 
 /* Dump Options[], return RET_OK.  */
 static int
-xdopt(void)
+xdopt(int meta)
 {
     int i;
     char *sep;
+    struct castr ca;
+
+    if (meta) {
+       xdhdr("options", mdchr_ca, 1);
+       for (i = 0; Options[i].opt_key; ++i) {
+           ca.ca_type = NSC_INT;
+           ca.ca_flags = 0;
+           ca.ca_len = 0;
+           ca.ca_off = 0;
+           ca.ca_name = Options[i].opt_key;
+           ca.ca_table = EF_BAD;
+           xdflds(mdchr_ca, &ca);
+           pr("\n");
+       }
+       xdftr(i);
+       return RET_OK;
+    }
 
     xdhdr1("options" , 0);
 
@@ -301,12 +318,34 @@ xdopt(void)
 }
 
 static int
-xdver(void)
+xdver(int meta)
 {
     struct keymatch *kp;
     char *sep;
+    int n;
+    struct castr ca;
     struct valstr val;
 
+    if (meta) {
+       xdhdr("version", mdchr_ca, 1);
+       n = 0;
+       for (kp = configkeys; kp->km_key; ++kp) {
+           if (kp->km_type != NSC_NOTYPE && !(kp->km_flags & KM_INTERNAL)) {
+               ca.ca_type = kp->km_type;
+               ca.ca_flags = 0;
+               ca.ca_len = 0;
+               ca.ca_off = 0;
+               ca.ca_name = kp->km_key;
+               ca.ca_table = EF_BAD;
+               xdflds(mdchr_ca, &ca);
+               pr("\n");
+               n++;
+           }
+       }
+       xdftr(n);
+       return RET_OK;
+    }
+
     xdhdr1("version", 0);
 
     sep = "";
@@ -361,9 +400,9 @@ xdump(void)
        else
            return xditem(type, player->argp[2]);
     } else if (!strncmp(p, "opt", strlen(p))) {
-       return xdopt();
+       return xdopt(meta);
     } else if (!strncmp(p, "ver", strlen(p))) {
-       return xdver();
+       return xdver(meta);
     }
 
     return RET_SYN;