sfree(ctx->dstfname);
int sftp_cmd_mv(struct sftp_command *cmd){    struct sftp_context_mv actx, *ctx = &actx;    int i, ret;    if (back == NULL) {	printf("psftp: not connected to a host; use \"open host.name\"\n");	return 0;    }    if (cmd->nwords < 3) {	printf("mv: expects two filenames\n");	return 0;    }    ctx->dstfname = canonify(cmd->words[cmd->nwords-1]);    if (!ctx->dstfname) {	printf("%s: %s\n", ctx->dstfname, fxp_error());	return 0;    }    /*     * If there's more than one source argument, or one source     * argument which is a wildcard, we _require_ that the     * destination is a directory.     */    ctx->dest_is_dir = check_is_dir(ctx->dstfname);    if ((cmd->nwords > 3 || is_wildcard(cmd->words[1])) && !ctx->dest_is_dir) {	printf("mv: multiple or wildcard arguments require the destination"	       " to be a directory\n");	return 0;    }    /*     * Now iterate over the source arguments.     */    ret = 1;    for (i = 1; i < cmd->nwords-1; i++)	ret &= wildcard_iterate(cmd->words[i], sftp_action_mv, ctx);    return ret;}