@@ -97,7 +97,7 @@ fn find_client<'a>(clients: &'a mut Vec<Client>, serv_name: &str) -> Option<&'a
97
97
98
98
////////////////////////////////////////////////////////////////////////////////////////////////////
99
99
100
- static CMDS : [ & Cmd ; 9 ] = [
100
+ static CMDS : [ & Cmd ; 10 ] = [
101
101
& AWAY_CMD ,
102
102
& CLOSE_CMD ,
103
103
& CONNECT_CMD ,
@@ -106,6 +106,7 @@ static CMDS: [&Cmd; 9] = [
106
106
& MSG_CMD ,
107
107
& NAMES_CMD ,
108
108
& NICK_CMD ,
109
+ & WHOIS_CMD ,
109
110
& HELP_CMD ,
110
111
] ;
111
112
@@ -511,6 +512,47 @@ fn nick(args: CmdArgs) {
511
512
}
512
513
}
513
514
515
+ ////////////////////////////////////////////////////////////////////////////////////////////////////
516
+
517
+ static WHOIS_CMD : Cmd = Cmd {
518
+ name : "whois" ,
519
+ cmd_fn : whois,
520
+ description : "whois lookup for a user" ,
521
+ usage : "`/whois <nick>`" ,
522
+ } ;
523
+
524
+ fn whois ( args : CmdArgs ) {
525
+ let CmdArgs {
526
+ args,
527
+ ui,
528
+ clients,
529
+ src,
530
+ ..
531
+ } = args;
532
+
533
+ let words: Vec < & str > = args. split_whitespace ( ) . collect ( ) ;
534
+
535
+ // Allow lookup for only one user at a time
536
+ if let Some ( client) = find_client ( clients, src. serv_name ( ) ) {
537
+ match words. get ( 0 ) {
538
+ Some ( word) => client. whois ( & word) ,
539
+ None => {
540
+ ui. add_client_err_msg (
541
+ & format ! ( "Usage: {}" , WHOIS_CMD . usage) ,
542
+ & MsgTarget :: CurrentTab ,
543
+ ) ;
544
+ }
545
+ } ;
546
+ } else {
547
+ ui. add_client_err_msg (
548
+ & format ! ( "Usage: {}" , WHOIS_CMD . usage) ,
549
+ & MsgTarget :: CurrentTab ,
550
+ ) ;
551
+ }
552
+ }
553
+
554
+ ////////////////////////////////////////////////////////////////////////////////////////////////////
555
+
514
556
static HELP_CMD : Cmd = Cmd {
515
557
name : "help" ,
516
558
cmd_fn : help,
0 commit comments