Add file path to fts_read failure messages to make errors more actionable. This resolves FIXME comments requesting better error reporting during recursive operations.
Changes "fts_read failed: Permission denied" to "fts_read failed: '/path/to/file': Permission denied" * src/chcon.c (process_files): Include fts_path in error. * src/chmod.c (process_files): Likewise. * src/chown-core.c (chown_files): Likewise. * src/remove.c (rm): Likewise. Signed-off-by: Shubham Chakraborty <[email protected]> --- src/chcon.c | 4 ++-- src/chmod.c | 4 ++-- src/chown-core.c | 4 ++-- src/remove.c | 3 ++- 4 files changed, 8 insertions(+), 7 deletions(-) diff --git a/src/chcon.c b/src/chcon.c index 91b78148d..c3f6ca309 100644 --- a/src/chcon.c +++ b/src/chcon.c @@ -325,8 +325,8 @@ process_files (char **files, int bit_flags) { if (errno != 0) { - /* FIXME: try to give a better message */ - error (0, errno, _("fts_read failed")); + error (0, errno, _("fts_read failed: %s"), + quotef (fts->fts_path)); ok = false; } break; diff --git a/src/chmod.c b/src/chmod.c index 8b5717270..dd501787e 100644 --- a/src/chmod.c +++ b/src/chmod.c @@ -383,9 +383,9 @@ process_files (char **files, int bit_flags) { if (errno != 0) { - /* FIXME: try to give a better message */ if (! force_silent) - error (0, errno, _("fts_read failed")); + error (0, errno, _("fts_read failed: %s"), + quotef (fts->fts_path)); ok = false; } break; diff --git a/src/chown-core.c b/src/chown-core.c index e5e355fdb..6d1caf1c4 100644 --- a/src/chown-core.c +++ b/src/chown-core.c @@ -552,9 +552,9 @@ chown_files (char **files, int bit_flags, { if (errno != 0) { - /* FIXME: try to give a better message */ if (! chopt->force_silent) - error (0, errno, _("fts_read failed")); + error (0, errno, _("fts_read failed: %s"), + quotef (fts->fts_path)); ok = false; } break; diff --git a/src/remove.c b/src/remove.c index 99696e5de..5a2568d64 100644 --- a/src/remove.c +++ b/src/remove.c @@ -622,7 +622,8 @@ rm (char *const *file, struct rm_options const *x) { if (errno != 0) { - error (0, errno, _("fts_read failed")); + error (0, errno, _("fts_read failed: %s"), + quotef (fts->fts_path)); rm_status = RM_ERROR; } break; -- 2.39.5
