Changeset 167

Show
Ignore:
Timestamp:
01/11/05 10:52:55 (4 years ago)
Author:
morris
Message:

Add /search command

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • wire/trunk/wire/client.c

    r164 r167  
    1 /* $Id: client.c,v 1.51 2005/01/09 13:24:02 morris Exp $ */ 
     1/* $Id: client.c,v 1.52 2005/01/11 09:52:55 morris Exp $ */ 
    22 
    33/* 
     
    8686static void                                             wr_msg_410(int, const char **); 
    8787static void                                             wr_msg_411(int, const char **); 
     88static void                                             wr_msg_420(int, const char **); 
     89static void                                             wr_msg_421(int, const char **); 
    8890 
    8991 
     
    484486                        break; 
    485487 
     488                case 420: 
     489                        wr_msg_420(ZA_ARGV_ARGC(argv), ZA_ARGV_ARGV(argv)); 
     490                        break; 
     491 
     492                case 421: 
     493                        wr_msg_421(ZA_ARGV_ARGC(argv), ZA_ARGV_ARGV(argv)); 
     494                        break; 
     495 
    486496                case 500: 
    487497                case 501: 
     
    12141224 
    12151225                ZA_LIST_FOREACH(wr_files, node, file) 
    1216                         wr_print_file(node->data, max_length); 
    1217         } 
    1218 
     1226                        wr_print_file(node->data, false, max_length); 
     1227        } 
     1228
     1229 
     1230 
     1231 
     1232static void wr_msg_420(int argc, const char *argv[]) { 
     1233        wr_file_t               *file; 
     1234 
     1235        file = wr_file_alloc(); 
     1236        file->type = strtoul(argv[1], NULL, 10); 
     1237        file->size = strtoull(argv[2], NULL, 10); 
     1238        strlcpy(file->path, argv[0], sizeof(file->path)); 
     1239        za_basename(argv[0], file->name); 
     1240 
     1241        za_list_add_data(wr_files, file, (za_dealloc_func_t *) wr_file_dealloc); 
     1242
     1243 
     1244 
     1245 
     1246static void wr_msg_421(int argc, const char *argv[]) { 
     1247        za_list_node_t  *node; 
     1248        wr_file_t               *file; 
     1249        unsigned int    length, max_length = 0; 
     1250 
     1251        ZA_LIST_FOREACH(wr_files, node, file) { 
     1252                length = strlen(file->path); 
     1253                max_length = length > max_length ? length : max_length; 
     1254        } 
     1255 
     1256        wr_printf_prefix("Search results:\n"); 
     1257 
     1258        ZA_LIST_FOREACH(wr_files, node, file) 
     1259                wr_print_file(node->data, true, max_length); 
     1260
  • wire/trunk/wire/commands.c

    r166 r167  
    1 /* $Id: commands.c,v 1.53 2005/01/09 20:33:04 morris Exp $ */ 
     1/* $Id: commands.c,v 1.54 2005/01/11 09:52:55 morris Exp $ */ 
    22 
    33/* 
     
    8686static void                                             wr_cmd_say(int, const char **); 
    8787static void                                             wr_cmd_save(int, const char **); 
     88static void                                             wr_cmd_search(int, const char **); 
    8889static void                                             wr_cmd_start(int, const char **); 
    8990static void                                             wr_cmd_stat(int, const char **); 
     
    231232          1, 0, WR_COMPLETER_NICKNAME, 
    232233          wr_cmd_say }, 
     234        { "search", 
     235          true, "<query>", 
     236          1, -1, WR_COMPLETER_FILENAME, 
     237          wr_cmd_search }, 
    233238        { "server", 
    234239          false, "<server> [-l <login>] [-p <password>] [-P <port>]", 
     
    11791184 
    11801185/* 
     1186        /search <query> 
     1187*/ 
     1188 
     1189static void wr_cmd_search(int argc, const char *argv[]) { 
     1190        wr_clear_files(); 
     1191        wr_send_command("SEARCH %s", argv[0]); 
     1192} 
     1193 
     1194 
     1195 
     1196/* 
    11811197        /save <bookmark> 
    11821198*/ 
  • wire/trunk/wire/main.c

    r161 r167  
    1 /* $Id: main.c,v 1.57 2005/01/06 14:16:20 morris Exp $ */ 
     1/* $Id: main.c,v 1.58 2005/01/11 09:52:55 morris Exp $ */ 
    22 
    33/* 
     
    13251325 
    13261326 
    1327 void wr_print_file(wr_file_t *file, unsigned int max_length) { 
     1327void wr_print_file(wr_file_t *file, bool path, unsigned int max_length) { 
    13281328        char    *color, size[ZA_SIZE_SIZE]; 
    13291329 
     
    13401340        wr_printf("   %s%s%s%s%*s%s\n", 
    13411341                color, 
    1342                 file->name, 
     1342                path ? file->path : file->name, 
    13431343                "\033[0m", 
    13441344                file->type != WR_FILE_FILE 
  • wire/trunk/wire/main.h

    r161 r167  
    1 /* $Id: main.h,v 1.18 2005/01/06 14:16:20 morris Exp $ */ 
     1/* $Id: main.h,v 1.19 2005/01/11 09:52:55 morris Exp $ */ 
    22 
    33/* 
     
    3030#define WR_MAIN_H 1 
    3131 
     32#include <stdbool.h> 
    3233#include <signal.h> 
    3334#include <time.h> 
     
    6869void                                                                    wr_print_users(void); 
    6970void                                                                    wr_print_user(wr_user_t *, unsigned int); 
    70 void                                                                    wr_print_file(wr_file_t *, unsigned int); 
     71void                                                                    wr_print_file(wr_file_t *, bool, unsigned int); 
    7172 
    7273void                                                                    wr_draw_header(void);