Ticket #118: 11105-fish.c.port.patch

File 11105-fish.c.port.patch, 1.6 KB (added by slavazanko, 11 years ago)
  • fish.c

    old new static int 
    214214fish_open_archive_int (struct vfs_class *me, struct vfs_s_super *super) 
    215215{ 
    216216    { 
    217         const char *argv[10]; 
     217        char gbuf[10]; 
     218        const char *argv[10];   /* All of 10 is used now */ 
    218219        const char *xsh = (SUP.flags == FISH_FLAG_RSH ? "rsh" : "ssh"); 
    219220        int i = 0; 
    220221 
    fish_open_archive_int (struct vfs_class  
    224225#endif 
    225226        if (SUP.flags == FISH_FLAG_COMPRESSED) 
    226227            argv[i++] = "-C"; 
     228        if (SUP.flags > FISH_FLAG_RSH) { 
     229            argv[i++] = "-p"; 
     230            g_snprintf (gbuf, sizeof (gbuf), "%d", SUP.flags); 
     231            argv[i++] = gbuf; 
     232        } 
    227233        argv[i++] = "-l"; 
    228234        argv[i++] = SUP.user; 
    229235        argv[i++] = SUP.host; 
    fish_open_archive (struct vfs_class *me, 
    323329    SUP.user = user; 
    324330    SUP.flags = flags; 
    325331    if (!strncmp (op, "rsh:", 4)) 
    326         SUP.flags |= FISH_FLAG_RSH; 
     332        SUP.flags = FISH_FLAG_RSH; 
    327333    SUP.cwdir = NULL; 
    328334    if (password) 
    329335        SUP.password = password; 
    static void 
    913919fish_fill_names (struct vfs_class *me, fill_names_f func) 
    914920{ 
    915921    struct vfs_s_super *super = MEDATA->supers; 
    916     const char *flags; 
    917922    char *name; 
    918      
     923    char gbuf[10]; 
     924 
    919925    while (super){ 
    920         switch (SUP.flags & (FISH_FLAG_RSH | FISH_FLAG_COMPRESSED)) { 
     926        const char *flags = ""; 
     927        switch (SUP.flags) { 
    921928        case FISH_FLAG_RSH: 
    922929                flags = ":r"; 
    923930                break; 
    924931        case FISH_FLAG_COMPRESSED: 
    925932                flags = ":C"; 
    926933                break; 
    927         case FISH_FLAG_RSH | FISH_FLAG_COMPRESSED: 
    928                 flags = ""; 
    929                 break; 
    930934        default: 
    931                 flags = ""; 
     935                if (SUP.flags > FISH_FLAG_RSH) { 
     936                    g_snprintf (gbuf, sizeof (gbuf), ":%d", SUP.flags); 
     937                    flags = gbuf; 
     938                } 
    932939                break; 
    933940        } 
    934941