do_hedit() is allowing empty or NULL arguments to pass, and since get_help() is obviously never going to return a positive on it, this is going to allow help files with no names to end up in the list. I'm not *absolutely* sure what the eventual ramifications of this could be, but I'd venture to say it needs to not be happening regardless.
Also, this problem if probably affecting all three codebases... It's in stock Smaug, as well as SWR, and I have to imagine it's probably in SW:FotE, too. It may be that they caught it, but somehow, I doubt it.
Anyway, in act_info.c, in function do_hedit(), find the following:
STRFREE( pHelp->text );
pHelp->text = copy_buffer( ch );
stop_editing( ch );
Directly below that, add:
if( !argument || argument == '\0' )
send_to_char( "Edit which help file?\r\n", ch );
I suspect the reason this was being allowed was because when you return from the editing buffer, I don't think it passes your previous argument or anything, so if it disqualified a NULL argument, the help file would never be changed properly. However... This can be done without affecting that, so that's moot.