X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=webcit%2Froomchat.c;h=3b0091e441a3d55799b1ce56e836c03705990eb7;hb=fb6f6fa4ec4e3277e30d84326d48e6850822d318;hp=c7eed1334d9c3d55e1721e0218f91149964f91fc;hpb=76d71f40827318aa0f29c41332e446bc6a277175;p=citadel.git
diff --git a/webcit/roomchat.c b/webcit/roomchat.c
index c7eed1334..3b0091e44 100644
--- a/webcit/roomchat.c
+++ b/webcit/roomchat.c
@@ -1,23 +1,15 @@
/*
- * $Id$
- *
* This module handles multiuser chat.
*
- * Copyright (c) 1996-2010 by the citadel.org team
+ * Copyright (c) 1996-2012 by the citadel.org team
*
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
+ * 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.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include "webcit.h"
@@ -34,7 +26,7 @@ void do_chat(void)
WC->last_chat_user[0] = 0;
output_headers(1, 1, 1, 0, 0, 0);
- do_template("roomchat", NULL);
+ do_template("roomchat");
serv_puts("RCHT enter");
serv_getln(buf, sizeof buf);
@@ -62,10 +54,10 @@ void chat_recv(void) {
if (strcasecmp(cl_user, WC->last_chat_user)) {
wc_printf("
\n");
if (!strcasecmp(cl_user, ChrPtr(WC->wc_fullname))) {
- wc_printf("");
+ wc_printf("");
}
else {
- wc_printf("");
+ wc_printf("");
}
escputs(cl_user);
strcpy(WC->last_chat_user, cl_user);
@@ -77,7 +69,7 @@ void chat_recv(void) {
}
/* what did they say ... */
- wc_printf("");
+ wc_printf("");
while (serv_getln(buf, sizeof buf), strcmp(buf, "000")) {
escputs(buf);
}
@@ -129,12 +121,12 @@ void chat_rwho(void) {
if (buf[0] == '1') {
while (serv_getln(buf, sizeof buf), strcmp(buf, "000")) {
if (!strcasecmp(buf, ChrPtr(WC->wc_fullname))) {
- wc_printf("");
+ wc_printf("");
}
else {
- wc_printf("");
+ wc_printf("");
}
- wc_printf("");
+ wc_printf("");
escputs(buf);
wc_printf("
\n");
}
@@ -142,6 +134,18 @@ void chat_rwho(void) {
}
+/*
+ * advise the Citadel server that the user is navigating away from the chat window
+ */
+void chat_exit(void) {
+ char buf[1024];
+
+ serv_puts("RCHT exit");
+ serv_getln(buf, sizeof buf); /* Throw away the server reply */
+}
+
+
+
void
InitModule_ROOMCHAT
(void)
@@ -149,6 +153,7 @@ InitModule_ROOMCHAT
WebcitAddUrlHandler(HKEY("chat"), "", 0, do_chat, 0);
WebcitAddUrlHandler(HKEY("chat_recv"), "", 0, chat_recv, AJAX);
WebcitAddUrlHandler(HKEY("chat_rwho"), "", 0, chat_rwho, AJAX);
+ WebcitAddUrlHandler(HKEY("chat_exit"), "", 0, chat_exit, AJAX);
WebcitAddUrlHandler(HKEY("chat_send"), "", 0, chat_send, 0);
}