return 0;
return 1;
int sftp_cmd_mv(struct sftp_command *cmd){    char *srcfname, *dstfname;    int result;    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;    }    srcfname = canonify(cmd->words[1]);    if (!srcfname) {	printf("%s: %s\n", srcfname, fxp_error());	return 0;    }    dstfname = canonify(cmd->words[2]);    if (!dstfname) {	printf("%s: %s\n", dstfname, fxp_error());	return 0;    }    result = fxp_rename(srcfname, dstfname);    if (!result) {	char const *error = fxp_error();	struct fxp_attrs attrs;	/*	 * The move might have failed because dstfname pointed at a	 * directory. We check this possibility now: if dstfname	 * _is_ a directory, we re-attempt the move by appending	 * the basename of srcfname to dstfname.	 */	result = fxp_stat(dstfname, &attrs);	if (result &&	    (attrs.flags & SSH_FILEXFER_ATTR_PERMISSIONS) &&	    (attrs.permissions & 0040000)) {	    char *p;	    char *newname, *newcanon;	    printf("(destination %s is a directory)\n", dstfname);	    p = srcfname + strlen(srcfname);	    while (p > srcfname && p[-1] != '/') p--;	    newname = dupcat(dstfname, "/", p, NULL);	    newcanon = canonify(newname);	    sfree(newname);	    if (newcanon) {		sfree(dstfname);		dstfname = newcanon;		result = fxp_rename(srcfname, dstfname);		error = result ? NULL : fxp_error();	    }	}	if (error) {	    printf("mv %s %s: %s\n", srcfname, dstfname, error);	    sfree(srcfname);	    sfree(dstfname);	    return 0;	}    }    printf("%s -> %s\n", srcfname, dstfname);    sfree(srcfname);    sfree(dstfname);    return 0;}