version 1.22, 2015/10/10 14:23:12 |
version 1.23, 2019/06/28 13:35:01 |
|
|
tn = "."; |
tn = "."; |
|
|
/* to directory */ |
/* to directory */ |
if (stat(tn, &ts) < 0) |
if (stat(tn, &ts) == -1) |
err(1, "%s", tn); |
err(1, "%s", tn); |
if (!(S_ISDIR(ts.st_mode))) |
if (!(S_ISDIR(ts.st_mode))) |
errc(2, ENOTDIR, "%s", tn); |
errc(2, ENOTDIR, "%s", tn); |
if (chdir(tn) < 0) |
if (chdir(tn) == -1) |
err(1, "%s", tn); |
err(1, "%s", tn); |
|
|
/* from directory */ |
/* from directory */ |
if (stat(fn, &fs) < 0) |
if (stat(fn, &fs) == -1) |
err(1, "%s", fn); |
err(1, "%s", fn); |
if (!(S_ISDIR(fs.st_mode))) |
if (!(S_ISDIR(fs.st_mode))) |
errc(2, ENOTDIR, "%s", fn); |
errc(2, ENOTDIR, "%s", fn); |
|
|
strlcpy(p, dp->d_name, buf + sizeof(buf) - p); |
strlcpy(p, dp->d_name, buf + sizeof(buf) - p); |
|
|
if (n_dirs > 0) { |
if (n_dirs > 0) { |
if (stat(buf, &sb) < 0) { |
if (stat(buf, &sb) == -1) { |
warn("%s", buf); |
warn("%s", buf); |
continue; |
continue; |
} |
} |
|
|
curdir = silent ? buf : NULL; |
curdir = silent ? buf : NULL; |
if (!silent) |
if (!silent) |
printf("%s:\n", buf); |
printf("%s:\n", buf); |
if (stat(dp->d_name, &sc) < 0 && |
if (stat(dp->d_name, &sc) == -1 && |
errno == ENOENT) { |
errno == ENOENT) { |
if (mkdir(dp->d_name, 0777) < 0 || |
if (mkdir(dp->d_name, 0777) == -1 || |
stat(dp->d_name, &sc) < 0) { |
stat(dp->d_name, &sc) == -1) { |
warn("%s", dp->d_name); |
warn("%s", dp->d_name); |
curdir = rcurdir = ocurdir; |
curdir = rcurdir = ocurdir; |
continue; |
continue; |
|
|
curdir = rcurdir = ocurdir; |
curdir = rcurdir = ocurdir; |
continue; |
continue; |
} |
} |
if (chdir(dp->d_name) < 0) { |
if (chdir(dp->d_name) == -1) { |
warn("%s", dp->d_name); |
warn("%s", dp->d_name); |
curdir = rcurdir = ocurdir; |
curdir = rcurdir = ocurdir; |
continue; |
continue; |
} |
} |
dodir(buf, &sb, &sc, (buf[0] != '/')); |
dodir(buf, &sb, &sc, (buf[0] != '/')); |
if (chdir("..") < 0) |
if (chdir("..") == -1) |
err(1, ".."); |
err(1, ".."); |
curdir = rcurdir = ocurdir; |
curdir = rcurdir = ocurdir; |
continue; |
continue; |
|
|
fprintf(stderr,"%s: %s\n", dp->d_name, symbuf); |
fprintf(stderr,"%s: %s\n", dp->d_name, symbuf); |
} else { |
} else { |
if (symlink(basesymlen >= 0 ? basesym : buf, |
if (symlink(basesymlen >= 0 ? basesym : buf, |
dp->d_name) < 0) |
dp->d_name) == -1) |
warn("%s", dp->d_name); |
warn("%s", dp->d_name); |
} |
} |
next: |
next: |