+ case KB_F5:
+ sel = tui_get_list_sel(uilist[focus]);
+ if(focus == 0) {
+ struct ftp_transfer *xfer;
+ struct ftp_dirent *ent = ftp_dirent(ftp, sel);
+ char *lname = alloca(strlen(ent->name) + 1);
+
+ fixname(lname, ent->name);
+
+ xfer = malloc_nf(sizeof *xfer);
+ if(!(xfer->fp = fopen(lname, "wb"))) {
+ errmsg("failed to open %s: %s\n", lname, strerror(errno));
+ free(xfer);
+ break;
+ }
+
+ xfer->op = FTP_RETR;
+ xfer->rname = strdup_nf(ent->name);
+ xfer->total = ent->size;
+ xfer->done = xfer_done;
+
+ ftp_queue_transfer(ftp, xfer);
+ local_modified = 1;
+ } else {
+ /* TODO */
+ }
+ break;
+