X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=lib%2Ffchdir.c;h=5930940bd6f07e4cda1c8f42d2cecfc623de3a57;hb=fdf6b0ba132b0f8cfacf2ad5d31e366757c7ac34;hp=545b207ff4b6fb21175e3da817cbf9a28fb1c13a;hpb=aeb9a8a8a97f8b876a378ae4fe330f131437b348;p=gnulib.git diff --git a/lib/fchdir.c b/lib/fchdir.c index 545b207ff..5930940bd 100644 --- a/lib/fchdir.c +++ b/lib/fchdir.c @@ -50,8 +50,8 @@ descriptor, since mingw refuses to rename any in-use file system object. */ -/* Array of file descriptors opened. If it points to a directory, it stores - info about this directory. */ +/* Array of file descriptors opened. If REPLACE_OPEN_DIRECTORY or if it points + to a directory, it stores info about this directory. */ typedef struct { char *name; /* Absolute name of the directory, or NULL. */ @@ -216,18 +216,19 @@ _gl_directory_name (int fd) return NULL; } +#if REPLACE_OPEN_DIRECTORY /* Return stat information about FD in STATBUF. Needed when rpl_open() used a dummy file to work around an open() that can't normally visit directories. */ -#undef fstat +# undef fstat int rpl_fstat (int fd, struct stat *statbuf) { - if (REPLACE_OPEN_DIRECTORY - && 0 <= fd && fd < dirs_allocated && dirs[fd].name != NULL) + if (0 <= fd && fd < dirs_allocated && dirs[fd].name != NULL) return stat (dirs[fd].name, statbuf); return fstat (fd, statbuf); } +#endif /* Override opendir() and closedir(), to keep track of the open file descriptors. Needed because there is a function dirfd(). */