Now that fts no longer changes the current working directory, adjust
authorJim Meyering <jim@meyering.net>
Tue, 17 Jan 2006 17:25:42 +0000 (17:25 +0000)
committerJim Meyering <jim@meyering.net>
Tue, 17 Jan 2006 17:25:42 +0000 (17:25 +0000)
its clients accordingly -- note that du.c uses fts but doesn't need
any adjustment, since it doesn't operate on the actual files,
but rather just uses the stat buffers provided by fts.

Include "openat.h".
(process_file): Use chmodat (fts->fts_cwd_fd,... in place of chmod (...

src/chmod.c

index ac3d8c7..098118c 100644 (file)
@@ -28,6 +28,7 @@
 #include "error.h"
 #include "filemode.h"
 #include "modechange.h"
+#include "openat.h"
 #include "quote.h"
 #include "quotearg.h"
 #include "root-dev-ino.h"
@@ -225,7 +226,7 @@ process_file (FTS *fts, FTSENT *ent)
 
       if (! S_ISLNK (old_mode))
        {
-         if (chmod (file, new_mode) == 0)
+         if (chmodat (fts->fts_cwd_fd, file, new_mode) == 0)
            chmod_succeeded = true;
          else
            {