X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=textclient%2Fclient_chat.c;h=2469e5bc3e27ce67d7cad2a6bf998eea33960285;hb=HEAD;hp=e725f02e95cc34ab6d5e8d8e8f1142c52d710da4;hpb=2dfd5bee542a9d635e380097e63c307bd6c27d65;p=citadel.git diff --git a/textclient/client_chat.c b/textclient/client_chat.c index e725f02e9..2469e5bc3 100644 --- a/textclient/client_chat.c +++ b/textclient/client_chat.c @@ -1,16 +1,8 @@ -/* - * front end for multiuser chat - * - * Copyright (c) 1987-2016 by the citadel.org team - * - * This program is open source software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 3. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - */ +// front end for multiuser chat +// +// Copyright (c) 1987-2016 by the citadel.org team +// +// This program is open source software. Use, duplication, or disclosure is subject to the GNU General Public License version 3. #include "textclient.h" @@ -19,8 +11,7 @@ extern char temp[]; char last_paged[SIZ] = ""; -void chatmode(CtdlIPC *ipc) -{ +void chatmode(CtdlIPC * ipc) { char wbuf[SIZ]; char buf[SIZ]; char response[SIZ]; @@ -46,7 +37,7 @@ void chatmode(CtdlIPC *ipc) strcpy(buf, ""); strcpy(wbuf, ""); - strcpy(last_user, ""); + strcpy(last_user, ""); color(BRIGHT_YELLOW); scr_printf("\n"); scr_printf("> "); @@ -72,12 +63,14 @@ void chatmode(CtdlIPC *ipc) ch = scr_getc(SCR_BLOCK); if ((ch == 10) || (ch == 13)) { send_complete_line = 1; - } else if ((ch == 8) || (ch == 127)) { + } + else if ((ch == 8) || (ch == 127)) { if (!IsEmptyStr(wbuf)) { wbuf[strlen(wbuf) - 1] = 0; scr_printf("%c %c", 8, 8); } - } else { + } + else { scr_putc(ch); wbuf[strlen(wbuf) + 1] = 0; wbuf[strlen(wbuf)] = ch; @@ -122,7 +115,8 @@ void chatmode(CtdlIPC *ipc) } strcpy(wbuf, ""); send_complete_line = 0; - } else { + } + else { wbuf[pos] = 0; CtdlIPC_chat_send(ipc, "RCHT send"); CtdlIPC_chat_recv(ipc, response); @@ -138,7 +132,7 @@ void chatmode(CtdlIPC *ipc) snprintf(buf, sizeof buf, "RCHT poll|%d", seq); CtdlIPC_chat_send(ipc, buf); CtdlIPC_chat_recv(ipc, response); - + if (response[0] == '1') { seq = extract_int(&response[4], 0); extract_token(c_user, &response[4], 2, '|', sizeof c_user); @@ -146,17 +140,20 @@ void chatmode(CtdlIPC *ipc) scr_printf("\r%79s\r", ""); if (!strcmp(c_user, fullname)) { color(BRIGHT_YELLOW); - } else if (!strcmp(c_user, ":")) { + } + else if (!strcmp(c_user, ":")) { color(BRIGHT_RED); - } else { + } + else { color(BRIGHT_GREEN); } if (strcmp(c_user, last_user)) { snprintf(buf, sizeof buf, "%s: %s", c_user, c_text); - } else { + } + else { size_t i = MIN(sizeof buf - 1, strlen(c_user) + 2); memset(buf, ' ', i); - safestrncpy(&buf[i], c_text, sizeof buf - i); + strncpy(&buf[i], c_text, sizeof buf - i); } while (strlen(buf) < 79) { strcat(buf, " "); @@ -177,65 +174,47 @@ void chatmode(CtdlIPC *ipc) } -/* - * send an instant message - */ -void page_user(CtdlIPC *ipc) -{ +// send an instant message +void page_user(CtdlIPC * ipc) { char buf[SIZ], touser[SIZ], msg[SIZ]; FILE *pagefp; strcpy(touser, last_paged); strprompt("Page who", touser, 30); - /* old server -- use inline paging */ - if (ipc->ServInfo.paging_level == 0) { - newprompt("Message: ", msg, 69); - snprintf(buf, sizeof buf, "SEXP %s|%s", touser, msg); - CtdlIPC_chat_send(ipc, buf); - CtdlIPC_chat_recv(ipc, buf); - if (!strncmp(buf, "200", 3)) { - strcpy(last_paged, touser); - } + snprintf(buf, sizeof buf, "SEXP %s||", touser); + CtdlIPC_chat_send(ipc, buf); + CtdlIPC_chat_recv(ipc, buf); + if (buf[0] != '2') { scr_printf("%s\n", &buf[4]); return; } - /* new server -- use extended paging */ - else if (ipc->ServInfo.paging_level >= 1) { - snprintf(buf, sizeof buf, "SEXP %s||", touser); - CtdlIPC_chat_send(ipc, buf); - CtdlIPC_chat_recv(ipc, buf); - if (buf[0] != '2') { - scr_printf("%s\n", &buf[4]); - return; - } - if (client_make_message(ipc, temp, touser, 0, 0, 0, NULL, 0) != 0) { - scr_printf("No message sent.\n"); - return; - } - pagefp = fopen(temp, "r"); - unlink(temp); - snprintf(buf, sizeof buf, "SEXP %s|-", touser); - CtdlIPC_chat_send(ipc, buf); - CtdlIPC_chat_recv(ipc, buf); - if (buf[0] == '4') { - strcpy(last_paged, touser); - while (fgets(buf, sizeof buf, pagefp) != NULL) { - buf[strlen(buf) - 1] = 0; - CtdlIPC_chat_send(ipc, buf); - } - fclose(pagefp); - CtdlIPC_chat_send(ipc, "000"); - scr_printf("Message sent.\n"); - } else { - scr_printf("%s\n", &buf[4]); + if (client_make_message(ipc, temp, touser, 0, 0, 0, NULL, 0) != 0) { + scr_printf("No message sent.\n"); + return; + } + pagefp = fopen(temp, "r"); + unlink(temp); + snprintf(buf, sizeof buf, "SEXP %s|-", touser); + CtdlIPC_chat_send(ipc, buf); + CtdlIPC_chat_recv(ipc, buf); + if (buf[0] == '4') { + strcpy(last_paged, touser); + while (fgets(buf, sizeof buf, pagefp) != NULL) { + buf[strlen(buf) - 1] = 0; + CtdlIPC_chat_send(ipc, buf); } + fclose(pagefp); + CtdlIPC_chat_send(ipc, "000"); + scr_printf("Message sent.\n"); + } + else { + scr_printf("%s\n", &buf[4]); } } -void quiet_mode(CtdlIPC *ipc) -{ +void quiet_mode(CtdlIPC * ipc) { static int quiet = 0; char cret[SIZ]; int r; @@ -243,17 +222,15 @@ void quiet_mode(CtdlIPC *ipc) r = CtdlIPCEnableInstantMessageReceipt(ipc, !quiet, cret); if (r / 100 == 2) { quiet = !quiet; - scr_printf("Quiet mode %sabled (%sother users may page you)\n", - (quiet) ? "en" : "dis", - (quiet) ? "no " : ""); - } else { + scr_printf("Quiet mode %sabled (%sother users may page you)\n", (quiet) ? "en" : "dis", (quiet) ? "no " : ""); + } + else { scr_printf("Unable to change quiet mode: %s\n", cret); } } -void stealth_mode(CtdlIPC *ipc) -{ +void stealth_mode(CtdlIPC * ipc) { static int stealth = 0; char cret[SIZ]; int r; @@ -262,9 +239,9 @@ void stealth_mode(CtdlIPC *ipc) if (r / 100 == 2) { stealth = !stealth; scr_printf("Stealth mode %sabled (you are %s)\n", - (stealth) ? "en" : "dis", - (stealth) ? "invisible" : "listed as online"); - } else { + (stealth) ? "en" : "dis", (stealth) ? "invisible" : "listed as online"); + } + else { scr_printf("Unable to change stealth mode: %s\n", cret); } }