diff options
author | Matt Johnston <matt@ucc.asn.au> | 2004-08-24 05:05:48 +0000 |
---|---|---|
committer | Matt Johnston <matt@ucc.asn.au> | 2004-08-24 05:05:48 +0000 |
commit | 70b7c24cb078df45882711372f7663b4822a02d6 (patch) | |
tree | e09ada38c0ec96c72a787303e718f3cdcadb6676 | |
parent | e089ee4d8508f2f68c4966d4aa9ca65f7176aed8 (diff) |
Fix for "-l" scp option
--HG--
extra : convert_revision : 700ba4c9a06b892fa9742bc8f3b6fe73a32f94f7
-rw-r--r-- | cli-runopts.c | 12 | ||||
-rw-r--r-- | scp.c | 6 |
2 files changed, 10 insertions, 8 deletions
diff --git a/cli-runopts.c b/cli-runopts.c index 05f637f..2aa3413 100644 --- a/cli-runopts.c +++ b/cli-runopts.c @@ -143,12 +143,6 @@ void cli_getopts(int argc, char ** argv) { if (argv[i][0] == '-') { /* A flag *waves* */ - if (strlen(argv[i]) > 2) { - fprintf(stderr, - "WARNING: Ignoring unknown argument '%s'\n", argv[i]); - continue; - } - switch (argv[i][1]) { case 'p': /* remoteport */ next = &cli_opts.remoteport; @@ -205,6 +199,12 @@ void cli_getopts(int argc, char ** argv) { "WARNING: Ignoring unknown argument '%s'\n", argv[i]); break; } /* Switch */ + + /* Now we handle args where they might be "-luser" (no spaces)*/ + if (next && strlen(argv[i]) > 2) { + *next = &argv[i][2]; + next = NULL; + } continue; /* next argument */ @@ -178,8 +178,10 @@ do_cmd(char *host, char *remuser, char *cmd, int *fdin, int *fdout, int argc) close(pout[1]); args.list[0] = ssh_program; - if (remuser != NULL) - addargs(&args, "-l%s", remuser); + if (remuser != NULL) { + addargs(&args, "-l"); + addargs(&args, "%s", remuser); + } addargs(&args, "%s", host); addargs(&args, "%s", cmd); |