Paul Eggert [Thu, 5 Oct 2006 21:23:20 +0000 (21:23 +0000)]
Remove macros that are no longer needed now that stdint.h is
reliable.
* fsusage.c (UINTMAX_MAX): Remove.
* human.c (SIZE_MAX, UINTMAX_MAX): Remove.
* utimecmp.c (SIZE_MAX): Remove.
Paul Eggert [Sat, 30 Sep 2006 00:37:48 +0000 (00:37 +0000)]
[lib/ChangeLog]
Work around bug in Solaris 10 /proc file system:
/proc/self/fd/NNN/.. isn't the parent directory of
the directory whose file descriptor is NNN. This needs to
be worked around at run time, not compile time, since a
program might be built on Solaris 8, where things work, and
run on Solaris 10.
* openat-priv.h (BUILD_PROC_NAME): Remove. All callers changed
to use the following interface instead:
(OPENAT_BUFFER_SIZE): New macro.
(openat_proc_name): New function.
* at-func.c (AT_FUNC_NAME): Adjust to above changes.
* openat.c (openat_permissive, openat_needs_fchdir, fdopendir):
Likewise.
* openat-proc.c: New file.
[ChangeLog]
* modules/openat (Files): Add lib/openat-proc.c.
(Depends-on): Add same-inode, stdbool.
[m4/ChangeLog]
* openat.m4 (gl_FUNC_OPENAT): Add AC_LIBOBJ(openat-proc).
Jim Meyering [Thu, 28 Sep 2006 11:16:05 +0000 (11:16 +0000)]
[lib/ChangeLog]
This function could end up with a definition for a function
named __strndup, rather than rpl_strndup on a system with
incomplete weak_alias support.
* strndup.c (strndup): Rename from __strndup.
Remove #defines that used to map __strndup to strndup.
Don't use K&R prototypes.
Remove LIBC-related code, since this file is not sync'd with glibc.
* strndup.h: Revamp, accordingly.
[m4/ChangeLog]
* strndup.m4: Modernize.
Paul Eggert [Wed, 27 Sep 2006 17:59:19 +0000 (17:59 +0000)]
[lib/ChangeLog]
* __fpending.h: Don't include <stdio_ext.h> unless
HAVE_DECL___FPENDING. This avoids a bug with lsbcc, where
it causes <stdio_ext.h> to cause a compile-time error.
Problem reported by Nelson H. F. Beebe.
* getpass.c: Likewise, except for HAVE_DECL___FSETLOCKING instead
of HAVE_DECL___PENDING.
[m4/ChangeLog]
* fpending.m4 (gl_FUNC_FPENDING): Check for stdio_ext at most once.
* getpass.m4 (gl_PREREQ_GETPASS): Check for __fsetlocking's declaration.
Jim Meyering [Tue, 26 Sep 2006 10:30:06 +0000 (10:30 +0000)]
* acl.m4 (AC_FUNC_ACL): Disable ACL support altogether
when we detect Darwin 8.7.0's acl_get_file bug.
Rearrange to perform the new (below) run-test while $LIBS
contains any acl-related library. Set USE_ACL at the end.
(gl_ACL_GET_FILE): New function.
* chdir-long.m4 (gl_FUNC_CHDIR_LONG): Rename cache variable from
`gl_have_arbitrary_file_name_length_limit' to
`gl_cv_have_arbitrary_file_name_length_limit', so that caching
actually works between configure runs.
Jim Meyering [Sun, 24 Sep 2006 06:49:03 +0000 (06:49 +0000)]
* ls-mntd-fs.m4 (gl_LIST_MOUNTED_FILE_SYSTEMS): Don't use '>' to
compare a pointer against a literal "0". That caused failures with
at least HP-UX's hpcc.
* fsusage.m4 (gl_STATFS_TRUNCATES): Avoid unused variable.
* getdate.m4 (gl_C_COMPOUND_LITERALS): Likewise.
* jm-winsz1.m4 (gl_HEADER_TIOCGWINSZ_IN_TERMIOS_H): Likewise;
also add missing comma that caused broken test.
* link-follow.m4 (gl_AC_FUNC_LINK_FOLLOWS_SYMLINK): Include
stdlib.h, for `abort'.
* ls-mntd-fs.m4 (gl_LIST_MOUNTED_FILE_SYSTEMS): Avoid unused
variables.
* mkdir-slash.m4 (gl_FUNC_MKDIR_TRAILING_SLASH): Check for and
include unistd.h if present, for `rmdir'.
* physmem.m4 (gl_SYS__SYSTEM_CONFIGURATION): Avoid unused
variables.
* putenv.m4 (gl_FUNC_PUTENV): Rewrite using AC_RUN_IFELSE, and
in the process include standard headers for prototypes.
* readutmp.m4 (gl_READUTMP): Require AC_GNU_SOURCE, so utmpxname
gets declared on GNU/Linux.
* rmdir-errno.m4 (gl_FUNC_RMDIR_NOTEMPTY): Check for and include
unistd.h, for `rmdir'.
* time_r.m4 (gl_TIME_R): Avoid unused variables.
Paul Eggert [Thu, 21 Sep 2006 05:25:11 +0000 (05:25 +0000)]
* lib/regex_internal.c (re_string_reconstruct): Handle
offset < pstr->valid_raw_len && pstr->offsets_needed case.
Ensure no bytes read before raw_mbs array. Pass a saved copy of
pstr->valid_len - 1 rather than pstr->valid_raw_len - 1 to
re_string_context_at.
* m4/regex.m4 (gl_REGEX): Check for locale.h, since the test
now requires it.
(gl_PREREQ_REGEX): Don't check for locale.h any more, since
gl_REGEX now does it for us.
(gl_REGEX): Add test taken from
http://sourceware.org/ml/libc-hacker/2006-09/msg00008.html.
Paul Eggert [Wed, 20 Sep 2006 18:44:04 +0000 (18:44 +0000)]
[ChangeLog]
* modules/mkstemp (Depends-on): Add extensions, so that
mkstemp is visible on some platforms.
(Makefile.am): Add mkstemp.h to EXTRA_DIST.
[lib/ChangeLog]
* mkstemp.h: New file, since some standard headers
#define mkstemp.
* mkstemp.c: Revamp to put the !_LIBC code together.
Include "mkstemp.h".
Make the _LIBC code resemble glibc original more,
e.g., use K&R style.
* stdlib--.h: Include mkstemp.h.
[m4/ChangeLog]
* mkstemp.m4 (gl_FUNC_MKSTEMP): Require AC_SYS_LARGEFILE.
Check that large offsets work. Modernize Autoconf usages.
Prefer "yes" to mean a good thing rather than a bad.
Don't put "#define mkstemp" in config.h, as this might interfere
with standard system headers that "#define mkstemp mkstemp64".
* gnulib-tool (func_exit): New function, to allow to pass the
exit status portably through the trap. Use everywhere.
(--help, --version): Signal a write error.
(trap): catch SIGPIPE, for write errors.
Exit at the end of the trap, with the correct exit status.
Paul Eggert [Sat, 16 Sep 2006 19:58:25 +0000 (19:58 +0000)]
* lib/dirchownmod.c: Don't include fcntl.h; no longer needed.
(dirchownmod): New arg FD. All callers changed.
Use FD rather than opening the directory ourself, as opening is
now the caller's responsibility.
* lib/dirchownmod.h: Likewise.
* lib/mkancesdirs.c: Include <sys/types.h>, for portability to older
hosts that require <sys/types.h> before <sys/stat.h>. Include
fcntl.h, savewd.h, and unistd.h, not dirname.h and stat-macros.h.
(test_dir): Remove.
(mkancesdirs): Return length of prefix of FILE that has already
been made, or -2 if there is a child doing the work. Redo
algorithm so that it is O(N) rather than O(N**2). Optimize away
".", and treat ".." specially since it might stray back into
already-created areas. Use a subprocess if necessary. New arg
WD; all users changed. MAKE_DIR function should now return 1
if it creates a directory that is not readable. Return -2 if
a child process is spun off.
* lib/mkancesdirs.h: Include <stddef.h>, for ptrdiff_t.
Adjust signature to match code.
* lib/mkdir-p.c: Include dirname.h, for IS_ABSOLUTE_FILE_NAME.
(make_dir_parents): Use a subprocess if necessary. New arg WD;
all users changed.
* lib/savewd.c, lib/savewd.h: New files.
* m4/savewd.m4: New file.
* modules/mkancesdirs (Depends-on): Add fcntl.
* modules/savewd: New file.
* MODULES.html.sh (File system functions): Add savewd.
Jim Meyering [Fri, 15 Sep 2006 18:48:09 +0000 (18:48 +0000)]
* rename-dest-slash.c (has_trailing_slash): Use
FILE_SYSTEM_PREFIX_LEN, for non-POSIX systems.
(rpl_rename_dest_slash): Perform the cheaper trailing slash
test before testing whether SRC is a directory.
Suggestions from Bruno Haible.