I am running into a problem with hedit (and I have gone back over the code
in the patch by hand and fixed any "obvious" problems).
Everything compiles without too many errors (none in the hedit/olc part of
the code) (Oasis 1.6b, Circle 3.14, many other mods).
I am terribly clueless when it comes to gdb, so figuring out a crash that
doesn't give me an error message is difficult.
This is where the crash almost has to happen:
>case HEDIT_CONFIRM_SAVESTRING:
> switch (*arg) {
> case 'y':
> case 'Y':
> hedit_save_internally(d);
> sprintf(buf, "OLC: %s edits help for %s.", GET_NAME(d->character),
> OLC_HELP(d)->keywords);
> mudlog(buf, CMP, MAX(LVL_BUILDER, GET_INVIS_LEV(d->character)),
> TRUE);
> cleanup_olc(d, CLEANUP_STRUCTS);
> send_to_char("Help entry saved to memory.\r\n", d->character);
> break;
Because I get the "Do you wish to save this help entry internally?" but
never see "Help entry saved to memory" (instead I get a crash).
Are there any obvious problems with the above code? Here is
"hedit_save_internally":
>void hedit_save_internally(struct descriptor_data *d)
>{
> int i, rnum;
> struct help_index_element *new_help_table;
> rnum = OLC_ZNUM(d);
> if (rnum > 0) {
> free_help(help_table + rnum);
> help_table[rnum] = *OLC_HELP(d);
> } else {
> CREATE(new_help_table, struct help_index_element, top_of_helpt + 2);
> new_help_table[0] = *(OLC_HELP(d));
> for (i = 0; i <= top_of_helpt; i++)
> new_help_table[i + 1] = help_table[i];
> free(help_table);
> help_table = new_help_table;
> top_of_helpt++;
> }
> olc_add_to_save_list(HEDIT_PERMISSION, OLC_SAVE_HELP);
>}
Any hints would be greatly appreciated... hedit isn't much use without
being able to save :)
rezo@lords.com
+------------------------------------------------------------+
| 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