Hi there, I'm trying to complete a custom prompt system where people may
choose their own prompt style, and what they would like to see in it.
However, there seems to be a critical bug somewhere in my procedure, but
I cannot locate it.
here's what the code looks like at the moment..
void make_prompt(struct descriptor_data * d)
{
register char *i, *buff;
static char lbuff[MAX_STRING_LENGTH];
char *prompt;
if (d->str)
write_to_descriptor(d->descriptor, "] ");
else if (d->showstr_point)
write_to_descriptor(d->descriptor,
"\r\nPress Enter to continue:");
else if (!d->connected) {
sprintf(prompt, "< &N > "); /* this is where the procedure would normally
read the character's custom title from
char_data, but I'll just put this simple
string in for debugging purposes. */
buff = lbuff;
for (;;) {
if (*prompt == '&') {
switch (*(++prompt)) {
case 'N':
i = GET_NAME(d->character);
break;
case '&':
i = "&";
break;
default:
break;
}
while ((*buff = *(i++)))
buff++;
prompt++;
} else if (!(*(buff++) = *(prompt++)))
break;
}
write_to_descriptor(d->descriptor, CAP(lbuff));
}
}
As you can see, it's very simular to the act() procedure, however
dubugging it is beyond me :(.
What happens is it will proceed to work for about 15 seconds to a minute,
then all of a sudden it will core dump and spit the following out in
core.circle..
#0 0x7f67d in __sfvwrite (0x00000000, 0x001e0800, 0x00000000, 0x00000000)
If you have any ideas what is causing this, I would be happy to hear
them.
Ryan
This archive was generated by hypermail 2b30 : 12/07/00 PST