Index: source/client/client.c =================================================================== RCS file: /cvsroot/samba/source/client/client.c,v retrieving revision 1.209.2.28 diff -u -r1.209.2.28 client.c --- source/client/client.c 3 Jul 2003 19:11:27 -0000 1.209.2.28 +++ source/client/client.c 6 Jul 2003 19:19:22 -0000 @@ -2731,6 +2731,7 @@ int opt; pstring query_host; BOOL message = False; + char* tar_args = NULL; extern char tar_type; pstring term_code; static const char *new_name_resolve_order = NULL; @@ -2816,7 +2817,7 @@ max_protocol = interpret_protocol(poptGetOptArg(pc), max_protocol); break; case 'T': - if (!tar_parseargs(argc, argv, poptGetOptArg(pc), optind)) { + if (!(tar_args = poptGetOptArg(pc))) { poptPrintUsage(pc, stderr, 0); exit(1); } @@ -2846,6 +2847,22 @@ if (poptPeekArg(pc)) { cmdline_auth_info.got_pass = True; pstrcpy(cmdline_auth_info.password,poptGetArg(pc)); + } + + /* The tar command may take a number of string options; pass + everything we have left to tar_parseargs(). */ + if (tar_args) { + const char **argv2 = poptGetArgs(pc); + int argc2 = 0; + + if (argv2) { + while (argv2[argc2]) argc2++; + } + + if (!tar_parseargs(argc2, argv2, tar_args, 0)) { + poptPrintUsage(pc, stderr, 0); + exit(1); + } } init_names();