+void registercontrolhelpcmd(const char *name, int level, int maxparams, CommandHandler handler, char *helpstr) {
+ cmdhelp *help;
+ Command *newcmd;
+
+ newcmd = addcommandtotree(controlcmds,name,level,maxparams,handler);
+
+ if (helpstr) {
+ /* Allocate a help record */
+ help=(cmdhelp *)malloc(sizeof(cmdhelp));
+ if(!help) {
+ Error("control",ERR_ERROR,"Malloc failed: registercontrolhelpcmd");
+ return;
+ }
+ memset((void *)help,0,sizeof(cmdhelp));
+
+ /* this isn't an sstring atm, as sstring has a max length (512) */
+ int len=strlen(helpstr);
+ help->helpstr=(char *)malloc(len+1);
+ if(help->helpstr) {
+ strncpy(help->helpstr, helpstr, len);
+ help->helpstr[len] = '\0';
+ }
+ newcmd->ext=(void *)help;
+ newcmd->destroyext=controldestroyext;
+ }
+}
+
+void registercontrolhelpfunccmd(const char *name, int level, int maxparams, CommandHandler handler, CommandHelp helpcmd) {
+ cmdhelp *help;
+ Command *newcmd;
+
+ /* Allocate a help record */
+ help=(cmdhelp *)malloc(sizeof(cmdhelp));
+ if (!help) {
+ Error("control",ERR_ERROR,"Malloc failed: registercontrolhelpfunccmd");
+ return;
+ }
+ memset((void *)help,0,sizeof(cmdhelp));
+
+ help->helpcmd=helpcmd;
+
+ newcmd = addcommandexttotree(controlcmds,name,level,maxparams,handler, (void *)help);
+ newcmd->destroyext=controldestroyext;
+}
+
+