]> git.pond.sub.org Git - empserver/blobdiff - src/lib/common/xdump.c
Fix trailing whitespace
[empserver] / src / lib / common / xdump.c
index c29c216faf8b5bc3d363987266a72bb9fbdd401a..5d131c933973b355fade05cba03f43767fb71911 100644 (file)
@@ -26,7 +26,7 @@
  *  ---
  *
  *  xdump.c: Extended dumps
- * 
+ *
  *  Known contributors to this file:
  *     Markus Armbruster, 2004-2008
  */
@@ -82,7 +82,8 @@
 #include "xdump.h"
 
 /*
- * Initialize XD to dump for country CNUM.
+ * Initialize XD.
+ * Translate dump for country CNUM, except when CNUM is NATID_BAD.
  * If HUMAN, dump in human-readable format.
  * Dump is to be delivered through callback PR.
  * Return XD.
@@ -91,7 +92,7 @@ struct xdstr *
 xdinit(struct xdstr *xd, natid cnum, int human, void (*pr)(char *fmt, ...))
 {
     xd->cnum = cnum;
-    xd->divine = getnatp(cnum)->nat_stat == STAT_GOD;
+    xd->divine = cnum == NATID_BAD || getnatp(cnum)->nat_stat == STAT_GOD;
     xd->human = human;
     xd->pr = pr;
     return xd;
@@ -104,7 +105,7 @@ xdinit(struct xdstr *xd, natid cnum, int human, void (*pr)(char *fmt, ...))
  * PTR points to the context object.
  * IDX is the index within the attribute.
  */
-struct valstr *
+static struct valstr *
 xdeval(struct valstr *val, struct xdstr *xd,
        struct castr *ca, void *ptr, int idx)
 {
@@ -182,7 +183,7 @@ xdprsym(struct xdstr *xd, int key, int type, char *sep)
     char *sym = symbol_by_value(key, ef_ptr(type, 0));
 
     if (CANT_HAPPEN(!sym))
-       xd->pr("%s%ld", sep, key);
+       xd->pr("%s%d", sep, key);
     else {
        xd->pr("%s", sep);
        xdpresc(xd, sym, INT_MAX);
@@ -196,10 +197,10 @@ xdprsym(struct xdstr *xd, int key, int type, char *sep)
  * CA describes the field from which the value was fetched.
  */
 static char *
-xdprval_sym(struct xdstr *xd, struct valstr *val, struct castr *ca, char *sep)
+xdprval_sym(struct xdstr *xd, struct valstr *val, struct castr *ca,
+           char *sep)
 {
     unsigned long bit;
-    struct castr *ca_sym = ef_cadef(ca->ca_table);
 
     if (CANT_HAPPEN(val->val_cat != NSC_VAL)) {
        xd->pr("%snil", sep);
@@ -207,7 +208,7 @@ xdprval_sym(struct xdstr *xd, struct valstr *val, struct castr *ca, char *sep)
     }
 
     if (!xd->human || val->val_type != NSC_LONG
-       || ca->ca_table == EF_BAD || ca_sym != symbol_ca)
+       || ca->ca_table == EF_BAD || ef_cadef(ca->ca_table) != symbol_ca)
        return xdprval_nosym(xd, val, sep);
 
     if (ca->ca_flags & NSC_BITS) {
@@ -224,18 +225,6 @@ xdprval_sym(struct xdstr *xd, struct valstr *val, struct castr *ca, char *sep)
     return xdprsym(xd, val->val_as.lng, ca->ca_table, sep);
 }
 
-/*
- * Dump VAL prefixed with SEP to XD, return " ".
- * XD must not be human-readable.
- * VAL must be evaluated.
- */
-char *
-xdprval(struct xdstr *xd, struct valstr *val, char *sep)
-{
-    CANT_HAPPEN(xd->human);
-    return xdprval_nosym(xd, val, sep);
-}
-
 /*
  * Dump field values of a context object to XD.
  * CA[] describes fields.
@@ -322,7 +311,7 @@ xdftr(struct xdstr *xd, int n)
 
 /*
  * Dump meta-data for items of type TYPE to XD.
- * Return RET_OK.
+ * Return RET_SYN when TYPE doesn't have meta-data, else RET_OK.
  */
 int
 xdmeta(struct xdstr *xd, int type)