Changeset 22

Show
Ignore:
Timestamp:
07/09/04 01:04:55 (5 years ago)
Author:
morris
Message:

add -count and -ALL flags to news command

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • wire/trunk/man/wire.1

    r19 r22  
    2525.\" USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
    2626.\" 
    27 .Dd Jul 8, 2004 
     27.Dd Jul 9, 2004 
    2828.Dt WIRE 1 
    2929.Os 
     
    117117.Ar user , 
    118118which should be a nick name. 
    119 .It Nm news 
    120 Request and display the server news. 
     119.It Nm news Op Fl Ar number | Fl ALL 
     120Request and display the server news. Displays the 10 latest messages by default, or 
     121.Ar number 
     122messages if set, or all of them if 
     123.Fl ALL 
     124is set. 
    121125.It Nm nick Ar nick 
    122126Set your nick name to 
  • wire/trunk/wire/client.c

    r11 r22  
    1 /* $Id: client.c,v 1.2 2004/07/08 03:07:01 morris Exp $ */ 
     1/* $Id: client.c,v 1.3 2004/07/08 23:04:55 morris Exp $ */ 
    22 
    33/* 
     
    6767unsigned long long                      wr_transferred_bytes; 
    6868 
     69int                                                     wr_news_count; 
     70 
    6971wr_list                                         wr_users; 
    7072 
     
    435437                 
    436438                case 321: 
     439                        wr_msg_321(argc, argv); 
    437440                        break; 
    438441 
     
    812815        struct tm               tm; 
    813816        char                    ftime[26]; 
    814  
    815         wr_iso8601_to_time(argv[1], &tm); 
    816         strftime(ftime, sizeof(ftime), "%a %T %Y", &tm); 
    817  
    818         wr_printf_prefix("From %s (%s):\n", argv[0], ftime); 
    819         wr_printf_block("%s", argv[2]); 
     817         
     818        if(wr_news_count >= 0) { 
     819                wr_news_count++; 
     820         
     821                if(wr_news_count > wr_news_limit) { 
     822                        wr_printf_prefix("news: Displayed %d %s, use /news -ALL to see more\n", 
     823                                wr_news_limit, 
     824                                wr_news_limit == 1 
     825                                        ? "entry" 
     826                                        : "entries"); 
     827                         
     828                        wr_news_count = -1; 
     829                } else { 
     830                        wr_iso8601_to_time(argv[1], &tm); 
     831                        strftime(ftime, sizeof(ftime), "%a %T %Y", &tm); 
     832                 
     833                        wr_printf_prefix("From %s (%s):\n", argv[0], ftime); 
     834                        wr_printf_block("%s", argv[2]); 
     835                } 
     836        } 
     837
     838 
     839 
     840 
     841void wr_msg_321(int argc, char *argv[]) { 
     842        wr_news_count = 0; 
    820843} 
    821844 
  • wire/trunk/wire/client.h

    r14 r22  
    1 /* $Id: client.h,v 1.2 2004/07/08 03:32:01 morris Exp $ */ 
     1/* $Id: client.h,v 1.3 2004/07/08 23:04:55 morris Exp $ */ 
    22 
    33/* 
     
    9191void                                                            wr_msg_311(int, char **); 
    9292void                                                            wr_msg_320(int, char **); 
     93void                                                            wr_msg_321(int, char **); 
    9394void                                                            wr_msg_322(int, char **); 
    9495void                                                            wr_msg_341(int, char **); 
     
    108109extern unsigned long long                       wr_transferred_bytes; 
    109110 
     111extern int                                                      wr_news_count; 
     112 
    110113extern wr_list                                          wr_users; 
    111114 
  • wire/trunk/wire/commands.c

    r18 r22  
    1 /* $Id: commands.c,v 1.5 2004/07/08 04:08:43 morris Exp $ */ 
     1/* $Id: commands.c,v 1.6 2004/07/08 23:04:55 morris Exp $ */ 
    22 
    33/* 
     
    4646char                                    *wr_last_command; 
    4747 
     48int                                             wr_news_limit; 
     49 
    4850struct wr_commands              wr_commands[] = { 
    4951        { "ban", 
     
    6466          wr_cmd_close }, 
    6567        { "connect", 
    66           false, "<server> -l <login> -p <password>",  
    67           1, 255
     68          false, "<server> [-l <login>] [-p <password>]",      
     69          1, INT_MAX
    6870          wr_cmd_open }, 
    6971        { "help", 
     
    8082          wr_cmd_info }, 
    8183        { "join", 
    82           false, "<server> -l <login> -p <password>",  
    83           1, 255
     84          false, "<server> [-l <login>] [-p <password>]",      
     85          1, INT_MAX
    8486          wr_cmd_open }, 
    8587        { "kick", 
     
    100102          wr_cmd_msg }, 
    101103        { "news", 
    102           true, "", 
     104          true, "[-<number> | -ALL]",   
    103105          0, 0, 
    104106          wr_cmd_news }, 
     
    108110          wr_cmd_nick }, 
    109111        { "open", 
    110           true, "<server> -l <login> -p <password>",   
    111           1, 255
     112          true, "<server> [-l <login>] [-p <password>]",       
     113          1, INT_MAX
    112114          wr_cmd_open }, 
    113115        { "post", 
     
    132134          wr_cmd_say }, 
    133135        { "server", 
    134           false, "<server> -l <login> -p <password>",  
    135           1, 255
     136          false, "<server> [-l <login>] [-p <password>]",      
     137          1, INT_MAX
    136138          wr_cmd_open }, 
    137139        { "status", 
     
    582584 
    583585void wr_cmd_news(int argc, char *argv[]) { 
     586        /* limit number of articles */ 
     587        if(argc == 0) { 
     588                wr_news_limit = 10; 
     589        } else { 
     590                if(strcasecmp(argv[0], "-ALL") == 0) 
     591                        wr_news_limit = INT_MAX; 
     592                else  
     593                        wr_news_limit = strtol(argv[0] + 1, NULL, 10); 
     594        } 
     595 
    584596        /* request news */ 
    585597        wr_send_command("NEWS%s", 
     
    609621 
    610622/* 
    611         /open <server> [ -l <login> ] [ -p <password>
     623        /open <server> [-l <login>] [-p <password>
    612624*/ 
    613625 
  • wire/trunk/wire/commands.h

    r18 r22  
    1 /* $Id: commands.h,v 1.3 2004/07/08 04:08:43 morris Exp $ */ 
     1/* $Id: commands.h,v 1.4 2004/07/08 23:04:55 morris Exp $ */ 
    22 
    33/* 
     
    8484extern char                                             *wr_last_command; 
    8585 
     86extern int                                              wr_news_limit; 
     87 
    8688#endif /* WR_COMMANDS_H */