]> code.citadel.org Git - citadel.git/blobdiff - citadel/client_chat.c
* Make stealth mode available to all users
[citadel.git] / citadel / client_chat.c
index c90fecfc0811c9f5312a6ce07aff1347987f328e..b5d867fe41753a6b139e1bfc851f93684ea93f46 100644 (file)
@@ -111,7 +111,7 @@ void chatmode(void)
                        goto RCL;
                }
                if (FD_ISSET(0, &rfds)) {
-                       ch = scr_getc();
+                       ch = scr_getc(SCR_BLOCK);
                        if ((ch == 10) || (ch == 13)) {
                                send_complete_line = 1;
                        } else if ((ch == 8) || (ch == 127)) {
@@ -257,7 +257,7 @@ void page_user()
                        scr_printf("%s\n", &buf[4]);
                        return;
                }
-               if (client_make_message(temp, touser, 0, 0, 0) != 0) {
+               if (client_make_message(temp, touser, 0, 0, 0, NULL) != 0) {
                        scr_printf("No message sent.\n");
                        return;
                }
@@ -300,7 +300,7 @@ void quiet_mode(void)
                qstate = 1;
        else
                qstate = 0;
-       sprintf(buf, "DEXP %d", qstate);
+       snprintf(buf, sizeof buf, "DEXP %d", qstate);
        serv_puts(buf);
        serv_gets(buf);
        if (buf[0] != '2') {
@@ -314,3 +314,35 @@ void quiet_mode(void)
                scr_printf("Quiet mode disabled (other users may page you)\n");
        }
 }
+
+
+void stealth_mode(void)
+{
+       int qstate;
+       char buf[SIZ];
+
+       serv_puts("STEL 2");
+       serv_gets(buf);
+       if (buf[0] != '2') {
+               scr_printf("%s\n", &buf[4]);
+               return;
+       }
+       qstate = atoi(&buf[4]);
+       if (qstate == 0)
+               qstate = 1;
+       else
+               qstate = 0;
+       snprintf(buf, sizeof buf, "STEL %d", qstate);
+       serv_puts(buf);
+       serv_gets(buf);
+       if (buf[0] != '2') {
+               scr_printf("%s\n", &buf[4]);
+               return;
+       }
+       qstate = atoi(&buf[4]);
+       if (qstate) {
+               scr_printf("Stealth mode enabled (you are invisible)\n");
+       } else {
+               scr_printf("Stealth mode disabled (you are listed as online)\n");
+       }
+}