@@ -194,7 +194,7 @@ main(int argc, char **argv) {
194
194
printf ("%*s press <RETURN> key to exit" , gutl , " " );
195
195
}
196
196
else {
197
- char usrin [cmax ], v1 [cmax ], v2 [20 ];
197
+ char usrin [cmax ], v1 [cmax ], v2 [20 ], c1 ;
198
198
struct termios tp , save ;
199
199
200
200
tcgetattr (STDIN_FILENO , & tp );
@@ -210,12 +210,12 @@ main(int argc, char **argv) {
210
210
fgets (usrin , cmax , stdin );
211
211
tcsetattr (STDIN_FILENO , TCSANOW , & save );
212
212
213
- if (usrin [0 ] == ':' ) {
214
- if (sscanf (usrin , ":%*[M] %s %[^\n]\n" , v2 , v1 ) != 3 ) {
215
- sscanf (usrin , ":%*[njpm] %[^\n]\n" , v1 );
216
- }
213
+ if (sscanf (usrin , ":%[M] %s %[^\n]\n" , & c1 , v2 , v1 ) == 3 ||
214
+ sscanf (usrin , ":%[Qnjpm] %[^\n]\n" , & c1 , v1 ) == 2 ||
215
+ sscanf (usrin , ":%[q]\n" , & c1 ) == 1 ) {
217
216
switch (usrin [1 ]) {
218
217
case 'q' : dprintf (fd [1 ], "quit\n" ); break ;
218
+ case 'Q' : dprintf (fd [1 ], "quit %s\n" , v1 ); break ;
219
219
case 'j' : dprintf (fd [1 ], "join %s\n" , v1 ); break ;
220
220
case 'p' : dprintf (fd [1 ], "part %s\n" , v1 ); break ;
221
221
case 'm' : dprintf (fd [1 ], "privmsg #%s :%s\n" , chan , v1 ); break ;
0 commit comments