From 12a82a3daf3cd010f473d82b2fcd03c99435c58f Mon Sep 17 00:00:00 2001 From: erdgeist <> Date: Thu, 14 Aug 2003 11:28:48 +0000 Subject: Public thoughts --- vchat-commands.c | 16 ++++++++++++++-- vchat-config.h | 3 +++ vchat-messages.h | 3 +++ vchat-protocol.c | 21 +++++++++++++++++++++ vchat.h | 6 +++--- 5 files changed, 44 insertions(+), 5 deletions(-) diff --git a/vchat-commands.c b/vchat-commands.c index 6380a44..0d7cf96 100755 --- a/vchat-commands.c +++ b/vchat-commands.c @@ -189,7 +189,7 @@ handleline (unsigned char *line) case 'm': /* sending a private message? */ privatemessagetx( line+2 ); break; - case 'a': + case 'a': /* Do an action */ doaction( line+2 ); break; case '.': @@ -206,11 +206,23 @@ handleline (unsigned char *line) showout( ); } break; + case 'o': + /* We do think something, the ugly way :) */ + snprintf (tmpstr, TMPSTRSIZE, getformatstr(FS_TXPUBTHOUGHT), line); + writechan (tmpstr); + networkoutput (line); + break; + case 'O': + /* We do think something, the nice way :) */ + snprintf (tmpstr, TMPSTRSIZE, getformatstr(FS_TXPUBNTHOUGHT), line); + writechan (tmpstr); + networkoutput (line); + break; default: /* generic server command, send to server, show to user */ snprintf (tmpstr, TMPSTRSIZE, getformatstr(FS_COMMAND), line); - networkoutput (line); writechan (tmpstr); + networkoutput (line); break; } break; diff --git a/vchat-config.h b/vchat-config.h index 8a680de..beb4579 100755 --- a/vchat-config.h +++ b/vchat-config.h @@ -120,6 +120,9 @@ static formatstring formatstrings[] = { FE( FS_BGPRIVMSG, "\0011! Bogus message, not sent."), FE( FS_PUBACTION, "\0015*\0010 \0016%s\0010 %s"), FE( FS_TXPUBACTION, "\0015*\0010 \0016\001b%s\001B\0010 %s"), + FE( FS_TXPUBTHOUGHT, ".o( \0014%s\0010 )"), + FE( FS_TXPUBNTHOUGHT,".oO( \0014%s\0010 )"), + FE( FS_PUBTHOUGHT, "\0015*\0010 \0016\001b%s\001B\0010 %s"), FE( FS_BGTXPUBACTION,"\0011! No action taken."), FE( FS_COMMAND, "\0012## command: %s"), FE( FS_LOCALCOMMAND, "\0012## local command (not executed yet): %s"), diff --git a/vchat-messages.h b/vchat-messages.h index e73e567..477d791 100755 --- a/vchat-messages.h +++ b/vchat-messages.h @@ -56,6 +56,9 @@ servermessage servermessages[] = { /* 123 User Login / Logout Information */ {"123", SM_USERINFO, NULL, NULL}, +/* 124 + User thoughts information */ + {"124", SM_CHANNEL, pubthoughts, NULL}, /* 169 List of known encodings */ {"169", SM_INFO, NULL, NULL}, diff --git a/vchat-protocol.c b/vchat-protocol.c index d04d9b0..5113365 100755 --- a/vchat-protocol.c +++ b/vchat-protocol.c @@ -61,6 +61,7 @@ static void login (unsigned char *message); static void anonlogin (unsigned char *message); static void topicinfo (unsigned char *message); static void pubaction (unsigned char *message); +static void pubthoughts (unsigned char *message); static void idleprompt (unsigned char *message); static void topicchange (unsigned char *message); static void pmnotsent (unsigned char *message); @@ -387,6 +388,26 @@ pubaction (unsigned char *message) writechan (tmpstr); } +/* parse and handle an thought string + * format: 124 %s %s + * vars: %s nick + * %s thought */ +static void +pubthoughts (unsigned char *message) +{ + unsigned char *nick = NULL, *thoughts = NULL; + nick = strchr (message, ' '); + nick[0] = '\0'; + nick++; + + thoughts = strchr (nick, ' '); + thoughts[0] = '\0'; + thoughts++; + + snprintf(tmpstr,TMPSTRSIZE,getformatstr(FS_PUBTHOUGHT),nick,thoughts); + writechan (tmpstr); +} + /* parse and handle an idle message * format: 305 * vars: %s message */ diff --git a/vchat.h b/vchat.h index b6c4437..64788b9 100755 --- a/vchat.h +++ b/vchat.h @@ -47,9 +47,9 @@ FS_IDLE, FS_TIME, FS_CONSOLETIME, FS_TOPICW, FS_NOTOPICW, FS_CONSOLE, FS_CONNECT FS_TOPIC, FS_NOTOPIC, FS_CHGTOPIC, FS_USONLINE, FS_USMATCH, FS_SIGNON, FS_SIGNOFF, FS_JOIN, FS_LEAVE, FS_NICKCHANGE, FS_UNKNOWNMSG, FS_BOGUSMSG, FS_RXPUBURL, FS_MYPUBURL, FS_RXPUBMSG, FS_MYPUBMSG, FS_TXPUBMSG, FS_RXPRIVMSG, FS_TXPRIVMSG, -FS_BGPRIVMSG, FS_PUBACTION, FS_TXPUBACTION, FS_BGTXPUBACTION, FS_COMMAND, -FS_LOCALCOMMAND, FS_BOGUSCOMMAND, FS_SBINF, FS_MISSTYPED, FS_UNKNCMD, FS_BADREGEX, -FS_ERR_STRING } formtstr; +FS_BGPRIVMSG, FS_PUBTHOUGHT, FS_TXPUBTHOUGHT, FS_TXPUBNTHOUGHT, FS_PUBACTION, +FS_TXPUBACTION, FS_BGTXPUBACTION, FS_COMMAND, FS_LOCALCOMMAND, FS_BOGUSCOMMAND, +FS_SBINF, FS_MISSTYPED, FS_UNKNCMD, FS_BADREGEX, FS_ERR_STRING } formtstr; /* configoption structure */ struct configoption -- cgit v1.2.3