/* Traverse a file hierarchy.
- Copyright (C) 2004, 2005, 2006 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
# ifdef _LIBC
# include <features.h>
-# define _LGPL_PACKAGE 1
# else
# undef __THROW
# define __THROW
# include <stddef.h>
# include <sys/types.h>
# include <sys/stat.h>
+# include "i-ring.h"
typedef struct {
struct _ftsent *fts_cur; /* current node */
# define FTS_STOP 0x2000 /* (private) unrecoverable error */
int fts_options; /* fts_open options, global flags */
-# if !_LGPL_PACKAGE
+# if GNULIB_FTS
union {
/* This data structure is used if FTS_TIGHT_CYCLE_CHECK is
specified. It records the directories between a starting
but it's not appropriate for programs like du. */
struct cycle_check_state *state;
} fts_cycle;
+
# endif
+ /* A stack of the file descriptors corresponding to the
+ most-recently traversed parent directories.
+ Currently used only in FTS_CWDFD mode. */
+ I_ring fts_fd_ring;
} FTS;
typedef struct _ftsent {