args++;
}
sprintf(command, "%s %s", parent_bind->cmd, subcmd);
+ if(args)
+ args[-1] = ' ';
for(cbind = cmd_binds[bind_index]; cbind; cbind = cbind->next) {
if(cbind->botid == client->botid && (cbind->botid || cbind->clientid == client->clientid) && stricmp(cbind->cmd, command) == 0)
break;
}
- *args_ptr = args;
- if(cbind && cbind->func->func == modcmd_linker) {
- return modcmd_linker_command(client, textclient, user, cbind, bind_index, args_ptr);
+ if(cbind) {
+ *args_ptr = args;
+ if(cbind->func->func == modcmd_linker)
+ parent_bind = modcmd_linker_command(client, textclient, user, cbind, bind_index, args_ptr);
+ else
+ parent_bind = cbind;
}
- return (cbind ? cbind : parent_bind);
- } else
- return parent_bind;
+ }
+ return parent_bind;
}
static void handle_command(struct ClientSocket *client, struct UserNode *user, struct ChanNode *chan, char *message) {