|
e4ee1420
|
2009-12-16T10:07:13
|
|
fcntl: use to simplify other modules
Let fcntl do the work, instead of copying code into other modules.
* modules/cloexec (Depends-on): Add fcntl.
* modules/fchdir (Depends-on): Likewise.
* modules/fd-safer-flag (Depends-on): Likewise.
* modules/unistd-safer (Depends-on): Likewise.
* modules/dup3 (configure.ac): Set module indicator.
* m4/fchdir.m4 (gl_FUNC_FCHDIR): Replace fcntl if fchdir is
missing.
* lib/fchdir.c (_gl_register_dup): Fix comment.
* lib/cloexec.c (dup_cloexec): Simplify, by relying on fcntl.
* lib/dup-safer.c (dup_safer): Likewise.
* lib/dup-safer-flag.c (dup_safer_flag): Likewise.
* lib/dup3.c (dup3): Likewise.
* tests/test-fchdir.c (main): Enhance test.
Fixes a dup_cloexec bug reported by Ondřej Vašík.
Signed-off-by: Eric Blake <ebb9@byu.net>
|
|
657fb89d
|
2009-09-23T20:33:40
|
|
fchdir: another mingw fix
canonicalize_file_name does not understand drive letters or
backslash. The only reason openat required it was to make
fchdir get the canonical name of a directory. But we can do
the same trick with chdir and getcwd. With this fix,
fchdir(open("..",O_RDONLY)) finally does the right thing on mingw.
* modules/fchdir (Depends-on): Drop canonicalize-lgpl.
* lib/fchdir.c (get_name): New helper method; skips canonicalize
on mingw (where it has not yet been ported), and make it optional
elsewhere.
(_gl_register_fd): Use it.
Signed-off-by: Eric Blake <ebb9@byu.net>
|
|
ba165292
|
2009-09-15T14:43:14
|
|
stat: add as dependency to other modules
Modules that use stat but are not in this list don't trip any of
the bugs that the stat module fixes.
* modules/chown (Depends-on): Add stat.
* modules/euidaccess (Depends-on): Likewise.
* modules/fchdir (Depends-on): Likewise.
* modules/isdir (Depends-on): Likewise.
* modules/link (Depends-on): Likewise.
* modules/lstat (Depends-on): Likewise.
* modules/mkdir-p (Depends-on): Likewise.
* modules/modechange (Depends-on): Likewise.
* modules/open (Depends-on): Likewise.
* modules/readlink (Depends-on): Likewise.
* modules/same (Depends-on): Likewise.
Signed-off-by: Eric Blake <ebb9@byu.net>
|
|
6a9b156f
|
2009-09-17T11:49:36
|
|
maint: make Include sections of modules consistent
Done with "sed -i 's/^#include //' `git grep -l ^#include modules`".
* modules/alloca: Use only header name; no need to list #include.
* modules/alloca-opt: Likewise.
* modules/arpa_inet: Likewise.
* modules/canon-host: Likewise.
* modules/configmake: Likewise.
* modules/dirent: Likewise.
* modules/eealloc: Likewise.
* modules/environ: Likewise.
* modules/fchdir: Likewise.
* modules/fcntl: Likewise.
* modules/fcntl-h: Likewise.
* modules/gethrxtime: Likewise.
* modules/gettime: Likewise.
* modules/ignore-value: Likewise.
* modules/inet_ntop: Likewise.
* modules/inet_pton: Likewise.
* modules/inttypes: Likewise.
* modules/isnand-nolibm: Likewise.
* modules/isnanf-nolibm: Likewise.
* modules/mbchar: Likewise.
* modules/mbfile: Likewise.
* modules/mbiter: Likewise.
* modules/mbuiter: Likewise.
* modules/netdb: Likewise.
* modules/netinet_in: Likewise.
* modules/nproc: Likewise.
* modules/pagealign_alloc: Likewise.
* modules/poll: Likewise.
* modules/printf-frexp: Likewise.
* modules/pthread: Likewise.
* modules/putenv: Likewise.
* modules/random_r: Likewise.
* modules/relocatable-prog: Likewise.
* modules/search: Likewise.
* modules/select: Likewise.
* modules/selinux-h: Likewise.
* modules/settime: Likewise.
* modules/signal: Likewise.
* modules/size_max: Likewise.
* modules/socklen: Likewise.
* modules/ssize_t: Likewise.
* modules/stdarg: Likewise.
* modules/stdbool: Likewise.
* modules/stddef: Likewise.
* modules/stdint: Likewise.
* modules/stdio: Likewise.
* modules/stdlib: Likewise.
* modules/string: Likewise.
* modules/strings: Likewise.
* modules/sys_file: Likewise.
* modules/sys_ioctl: Likewise.
* modules/sys_select: Likewise.
* modules/sys_socket: Likewise.
* modules/sys_stat: Likewise.
* modules/sys_time: Likewise.
* modules/sys_times: Likewise.
* modules/sys_utsname: Likewise.
* modules/sys_wait: Likewise.
* modules/sysexits: Likewise.
* modules/time: Likewise.
* modules/times: Likewise.
* modules/tmpfile: Likewise.
* modules/trim: Likewise.
* modules/unistd: Likewise.
* modules/wchar: Likewise.
* modules/wctype: Likewise.
Signed-off-by: Eric Blake <ebb9@byu.net>
|
|
4475e25b
|
2009-08-31T14:20:03
|
|
fchdir: simplify error handling, and support dup3
* modules/fchdir (Depends-on): Use strdup-posix, not strdup. Add
stdbool, malloc-posix, realloc-posix.
* lib/fchdir.c (struct dir_info_t): Delete saved_errno.
(ensure_dirs_slot): Return false on allocation failure.
(rpl_dup2): Delete.
(_gl_register_dup): New function.
(_gl_unregister_fd, rpl_opendir, rpl_dup): Update callers.
(_gl_register_fd): Close fd on allocation failure.
* lib/fcntl.in.h (_gl_register_fd): Update signature.
* lib/unistd.in.h (_gl_register_dup) [FCHDIR_REPLACEMENT]: New
prototype.
(rpl_dup2_fchdir): Delete prototype.
* lib/open.c (open): Update caller.
* lib/dup2.c (dup2): Track fchdir metadata.
* lib/dup3.c (dup3): Likewise.
* m4/dup2.m4 (gl_REPLACE_DUP2): New macro.
* m4/fchdir.m4 (gl_FUNC_FCHDIR): Use it.
Signed-off-by: Eric Blake <ebb9@byu.net>
|
|
8fc864a0
|
2009-08-31T06:09:08
|
|
fchdir: port to mingw
* m4/fchdir.m4 (gl_FUNC_FCHDIR): Check for mingw bug.
* lib/open.c (open) [FCHDIR_REPLACEMENT]: If directories can't be
opened, then use a substitute.
* lib/sys_stat.in.h (fstat) [REPLACE_OPEN_DIRECTORY]: Declare
replacement.
* lib/fchdir.c (fstat) [REPLACE_OPEN_DIRECTORY]: Implement it.
(_gl_register_fd): No need to check stat if open already filters
all directories.
(fchdir): Fix error condition to match POSIX.
* modules/fchdir (Depends-on): Add sys_stat.
* doc/posix-functions/open.texi (open): Document the limitation.
* modules/fchdir-tests: New file.
* tests/test-fchdir.c: Likewise.
Signed-off-by: Eric Blake <ebb9@byu.net>
|
|
802f6fc3
|
2009-08-23T10:18:14
|
|
Update module dependencies.
|
|
c5fb0151
|
2008-10-19T01:44:46
|
|
New module 'dirent'.
|
|
d638ad23
|
2008-10-10T00:06:58
|
|
New module 'close'.
|
|
c2318e88
|
2008-08-30T03:09:15
|
|
Avoid some "gcc -pedantic" warnings.
|
|
0f5a6cf4
|
2008-06-24T09:40:36
|
|
make several modules depend on the "open" module
This provides slightly increased consistency when opening-for-write
the name of a non-directory spelled with a trailing slash.
* modules/chdir-safer: Likewise.
* modules/chown: Likewise.
* modules/clean-temp: Likewise.
* modules/copy-file: Likewise.
* modules/fchdir: Likewise.
* modules/fcntl-safer: Likewise.
* modules/pipe: Likewise.
* modules/utime: Likewise.
Prompted by Eric Blake and Bruno Haible.
|
|
25d87af7
|
2007-10-02T00:08:48
|
|
Rename dirent_.h to dirent.in.h.
|
|
73f2a1c0
|
2007-06-21T17:08:44
|
|
* m4/fchdir.m4 (gl_FUNC_FCHDIR): Likewise.
* m4/iconv_h.m4 (gl_ICONV_H): Likewise.
* m4/locale_h.m4 (gl_LOCALE_H): Likewise.
* m4/netinet_in_h.m4 (gl_HEADER_NETINET_IN): Likewise.
* m4/sys_select_h.m4 (gl_HEADER_SYS_SELECT): Likewise.
* m4/sys_socket_h.m4 (gl_HEADER_SYS_SOCKET): Likewise.
* m4/sysexits.m4 (gl_SYSEXITS): Likewise.
SCALAR(0x828a248)
* lib/dirent_.h: Likewise.
* lib/iconv_.h: Likewise.
* lib/locale_.h: Likewise.
* lib/netinet_in_.h: Likewise.
* lib/sys_select_.h: Likewise.
* lib/sys_socket_.h: Likewise.
* lib/sysexits_.h: Likewise.
* modules/fchdir: Likewise.
* modules/iconv_open: Likewise.
* modules/locale: Likewise.
* modules/netinet_in: Likewise.
* modules/sys_select: Likewise.
* modules/sys_socket: Likewise.
* modules/sysexits: Likewise.
|
|
af36a1d1
|
2007-05-17T15:56:05
|
|
* lib/dirent_.h: Prefer #include_next <foo.h> to #include
@ABSOLUTE_FOO_H@ if @HAVE_INCLUDE_NEXT@. This works better with
GCC 4.2, which otherwise issues a lot of warnings.
* lib/iconv_.h, lib/locale_.h, lib/netinet_in_.h, lib/sys_select_.h:
* lib/sys_socket_.h, lib/sys_stat_.h, lib/sysexits_.h, lib/unistd_.h:
Likewise.
* modules/fchdir (dirent.h): Substitute @HAVE_INCLUDE_NEXT@.
* modules/iconv_open (iconv.h): Likewise.
* modules/locale (locale.h): Likewise.
* modules/netinet_in (netinet/in.h): Likewise.
* modules/sys_select (sys_select.h): Likewise.
* modules/sys_socket (sys/socket.h): Likewise.
* modules/sys_stat (sys/stat.h): Likewise.
* modules/sysexits (sysexits.h): Likewise.
* modules/unistd (unistd.h): Likewise.
|
|
d52c5b93
|
2007-02-19T02:23:32
|
|
Move more declarations into <unistd.h>.
|
|
c002371c
|
2007-02-18T22:44:21
|
|
Depends on dup2 function being available.
|
|
8e2cdb06
|
2007-01-28T16:10:39
|
|
Simplify macrology that creates unistd.h.
|
|
8520ad55
|
2007-01-14T20:29:04
|
|
Add missing dependency.
|
|
854ebf64
|
2007-01-14T11:32:10
|
|
New module 'fchdir'.
|