symbol: New symbol_set_fmt() parameter sep, use for show
Signed-off-by: Markus Armbruster <armbru@pond.sub.org>
This commit is contained in:
parent
9fc0719e54
commit
e92a522731
4 changed files with 16 additions and 20 deletions
|
@ -298,7 +298,8 @@ 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);
|
||||
extern int symbol_set_fmt(char *, size_t, int, struct symbol *,
|
||||
char *, int);
|
||||
/* src/lib/global/nsc.c */
|
||||
extern void nsc_init(void);
|
||||
/* src/lib/subs/nxtitem.c */
|
||||
|
|
|
@ -262,9 +262,9 @@ symbol_by_value(int key, struct symbol *table)
|
|||
|
||||
int
|
||||
symbol_set_fmt(char *buf, size_t sz, int flags, struct symbol symtab[],
|
||||
int all)
|
||||
char *sep, int all)
|
||||
{
|
||||
char *sep = "";
|
||||
char *pfx = "";
|
||||
int n, i;
|
||||
char *p;
|
||||
|
||||
|
@ -276,12 +276,12 @@ symbol_set_fmt(char *buf, size_t sz, int flags, struct symbol symtab[],
|
|||
continue;
|
||||
p = symbol_by_value(bit(i), symtab);
|
||||
if (p)
|
||||
n += snprintf(buf + n, sz - n, "%s%s", sep, p);
|
||||
n += snprintf(buf + n, sz - n, "%s%s", pfx, p);
|
||||
else if (all)
|
||||
n += snprintf(buf + n, sz - n, "%s#%d", sep, i);
|
||||
n += snprintf(buf + n, sz - n, "%s#%d", pfx, i);
|
||||
if ((size_t)n >= sz)
|
||||
sz = n;
|
||||
sep = ", ";
|
||||
pfx = sep;
|
||||
}
|
||||
|
||||
CANT_HAPPEN((size_t)n >= sz && buf);
|
||||
|
|
|
@ -214,16 +214,16 @@ divine_flag_change(struct empobj *unit, char *name,
|
|||
return;
|
||||
}
|
||||
|
||||
symbol_set_fmt(set, sizeof(set), new & ~old, sym, 1);
|
||||
symbol_set_fmt(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 (symbol_set_fmt(set, sizeof(set), new & ~old, sym, 0)
|
||||
+ symbol_set_fmt(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" : "",
|
||||
|
|
|
@ -31,7 +31,7 @@
|
|||
* Jeff Bailey, 1990
|
||||
* Steve McClure, 1996
|
||||
* Ron Koenderink, 2005-2009
|
||||
* Markus Armbruster, 2006-2011
|
||||
* Markus Armbruster, 2006-2015
|
||||
*/
|
||||
|
||||
#include <config.h>
|
||||
|
@ -658,14 +658,9 @@ show_load(short item[])
|
|||
static void
|
||||
show_capab(int flags, struct symbol *table)
|
||||
{
|
||||
int i;
|
||||
char *p;
|
||||
char buf[1024];
|
||||
|
||||
for (i = 0; i < 32; i++) {
|
||||
if (!(flags & bit(i)))
|
||||
continue;
|
||||
p = symbol_by_value(bit(i), table);
|
||||
if (p)
|
||||
pr(" %s", p);
|
||||
}
|
||||
symbol_set_fmt(buf, sizeof(buf), flags, table, " ", 0);
|
||||
if (*buf)
|
||||
pr(" %s", buf);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue