On Thu, 15 Apr 1999, Martijn Schoemaker wrote:
>in interpreter.c in the function nanny():
>search for the lines containing :
> d->str = &d->character->player.description;
> d->max_str = EXDSCR_LENGTH;
>change the last line to :
> d->max_str = EXDSCR_LENGTH-1;
>
>And to fix damaged characters go to db.c in the function char_to_store():
>search for the lines containing:
> if (ch->player.description)
> strcpy(st->description, ch->player.description);
>make these lines :
> if (ch->player.description)
> {
> strncpy(st->description, ch->player.description, EXDSCR_LENGTH-1);
> st->description[EXDSCR_LENGTH-1] = '\0';
> }
Not the best way to fix it.
In modify.c:
if (strlen(str) + strlen(*d->str) > d->max_str) {
send_to_char("String too long. Last line skipped.\r\n", d->character);
terminator = 1;
} else {
if (!(*d->str = (char *) realloc(*d->str, strlen(*d->str) + strlen(str) + 3))) {
perror("SYSERR: string_add");
exit(1);
}
strcat(*d->str, str);
}
Change[1] that first line to:
if (strlen(str) + strlen(*d->str) + 1 > d->max_str) {
Always fix the cause, not the symptom.
--
George Greer | The CircleMUD FAQ
greerga@circlemud.org | http://developer.circlemud.org/docs/FAQ/
[1] I _think_ that's right. It makes perfect sense to me right now.
Then again, I've been drudging through modify.c's string_add() for
about an hour now trying to convince it to accept the OasisOLC v2.0
editing changes. That function is just way too unwieldly right now.
+------------------------------------------------------------+
| Ensure that you have read the CircleMUD Mailing List FAQ: |
| http://qsilver.queensu.ca/~fletchra/Circle/list-faq.html |
+------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 12/15/00 PST