Fix qfo global dumping.

This commit is contained in:
Bill Currie 2011-02-25 09:39:07 +09:00
parent 65c7d421c6
commit f43eda63fe
2 changed files with 32 additions and 25 deletions

View file

@ -205,38 +205,44 @@ dump_functions (progs_t *pr)
}
}
//static const char *
//flags_string (pr_uint_t flags)
//{
// static dstring_t *str;
// if (!str)
// str = dstring_newstr ();
// dstring_clearstr (str);
// dstring_appendstr (str, (flags & QFOD_INITIALIZED) ? "I" : "-");
// dstring_appendstr (str, (flags & QFOD_CONSTANT) ? "C" : "-");
// dstring_appendstr (str, (flags & QFOD_ABSOLUTE) ? "A" : "-");
// dstring_appendstr (str, (flags & QFOD_GLOBAL) ? "G" : "-");
// dstring_appendstr (str, (flags & QFOD_EXTERNAL) ? "E" : "-");
// dstring_appendstr (str, (flags & QFOD_LOCAL) ? "L" : "-");
// dstring_appendstr (str, (flags & QFOD_SYSTEM) ? "S" : "-");
// dstring_appendstr (str, (flags & QFOD_NOSAVE) ? "N" : "-");
// return str->str;
//}
static const char *
flags_string (pr_uint_t flags)
{
static dstring_t *str;
if (!str)
str = dstring_newstr ();
dstring_clearstr (str);
dstring_appendstr (str, (flags & QFOD_INITIALIZED) ? "I" : "-");
dstring_appendstr (str, (flags & QFOD_CONSTANT) ? "C" : "-");
dstring_appendstr (str, (flags & QFOD_ABSOLUTE) ? "A" : "-");
dstring_appendstr (str, (flags & QFOD_GLOBAL) ? "G" : "-");
dstring_appendstr (str, (flags & QFOD_EXTERNAL) ? "E" : "-");
dstring_appendstr (str, (flags & QFOD_LOCAL) ? "L" : "-");
dstring_appendstr (str, (flags & QFOD_SYSTEM) ? "S" : "-");
dstring_appendstr (str, (flags & QFOD_NOSAVE) ? "N" : "-");
return str->str;
}
void
qfo_globals (qfo_t *qfo)
{
qfo_def_t *def;
int i;
int space;
int count = 0;
for (i = 0; i < qfo->num_defs; i++) {
def = &qfo->defs[i];
// printf ("%-5d %-5d %s %s %s", i, def->offset, flags_string (def->flags),
// QFO_GETSTR (qfo, def->name),
// QFO_TYPESTR (qfo, def->full_type));
// if (!(def->flags & QFOD_EXTERNAL))
// printf (" %d", qfo->data[def->offset].integer_var);
puts ("");
for (space = 0; space < qfo->num_spaces; space++) {
for (i = 0; i < qfo->spaces[space].num_defs; i++, count++) {
def = &qfo->spaces[space].defs[i];
printf ("%-5d %2d:%-5x %s %s %s", count, space, def->offset,
flags_string (def->flags),
QFO_GETSTR (qfo, def->name),
QFO_TYPESTR (qfo, def->type));
if (!(def->flags & QFOD_EXTERNAL))
printf (" %d",
qfo->spaces[space].d.data[def->offset].integer_var);
puts ("");
}
}
}

View file

@ -481,6 +481,7 @@ load_progs (const char *name)
return 0;
// convert_qfo ();
return 1;
} else {
pr.progs_name = name;
PR_LoadProgsFile (&pr, file, size, 1, 0);