scp_sink_setup(src, preserve, recursive);
static void tolocal(int argc, char *argv[]){    char *src, *targ, *host, *user;    char *cmd;    if (argc != 2)	bump("More than one remote source not supported");    src = argv[0];    targ = argv[1];    /* Separate host from filename */    host = src;    src = colon(src);    if (src == NULL)	bump("Local to local copy not supported");    *src++ = '\0';    if (*src == '\0')	src = ".";    /* Substitute "." for empty filename */    /* Separate username and hostname */    user = host;    host = strrchr(host, '@');    if (host == NULL) {	host = user;	user = NULL;    } else {	*host++ = '\0';	if (*user == '\0')	    user = NULL;    }    cmd = smalloc(strlen(src) + 100);    sprintf(cmd, "scp%s%s%s%s -f %s",	    verbose ? " -v" : "",	    recursive ? " -r" : "",	    preserve ? " -p" : "",	    targetshouldbedirectory ? " -d" : "", src);    do_cmd(host, user, cmd);    sfree(cmd);    sink(targ, src);}