]> git.pond.sub.org Git - empserver/commitdiff
actofgod: Simplify fmtflags()'s error checking
authorMarkus Armbruster <armbru@pond.sub.org>
Sun, 25 Aug 2013 07:51:39 +0000 (09:51 +0200)
committerMarkus Armbruster <armbru@pond.sub.org>
Sun, 25 Aug 2013 07:51:39 +0000 (09:51 +0200)
Permit finding length by passing no buffer.  Not currently used.

Oops at most once.

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

index e564eaf093b00a166d352f795c980e25216743fb..63a70f635ae48312a407c88ed10a6db1a6f45860 100644 (file)
@@ -210,7 +210,7 @@ fmtflags (char *buf, size_t sz, int flags, struct symbol symtab[], int all)
     int n, i;
     char *p;
 
-    if (sz)
+    if (buf && sz)
        buf[0] = 0;
     n = 0;
     for (i = 0; i < 32; i++) {
@@ -221,12 +221,12 @@ fmtflags (char *buf, size_t sz, int flags, struct symbol symtab[], int all)
            n += snprintf(buf + n, sz - n, "%s%s", sep, p);
        else if (all)
            n += snprintf(buf + n, sz - n, "%s#%d", sep, i);
-       if (CANT_HAPPEN((size_t)n >= sz)) {
-           buf = NULL;
+       if ((size_t)n >= sz)
            sz = n;
-       }
        sep = ", ";
     }
+
+    CANT_HAPPEN((size_t)n >= sz && buf);
     return n;
 }