]> git.pond.sub.org Git - empserver/commitdiff
symbol: Make actofgod.c's fmtflags() public as symbol_set_fmt()
authorMarkus Armbruster <armbru@pond.sub.org>
Sat, 10 Jan 2015 07:29:55 +0000 (08:29 +0100)
committerMarkus Armbruster <armbru@pond.sub.org>
Mon, 2 Mar 2015 07:20:49 +0000 (08:20 +0100)
Move to nstreval.c, rename, external linkage.

Signed-off-by: Markus Armbruster <armbru@pond.sub.org>
include/nsc.h
src/lib/common/nstreval.c
src/lib/subs/actofgod.c

index 65e874e1911a097f327d1303f5d4c308de036775..43bd4afa0f9e17b1493cbcb6a7cf5319f994d2c5 100644 (file)
@@ -28,7 +28,7 @@
  *
  *  Known contributors to this file:
  *     Dave Pare, 1989
- *     Markus Armbruster, 2004-2014
+ *     Markus Armbruster, 2004-2015
  */
 
 #ifndef NSC_H
@@ -298,6 +298,7 @@ extern struct valstr *nstr_eval(struct valstr *, natid, void *,
                                enum nsc_type);
 extern int nstr_promote(int);
 extern char *symbol_by_value(int, struct symbol *);
+extern int symbol_set_fmt(char *, size_t, int, struct symbol *, int);
 /* src/lib/global/nsc.c */
 extern void nsc_init(void);
 /* src/lib/subs/nxtitem.c */
index b7e5cf5132c706bbfcf2893b0596b3a09fc93f66..3e49b4789f5b3dd24e4c6120bf44d325b1caba78 100644 (file)
  *  Known contributors to this file:
  *     Dave Pare, 1989
  *     Steve McClure, 1997
- *     Markus Armbruster, 2004-2014
+ *     Markus Armbruster, 2004-2015
  */
 
 #include <config.h>
 
 #include <limits.h>
+#include <stdio.h>
 #include <string.h>
 #include "file.h"
 #include "nat.h"
@@ -258,3 +259,31 @@ symbol_by_value(int key, struct symbol *table)
 
     return NULL;
 }
+
+int
+symbol_set_fmt(char *buf, size_t sz, int flags, struct symbol symtab[],
+              int all)
+{
+    char *sep = "";
+    int n, i;
+    char *p;
+
+    if (buf && sz)
+       buf[0] = 0;
+    n = 0;
+    for (i = 0; i < 32; i++) {
+       if (!(flags & bit(i)))
+           continue;
+       p = symbol_by_value(bit(i), symtab);
+       if (p)
+           n += snprintf(buf + n, sz - n, "%s%s", sep, p);
+       else if (all)
+           n += snprintf(buf + n, sz - n, "%s#%d", sep, i);
+       if ((size_t)n >= sz)
+           sz = n;
+       sep = ", ";
+    }
+
+    CANT_HAPPEN((size_t)n >= sz && buf);
+    return n;
+}
index 792bc7027b2d1a7857529686acaf7aa51aa96bf2..b94ee296b73f57643cec4808988e5dd274040e15 100644 (file)
@@ -27,7 +27,7 @@
  *  actofgod.c: Deity meddling subroutines
  *
  *  Known contributors to this file:
- *     Markus Armbruster, 2013
+ *     Markus Armbruster, 2013-2015
  */
 
 #include <config.h>
@@ -203,33 +203,6 @@ divine_unload(struct empobj *unit, int type, int uid)
     divine_load_unload(unit, type, uid, "unloaded from");
 }
 
-static int
-fmtflags (char *buf, size_t sz, int flags, struct symbol symtab[], int all)
-{
-    char *sep = "";
-    int n, i;
-    char *p;
-
-    if (buf && sz)
-       buf[0] = 0;
-    n = 0;
-    for (i = 0; i < 32; i++) {
-       if (!(flags & bit(i)))
-           continue;
-       p = symbol_by_value(bit(i), symtab);
-       if (p)
-           n += snprintf(buf + n, sz - n, "%s%s", sep, p);
-       else if (all)
-           n += snprintf(buf + n, sz - n, "%s#%d", sep, i);
-       if ((size_t)n >= sz)
-           sz = n;
-       sep = ", ";
-    }
-
-    CANT_HAPPEN((size_t)n >= sz && buf);
-    return n;
-}
-
 void
 divine_flag_change(struct empobj *unit, char *name,
                   int old, int new, struct symbol sym[])
@@ -241,16 +214,16 @@ divine_flag_change(struct empobj *unit, char *name,
        return;
     }
 
-    fmtflags(set, sizeof(set), new & ~old, sym, 1);
-    fmtflags(clr, sizeof(clr), old & ~new, sym, 1);
+    symbol_set_fmt(set, sizeof(set), new & ~old, sym, 1);
+    symbol_set_fmt(clr, sizeof(clr), old & ~new, sym, 1);
     pr("%s of %s changed: %s%s%s%s%s\n",
        name, unit_nameof(unit),
        set, set[0] ? " set" : "",
        set[0] && clr[0] ? ", and " : "",
        clr, clr[0] ? " cleared" : "");
 
-    if (fmtflags(set, sizeof(set), new & ~old, sym, 0)
-       + fmtflags(clr, sizeof(clr), old & ~new, sym, 0))
+    if (symbol_set_fmt(set, sizeof(set), new & ~old, sym, 0)
+       + symbol_set_fmt(clr, sizeof(clr), old & ~new, sym, 0))
        wu(0, unit->own, "%s of %s changed by an act of %s: %s%s%s%s%s\n",
           name, unit_nameof(unit), cname(player->cnum),
           set, set[0] ? " set" : "",