static void menu_btitle() { prints(_msg_menu_2, pagerstring(&uinfo)); }
static void dochatcommand(char *cmd) { char *para; strtok(cmd, " \n"); if ((para = strtok(NULL, "\n")) == NULL) para = cmd + strlen(cmd); if (*cmd == 'h') { printchatline(_msg_chat_41); printchatline(" /leave - Â÷¶}¥»ÀW¹D [/le]"); if (curuser.userlevel >= PERM_CLOAK) printchatline(" /cloak - Áô¨ [/cl]"); printchatline(_msg_chat_43); return; } else if (!strcmp(cmd, "who") || !strcmp(cmd, "w")) { dowho(para, ac); return; } else if (!strcmp(cmd, "ws") || !strcmp(cmd, "whoall")) { dowhoall(ac); return; } else if (!strcmp(cmd, "list") || !strcmp(cmd, "l")) { dolist(ac); return; } else if (!strcmp(cmd, "leave") || !strcmp(cmd, "le")) { net_printf(ac, "JOIN\t%s\t%s\r\n", DEFAULT_CHANNAME, NOPASSWORD); } else if (!strcmp(cmd, "nopasswd") || !strcmp(cmd, "nps")) { net_printf(ac, "PASSWD\t%s\r\n", NOPASSWORD); } else if (!strcmp(cmd, "nick") || !strcmp(cmd, "n")) { fixchatid(para); net_printf(ac, "NICKNAME\t%s\r\n", para); net_gets(ac, genbuf, sizeof(genbuf)); if (!strncmp(genbuf, "-ERR", 4)) printchatline(genbuf + 5); else { xstrncpy(uinfo.chatid, para, sizeof(uinfo.chatid)); update_ulist(cutmp, &uinfo); /* set prompt */ strcpy(prompt, uinfo.chatid); strcat(prompt, ": "); prompt[SAYWORD_POINT] = '\0'; } return; } else if (!strcmp(cmd, "me")) { if (*para) { sprintf(genbuf, "*** %s ***", para); net_printf(ac, "SPEAK\t%s\r\n", genbuf); printchatline(genbuf); } else printchatline(_msg_chat_45); return; } else if (!strcmp(cmd, "pager") || !strcmp(cmd, "p")) { #if 1 add_io(0, 0); #endif toggle_pager(); printchatline(pagerstring(&uinfo)); #if 1 add_io(ac, 0); #endif return; } else if (!strcmp(cmd, "cloak") || !strcmp(cmd, "cl")) { if (HAS_PERM(PERM_CLOAK)) { net_printf(ac, "CLOAK\r\n"); net_gets(ac, genbuf, sizeof(genbuf)); if (!strncmp(genbuf, "-ERR", 4)) printchatline(genbuf + 5); else { uinfo.invisible = (uinfo.invisible) ? FALSE : TRUE; update_ulist(cutmp, &uinfo); if (!uinfo.invisible) printchatline("*** Cloak has been deactivated"); else printchatline("*** Cloak has been activated"); } } else printchatline("*** ERROR: unknown special chat command"); return; } else if (!strcmp(cmd, "clear") || !strcmp(cmd, "c")) { clear(); move(ECHATWIN, 0); outs("________________________________________________________________________________"); chat_line = 0; /* reset */ printchatline(_msg_chat_46); return; } else if (!strcmp(cmd, "ignore") || !strcmp(cmd, "i")) { if (*para) { if (strlen(para) >= IDLEN) para[IDLEN - 1] = '\0'; if (!cmp_wlist(iglist, para, strcmp)) { sprintf(genbuf, _msg_chat_37, para); printchatline(genbuf); add_wlist(&iglist, para, malloc_str); } } return; } else if (!strcmp(cmd, "unignore") || !strcmp(cmd, "ui")) { if (*para) { if (strlen(para) >= IDLEN) para[IDLEN - 1] = '\0'; if (cmp_wlist(iglist, para, strcmp)) { sprintf(genbuf, _msg_chat_36, para); printchatline(genbuf); cmpd_wlist(&iglist, para, strcmp, free); } } return; } else if (!strcmp(cmd, "j") || !strcmp(cmd, "join")) { char *para2; para = strtok(para, " \n"); if (!para) return; para2 = strtok(NULL, " \n"); if (!para2) net_printf(ac, "JOIN\t%s\t%s\r\n", para, NOPASSWORD); else net_printf(ac, "JOIN\t%s\t%s\r\n", para, para2); } else if (!strcmp(cmd, "m") || !strcmp(cmd, "msg")) { char *para2; para = strtok(para, " \n"); para2 = strtok(NULL, ""); if (!para || !para2) return; net_printf(ac, "MSG\t%s\t%s\r\n", para, para2); } else if (!strcmp(cmd, "t") || !strcmp(cmd, "topic")) { net_printf(ac, "TOPIC\t%s\r\n", para); } else if (!strcmp(cmd, "ps") || !strcmp(cmd, "passwd")) { net_printf(ac, "PASSWD\t%s\r\n", para); } else { printchatline("*** ERROR: unknown special chat command"); return; } net_gets(ac, genbuf, sizeof(genbuf)); if (!strncmp(genbuf, "-ERR", 4)) { genbuf[strlen(genbuf) - 1] = '\0'; printchatline(genbuf + 5); } }