doc/posix-functions


Log

Author Commit Date CI Message
Eric Blake 79d4e75d 2011-06-07T20:49:04 strerror_r-posix: fix on MacOS MacOS X 10.5 strerror(0) is "Unknown error: 0", which is not distinguished from "Unknown error: -1" for out-of-range. Worse, strerror_r(0,,) is "Undefined error: 0", although strerror_r for all other out-of-range values matches strerror. * m4/strerror.m4 (gl_FUNC_STRERROR): Flush out MacOS bug. * m4/strerror_r.m4 (gl_FUNC_STRERROR_R_WORKS): Likewise, and fix logic bug. * lib/strerror_r.c (strerror_r): Fix the bug. * lib/strerror.c (strerror): Likewise. * doc/posix-functions/strerror_r.texi (strerror_r): Document the problem. * doc/posix-functions/strerror.texi (strerror): Likewise. * doc/posix-functions/perror.texi (perror): Likewise. * tests/test-strerror.c (main): Enhance test. * tests/test-strerror_r.c (main): Likewise. Signed-off-by: Eric Blake <eblake@redhat.com>
Eric Blake 472f6137 2011-06-07T21:09:01 perror: document fixed bugs * doc/posix-functions/perror.texi (perror): Document recent patches. Signed-off-by: Eric Blake <eblake@redhat.com>
Eric Blake 4018d9e0 2011-06-06T17:59:01 strerror_r-posix: work around cygwin 1.7.9 Cygwin __xpg_strerror_r clobbers strerror, until cygwin 1.7.10; in this case, we must replace strerror, but there was nothing in strerror.m4 finding fault with cygwin's native strerror. Solve this by splitting strerror_r.m4 into two parts, one for probing for the strerror_r bug, and one for replacing strerror_r based on the presence of bugs unrelated to signature issues; that way, the 'strerror' module in isolation will not replace strerror, but if strerror_r is in use for any other reason, then the two use separate buffers. Note that cygwin's strerror is thread-safe while the gnulib replacement is not; but this is no worse than any other platform where strerror is not thread-safe; in a single-threaded program, the difference is not observable, and in a multi-threaded program, you really shouldn't be using strerror in the first place. Also note that this ends up replacing glibc 2.13 strerror as it deems __xpg_strerror_r broken on that platform, which isn't technically necessary for strerror, but doesn't hurt too much. Meanwhile, glibc 2.14 fixed __xpg_strerror_r, and strerror is not replaced in that scenario. * m4/strerror_r.m4 (gl_FUNC_STRERROR_R): Split... (gl_FUNC_STRERROR_R_WORKS): ...into new macro, to detect Cygwin bug without replacing strerror_r. * m4/strerror.m4 (gl_FUNC_STRERROR): Replace strerror if strerror_r is buggy, but without requiring strerror_r compilation. * doc/posix-functions/strerror_r.texi (strerror_r): Fix docs. Signed-off-by: Eric Blake <eblake@redhat.com>
Eric Blake fd33cbeb 2011-06-07T15:41:20 test-perror: relax test to ignore cygwin bug glibc was not the only platform where fprintf(fopen(,"r")) fails to detect errors; cygwin 1.7.9 is another culprit (although it will be fixed for 1.7.10), and I suspect that several other platforms were failing perror2 for the same reason. At this point, there are so many functions affected, and the way to avoid the bug is easy enough (don't pass bogus streams to output-producing functions), that I'm not worried about fixing things other than to document them. * tests/test-perror2.c (main): Relax test on requiring detection of stream errors, and use unbuffered stream. * doc/posix-functions/dprintf.texi (dprintf): Document bug. * doc/posix-functions/fprintf.texi (fprintf): Likewise. * doc/posix-functions/fputc.texi (fputc): Likewise. * doc/posix-functions/fputs.texi (fputs): Likewise. * doc/posix-functions/fputws.texi (fputws): Likewise. * doc/posix-functions/fwprintf.texi (fwprintf): Likewise. * doc/posix-functions/fwrite.texi (fwrite): Likewise. * doc/posix-functions/getopt.texi (getopt): Likewise. * doc/posix-functions/perror.texi (perror): Likewise. * doc/posix-functions/printf.texi (printf): Likewise. * doc/posix-functions/psiginfo.texi (psiginfo): Likewise. * doc/posix-functions/psignal.texi (psignal): Likewise. * doc/posix-functions/putc.texi (putc): Likewise. * doc/posix-functions/putc_unlocked.texi (putc_unlocked): Likewise. * doc/posix-functions/putchar.texi (putchar): Likewise. * doc/posix-functions/putchar_unlocked.texi (putchar_unlocked): Likewise. * doc/posix-functions/puts.texi (puts): Likewise. * doc/posix-functions/putwc.texi (putwc): Likewise. * doc/posix-functions/putwchar.texi (putwchar): Likewise. * doc/posix-functions/vdprintf.texi (vdprintf): Likewise. * doc/posix-functions/vfprintf.texi (vfprintf): Likewise. * doc/posix-functions/vfwprintf.texi (vfwprintf): Likewise. * doc/posix-functions/vprintf.texi (vprintf): Likewise. * doc/posix-functions/vwprintf.texi (vwprintf): Likewise. * doc/posix-functions/wordexp.texi (wordexp): Likewise. * doc/posix-functions/wprintf.texi (wprintf): Likewise. Signed-off-by: Eric Blake <eblake@redhat.com>
Eric Blake c2245238 2011-06-06T16:17:50 canonicalize-lgpl: work around AIX realpath bug AIX 7.1 realpath() gets horribly confused by consecutive / in the name to be resolved. * m4/canonicalize.m4 (gl_FUNC_REALPATH_WORKS): Expose AIX bug. * doc/posix-functions/realpath.texi (realpath): Document it. Reported by Bruno Haible. Signed-off-by: Eric Blake <eblake@redhat.com>
Bruno Haible 06051073 2011-06-04T12:07:57 setlocale: Enable replacement on Cygwin 1.5. * m4/setlocale.m4 (gl_FUNC_SETLOCALE): Set REPLACE_SETLOCALE also on Cygwin 1.5.x. * doc/posix-functions/setlocale.texi: Mention that the problem with the LC_CTYPE category also exists on Cygwin 1.5.x.
Bruno Haible 27edfbd1 2011-06-03T01:45:23 doc: Fix a module name. * doc/posix-functions/open.texi: Fix module name 'nonblocking'.
Eric Blake 6b66ce30 2011-05-24T14:27:04 perror: call strerror_r directly No need to make a wrapper that burns static storage when we can just use stack storage. * modules/perror (Files): Drop strerror-impl.h. * lib/perror.c (perror): Use our own stack buffer, rather than calling a wrapper that uses static storage. * doc/posix-functions/perror.texi (perror): Document a limitation of our replacement. Signed-off-by: Eric Blake <eblake@redhat.com>
Eric Blake 1622b36b 2011-05-25T15:15:14 getcwd: work around mingw bug mingw getcwd(buf, 0) fails with ERANGE, instead of the required EINVAL. Since we're already replacing getcwd on mingw, the workaround is trivial. * lib/getcwd-lgpl.c (rpl_getcwd): Guarantee correct error. * doc/posix-functions/getcwd.texi (getcwd): Document it. Reported by Matthias Bolte. Signed-off-by: Eric Blake <eblake@redhat.com>
Eric Blake f4c4af09 2011-05-24T17:33:39 docs: document recently fixed glibc printf bug Document it as a known bug, but one where we don't provide a workaround since programmers are unlikely to hit it in practice. * doc/posix-functions/fprintf.texi (fprintf): Document it. * doc/posix-functions/printf.texi (printf): Likewise. * doc/posix-functions/vfprintf.texi (vfprintf): Likewise. * doc/posix-functions/vprintf.texi (vprintf): Likewise. Signed-off-by: Eric Blake <eblake@redhat.com>
Eric Blake e67e250d 2011-05-23T21:05:07 strerror_r: fix Solaris test failures Solaris 10 populates buf on EINVAL, but not on ERANGE. * lib/strerror_r.c (strerror_r): Partially populate buf on ERANGE failures. * doc/posix-functions/strerror_r.texi (strerror_r): Document this. Signed-off-by: Eric Blake <eblake@redhat.com>
Eric Blake 3a3fe58b 2011-05-18T15:19:51 strerror_r: enforce POSIX recommendations POSIX recommends (but does not require) that strerror_r populate buf even on error. But since we guarantee this behavior for strerror, we might as well also guarantee it for strerror_r. * lib/strerror_r.c (safe_copy): New helper method. (strerror_r): Guarantee a non-empty string. * tests/test-strerror_r.c (main): Enhance tests to incorporate recent POSIX rulings and to match our strerror guarantees. * doc/posix-functions/strerror_r.texi (strerror_r): Document this. Signed-off-by: Eric Blake <eblake@redhat.com>
Eric Blake 2f035758 2011-05-21T10:08:28 strerror_r: avoid clobbering strerror on cygwin Avoid cygwin strerror_r, since it clobbers strerror buffer through cygwin 1.7.9. __xpg_strerror_r is okay, but if a program is compiled on cygwin 1.7.8 or earlier, it is not available. * lib/strerror_r.c (strerror_r): Don't use cygwin's strerror_r; fall back instead to sys_errlist. * modules/strerror (configure.ac): Add witness. * tests/test-strerror_r.c (main): Enhance test. * doc/posix-functions/strerror_r.texi (strerror_r): Document it. * tests/test-perror2.c (main): Free memory before exit. Signed-off-by: Eric Blake <eblake@redhat.com>
Eric Blake 179ecbe2 2011-05-20T17:45:13 strerror_r: avoid corrupting errno on Solaris On Solaris, a non-zero return was also reflected into errno. Leaving errno unchanged is a useful feature worth guaranteeing. * m4/strerror_r.m4 (gl_FUNC_STRERROR_R): Check for Solaris behavior. * doc/posix-functions/strerror_r.texi (strerror_r): Document it. Signed-off-by: Eric Blake <eblake@redhat.com>
Eric Blake 88dabde4 2011-05-20T11:09:53 perror: work around FreeBSD bug POSIX requires that 'errno = 0; perror ("")' print the same message as strerror(0), but this failed if we were replacing strerror to work around the FreeBSD bug of treating 0 as a failure. The goal here is to _not_ replace perror on glibc, even though strerror_r has to be replaced, because the strerror_r replacement is only for the sake of correcting the signature rather than working around bugs in the handling of any particular errnum value. Recall that $gl_cv_func_strerror_r_works is only set if the POSIX signature was detected in the first place. * m4/perror.m4 (gl_FUNC_PERROR): Also replace perror if strerror_r is broken. Move AC_LIBOBJ... * modules/perror (configure.ac): Here. * doc/posix-functions/perror.texi (perror): Document this. * tests/test-perror2.c (main): Enhance test. Signed-off-by: Eric Blake <eblake@redhat.com>
Eric Blake c0fb797b 2011-05-20T10:42:26 test-perror: check for strerror interactions This uncovered a glibc bug, although not many people check for perror failures, so for now I'm not working around it. http://sourceware.org/bugzilla/show_bug.cgi?id=12792 * tests/macros.h (STREQ) Add macro. * modules/perror-tests (Files): Add second test. * tests/test-perror2.c (main): New file. * doc/posix-functions/perror.texi (perror): Document glibc bug. Signed-off-by: Eric Blake <eblake@redhat.com>
Eric Blake 1608fbc0 2011-05-18T18:16:59 strerror: enforce POSIX ruling on strerror(0) http://austingroupbugs.net/view.php?id=382 requires that strerror(0) succeed, but FreeBSD reports "Unknown error: 0" and fails with EINVAL. * m4/strerror.m4 (gl_FUNC_STRERROR_SEPARATE): Expose BSD bug. * m4/strerror_r.m4 (gl_FUNC_STRERROR_R): Likewise. * lib/strerror_r.c (rpl_strerror_r): Work around it. * doc/posix-functions/strerror.texi (strerror): Document it. * doc/posix-functions/strerror_r.texi (strerror_r): Likewise. * tests/test-strerror.c (main): Strengthen test. * tests/test-strerror_r.c (main): Likewise. Signed-off-by: Eric Blake <eblake@redhat.com>
Eric Blake c6dc8f16 2011-05-13T10:26:08 getcwd-lgpl: relax test for FreeBSD getcwd(NULL, 1) mallocs a larger buffer on BSD, rather than failing with ERANGE as on glibc. This behavior difference is not worth coding around, as it is an uncommon use of getcwd in the first place. * doc/posix-functions/getcwd.texi (getcwd): Document portability issue. * tests/test-getcwd-lgpl.c (main): Relax test. Reported by Matthias Bolte. Signed-off-by: Eric Blake <eblake@redhat.com>
Bruno Haible 20146945 2011-05-12T02:10:44 canonicalize, canonicalize-lgpl: Avoid crash dialog on MacOS X. * m4/canonicalize.m4 (gl_FUNC_REALPATH_WORKS): Add GL_NOCRASH code. * modules/canonicalize (Depends-on): Add 'nocrash'. * modules/canonicalize-lgpl (Depends-on): Likewise. * doc/posix-functions/realpath.texi: Update platforms list. Reported by Ryan Schmidt <ryandesign@macports.org>.
Eric Blake 3606b90f 2011-05-06T13:01:17 fclose: guarantee behavior on seekable stdin * modules/fclose (Depends-on): Add fflush. * doc/posix-functions/fclose.texi (fclose): Document this. * tests/test-fclose.c (main): Make test for this unconditional. Signed-off-by: Eric Blake <eblake@redhat.com>
Bruno Haible 864eeee5 2011-05-06T00:34:34 fclose, fflush: Respect rules for use of AC_LIBOBJ. * m4/fflush.m4 (gl_FUNC_FFLUSH): Don't invoke gl_REPLACE_FCLOSE. * m4/fclose.m4 (gl_FUNC_FCLOSE): Invoke gl_FUNC_FFLUSH_STDIN and gl_REPLACE_FCLOSE here. * modules/fflush (Depends-on): Remove fclose. * doc/posix-functions/fclose.texi: Mention module 'fflush' only in combination with module 'fclose'.
Eric Blake bcbcf0c5 2011-05-02T15:00:50 fflush: also replace fclose when fixing fflush This fixes the fclose failures detected in the previous patch, but only when the GPL fflush module is also in use. That is because the need for behavior of resetting seekable input streams is much less common, and the fix more complex. The LGPLv2+ test for fclose() in isolation is relaxed to pass if fflush is not being replaced to cater to input streams. * modules/fflush (Depends-on): Add fclose. * m4/fflush.m4 (gl_FUNC_FFLUSH): Also replace fclose. * lib/fclose.c (rpl_fclose): Don't cause spurious failures on memstreams with no backing fd. * doc/posix-functions/fclose.texi (fclose): Document the use of fflush module to fix the bug. * tests/test-fclose.c (main): Relax test when fclose is used in isolation. Signed-off-by: Eric Blake <eblake@redhat.com>
Eric Blake 1fc3525d 2011-05-02T13:38:23 fclose: add some tests POSIX requires that fclose() on seekable input streams rewind back to the next byte not actually given to the application. Glibc fails this test. See: http://sourceware.org/bugzilla/show_bug.cgi?id=3746 http://sourceware.org/bugzilla/show_bug.cgi?id=12724 Likewise for FreeBSD. Cygwin 1.7.9 and Solaris 10 pass, however. * modules/fclose-tests: New test module. * tests/test-fclose.c: New file. Signed-off-by: Eric Blake <eblake@redhat.com>
Bruno Haible 9d916bc0 2011-04-30T14:53:35 New modules 'vfscanf', 'vscanf'. * modules/vfscanf: New file. * modules/vscanf: New file. * m4/stdio_h.m4 (gl_STDIO_H): Don't set GNULIB_VFSCANF, GNULIB_VSCANF here. * doc/posix-functions/vfscanf.texi: Mention module 'vfscanf'. * doc/posix-functions/vscanf.texi: Mention module 'vscanf'.
Eric Blake 74175b90 2011-04-28T16:46:16 getaddrinfo: fix gai_strerror signature Several platforms declare gai_strerror to return char* rather than const char*. Worse, on mingw, if UNICODE is defined, it is defined to return WCHAR*, which means the result is in unicode but an application expecting bytes for characters will only see a one-byte answer. * m4/getaddrinfo.m4 (gl_GETADDRINFO): Detect broken signatures, and work around mingw with UNICODE defined. (gl_PREREQ_GETADDRINFO): Drop redundant decl check. * m4/netdb_h.m4 (gl_NETDB_H_DEFAULTS): Add witness. * modules/netdb (Makefile.am): Substitute it. * lib/netdb.in.h (gai_strerror): Declare replacement. * lib/gai_strerror.c (rpl_gai_strerror): Fix signature. * doc/posix-functions/gai_strerror.texi (gai_strerror): Document the fix. Signed-off-by: Eric Blake <eblake@redhat.com>
Eric Blake 8585ce2f 2011-04-27T20:40:21 getcwd: fix mingw bugs On mingw, getcwd(NULL,1) succeeds, even though glibc documents that with a non-zero size, the allocation will not exceed that many bytes. On mingw, getcwd has the wrong signature. However, we don't have to check for this if anything else triggers the replacement. Also, fix a type bug that crept into the original getcwd-lgpl commit. * m4/getcwd.m4 (gl_FUNC_GETCWD_NULL): Detect one mingw bug. * doc/posix-functions/getcwd.texi (getcwd): Document the problems. * lib/getcwd-lgpl.c (rpl_getcwd): Fix return type. Signed-off-by: Eric Blake <eblake@redhat.com>
Bruno Haible e57376fc 2011-04-28T00:05:08 mkstemp: More documentation. * doc/posix-functions/mkstemp.texi: Document header file problem on MacOS X.
Bruno Haible 5ea8bedd 2011-04-27T23:28:48 clean-temp: Clarify what it does. * lib/clean-temp.h: Add more comments. * doc/posix-functions/mkstemp.texi: Tweak reference to 'clean-temp' module. * doc/glibc-functions/mkostemp.texi: Mention 'clean-temp' here too. * doc/glibc-functions/mkstemps.texi: Likewise. * doc/glibc-functions/mkostemps.texi: Likewise.
Eric Blake 043be67a 2011-04-26T14:40:58 getcwd-lgpl: new module For programs that aren't worried about being invoked from an current working directory longer than PATH_MAX (perhaps because the program always does chdir to a sane location first), the getcwd module is overkill, given that all modern portability targets have a getcwd that works on short names. * modules/getcwd-lgpl: New module. * lib/getcwd-lgpl.c: New file. * doc/posix-functions/getcwd.texi (getcwd): Document it. * MODULES.html.sh (lacking POSIX:2008): Likewise. * modules/getcwd (configure.ac): Set C witness. * m4/getcwd.m4 (gl_FUNC_GETCWD_LGPL): New macro. Signed-off-by: Eric Blake <eblake@redhat.com>
Reuben Thomas 7338e602 2011-04-27T14:51:22 mkstemp: replace if system version uses wrong permissions * m4/mkstemp.m4 (gl_FUNC_MKSTEMP): Add test for non-owner read/write mode bits set in file created by mkstemp. * doc/posix-functions/mkstemp.texi (mkstemp): Document the fix. Signed-off-by: Eric Blake <eblake@redhat.com>
Reuben Thomas ca1502f7 2011-04-27T14:30:31 mkstemp: mention clean-temp module * lib/mkstemp.c: Add comment. * doc/posix-functions/mkstemp.texi (mkstemp): Likewise. Signed-off-by: Eric Blake <eblake@redhat.com>
Bruno Haible b9453f8c 2011-04-25T20:53:41 strtod: Remove check for strtod, unless supporting old platforms. * modules/strtod-obsolete: New file. * m4/strtod-obsolete.m4: New file. * m4/strtod.m4 (gl_FUNC_STRTOD): Don't check whether strtod is declared if gl_FUNC_STRTOD_OBSOLETE is not also defined. * modules/strtod (Depends-on): Add strtod-obsolete. * doc/posix-functions/strtod.texi: Mention module strtod-obsolete.
Bruno Haible 4a2a66e4 2011-04-25T19:45:09 dup2: Remove check for dup2, unless supporting old obsolete platforms. * modules/dup2-obsolete: New file. * m4/dup2-obsolete.m4: New file. * m4/dup2.m4 (gl_FUNC_DUP2): Don't check whether dup2 exists if gl_FUNC_DUP2_OBSOLETE is not also defined. * modules/dup2 (Depends-on): Add dup2-obsolete. * doc/posix-functions/dup2.texi: Mention module dup2-obsolete.
Bruno Haible e3a7a9fd 2011-04-25T19:43:59 strnlen: Avoid memchr related link error on old obsolete platforms. * modules/memchr-obsolete: New file. * m4/memchr-obsolete.m4: New file. * m4/memchr.m4 (gl_FUNC_MEMCHR): Don't check whether memchr exists if gl_FUNC_MEMCHR_OBSOLETE is not also defined. * modules/memchr (Depends-on): Add memchr-obsolete. * modules/strnlen (Depends-on): Likewise. * doc/posix-functions/memchr.texi: Mention module memchr-obsolete.
Bruno Haible 12856373 2011-04-19T10:38:30 Move the support of O_NONBLOCK in open() to the 'open' module. * modules/nonblocking (Depends-on): Remove 'open'. * m4/nonblocking.m4 (gl_NONBLOCKING_IO_BODY): Set gl_cv_have_open_O_NONBLOCK. * m4/open.m4 (gl_FUNC_OPEN): Replace open() also when required for O_NONBLOCK support. * doc/posix-functions/open.texi: Document support for O_NONBLOCK.
Bruno Haible acc203f3 2011-04-15T01:02:13 Support non-blocking pipe I/O in read() on native Windows. * lib/unistd.in.h: Include <sys/types.h> also for 'read'. (read): New declaration. * lib/read.c: New file. * lib/stdio.in.h (_GL_ATTRIBUTE_FORMAT_SCANF, _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM): New macros. (fgetc, fgets, fread, fscanf, getc, getchar, gets, scanf, vfscanf, vscanf): New declarations. * lib/stdio-read.c: New file. * m4/read.m4: New file. * m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Initialize GNULIB_READ, REPLACE_READ. * m4/stdio_h.m4 (gl_STDIO_H): Set GNULIB_FGETC, GNULIB_FGETS, GNULIB_FREAD, GNULIB_FSCANF, GNULIB_GETC, GNULIB_GETCHAR, GNULIB_GETS, GNULIB_SCANF, GNULIB_VFSCANF, GNULIB_VSCANF. In non-blocking I/O is desired and needs workarounds, set REPLACE_STDIO_READ_FUNCS. (gl_STDIO_H_DEFAULTS): Initialize GNULIB_FGETC, GNULIB_FGETS, GNULIB_FREAD, GNULIB_FSCANF, GNULIB_GETC, GNULIB_GETCHAR, GNULIB_GETS, GNULIB_SCANF, GNULIB_VFSCANF, GNULIB_VSCANF, REPLACE_STDIO_READ_FUNCS. * modules/read: New file. * modules/nonblocking (Files): Add lib/stdio-read.c. * modules/unistd (Makefile.am): Substitute GNULIB_READ, REPLACE_READ. * modules/stdio (Makefile.am): Substitute GNULIB_FGETC, GNULIB_FGETS, GNULIB_FREAD, GNULIB_FSCANF, GNULIB_GETC, GNULIB_GETCHAR, GNULIB_GETS, GNULIB_SCANF, GNULIB_VFSCANF, GNULIB_VSCANF, REPLACE_STDIO_READ_FUNCS. * modules/pread (Depends-on): Add read. * modules/safe-read (Depends-on): Likewise. * tests/test-stdio-c++.cc (fgetc, fgets, fread, fscanf, getc, getchar, gets, scanf, vfscanf, vscanf): Verify signatures. * doc/posix-functions/read.texi: Mention 'nonblocking' module and problem with non-blocking pipes. * doc/posix-functions/fgetc.texi: Likewise. * doc/posix-functions/fgets.texi: Likewise. * doc/posix-functions/fread.texi: Likewise. * doc/posix-functions/fscanf.texi: Likewise. * doc/posix-functions/getc.texi: Likewise. * doc/posix-functions/getchar.texi: Likewise. * doc/posix-functions/gets.texi: Likewise. * doc/posix-functions/scanf.texi: Likewise. * doc/posix-functions/vfscanf.texi: Likewise. * doc/posix-functions/vscanf.texi: Likewise.
Bruno Haible 73899ad3 2011-04-14T23:42:01 Support non-blocking pipe I/O in write() on native Windows. * lib/write.c (rpl_write): Split a write request that failed merely because the byte count was larger than the pipe buffer's size. * doc/posix-functions/write.texi: Mention the problem with large byte counts.
Bruno Haible 836e0457 2011-04-13T12:15:43 Support non-blocking pipe I/O in write() on native Windows. * lib/unistd.in.h (write): Enable replacement also if GNULIB_UNISTD_H_NONBLOCKING is 1. * lib/write.c: Enable replacement also if GNULIB_NONBLOCKING. (rpl_write): When failing to write on a non-blocking pipe, change errno from ENOSPC to EAGAIN. * lib/stdio.in.h (fprintf, fputc, fputs, fwrite, printf, putc, putchar, puts, vfprintf, vprintf): Enable replacement also if GNULIB_STDIO_H_NONBLOCKING is 1. * lib/stdio-write.c: Enable replacements also if GNULIB_NONBLOCKING. (CLEAR_ERRNO, HANDLE_ENOSPC): New macros. (CLEAR_LastError, HANDLE_ERROR_NO_DATA): New macros, extracted from CALL_WITH_SIGPIPE_EMULATION. (CALL_WITH_SIGPIPE_EMULATION): Use them. * m4/nonblocking.m4: New file. * m4/write.m4 (gl_FUNC_WRITE): Enable REPLACE_WRITE also if required for non-blocking I/O support. * m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Initialize GNULIB_UNISTD_H_NONBLOCKING. * m4/stdio_h.m4 (gl_STDIO_H): Enable REPLACE_STDIO_WRITE_FUNCS also if required for non-blocking I/O support. (gl_STDIO_H_DEFAULTS): Initialize GNULIB_STDIO_H_NONBLOCKING. * modules/nonblocking (Files): Add m4/nonblocking.m4, lib/stdio-write.c, m4/asm-underscore.m4. (Depends-on): Add stdio, unistd. (configure.ac): Invoke gl_NONBLOCKING_IO. Define GNULIB_NONBLOCKING. Set GNULIB_STDIO_H_NONBLOCKING, GNULIB_UNISTD_H_NONBLOCKING. * modules/unistd (Makefile.am): Substitute GNULIB_UNISTD_H_NONBLOCKING. * modules/stdio (Makefile.am): Substitute GNULIB_STDIO_H_NONBLOCKING. * doc/posix-functions/fprintf.texi: Mention 'nonblocking' module and problem with non-blocking pipes. * doc/posix-functions/fputc.texi: Likewise. * doc/posix-functions/fputs.texi: Likewise. * doc/posix-functions/fwrite.texi: Likewise. * doc/posix-functions/printf.texi: Likewise. * doc/posix-functions/putc.texi: Likewise. * doc/posix-functions/putchar.texi: Likewise. * doc/posix-functions/puts.texi: Likewise. * doc/posix-functions/vfprintf.texi: Likewise. * doc/posix-functions/vprintf.texi: Likewise. * doc/posix-functions/write.texi: Likewise.
Paul Eggert f2b86e89 2011-04-09T14:44:53 maint: change "can not" to "cannot" * doc/posix-functions/iconv.texi (iconv): This one crossed line boundaries.
Jim Meyering 52feca2c 2011-04-09T23:05:22 maint: change "can not" to "cannot" But do not change the occurrences in maintain.texi or in build-aux/po/Makefile.in.in, which I presume comes from gettext. * doc/gnulib-tool.texi: s/can not/cannot/ * doc/posix-functions/accept.texi (accept): Likewise. * doc/posix-functions/socket.texi (socket): Likewise. * lib/mbrtowc.c: Likewise.
Bruno Haible b64c50cf 2011-04-01T23:23:34 wcpcpy, wcpncpy: Ensure declaration on glibc >= 2.13 systems. * m4/wcpcpy.m4 (gl_FUNC_WCPCPY): Require AC_USE_SYSTEM_EXTENSIONS. * m4/wcpncpy.m4 (gl_FUNC_WCPNCPY): Likewise. * modules/wcpcpy (Depends-on): Add extensions. * modules/wcpncpy (Depends-on): Likewise. * doc/posix-functions/wcpcpy.texi: Mention missing declaration on glibc systems. * doc/posix-functions/wcpncpy.texi: Likewise. * doc/posix-functions/wcwidth.texi: Likewise.
Bruno Haible bac631aa 2011-03-29T14:54:31 getaddrinfo: Doc fix. * doc/posix-functions/getaddrinfo.texi: Mention Windows problem in the section "fixed in Gnulib".
Simon Josefsson 4a8227d1 2011-03-28T21:31:46 getaddrinfo: Doc fix. * doc/posix-functions/getaddrinfo.texi: Drop netdb.h discussion. Reported by Bastien ROUCARIES <roucaries.bastien@gmail.com>.
Eric Blake 444f6d99 2011-03-24T13:38:09 realloc: document portability problem * doc/posix-functions/realloc.texi (realloc): Mention pitfalls of passing 0 size to realloc. Signed-off-by: Eric Blake <eblake@redhat.com>
Bruno Haible f1eb357f 2011-02-22T14:23:24 New module 'wctomb'. * lib/stdlib.in.h (wctomb): New declaration. * lib/wctomb.c: New file. * lib/wctomb-impl.h: New file. * m4/wctomb.m4: New file. * m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Initialize GNULIB_WCTOMB, REPLACE_WCTOMB. * modules/stdlib (Makefile.am): Substitute GNULIB_WCTOMB, REPLACE_WCTOMB. * modules/wctomb: New file. * tests/test-stdlib-c++.cc: Test signature of wctomb. * doc/posix-functions/wctomb.texi: Mention the new module. * modules/wctob (Depends-on): Add wctomb.
Bruno Haible 82e60758 2011-02-22T14:01:29 New module 'mbtowc'. * lib/stdlib.in.h (mbtowc): New declaration. * lib/mbtowc.c: New file. * lib/mbtowc-impl.h: New file, from libutf8 with modifications * m4/mbtowc.m4: New file. * m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Initialize GNULIB_MBTOWC, REPLACE_MBTOWC. * modules/stdlib (Makefile.am): Substitute GNULIB_MBTOWC, REPLACE_MBTOWC. * modules/mbtowc: New file. * tests/test-stdlib-c++.cc: Test signature of mbtowc. * doc/posix-functions/mbtowc.texi: Mention the new module. * modules/btowc (Depends-on): Add mbtowc.
Bruno Haible a035a8d3 2011-02-13T19:29:42 mbrtowc: Work around native Windows bug. * m4/mbrtowc.m4 (gl_MBRTOWC_RETVAL): Detect native Windows bug. Use the guess when no suitable locale for testing was found. * doc/posix-functions/mbrtowc.texi: Mention the native Windows bug.
Bruno Haible cca34e7a 2011-02-13T18:17:22 mbsinit: Work around mingw bug. * m4/mbsinit.m4 (gl_FUNC_MBSINIT): Replace mbsinit also on mingw. * lib/mbsinit.c (mbsinit): Provide an alternate definition for native Windows. * doc/posix-functions/mbsinit.texi: Mention the mingw bug.
Bruno Haible c9dc6fff 2011-02-12T20:43:40 wcsrtombs: Work around bug on native Windows. * m4/wcsrtombs.m4 (gl_WCSRTOMBS_NULL): Test against mingw bug. * lib/wcsrtombs.c (rpl_wcsrtombs): When dest is NULL, pass SIZE_MAX instead of len. * doc/posix-functions/wcsrtombs.texi: Document mingw bug.
Bruno Haible aa887f85 2011-02-12T20:20:02 mbsrtowcs: Work around bug on native Windows. * m4/mbsrtowcs.m4 (gl_MBSRTOWCS_WORKS): Require gt_LOCALE_FR. Test against mingw bug. * doc/posix-functions/mbsrtowcs.texi: Document mingw bug.
Bruno Haible 94c9eb9c 2011-02-12T18:16:10 setlocale: Workaround native Windows bug. * lib/setlocale.c (rpl_setlocale): On native Windows, when setlocale succeeds but sets LC_CTYPE to "C", report a failure. * tests/test-setlocale2.sh: New file. * tests/test-setlocale2.c: New file. * modules/setlocale-tests (Files): Add the new files. (Makefile.am): Enable test-setlocale2.sh test. * doc/posix-functions/setlocale.texi: Mention workaround.
Bruno Haible 4f1d12a5 2011-02-12T16:45:13 New module 'setlocale'. * lib/locale.in.h (setlocale): New declaration. * lib/setlocale.c: New file, based on gettext/gettext-runtime/intl/setlocale.c. * m4/setlocale.m4: New file. * m4/locale_h.m4 (gl_LOCALE_H): Test whether setlocale is declared. (gl_LOCALE_H_DEFAULTS): Initialize GNULIB_SETLOCALE, REPLACE_SETLOCALE. * modules/locale (Makefile.am): Substitute GNULIB_SETLOCALE, REPLACE_SETLOCALE. * modules/setlocale: New file. * tests/test-locale-c++.cc: Test the declaration of setlocale. * doc/posix-functions/setlocale.texi: Mention the new module.
Bruno Haible d3042e83 2011-02-07T00:29:31 New module 'towctrans'. * modules/towctrans: New file. * lib/wctype.in.h (towctrans): New declaration. * lib/towctrans.c: New file. * lib/towctrans-impl.h: New file. * m4/towctrans.m4: New file. * m4/wctype_h.m4 (gl_WCTYPE_H): Test whether towctrans is declared. (gl_WCTYPE_H_DEFAULTS): Initialize GNULIB_TOWCTRANS. * modules/wctype-h (Makefile.am): Substitute GNULIB_TOWCTRANS. * tests/test-wctype-h-c++.cc: Test the declaration of towctrans. * doc/posix-functions/towctrans.texi: Mention the new module.
Bruno Haible 52c4f309 2011-02-07T00:16:49 New module 'wctrans'. * modules/wctrans: New file. * lib/wctype.in.h (wctrans): New declaration. * lib/wctrans.c: New file. * lib/wctrans-impl.h: New file. * m4/wctrans.m4: New file. * m4/wctype_h.m4 (gl_WCTYPE_H): Test whether wctrans is declared. (gl_WCTYPE_H_DEFAULTS): Initialize GNULIB_WCTRANS. * modules/wctype-h (Makefile.am): Substitute GNULIB_WCTRANS. * tests/test-wctype-h-c++.cc: Test the declaration of wctrans. * doc/posix-functions/wctrans.texi: Mention the new module.
Bruno Haible eb944d1d 2011-02-06T23:59:34 New module 'iswctype'. * modules/iswctype: New file. * lib/wctype.in.h (iswctype): New declaration. * lib/iswctype.c: New file. * lib/iswctype-impl.h: New file. * m4/iswctype.m4: New file. * m4/wctype_h.m4 (gl_WCTYPE_H): Test whether iswctype is declared. (gl_WCTYPE_H_DEFAULTS): Initialize GNULIB_ISWCTYPE. * modules/wctype-h (Makefile.am): Substitute GNULIB_ISWCTYPE. * tests/test-wctype-h-c++.cc: Test the declaration of iswctype. * doc/posix-functions/iswctype.texi: Mention the new module and the HP-UX 11.00 problem.
Bruno Haible 896cde70 2011-02-06T23:45:40 New module 'wctype'. * modules/wctype: Change to represent the wctype() substitute. * lib/wctype.in.h (wctype): New declaration. * lib/wctype.c: New file. * lib/wctype-impl.h: New file. * m4/wctype.m4: New file. * m4/wctype_h.m4 (gl_WCTYPE_H): Test whether wctype is declared. (gl_WCTYPE_H_DEFAULTS): Initialize GNULIB_WCTYPE. * modules/wctype-h (Makefile.am): Substitute GNULIB_WCTYPE. * tests/test-wctype-h-c++.cc: Test the declaration of wctype. * doc/posix-functions/wctype.texi: Mention the new module and the HP-UX 11.00 problem.
Bruno Haible 2305b665 2011-02-06T22:12:25 iswblank: Ensure declaration on glibc systems. * m4/iswblank.m4 (gl_FUNC_ISWBLANK): Require gl_USE_SYSTEM_EXTENSIONS. * modules/iswblank (Dependencies): Add 'extensions'. * doc/posix-functions/iswblank.texi: Document the glibc problem.
Bruno Haible f196c56b 2011-02-06T22:07:24 New module 'iswblank'. * lib/wctype.in.h (iswblank): Don't declare if GNULIB_ISWBLANK is 0. * modules/iswblank: New file. * modules/wctype-h (Files): Remove lib/iswblank.c. (Makefile.am): Substitute GNULIB_ISWBLANK. * m4/iswblank.m4: New file, partially extracted from m4/wctype_h.m4. * m4/wctype_h.m4 (gl_WCTYPE_MODULE_INDICATOR): New macro. (gl_WCTYPE_H_DEFAULTS): New macro. (gl_WCTYPE_H): Require it. Remove iswblank related code. * modules/iswblank-tests: New file. * tests/test-iswblank.c: New file, extraced from tests/test-wctype-h.c. * tests/test-wctype-h.c (main): Remove iswblank tests. * tests/test-wctype-h-c++.cc: Guard the signature test of iswblank. * doc/posix-functions/iswblank.texi: Mention module 'iswblank' instead of 'wctype-h'. * NEWS: Mention the change. * modules/mbchar (Depends-on): Add iswblank.
Bruno Haible a6dbbbfc 2011-02-06T18:46:42 Rename module 'wctype' to 'wctype-h'. * modules/wctype-h: Renamed from modules/wctype. * modules/wctype: Simplyfy to a redirection to 'wctype-h'. * modules/wctype-h-tests: Renamed from modules/wctype-tests. (Files, Depends-on, Makefile.am): Update. * modules/wctype-h-c++-tests: Renamed from modules/wctype-c++-tests. (Files, Makefile.am): Update. * tests/test-wctype-h.c: Renamed from tests/test-wctype.c. * tests/test-wctype-h-c++.cc: Renamed from tests/test-wctype-c++.cc. * doc/posix-headers/wctype.texi: Update. * doc/posix-functions/iswalnum.texi: Update. * doc/posix-functions/iswalpha.texi: Update. * doc/posix-functions/iswblank.texi: Update. * doc/posix-functions/iswcntrl.texi: Update. * doc/posix-functions/iswdigit.texi: Update. * doc/posix-functions/iswgraph.texi: Update. * doc/posix-functions/iswlower.texi: Update. * doc/posix-functions/iswprint.texi: Update. * doc/posix-functions/iswpunct.texi: Update. * doc/posix-functions/iswspace.texi: Update. * doc/posix-functions/iswupper.texi: Update. * doc/posix-functions/iswxdigit.texi: Update. * doc/posix-functions/towlower.texi: Update. * doc/posix-functions/towupper.texi: Update. * NEWS: Mention the change. * modules/fnmatch (Dependencies): Add wctype-h, remove wctype. * modules/mbchar (Dependencies): Likewise. * modules/mbswidth (Dependencies): Likewise. * modules/quotearg (Dependencies): Likewise. * modules/regex (Dependencies): Likewise. * modules/wcscasecmp (Dependencies): Likewise. * modules/wcsncasecmp (Dependencies): Likewise. * modules/wcwidth (Dependencies): Likewise.
Bruno Haible cbe8a0a3 2011-02-06T15:51:55 New module 'wcswidth'. * modules/wcswidth: New file. * lib/wchar.in.h (wcswidth): New declaration. * lib/wcswidth.c: New file. * lib/wcswidth-impl.h: New file, from libutf8 with modifications. * m4/wcswidth.m4: New file. * m4/wchar_h.m4 (gl_WCHAR_H): Test whether wcswidth is declared. (gl_WCHAR_H_DEFAULTS): Initialize GNULIB_WCSWIDTH, HAVE_WCSWIDTH, REPLACE_WCSWIDTH. * modules/wchar (Makefile.am): Substitute GNULIB_WCSWIDTH, HAVE_WCSWIDTH, REPLACE_WCSWIDTH. * tests/test-wchar-c++.cc: Test the declaration of wcswidth. * doc/posix-functions/wcswidth.texi: Mention the new module.
Bruno Haible cdddb1e1 2011-02-06T15:25:58 New module 'wcstok'. * modules/wcstok: New file. * lib/wchar.in.h (wcstok): New declaration. * lib/wcstok.c: New file. * lib/wcstok-impl.h: New file, from libutf8 with modifications. * m4/wcstok.m4: New file. * m4/wchar_h.m4 (gl_WCHAR_H): Test whether wcstok is declared. (gl_WCHAR_H_DEFAULTS): Initialize GNULIB_WCSTOK, HAVE_WCSTOK. * modules/wchar (Makefile.am): Substitute GNULIB_WCSTOK, HAVE_WCSTOK. * tests/test-wchar-c++.cc: Test the declaration of wcstok. * doc/posix-functions/wcstok.texi: Mention the new module.
Bruno Haible 8e5e25f7 2011-02-06T15:18:24 New module 'wcsstr'. * modules/wcsstr: New file. * lib/wchar.in.h (wcsstr): New declaration. * lib/wcsstr.c: New file. * lib/wcsstr-impl.h: New file, from libutf8 with modifications. * m4/wcsstr.m4: New file. * m4/wchar_h.m4 (gl_WCHAR_H): Test whether wcsstr is declared. (gl_WCHAR_H_DEFAULTS): Initialize GNULIB_WCSSTR, HAVE_WCSSTR. * modules/wchar (Makefile.am): Substitute GNULIB_WCSSTR, HAVE_WCSSTR. * tests/test-wchar-c++.cc: Test the declaration of wcsstr. * doc/posix-functions/wcsstr.texi: Mention the new module.
Bruno Haible caf727a4 2011-02-06T14:34:38 New module 'wcspbrk'. * modules/wcspbrk: New file. * lib/wchar.in.h (wcspbrk): New declaration. * lib/wcspbrk.c: New file. * lib/wcspbrk-impl.h: New file, from libutf8 with modifications. * m4/wcspbrk.m4: New file. * m4/wchar_h.m4 (gl_WCHAR_H): Test whether wcspbrk is declared. (gl_WCHAR_H_DEFAULTS): Initialize GNULIB_WCSPBRK, HAVE_WCSPBRK. * modules/wchar (Makefile.am): Substitute GNULIB_WCSPBRK, HAVE_WCSPBRK. * tests/test-wchar-c++.cc: Test the declaration of wcspbrk. * doc/posix-functions/wcspbrk.texi: Mention the new module.
Bruno Haible 09eadbc7 2011-02-06T14:19:57 New module 'wcsspn'. * modules/wcsspn: New file. * lib/wchar.in.h (wcsspn): New declaration. * lib/wcsspn.c: New file. * lib/wcsspn-impl.h: New file, from libutf8 with modifications. * m4/wcsspn.m4: New file. * m4/wchar_h.m4 (gl_WCHAR_H): Test whether wcsspn is declared. (gl_WCHAR_H_DEFAULTS): Initialize GNULIB_WCSSPN, HAVE_WCSSPN. * modules/wchar (Makefile.am): Substitute GNULIB_WCSSPN, HAVE_WCSSPN. * tests/test-wchar-c++.cc: Test the declaration of wcsspn. * doc/posix-functions/wcsspn.texi: Mention the new module.
Bruno Haible 1692395a 2011-02-06T14:10:45 New module 'wcscspn'. * modules/wcscspn: New file. * lib/wchar.in.h (wcscspn): New declaration. * lib/wcscspn.c: New file. * lib/wcscspn-impl.h: New file, from libutf8 with modifications. * m4/wcscspn.m4: New file. * m4/wchar_h.m4 (gl_WCHAR_H): Test whether wcscspn is declared. (gl_WCHAR_H_DEFAULTS): Initialize GNULIB_WCSCSPN, HAVE_WCSCSPN. * modules/wchar (Makefile.am): Substitute GNULIB_WCSCSPN, HAVE_WCSCSPN. * tests/test-wchar-c++.cc: Test the declaration of wcscspn. * doc/posix-functions/wcscspn.texi: Mention the new module.
Bruno Haible f966b70b 2011-02-06T14:02:26 New module 'wcsrchr'. * modules/wcsrchr: New file. * lib/wchar.in.h (wcsrchr): New declaration. * lib/wcsrchr.c: New file. * lib/wcsrchr-impl.h: New file, from libutf8 with modifications. * m4/wcsrchr.m4: New file. * m4/wchar_h.m4 (gl_WCHAR_H): Test whether wcsrchr is declared. (gl_WCHAR_H_DEFAULTS): Initialize GNULIB_WCSRCHR, HAVE_WCSRCHR. * modules/wchar (Makefile.am): Substitute GNULIB_WCSRCHR, HAVE_WCSRCHR. * tests/test-wchar-c++.cc: Test the declaration of wcsrchr. * doc/posix-functions/wcsrchr.texi: Mention the new module.
Bruno Haible 214aca19 2011-02-06T13:52:11 New module 'wcschr'. * modules/wcschr: New file. * lib/wchar.in.h (wcschr): New declaration. * lib/wcschr.c: New file. * lib/wcschr-impl.h: New file, from libutf8 with modifications. * m4/wcschr.m4: New file. * m4/wchar_h.m4 (gl_WCHAR_H): Test whether wcschr is declared. (gl_WCHAR_H_DEFAULTS): Initialize GNULIB_WCSCHR, HAVE_WCSCHR. * modules/wchar (Makefile.am): Substitute GNULIB_WCSCHR, HAVE_WCSCHR. * tests/test-wchar-c++.cc: Test the declaration of wcschr. * doc/posix-functions/wcschr.texi: Mention the new module.
Bruno Haible 5768aa52 2011-02-06T13:42:05 New module 'wcsdup'. * modules/wcsdup: New file. * lib/wchar.in.h (wcsdup): New declaration. * lib/wcsdup.c: New file. * lib/wcsdup-impl.h: New file, from libutf8 with modifications. * m4/wcsdup.m4: New file. * m4/wchar_h.m4 (gl_WCHAR_H): Test whether wcsdup is declared. (gl_WCHAR_H_DEFAULTS): Initialize GNULIB_WCSDUP, HAVE_WCSDUP. * modules/wchar (Makefile.am): Substitute GNULIB_WCSDUP, HAVE_WCSDUP. * tests/test-wchar-c++.cc: Test the declaration of wcsdup. * doc/posix-functions/wcsdup.texi: Mention the new module.
Bruno Haible 1c65c44a 2011-02-06T13:30:53 New module 'wcsxfrm'. * modules/wcsxfrm: New file. * lib/wchar.in.h (wcsxfrm): New declaration. * lib/wcsxfrm.c: New file. * lib/wcsxfrm-impl.h: New file. * m4/wcsxfrm.m4: New file. * m4/wchar_h.m4 (gl_WCHAR_H): Test whether wcsxfrm is declared. (gl_WCHAR_H_DEFAULTS): Initialize GNULIB_WCSXFRM, HAVE_WCSXFRM. * modules/wchar (Makefile.am): Substitute GNULIB_WCSXFRM, HAVE_WCSXFRM. * tests/test-wchar-c++.cc: Test the declaration of wcsxfrm. * doc/posix-functions/wcsxfrm.texi: Mention the new module.
Bruno Haible 7aae6551 2011-02-06T12:56:31 New module 'wcscoll'. * modules/wcscoll: New file. * lib/wchar.in.h (wcscoll): New declaration. * lib/wcscoll.c: New file. * lib/wcscoll-impl.h: New file. * m4/wcscoll.m4: New file. * m4/wchar_h.m4 (gl_WCHAR_H): Test whether wcscoll is declared. (gl_WCHAR_H_DEFAULTS): Initialize GNULIB_WCSCOLL, HAVE_WCSCOLL. * modules/wchar (Makefile.am): Substitute GNULIB_WCSCOLL, HAVE_WCSCOLL. * tests/test-wchar-c++.cc: Test the declaration of wcscoll. * doc/posix-functions/wcscoll.texi: Mention the new module.
Bruno Haible e1cc6ea0 2011-02-06T12:25:31 New module 'wcsncasecmp'. * modules/wcsncasecmp: New file. * lib/wchar.in.h (wcsncasecmp): New declaration. * lib/wcsncasecmp.c: New file. * lib/wcsncasecmp-impl.h: New file, from libutf8 with modifications. * m4/wcsncasecmp.m4: New file. * m4/wchar_h.m4 (gl_WCHAR_H): Test whether wcsncasecmp is declared. (gl_WCHAR_H_DEFAULTS): Initialize GNULIB_WCSNCASECMP, HAVE_WCSNCASECMP. * modules/wchar (Makefile.am): Substitute GNULIB_WCSNCASECMP, HAVE_WCSNCASECMP. * tests/test-wchar-c++.cc: Test the declaration of wcsncasecmp. * doc/posix-functions/wcsncasecmp.texi: Mention the new module.
Bruno Haible 98b6cac3 2011-02-06T12:16:54 New module 'wcscasecmp'. * modules/wcscasecmp: New file. * lib/wchar.in.h (wcscasecmp): New declaration. * lib/wcscasecmp.c: New file. * lib/wcscasecmp-impl.h: New file, from libutf8 with modifications. * m4/wcscasecmp.m4: New file. * m4/wchar_h.m4 (gl_WCHAR_H): Test whether wcscasecmp is declared. (gl_WCHAR_H_DEFAULTS): Initialize GNULIB_WCSCASECMP, HAVE_WCSCASECMP. * modules/wchar (Makefile.am): Substitute GNULIB_WCSCASECMP, HAVE_WCSCASECMP. * tests/test-wchar-c++.cc: Test the declaration of wcscasecmp. * doc/posix-functions/wcscasecmp.texi: Mention the new module.
Bruno Haible d0e37c5d 2011-02-06T04:47:49 New module 'wcsncmp'. * modules/wcsncmp: New file. * lib/wchar.in.h (wcsncmp): New declaration. * lib/wcsncmp.c: New file. * lib/wcsncmp-impl.h: New file, from libutf8 with modifications. * m4/wcsncmp.m4: New file. * m4/wchar_h.m4 (gl_WCHAR_H): Test whether wcsncmp is declared. (gl_WCHAR_H_DEFAULTS): Initialize GNULIB_WCSNCMP, HAVE_WCSNCMP. * modules/wchar (Makefile.am): Substitute GNULIB_WCSNCMP, HAVE_WCSNCMP. * tests/test-wchar-c++.cc: Test the declaration of wcsncmp. * doc/posix-functions/wcsncmp.texi: Mention the new module.
Bruno Haible be86abb4 2011-02-06T04:39:48 New module 'wcscmp'. * modules/wcscmp: New file. * lib/wchar.in.h (wcscmp): New declaration. * lib/wcscmp.c: New file. * lib/wcscmp-impl.h: New file, from libutf8 with modifications. * m4/wcscmp.m4: New file. * m4/wchar_h.m4 (gl_WCHAR_H): Test whether wcscmp is declared. (gl_WCHAR_H_DEFAULTS): Initialize GNULIB_WCSCMP, HAVE_WCSCMP. * modules/wchar (Makefile.am): Substitute GNULIB_WCSCMP, HAVE_WCSCMP. * tests/test-wchar-c++.cc: Test the declaration of wcscmp. * doc/posix-functions/wcscmp.texi: Mention the new module.
Bruno Haible 9c304a2f 2011-02-06T04:09:52 New module 'wcsncat'. * modules/wcsncat: New file. * lib/wchar.in.h (wcsncat): New declaration. * lib/wcsncat.c: New file. * lib/wcsncat-impl.h: New file, from libutf8 with modifications. * m4/wcsncat.m4: New file. * m4/wchar_h.m4 (gl_WCHAR_H): Test whether wcsncat is declared. (gl_WCHAR_H_DEFAULTS): Initialize GNULIB_WCSNCAT, HAVE_WCSNCAT. * modules/wchar (Makefile.am): Substitute GNULIB_WCSNCAT, HAVE_WCSNCAT. * tests/test-wchar-c++.cc: Test the declaration of wcsncat. * doc/posix-functions/wcsncat.texi: Mention the new module.
Bruno Haible 74df68b3 2011-02-06T04:02:48 New module 'wcscat'. * modules/wcscat: New file. * lib/wchar.in.h (wcscat): New declaration. * lib/wcscat.c: New file. * lib/wcscat-impl.h: New file, from libutf8 with modifications. * m4/wcscat.m4: New file. * m4/wchar_h.m4 (gl_WCHAR_H): Test whether wcscat is declared. (gl_WCHAR_H_DEFAULTS): Initialize GNULIB_WCSCAT, HAVE_WCSCAT. * modules/wchar (Makefile.am): Substitute GNULIB_WCSCAT, HAVE_WCSCAT. * tests/test-wchar-c++.cc: Test the declaration of wcscat. * doc/posix-functions/wcscat.texi: Mention the new module.
Bruno Haible 49549725 2011-02-05T15:32:00 New module 'wcpncpy'. * modules/wcpncpy: New file. * lib/wchar.in.h (wcpncpy): New declaration. * lib/wcpncpy.c: New file. * lib/wcpncpy-impl.h: New file, from libutf8 with modifications. * m4/wcpncpy.m4: New file. * m4/wchar_h.m4 (gl_WCHAR_H): Test whether wcpncpy is declared. (gl_WCHAR_H_DEFAULTS): Initialize GNULIB_WCPNCPY, HAVE_WCPNCPY. * modules/wchar (Makefile.am): Substitute GNULIB_WCPNCPY, HAVE_WCPNCPY. * tests/test-wchar-c++.cc: Test the declaration of wcpncpy. * doc/posix-functions/wcpncpy.texi: Mention the new module.
Bruno Haible cde82ba3 2011-02-05T15:24:52 New module 'wcsncpy'. * modules/wcsncpy: New file. * lib/wchar.in.h (wcsncpy): New declaration. * lib/wcsncpy.c: New file. * lib/wcsncpy-impl.h: New file, from libutf8 with modifications. * m4/wcsncpy.m4: New file. * m4/wchar_h.m4 (gl_WCHAR_H): Test whether wcsncpy is declared. (gl_WCHAR_H_DEFAULTS): Initialize GNULIB_WCSNCPY, HAVE_WCSNCPY. * modules/wchar (Makefile.am): Substitute GNULIB_WCSNCPY, HAVE_WCSNCPY. * tests/test-wchar-c++.cc: Test the declaration of wcsncpy. * doc/posix-functions/wcsncpy.texi: Mention the new module.
Bruno Haible 83527ac1 2011-02-05T15:15:14 New module 'wcpcpy'. * modules/wcpcpy: New file. * lib/wchar.in.h (wcpcpy): New declaration. * lib/wcpcpy.c: New file. * lib/wcpcpy-impl.h: New file, from libutf8 with modifications. * m4/wcpcpy.m4: New file. * m4/wchar_h.m4 (gl_WCHAR_H): Test whether wcpcpy is declared. (gl_WCHAR_H_DEFAULTS): Initialize GNULIB_WCPCPY, HAVE_WCPCPY. * modules/wchar (Makefile.am): Substitute GNULIB_WCPCPY, HAVE_WCPCPY. * tests/test-wchar-c++.cc: Test the declaration of wcpcpy. * doc/posix-functions/wcpcpy.texi: Mention the new module.
Bruno Haible cca5dbfe 2011-02-05T14:23:31 New module 'wcscpy'. * modules/wcscpy: New file. * lib/wchar.in.h (wcscpy): New declaration. * lib/wcscpy.c: New file. * lib/wcscpy-impl.h: New file, from libutf8 with modifications. * m4/wcscpy.m4: New file. * m4/wchar_h.m4 (gl_WCHAR_H): Test whether wcscpy is declared. (gl_WCHAR_H_DEFAULTS): Initialize GNULIB_WCSCPY, HAVE_WCSCPY. * modules/wchar (Makefile.am): Substitute GNULIB_WCSCPY, HAVE_WCSCPY. * tests/test-wchar-c++.cc: Test the declaration of wcscpy. * doc/posix-functions/wcscpy.texi: Mention the new module.
Bruno Haible 28fef9da 2011-02-05T13:45:22 New module 'wcsnlen'. * modules/wcsnlen: New file. * lib/wchar.in.h (wcsnlen): New declaration. * lib/wcsnlen.c: New file. * lib/wcsnlen-impl.h: New file, from libutf8 with modifications. * m4/wcsnlen.m4: New file. * m4/wchar_h.m4 (gl_WCHAR_H): Test whether wcsnlen is declared. (gl_WCHAR_H_DEFAULTS): Initialize GNULIB_WCSNLEN, HAVE_WCSNLEN. * modules/wchar (Makefile.am): Substitute GNULIB_WCSNLEN, HAVE_WCSNLEN. * tests/test-wchar-c++.cc: Test the declaration of wcsnlen. * doc/posix-functions/wcsnlen.texi: Mention the new module.
Bruno Haible 023cc5f0 2011-02-05T13:36:58 New module 'wcslen'. * modules/wcslen: New file. * lib/wchar.in.h (wcslen): New declaration. * lib/wcslen.c: New file. * lib/wcslen-impl.h: New file, from libutf8 with modifications. * m4/wcslen.m4: New file. * m4/wchar_h.m4 (gl_WCHAR_H): Test whether wcslen is declared. (gl_WCHAR_H_DEFAULTS): Initialize GNULIB_WCSLEN, HAVE_WCSLEN. * modules/wchar (Makefile.am): Substitute GNULIB_WCSLEN, HAVE_WCSLEN. * tests/test-wchar-c++.cc: Test the declaration of wcslen. * doc/posix-functions/wcslen.texi: Mention the new module.
Bruno Haible e4d07a05 2011-02-05T13:28:21 New module 'wmemset'. * modules/wmemset: New file. * lib/wchar.in.h (wmemset): New declaration. * lib/wmemset.c: New file. * lib/wmemset-impl.h: New file, from libutf8 with modifications. * m4/wmemset.m4: New file. * m4/wchar_h.m4 (gl_WCHAR_H): Test whether wmemset is declared. (gl_WCHAR_H_DEFAULTS): Initialize GNULIB_WMEMSET, HAVE_WMEMSET. * modules/wchar (Makefile.am): Substitute GNULIB_WMEMSET, HAVE_WMEMSET. * tests/test-wchar-c++.cc: Test the declaration of wmemset. * doc/posix-functions/wmemset.texi: Mention the new module.
Bruno Haible 994d0a36 2011-02-05T13:07:51 New module 'wmemmove'. * modules/wmemmove: New file. * lib/wchar.in.h (wmemmove): New declaration. * lib/wmemmove.c: New file. * lib/wmemmove-impl.h: New file, from libutf8 with modifications. * m4/wmemmove.m4: New file. * m4/wchar_h.m4 (gl_WCHAR_H): Test whether wmemmove is declared. (gl_WCHAR_H_DEFAULTS): Initialize GNULIB_WMEMMOVE, HAVE_WMEMMOVE. * modules/wchar (Makefile.am): Substitute GNULIB_WMEMMOVE, HAVE_WMEMMOVE. * tests/test-wchar-c++.cc: Test the declaration of wmemmove. * doc/posix-functions/wmemmove.texi: Mention the new module.
Bruno Haible c20b0560 2011-02-05T12:58:40 New module 'wmemcpy'. * modules/wmemcpy: New file. * lib/wchar.in.h (wmemcpy): New declaration. * lib/wmemcpy.c: New file. * lib/wmemcpy-impl.h: New file, from libutf8 with modifications. * m4/wmemcpy.m4: New file. * m4/wchar_h.m4 (gl_WCHAR_H): Test whether wmemcpy is declared. (gl_WCHAR_H_DEFAULTS): Initialize GNULIB_WMEMCPY, HAVE_WMEMCPY. * modules/wchar (Makefile.am): Substitute GNULIB_WMEMCPY, HAVE_WMEMCPY. * tests/test-wchar-c++.cc: Test the declaration of wmemcpy. * doc/posix-functions/wmemcpy.texi: Mention the new module.
Bruno Haible c5c66975 2011-02-05T12:47:22 New module 'wmemcmp'. * modules/wmemcmp: New file. * lib/wchar.in.h (wmemcmp): New declaration. * lib/wmemcmp.c: New file. * lib/wmemcmp-impl.h: New file, from libutf8 with modifications. * m4/wmemcmp.m4: New file. * m4/wchar_h.m4 (gl_WCHAR_H): Test whether wmemcmp is declared. (gl_WCHAR_H_DEFAULTS): Initialize GNULIB_WMEMCMP, HAVE_WMEMCMP. * modules/wchar (Makefile.am): Substitute GNULIB_WMEMCMP, HAVE_WMEMCMP. * tests/test-wchar-c++.cc: Test the declaration of wmemcmp. * doc/posix-functions/wmemcmp.texi: Mention the new module.
Eric Blake ad98f8ef 2011-02-05T14:31:59 unsetenv: work around Haiku issues On Haiku alpha 2, test-unsetenv.c passed in isolation with just system headers, but failed when libgnu and replacement headers were in use. Why? Because putenv("a") fails to remove "a=..." from the environment, but the gnulib rpl_putenv works by assigning to environ. Apparently, Haiku is doing some funky caching issues, and correctly removes all vestiges of environment duplicates when Haiku is in charge, but not after assigning to environ forces Haiku to rebuild its cache. The m4 change is sufficient to detect Haiku's oddities, and the existing replacement then passes just fine. * m4/setenv.m4 (gl_FUNC_UNSETENV): Also detect Haiku issue. * doc/posix-functions/unsetenv.texi (unsetenv): Document it. Signed-off-by: Eric Blake <eblake@redhat.com>
Eric Blake cda784e7 2011-02-05T12:15:59 strerror_r-posix: port to cygwin * lib/strerror_r.c (strerror_r) [__CYGWIN__]: Add cygwin implementation. * m4/strerror_r.m4 (gl_FUNC_STRERROR_R): Adjust comment. * tests/test-strerror_r.c (main): Fix test. * doc/posix-functions/strerror_r.texi (strerror_r): Document the issue. Signed-off-by: Eric Blake <eblake@redhat.com>
Bruno Haible b9a6d36d 2011-02-05T12:25:13 New module 'wmemchr'. * modules/wmemchr: New file. * lib/wchar.in.h (wmemchr): New declaration. * lib/wmemchr.c: New file. * lib/wmemchr-impl.h: New file, from libutf8 with modifications. * m4/wmemchr.m4: New file. * m4/wchar_h.m4 (gl_WCHAR_H_DEFAULTS): Initialize GNULIB_WMEMCHR, HAVE_WMEMCHR. * modules/wchar (Makefile.am): Substitute GNULIB_WMEMCHR, HAVE_WMEMCHR. * tests/test-wchar-c++.cc: Test the declaration of wmemchr. * doc/posix-functions/wmemchr.texi: Mention the new module.
Eric Blake e7455b30 2011-02-04T21:52:40 fdopendir: detect FreeBSD bug FreeBSD fdopendir(fd) always consumes fd, even if it fails with ENOTDIR. The code that works around the GNU Hurd bug also fixes this; we just need to detect it. * m4/fdopendir.m4 (gl_FUNC_FDOPENDIR): Detect bug. * doc/posix-functions/fdopendir.texi (fdopendir): Document it. Reported by Jim Meyering. Signed-off-by: Eric Blake <eblake@redhat.com>
Eric Blake 0e9ef9b9 2011-01-31T20:14:37 dup2: work around Haiku bug dup2(n,n) must be a no-op, but on Haiku, it resets FD_CLOEXEC. However, we must keep the Linux workaround for dup2(n,n) returning (unsigned int)-EBADF. * m4/dup2.m4 (gl_FUNC_DUP2): Test for bug. * lib/dup2.c (rpl_dup2) [!WIN32]: Add workaround. * doc/posix-functions/dup2.texi (dup2): Document the bug. * tests/test-dup2.c (main): Enhance test. Signed-off-by: Eric Blake <eblake@redhat.com>
Eric Blake fc12f35a 2011-01-25T22:06:16 fcntl: work around Haiku F_DUPFD bugs * m4/fcntl.m4 (gl_FUNC_FCNTL): Also catch Haiku errno bug. * lib/fcntl.c (rpl_fcntl) [F_DUPFD]: Work around Haiku losing cloexec bit on duplication. * doc/posix-functions/fcntl.texi (fcntl): Document the bug. Signed-off-by: Eric Blake <eblake@redhat.com>
Karl Berry ff57a81d 2011-01-09T16:38:10 missing @item
Bruno Haible 45dda1d3 2011-01-03T02:51:03 getlogin_r: Avoid test failure on HP-UX 11. * tests/test-getlogin_r.c (main): Allow an error code EINVAL instead of ERANGE when the second argument is zero. * doc/posix-functions/getlogin_r.texi: Document the HP-UX 11 portability problem.
Bruno Haible fa43e0af 2011-01-02T18:40:29 pwrite: Fix test whether it works and make it work on HP-UX 11.11. * m4/pwrite.m4 (gl_FUNC_PWRITE): Use AC_LANG_PROGRAM, not AC_LANG_SOURCE. Extend the test program to catch another HP-UX 11.11 bug. * lib/pwrite.c: Undo 2010-12-31 patch. * doc/posix-functions/pwrite.texi: Document another HP-UX 11.11 bug.
Bruno Haible 1944a32b 2011-01-02T13:30:17 tcgetsid: Correct linkage in C++ mode on HP-UX 11.00. * lib/termios.in.h: In C++ mode, on HP-UX, include <sys/termios.h> with C linkage. * doc/posix-functions/tcgetsid.texi: Mention the HP-UX 11.00 bug.
Bruno Haible 872abb20 2011-01-01T02:25:00 pwrite: Work around HP-UX 11.11 bug. * m4/pwrite.m4 (gl_FUNC_PWRITE): When pwrite exists, test whether it works and set REPLACE_PWRITE if not. * lib/pwrite.c (pwrite): Add an implementation that uses the system function. * doc/posix-functions/pwrite.texi: Document the HP-UX 11 bug.
Bruno Haible e86df7d6 2011-01-01T01:50:01 pread: Work around HP-UX 11 bugs. * m4/pread.m4 (gl_FUNC_PREAD): When pread exists, test whether it works and set REPLACE_PREAD if not. * doc/posix-functions/pread.texi: Document the HP-UX 11 bugs.
Eric Blake c6fb743c 2010-12-31T11:42:21 nl_langinfo: fix YESEXPR on Irix 6.5 * m4/nl_langinfo.m4 (gl_FUNC_NL_LANGINFO): Test for Irix bug. * lib/nl_langinfo.c (rpl_nl_langinfo): Work around it. * doc/posix-functions/nl_langinfo.texi (nl_langinfo): Document it. Signed-off-by: Eric Blake <eblake@redhat.com>
Bruno Haible 13b8c735 2010-12-31T23:05:03 iconv: Document HP-UX 11 bug. * doc/posix-functions/iconv.texi: Document HP-UX 11 return value bug.