diff options
-rwxr-xr-x | vchat-commands.c | 16 | ||||
-rwxr-xr-x | vchat-config.h | 3 | ||||
-rwxr-xr-x | vchat-messages.h | 3 | ||||
-rwxr-xr-x | vchat-protocol.c | 21 | ||||
-rwxr-xr-x | 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) | |||
189 | case 'm': /* sending a private message? */ | 189 | case 'm': /* sending a private message? */ |
190 | privatemessagetx( line+2 ); | 190 | privatemessagetx( line+2 ); |
191 | break; | 191 | break; |
192 | case 'a': | 192 | case 'a': /* Do an action */ |
193 | doaction( line+2 ); | 193 | doaction( line+2 ); |
194 | break; | 194 | break; |
195 | case '.': | 195 | case '.': |
@@ -206,11 +206,23 @@ handleline (unsigned char *line) | |||
206 | showout( ); | 206 | showout( ); |
207 | } | 207 | } |
208 | break; | 208 | break; |
209 | case 'o': | ||
210 | /* We do think something, the ugly way :) */ | ||
211 | snprintf (tmpstr, TMPSTRSIZE, getformatstr(FS_TXPUBTHOUGHT), line); | ||
212 | writechan (tmpstr); | ||
213 | networkoutput (line); | ||
214 | break; | ||
215 | case 'O': | ||
216 | /* We do think something, the nice way :) */ | ||
217 | snprintf (tmpstr, TMPSTRSIZE, getformatstr(FS_TXPUBNTHOUGHT), line); | ||
218 | writechan (tmpstr); | ||
219 | networkoutput (line); | ||
220 | break; | ||
209 | default: | 221 | default: |
210 | /* generic server command, send to server, show to user */ | 222 | /* generic server command, send to server, show to user */ |
211 | snprintf (tmpstr, TMPSTRSIZE, getformatstr(FS_COMMAND), line); | 223 | snprintf (tmpstr, TMPSTRSIZE, getformatstr(FS_COMMAND), line); |
212 | networkoutput (line); | ||
213 | writechan (tmpstr); | 224 | writechan (tmpstr); |
225 | networkoutput (line); | ||
214 | break; | 226 | break; |
215 | } | 227 | } |
216 | break; | 228 | 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[] = { | |||
120 | FE( FS_BGPRIVMSG, "\0011! Bogus message, not sent."), | 120 | FE( FS_BGPRIVMSG, "\0011! Bogus message, not sent."), |
121 | FE( FS_PUBACTION, "\0015*\0010 \0016%s\0010 %s"), | 121 | FE( FS_PUBACTION, "\0015*\0010 \0016%s\0010 %s"), |
122 | FE( FS_TXPUBACTION, "\0015*\0010 \0016\001b%s\001B\0010 %s"), | 122 | FE( FS_TXPUBACTION, "\0015*\0010 \0016\001b%s\001B\0010 %s"), |
123 | FE( FS_TXPUBTHOUGHT, ".o( \0014%s\0010 )"), | ||
124 | FE( FS_TXPUBNTHOUGHT,".oO( \0014%s\0010 )"), | ||
125 | FE( FS_PUBTHOUGHT, "\0015*\0010 \0016\001b%s\001B\0010 %s"), | ||
123 | FE( FS_BGTXPUBACTION,"\0011! No action taken."), | 126 | FE( FS_BGTXPUBACTION,"\0011! No action taken."), |
124 | FE( FS_COMMAND, "\0012## command: %s"), | 127 | FE( FS_COMMAND, "\0012## command: %s"), |
125 | FE( FS_LOCALCOMMAND, "\0012## local command (not executed yet): %s"), | 128 | 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[] = { | |||
56 | /* 123 <user login [user logout]> | 56 | /* 123 <user login [user logout]> |
57 | User Login / Logout Information */ | 57 | User Login / Logout Information */ |
58 | {"123", SM_USERINFO, NULL, NULL}, | 58 | {"123", SM_USERINFO, NULL, NULL}, |
59 | /* 124 <nick> <thoughts> | ||
60 | User thoughts information */ | ||
61 | {"124", SM_CHANNEL, pubthoughts, NULL}, | ||
59 | /* 169 <encoding> | 62 | /* 169 <encoding> |
60 | List of known encodings */ | 63 | List of known encodings */ |
61 | {"169", SM_INFO, NULL, NULL}, | 64 | {"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); | |||
61 | static void anonlogin (unsigned char *message); | 61 | static void anonlogin (unsigned char *message); |
62 | static void topicinfo (unsigned char *message); | 62 | static void topicinfo (unsigned char *message); |
63 | static void pubaction (unsigned char *message); | 63 | static void pubaction (unsigned char *message); |
64 | static void pubthoughts (unsigned char *message); | ||
64 | static void idleprompt (unsigned char *message); | 65 | static void idleprompt (unsigned char *message); |
65 | static void topicchange (unsigned char *message); | 66 | static void topicchange (unsigned char *message); |
66 | static void pmnotsent (unsigned char *message); | 67 | static void pmnotsent (unsigned char *message); |
@@ -387,6 +388,26 @@ pubaction (unsigned char *message) | |||
387 | writechan (tmpstr); | 388 | writechan (tmpstr); |
388 | } | 389 | } |
389 | 390 | ||
391 | /* parse and handle an thought string | ||
392 | * format: 124 %s %s | ||
393 | * vars: %s nick | ||
394 | * %s thought */ | ||
395 | static void | ||
396 | pubthoughts (unsigned char *message) | ||
397 | { | ||
398 | unsigned char *nick = NULL, *thoughts = NULL; | ||
399 | nick = strchr (message, ' '); | ||
400 | nick[0] = '\0'; | ||
401 | nick++; | ||
402 | |||
403 | thoughts = strchr (nick, ' '); | ||
404 | thoughts[0] = '\0'; | ||
405 | thoughts++; | ||
406 | |||
407 | snprintf(tmpstr,TMPSTRSIZE,getformatstr(FS_PUBTHOUGHT),nick,thoughts); | ||
408 | writechan (tmpstr); | ||
409 | } | ||
410 | |||
390 | /* parse and handle an idle message | 411 | /* parse and handle an idle message |
391 | * format: 305 | 412 | * format: 305 |
392 | * vars: %s message */ | 413 | * vars: %s message */ |
@@ -47,9 +47,9 @@ FS_IDLE, FS_TIME, FS_CONSOLETIME, FS_TOPICW, FS_NOTOPICW, FS_CONSOLE, FS_CONNECT | |||
47 | FS_TOPIC, FS_NOTOPIC, FS_CHGTOPIC, FS_USONLINE, FS_USMATCH, FS_SIGNON, FS_SIGNOFF, | 47 | FS_TOPIC, FS_NOTOPIC, FS_CHGTOPIC, FS_USONLINE, FS_USMATCH, FS_SIGNON, FS_SIGNOFF, |
48 | FS_JOIN, FS_LEAVE, FS_NICKCHANGE, FS_UNKNOWNMSG, FS_BOGUSMSG, FS_RXPUBURL, | 48 | FS_JOIN, FS_LEAVE, FS_NICKCHANGE, FS_UNKNOWNMSG, FS_BOGUSMSG, FS_RXPUBURL, |
49 | FS_MYPUBURL, FS_RXPUBMSG, FS_MYPUBMSG, FS_TXPUBMSG, FS_RXPRIVMSG, FS_TXPRIVMSG, | 49 | FS_MYPUBURL, FS_RXPUBMSG, FS_MYPUBMSG, FS_TXPUBMSG, FS_RXPRIVMSG, FS_TXPRIVMSG, |
50 | FS_BGPRIVMSG, FS_PUBACTION, FS_TXPUBACTION, FS_BGTXPUBACTION, FS_COMMAND, | 50 | FS_BGPRIVMSG, FS_PUBTHOUGHT, FS_TXPUBTHOUGHT, FS_TXPUBNTHOUGHT, FS_PUBACTION, |
51 | FS_LOCALCOMMAND, FS_BOGUSCOMMAND, FS_SBINF, FS_MISSTYPED, FS_UNKNCMD, FS_BADREGEX, | 51 | FS_TXPUBACTION, FS_BGTXPUBACTION, FS_COMMAND, FS_LOCALCOMMAND, FS_BOGUSCOMMAND, |
52 | FS_ERR_STRING } formtstr; | 52 | FS_SBINF, FS_MISSTYPED, FS_UNKNCMD, FS_BADREGEX, FS_ERR_STRING } formtstr; |
53 | 53 | ||
54 | /* configoption structure */ | 54 | /* configoption structure */ |
55 | struct configoption | 55 | struct configoption |