Here's some code (that uses the buffer and Varray code no less) to
display tables in a friendly way.
--cut here--
struct table {
Varray *entries;
int max_columns;
};
typedef struct table Table;
Table *
new_table(int columns)
{
Table *t;
t = mud_malloc(sizeof(*t));
t->entries = v_create(12);
t->max_columns = columns;
return t;
}
void
add_table_entry(Table *t, char *val)
{
v_push(t->entries, (void *)mud_strdup(val));
}
void
send_table(Table *t, CHAR_DATA *ch)
{
int maxlen = 0;
int cols, i, clen;
Buffer *b;
b = new_buffer(1024);
clen = v_len(t->entries);
for (i = 0; i < clen; i++)
maxlen = MAX(maxlen, mud_strlen((const char *)t->entries->data[i]));
if (t->max_columns)
cols = MIN(t->max_columns, 76/(maxlen + 1));
else
cols = 76 / (maxlen + 1);
for (i = 0; i < clen; i++) {
bprintf(b, "%-*s ", maxlen, t->entries->data[i]);
if (!((i+1) % cols))
bprintf(b, "\r\n");
mud_free(t->entries->data[i]);
}
bprintf(b, "\r\n");
page_string(ch->desc, b->p, 1);
free_buffer(b);
v_free(t->entries);
mud_free(t);
}
--cut here--
--
James Turner turnerjh@pattern.net UIN: 1102038
http://www.vuse.vanderbilt.edu/~turnerjh/
+------------------------------------------------------------+
| Ensure that you have read the CircleMUD Mailing List FAQ: |
| http://democracy.queensu.ca/~fletcher/Circle/list-faq.html |
+------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 12/15/00 PST