version 1.151, 2013/08/08 04:52:04 |
version 1.152, 2013/08/08 05:04:03 |
|
|
} |
} |
|
|
static int |
static int |
|
parse_rename_flags(const char *cmd, char **argv, int argc, int *lflag) |
|
{ |
|
extern int opterr, optind, optopt, optreset; |
|
int ch; |
|
|
|
optind = optreset = 1; |
|
opterr = 0; |
|
|
|
*lflag = 0; |
|
while ((ch = getopt(argc, argv, "l")) != -1) { |
|
switch (ch) { |
|
case 'l': |
|
*lflag = 1; |
|
break; |
|
default: |
|
error("%s: Invalid flag -%c", cmd, optopt); |
|
return -1; |
|
} |
|
} |
|
|
|
return optind; |
|
} |
|
|
|
static int |
parse_ls_flags(char **argv, int argc, int *lflag) |
parse_ls_flags(char **argv, int argc, int *lflag) |
{ |
{ |
extern int opterr, optind, optopt, optreset; |
extern int opterr, optind, optopt, optreset; |
|
|
case I_LINK: |
case I_LINK: |
if ((optidx = parse_link_flags(cmd, argv, argc, sflag)) == -1) |
if ((optidx = parse_link_flags(cmd, argv, argc, sflag)) == -1) |
return -1; |
return -1; |
case I_SYMLINK: |
goto parse_two_paths; |
case I_RENAME: |
case I_RENAME: |
|
if ((optidx = parse_rename_flags(cmd, argv, argc, lflag)) == -1) |
|
return -1; |
|
goto parse_two_paths; |
|
case I_SYMLINK: |
|
parse_two_paths: |
if (argc - optidx < 2) { |
if (argc - optidx < 2) { |
error("You must specify two paths after a %s " |
error("You must specify two paths after a %s " |
"command.", cmd); |
"command.", cmd); |
|
|
case I_RENAME: |
case I_RENAME: |
path1 = make_absolute(path1, *pwd); |
path1 = make_absolute(path1, *pwd); |
path2 = make_absolute(path2, *pwd); |
path2 = make_absolute(path2, *pwd); |
err = do_rename(conn, path1, path2); |
err = do_rename(conn, path1, path2, lflag); |
break; |
break; |
case I_SYMLINK: |
case I_SYMLINK: |
sflag = 1; |
sflag = 1; |