summaryrefslogtreecommitdiff
path: root/lib/openat.c
diff options
context:
space:
mode:
authorEric Blake <ebb9@byu.net>2009-09-19 05:50:30 -0600
committerEric Blake <ebb9@byu.net>2009-09-19 13:49:59 -0600
commit82bf7d1b42dc970e704f9347862594445f4a22dd (patch)
tree5a5abebd391ce672dbc0b4c5861907ec6e4ecd69 /lib/openat.c
parent22d7496bac7d391faff10755b17889ecd2f604d4 (diff)
downloadgnulib-82bf7d1b42dc970e704f9347862594445f4a22dd.tar.gz
openat: move fstatat and unlinkat into correct files
Code motion, should be no semantic changes. * m4/openat.m4 (gl_FUNC_OPENAT): Adjust which files will be compiled. * lib/openat.c (fstatat, unlinkat): Move... * lib/fstatat.c (fstatat): ...into correct files. * lib/unlinkat.c (unlinkat): Likewise. Signed-off-by: Eric Blake <ebb9@byu.net>
Diffstat (limited to 'lib/openat.c')
-rw-r--r--lib/openat.c62
1 files changed, 0 insertions, 62 deletions
diff --git a/lib/openat.c b/lib/openat.c
index a0d0ab455a..2a194e8856 100644
--- a/lib/openat.c
+++ b/lib/openat.c
@@ -156,65 +156,3 @@ openat_needs_fchdir (void)
return needs_fchdir;
}
-
-/* On mingw, the gnulib <sys/stat.h> defines `stat' as a function-like
- macro; but using it in AT_FUNC_F2 causes compilation failure
- because the preprocessor sees a use of a macro that requires two
- arguments but is only given one. Hence, we need an inline
- forwarder to get past the preprocessor. */
-static inline int
-stat_func (char const *name, struct stat *st)
-{
- return stat (name, st);
-}
-
-/* Likewise, if there is no native `lstat', then the gnulib
- <sys/stat.h> defined it as stat, which also needs adjustment. */
-#if !HAVE_LSTAT
-# undef lstat
-# define lstat stat_func
-#endif
-
-/* Replacement for Solaris' function by the same name.
- <http://www.google.com/search?q=fstatat+site:docs.sun.com>
- First, try to simulate it via l?stat ("/proc/self/fd/FD/FILE").
- Failing that, simulate it via save_cwd/fchdir/(stat|lstat)/restore_cwd.
- If either the save_cwd or the restore_cwd fails (relatively unlikely),
- then give a diagnostic and exit nonzero.
- Otherwise, this function works just like Solaris' fstatat. */
-
-#define AT_FUNC_NAME fstatat
-#define AT_FUNC_F1 lstat
-#define AT_FUNC_F2 stat_func
-#define AT_FUNC_USE_F1_COND AT_SYMLINK_NOFOLLOW
-#define AT_FUNC_POST_FILE_PARAM_DECLS , struct stat *st, int flag
-#define AT_FUNC_POST_FILE_ARGS , st
-#include "at-func.c"
-#undef AT_FUNC_NAME
-#undef AT_FUNC_F1
-#undef AT_FUNC_F2
-#undef AT_FUNC_USE_F1_COND
-#undef AT_FUNC_POST_FILE_PARAM_DECLS
-#undef AT_FUNC_POST_FILE_ARGS
-
-/* Replacement for Solaris' function by the same name.
- <http://www.google.com/search?q=unlinkat+site:docs.sun.com>
- First, try to simulate it via (unlink|rmdir) ("/proc/self/fd/FD/FILE").
- Failing that, simulate it via save_cwd/fchdir/(unlink|rmdir)/restore_cwd.
- If either the save_cwd or the restore_cwd fails (relatively unlikely),
- then give a diagnostic and exit nonzero.
- Otherwise, this function works just like Solaris' unlinkat. */
-
-#define AT_FUNC_NAME unlinkat
-#define AT_FUNC_F1 rmdir
-#define AT_FUNC_F2 unlink
-#define AT_FUNC_USE_F1_COND AT_REMOVEDIR
-#define AT_FUNC_POST_FILE_PARAM_DECLS , int flag
-#define AT_FUNC_POST_FILE_ARGS /* empty */
-#include "at-func.c"
-#undef AT_FUNC_NAME
-#undef AT_FUNC_F1
-#undef AT_FUNC_F2
-#undef AT_FUNC_USE_F1_COND
-#undef AT_FUNC_POST_FILE_PARAM_DECLS
-#undef AT_FUNC_POST_FILE_ARGS