1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-10-19 02:29:40 +00:00

An average consumer of fts(3) that avoids keeping pointers to old

FTSENTs and uses only what fts_read() has just returned can rely
on fts_path being NUL-terminated.  Under these conditions, a plain
vanilla "%s" format can be safely used to printf an fts_path.

OK'ed by:	rwatson
This commit is contained in:
Yaroslav Tykhiy 2008-01-29 17:50:29 +00:00
parent e26c7abd15
commit 321be3fd53
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=175796

View File

@ -156,13 +156,11 @@ main(int argc, char **argv)
case FTS_W: /* do whiteout */
if (apply_specs(specs, ftsent, hflag, vflag)) {
if (eflag) {
errx(1, "labeling not supported in "
"%.*s", (int) ftsent->fts_pathlen,
errx(1, "labeling not supported in %s",
ftsent->fts_path);
}
if (!qflag)
warnx("labeling not supported in %.*s",
(int) ftsent->fts_pathlen,
warnx("labeling not supported in %s",
ftsent->fts_path);
fts_set(fts, ftsent, FTS_SKIP);
}
@ -170,12 +168,10 @@ main(int argc, char **argv)
case FTS_DNR: /* die on all errors */
case FTS_ERR:
case FTS_NS:
err(1, "traversing %.*s", (int) ftsent->fts_pathlen,
ftsent->fts_path);
err(1, "traversing %s", ftsent->fts_path);
default:
errx(1, "CANNOT HAPPEN (%d) traversing %.*s",
ftsent->fts_info, (int) ftsent->fts_pathlen,
ftsent->fts_path);
errx(1, "CANNOT HAPPEN (%d) traversing %s",
ftsent->fts_info, ftsent->fts_path);
}
}
fts_close(fts);
@ -438,8 +434,7 @@ apply_specs(struct label_specs *specs, FTSENT *ftsent, int hflag, int vflag)
ls->match = ent;
if (vflag) {
if (matchedby == 0) {
printf("%.*s matched by ",
(int) ftsent->fts_pathlen,
printf("%s matched by ",
ftsent->fts_path);
matchedby = 1;
}
@ -483,8 +478,7 @@ apply_specs(struct label_specs *specs, FTSENT *ftsent, int hflag, int vflag)
free(macstr);
return (1);
}
err(1, "mac_set_link(%.*s, %s)", (int) ftsent->fts_pathlen,
ftsent->fts_path, macstr);
err(1, "mac_set_link(%s, %s)", ftsent->fts_path, macstr);
}
mac_free(mac);
free(macstr);