* lib/acl-internal.c: Remove struct stat parameter from HP-UX's version of
acl_nontrivial. Check if the acl has at most three entries instead (it must
have exactly three entries according to the HP-UX documentation). Ignore
uids and gids as long as an entry is either for a user (i.e., the owner),
a group (i.e., the owning group), or others.
* lib/acl-internal.h: Change HP-UX's acl_nontrivial prototype.
* lib/qcopy-acl.c (qcopy_acl): With that, we no longer need to stat the source
file.
On Linux, use the getxattr syscall instead of the acl_extended_file libacl
library function to check for the presence of acls, avoiding a library
dependency.
* lib/file-has-acl.c: Include xattr headers if we have them.
(file_has_acl): On Linux, use getxattr().
* m4/acl.m4 (gl_FUNC_ACL): Define LIB_HAS_ACL as the libraries to link with for
file_has_acl(). Check for xattr headers and getxattr().
* modules/acl: Add a dep on the stdbool module which was already needed.
Add the new reduced dependency LIB_HAS_ACL reference.
acl, qacl: split off shared functions into separate object file
Some of the helper functions in file-has-acl.c are used from qcopy-acl.c while
file_has_acl() isn't needed there. Split the shared functions off into
acl-internal.c.
* lib/file-has-acl.c: Remove helper functions here.
* lib/acl-internal.c: Add helper functions here.
* modules/qacl: Use acl-internal.c instead of file-has-acl.c here.
* modules/acl: Add file-has-acl.c now that qacl doesn't use it anymore.
Revert commit bedd7833 as it breaks `make dist` in Inetutils
at least, due to the interdependencies with top/GNUMakefile,
which depend on the tag prefixes. This results in `make dist`
inducing a new call to autoconf where a simple tar-ball build
would be expected.
* build-aux/git-version-gen: If fallback string is empty,
but git is available, use "git describe --always" to extract
a revision, and prefix it with "g". This is much better than
responding "UNKNOWN" and it applies to shallow clones!
Paul Eggert [Thu, 9 Apr 2015 16:25:12 +0000 (09:25 -0700)]
gitlog-to-changelog: port to MS-Windows
* build-aux/gitlog-to-changelog (git_dir_option):
Use strftime with "%Y-%m-%d", not "%F", to avoid a bug in
MS-Windows Perl. Reported by Eli Zaretskii in:
http://lists.gnu.org/archive/html/emacs-devel/2015-04/msg00504.html
Reported by Jack Howarth in:
<https://lists.gnu.org/archive/html/bug-libunistring/2015-04/msg00000.html>.
* tests/uniname/test-uninames.c (name_has_alias): New function.
(test_inverse_lookup): Exclude character name with valid alias,
from randomly generated character names.
(main): Fill unicode_aliases before calling test functions.
* lib/mountlist.c (read_file_system_list): Parse /proc/self/mountinfo
directly, rather than depending on libmount, which has many
dependencies due to its dependence on libselinux, as detailed at:
http://lists.gnu.org/archive/html/bug-gnulib/2015-01/msg00063.html
Note we restrict this to __linux__ as that's probably where this
interface will remain. If ever porting, it would be best
to first pull the makedev() wrapper from coreutils to a gnulib module.
Note also we don't add a getline dependency to the mountlist module,
as all Linux versions are sufficient.
Paul Eggert [Thu, 2 Apr 2015 17:35:53 +0000 (10:35 -0700)]
stddef: port to pre-C11 GCC on x86
On this platform, max_align_t should have an alignment of 8 even
though the storage alignments of double, long, etc. max out at 4.
Inspired by a comment of Andreas Schwab's here:
https://sourceware.org/ml/libc-alpha/2015-04/msg00017.html
* lib/stddef.in.h (_GL_STDDEF_ALIGNAS) [!HAVE_MAX_ALIGN_T]: New macro.
(max_align_t) [!HAVE_MAX_ALIGN_T]: Use it.
* tests/test-stddef.c: Test __alignof__ too, if available.
yesno behaves differently in a corner case depending on ENABLE_NLS.
With an input of "y" followed by an EOF the input is considered to
be "no", because the last character is replaced with '\0'. It was
assumed that there is a newline, which doesn't have to be true.
If ENABLE_NLS is not set, getchar() reads y and accepts it as "yes",
looping through more getchar() calls until reaching newline or EOF.
* lib/yesno.c (yesno): Check for EOL before replacing.
* tests/test-yesno.sh: Add a test case (test along with gettext).
Paul Eggert [Mon, 23 Mar 2015 02:47:24 +0000 (19:47 -0700)]
fdopendir-tests: test it does not close its arg
* tests/test-fdopendir.c (main): Test that fdopendir does not
close its argument. From a suggestion by David Grayson in:
http://lists.gnu.org/archive/html/bug-gnulib/2015-03/msg00039.html
Paul Eggert [Sat, 21 Mar 2015 01:09:24 +0000 (18:09 -0700)]
gitlog-to-changelog: trim trailing white space
* build-aux/gitlog-to-changelog (main):
Trim trailing white space from commit message lines.
This is helpful for processing the GNU Emacs repository,
which dates back to 1985 and contains a lot of such lines.
Paul Eggert [Sat, 21 Mar 2015 00:40:37 +0000 (17:40 -0700)]
gitlog-to-changelog: new option --ignore-matching
* build-aux/gitlog-to-changelog (usage, git_dir_option, main):
Support new option --ignore-matching=PAT, which ignores all
commit messages whose first line matches PAT.
Paul Eggert [Thu, 19 Mar 2015 19:11:07 +0000 (12:11 -0700)]
fdopendir: port better to MinGW
* lib/fdopendir.c (fd_clone_opendir) [REPLACE_FCHDIR]:
Use 'dup' if dirfd fails. Suggested by Eli Zaretskii in:
http://lists.gnu.org/archive/html/bug-gnulib/2015-03/msg00033.html
* modules/fdopendir (Depends-on): Add dirfd.
Paul Eggert [Tue, 3 Mar 2015 15:48:40 +0000 (07:48 -0800)]
vasnprintf: pacify clang 3.5.0
Problem reported by Werner Lemberg in:
http://lists.gnu.org/archive/html/bug-gnulib/2015-03/msg00000.html
* lib/vasnprintf.c (VASNPRINTF): Omit casts that clang objects to.
The casts aren't needed, since the characters in question are ASCII.
Paul Eggert [Wed, 25 Feb 2015 04:44:32 +0000 (20:44 -0800)]
glob, etc.: port to MSVC v18 on MS-Windows 8.1
* lib/dirent--.h (GNULIB_defined_opendir):
* lib/dirent.in.h (GNULIB_defined_opendir)
(GNULIB_defined_closedir):
* lib/getcwd.c, lib/glob.c, lib/mountlist.c (opendir, closedir):
#undef only if Gnulib defined it.
Paul Eggert [Wed, 25 Feb 2015 00:16:19 +0000 (16:16 -0800)]
poll: port to MSVC v18 on MS-Windows 8.1
Problem reported by Gisle Vanem in:
http://lists.gnu.org/archive/html/bug-gnulib/2015-02/msg00139.html
* lib/poll.c: Always include <sys/select.h> and <sys/socket.h>.
* modules/poll (Depends-on) [!HAVE_POLL || REPLACE_POLL]:
Add sys_socket.
Pádraig Brady [Mon, 16 Feb 2015 17:20:39 +0000 (17:20 +0000)]
tests: support stderr verification with returns_()
* tests/init.sh (returns_): Disable tracing for this wrapper
function, so that stderr of the wrapped command is unchanged,
allowing for verification of the contents.
Pavel Hrdina [Tue, 24 Feb 2015 12:58:46 +0000 (12:58 +0000)]
passfd: avoid valgrind uninitalised data warning
Running libvirt using valgrind produced:
Syscall param sendmsg(msg.msg_control) points to uninitialised byte(s)
at ??? (in /lib64/libpthread-2.19.so)
by sendfd (passfd.c:86)
by virNetSocketSendFD (virnetsocket.c:1766)
by virNetServerClientDispatchWrite (virnetserverclient.c:1271)
by virNetServerClientDispatchEvent (virnetserverclient.c:1371)
by virEventPollDispatchHandles (vireventpoll.c:508)
by virEventPollRunOnce (vireventpoll.c:657)
by virEventRunDefaultImpl (virevent.c:308)
by virNetServerRun (virnetserver.c:1139)
by main (libvirtd.c:1491)
Address 0xffefff3f4 is on thread 1's stack
in frame #1, created by sendfd (passfd.c:51)
* lib/passfd.c (sendfd): Reset the msg_controllen of msghdr,
to include just the fd we've initialised, rather than including
the extra space used for alignment.
Paul Eggert [Mon, 23 Feb 2015 18:34:40 +0000 (10:34 -0800)]
dup2: doc and test for Android bug
Reported by Kevin Cernekee in:
http://lists.gnu.org/archive/html/bug-gnulib/2015-02/msg00125.html
* doc/posix-functions/dup2.texi (dup2): Document the bug.
* m4/dup2.m4 (gl_FUNC_DUP2): Test for the bug.
Kevin Cernekee [Mon, 23 Feb 2015 17:38:14 +0000 (09:38 -0800)]
Replace dup2() on Android
* m4/dup2.m4 (gl_FUNC_DUP2): Android implements dup2() using dup3().
Since dup3(fd, fd) fails but dup2(fd, fd) should pass, test-dup2
fails. Using rpl_dup2() fixes this because it has an explicit test
for this condition.
Paul Eggert [Mon, 23 Feb 2015 03:07:46 +0000 (19:07 -0800)]
Android doesn't define RLIM_SAVED_*
Portability problem reported by Kevin Cernekee in:
http://lists.gnu.org/archive/html/bug-gnulib/2015-02/msg00122.html
* doc/posix-headers/sys_resource.texi (sys/resource.h):
Mention the portability problem.
* lib/getdtablesize.c (RLIM_SAVED_CUR, RLIM_SAVED_MAX):
Define if not defined.
* m4/dup2.m4 (gl_FUNC_DUP2):
* m4/fcntl.m4 (gl_FUNC_FCNTL):
Likewise.
Paul Eggert [Sat, 21 Feb 2015 02:09:47 +0000 (18:09 -0800)]
printf, isinf, etc.: noncanonical != NaN
Do not require that isinf, printf, etc. treat noncanonical
values as NaNs. Instead, require only that they do not crash.
Problem reported by Joseph Myers in:
https://sourceware.org/ml/libc-alpha/2015-02/msg00244.html
* doc/posix-functions/dprintf.texi (dprintf):
* doc/posix-functions/fprintf.texi (fprintf):
* doc/posix-functions/isfinite.texi (isfinite):
* doc/posix-functions/isinf.texi (isinf):
* doc/posix-functions/isnan.texi (isnan):
* doc/posix-functions/printf.texi (printf):
* doc/posix-functions/snprintf.texi (snprintf):
* doc/posix-functions/sprintf.texi (sprintf):
* doc/posix-functions/vdprintf.texi (vdprintf):
* doc/posix-functions/vfprintf.texi (vfprintf):
* doc/posix-functions/vprintf.texi (vprintf):
* doc/posix-functions/vsnprintf.texi (vsnprintf):
* doc/posix-functions/vsprintf.texi (vsprintf):
Document this.
* m4/isfinite.m4 (gl_ISFINITEL_WORKS):
* m4/isinf.m4 (gl_ISINFL_WORKS):
* m4/isnanl.m4 (gl_FUNC_ISNANL_WORKS):
* m4/printf.m4 (gl_PRINTF_INFINITE_LONG_DOUBLE):
* tests/test-isfinite.c (test_isfinitel):
* tests/test-isinf.c (test_isinfl):
* tests/test-isnan.c (test_long_double):
* tests/test-isnanl.h (main):
* tests/test-snprintf-posix.h (test_function):
* tests/test-sprintf-posix.h (test_function):
* tests/test-vasnprintf-posix.c (test_function):
* tests/test-vasprintf-posix.c (test_function):
o Test only that noncanonical values do not cause crashes, not that
they are treated as NaNs. In some cases this means a larger
output buffer is needed.
Paul Eggert [Fri, 20 Feb 2015 18:53:10 +0000 (10:53 -0800)]
getdtablesize: port better for Android
Problem reported by Kevin Cernekee in:
http://lists.gnu.org/archive/html/bug-gnulib/2015-02/msg00112.html
* doc/glibc-functions/getdtablesize.texi (getdtablesize): Mention bug.
* lib/getdtablesize.c (getdtablesize): Don't fall back on _SC_OPEN_MAX.
Instead, just use getrlimit, taking care to avoid Cygwin bug.
Paul Eggert [Fri, 20 Feb 2015 18:37:49 +0000 (10:37 -0800)]
poll: fixes for large fds
* lib/poll.c (poll): Don't check directly for NFD too large.
Don't rely on undefined behavior in FD_SET when an arg exceeds
FD_SETSIZE. Always set revents afterwards, even if to zero.
* tests/test-poll.c (poll1): Set revents to -1 instead of 0,
as that makes the test a bit stricter.
Paul Eggert [Thu, 19 Feb 2015 07:20:55 +0000 (23:20 -0800)]
dup2, fcntl: cross-compiler better for Android
Problem reported by Kevin Cernekee in:
http://lists.gnu.org/archive/html/bug-gnulib/2015-02/msg00109.html
* m4/dup2.m4 (gl_FUNC_DUP2): Don't guess no when cross-compiling
for a Linux kernel. That kernel bug was fixed on 2009-05-11, and
there's little need to cross-compile for older kernels nowadays.
* m4/fcntl.m4 (gl_FUNC_FCNTL): When cross-compiling, guess no only
for systems where the bug is known to occur (AIX, Cygwin, Haiku).
Pádraig Brady [Wed, 18 Feb 2015 22:37:31 +0000 (22:37 +0000)]
getopt: give accurate ambiguity diagnostic on mem exhaustion
* lib/getopt.c (_getopt_internal_r): The previous commit broke
out the loop too early, which could give a false indication
of ambiguous options under memory exhaustion.
Pádraig Brady [Wed, 18 Feb 2015 02:23:35 +0000 (02:23 +0000)]
getopt: don't crash on memory exhaustion
* lib/getopt.c (_getopt_internal_r): Use degraded diagnostics on
memory exhaustion. In the _LIBC case we use alloca() as is
already done in glibc, so we don't need to consider the separate
error path in that awkward case. Also fix a memory leak when
ambiguous options are present.
Reported by Tobias Stoeckmann
Paul Eggert [Wed, 18 Feb 2015 02:34:17 +0000 (18:34 -0800)]
dup2, fcntl: port to AIX
* m4/dup2.m4 (gl_FUNC_DUP2):
* m4/fcntl.m4 (gl_FUNC_FCNTL):
Prefer getrusage (RLIM_NOFILE ...)/rlim_cur to sysconf (_SC_OPEN_MAX).
The former works on AIX 7.1 but the latter does not.
Also, this may work better with Android; see:
http://lists.gnu.org/archive/html/bug-gnulib/2015-02/msg00100.html
Paul Eggert [Tue, 17 Feb 2015 05:38:02 +0000 (21:38 -0800)]
getdtablesize, dup2, fcntl: port to Android
Problem reported by Kevin Cernekee in:
http://lists.gnu.org/archive/html/bug-gnulib/2015-02/msg00092.html
* doc/glibc-functions/getdtablesize.texi (getdtablesize):
Mention that getdtablesize doesn't work on Android.
* lib/getdtablesize.c: Use getrlimit substitute only if
getdtablesize is declared. This should suffice for Cygwin
while not breaking Android.
* m4/dup2.m4 (gl_FUNC_DUP2):
* m4/fcntl.m4 (gl_FUNC_FCNTL):
Prefer sysconf (_SC_OPEN_MAX) to getdtablesize, as the former is
standardized but the latter is not, and sysconf works on Android.
* m4/getdtablesize.m4 (gl_FUNC_GETDTABLESIZE):
Also check that getdtablesize is declared.
This removes the need for a special case for Android.
Kevin Cernekee [Tue, 17 Feb 2015 01:26:49 +0000 (17:26 -0800)]
localename: Implement gl_locale_name_thread_unsafe for Android
* lib/localename.c: Android API level >= 21 supports two hardcoded
locales: C (POSIX) and C.UTF-8. Distinguish them by checking
the internal __locale_t struct.
Kamil Dudka [Wed, 11 Feb 2015 17:41:43 +0000 (18:41 +0100)]
fts: avoid crash when a cycle is added while traversing
This could be triggered by auto-mounting a recursive bind mount.
Reported by Michael Chapman in: https://bugzilla.redhat.com/1188498
* lib/fts.c (fts_read): Avoid removing the original hash table item
when leaving a directory that caused a cycle, and preserve the FTS_DC
flag.
Daiki Ueno [Mon, 16 Feb 2015 06:44:14 +0000 (15:44 +0900)]
uniname/uniname: support character alias
* lib/uniname/gen-uninames.lisp (main): New argument ALIASFILE.
Generate one-way mapping from aliases to codepoints in the
generated tables. Special case variation selectors to reduce
table size.
* lib/uniname/uniname.c (unicode_character_name): Special case
variation selectors.
(unicode_name_character): Special case variation selectors and
their aliases.
* lib/uniname/uninames.h: Regenerate.
* tests/uniname/NameAliases.txt: New file, taken from UCD 7.0.0.
* modules/uniname/uniname-tests (Files): Add
tests/uniname/NameAliases.txt.
* tests/uniname/test-uninames.c: Mark as static.
(ALIASLEN): Define.
(struct unicode_alias): New struct.
(unicode_aliases): New variable.
(fill_aliases): New function.
(test_alias_lookup): New test function.
(main): Run the 'test_alias_lookup' test if the second argument is
given.
* tests/uniname/test-uninames.sh: Supply NameAliases.txt as the
second argument.
Kevin Cernekee [Wed, 11 Feb 2015 23:22:58 +0000 (15:22 -0800)]
duplocale: Fix Android build of duplocale-tests
* modules/duplocale-tests (Depends-on): Add langinfo, as the header
is included by test-duplocale.c (but not by duplocale.c).
* modules/duplocale-tests (configure.ac): Check for monetary.h.
* tests/test-duplocale.c: Skip test if monetary.h is absent.
* doc/posix-headers/monetary.texi: Add Android to the list of
platforms missing monetary.h.
Kevin Cernekee [Wed, 11 Feb 2015 23:22:51 +0000 (15:22 -0800)]
getdtablesize: Fix Android build
* m4/getdtablesize.m4: Add Android case to host OS check. Recent NDK
versions have this symbol in the .so library (at least 32-bit
platforms) but are missing the declaration in the header file,
causing the m4 logic to guess incorrectly.
Kevin Cernekee [Wed, 11 Feb 2015 23:22:50 +0000 (15:22 -0800)]
Assume unbroken ungetc() on Android
* m4/ungetc.m4: Add Android case to host OS check. The ungetc()
test case passed when running on an Android host, and the code
hasn't really changed since 2009.
Pádraig Brady [Wed, 11 Feb 2015 02:46:28 +0000 (02:46 +0000)]
maint: various whitespace cleanups in tempname
Recent changes to the tempname module, introduced
whitespace inconsistencies that are triggering
issues in coreutils diffs generated against the new files.
* lib/tempname.c: Normalize spacing and line length.
* lib/tempname.h: Likewise.
* modules/tempname: Likewise.
Pádraig Brady [Wed, 11 Feb 2015 00:16:55 +0000 (00:16 +0000)]
tests: provide returns_() to simplify exit status checking
* tests/init.sh (returns_): A new function for use in tests,
to allow for easier checking of return values, where you expect
a command to exit with failure status. By checking for a particular
exit code, you don't hide any crashes for example.
Pádraig Brady [Tue, 20 Jan 2015 01:40:54 +0000 (01:40 +0000)]
mountlist: only use libmount when specified
libmount can propagate device IDs provided by Linux in
/proc/self/mountinfo. However there are currently many
shared libs dependencies introduced by libmount with
associated runtime and virt mem overhead. Therefore don't
enable by default.
* m4/ls-mntd-fs.m4: Use --with-libmount to enable at build time.
Note the ac_cv_lib_libmount_mnt_table_parse_stream cache variable
had a typo and so was ineffective, thus there is no backwards
compatibility issue.
Paul Eggert [Sun, 8 Feb 2015 02:09:00 +0000 (18:09 -0800)]
fstrcmp: don't assume strlen < INT_MAX
* lib/fstrcmp.c: Include stddef.h and stdint.h.
(uintptr_t): Remove, as we're now assuming stdint.
(OFFSET, EXTRA_CONTEXT_FIELDS, fstrcmp_bounded):
Prefer ptrdiff_t to int when the value could exceed INT_MAX
if the input string is long.
(fstrcmp_bounded): Check for size-calculation overflow. Prefer
uintptr_t to size_t when the underlying value is a pointer casted
to an unsigned integer. Avoid unnecessary 'buffer != NULL' test.
* modules/fstrcmp (Depends-on): Add stdint.
Paul Eggert [Sun, 8 Feb 2015 02:02:42 +0000 (18:02 -0800)]
diffseq: prefer ptrdiff_t to ssize_t
* lib/diffseq.h: In commentary, prefer ptrdiff_t to ssize_t.
ptrdiff_t is the natural type for signed indexes.
On a few older platforms, ssize_t is narrower than size_t.
Paul Eggert [Sun, 8 Feb 2015 01:27:03 +0000 (17:27 -0800)]
xalloc: fix typo that suppressed warnings
* lib/xalloc.h: Add missing _GL_INLINE_HEADER_END.
This typo, introduced a couple of years ago, mistakenly suppressed
some -Wsuggest-attribute=const, -Wmissing-prototypes, and
-Wmissing-declarations warnings.
Paul Eggert [Sat, 7 Feb 2015 23:09:00 +0000 (15:09 -0800)]
crypto/gc: fix a -Wswitch warning
Reported by Bruce Korb in:
http://lists.gnu.org/archive/html/bug-gnulib/2015-02/msg00046.html
* lib/gc-gnulib.c (gc_hash_open): Fail faster if MODE is nonzero.
The way how gen_tempname() creates files is not always sufficient. For example,
it may make sense to create directories when creating the temporary file or
directory fails with errno set to ENOENT. Add a try_tempname() variant of
gen_tempname() that allows that. Implement gen_tempname() on top of it.
* lib/tempname.c (try_tempname): New function and backend of gen_tempname().
(try_file, try_dir, try_nocreate): Callbacks to use for the different kinds
that gen_tempname supports (GT_FILE, GT_DIR, GT_NOCREATE).
* lib/tempname.h (try_tempname): Declare here.
* modules/tempname: Mention try_tempname.
Pádraig Brady [Tue, 3 Feb 2015 03:55:48 +0000 (03:55 +0000)]
bootstrap: exit immediately upon gnulib-tool failure
* build-aux/bootstrap: Exit immediately if gnulib-tool fails.
This was noticed when gnulib-tool exited early due to failure
to apply a patch in coreutils at http://hydra.nixos.org/eval/1172233,
but various confusing errors were then given as the build proceeded.
Following on from commit 032bd151, include header files required
on OS X 10.10 (Yosemite) at least.
* lib/symlinkat.c (HAVE_SYMLINK_AT): Add <sys/stat.h> for fstatat(),
and string.h for strlen().
Reported at https://savannah.gnu.org/bugs/index.php?44151
and by Jack Howarth.
Pádraig Brady [Thu, 29 Jan 2015 16:44:48 +0000 (16:44 +0000)]
localename: support Solaris 12 and illumos
* lib/localename.c (gl_locale_name_thread_unsafe): call
getlocalename_l() on newer __sun platforms.
Reported by Alexander Pyhalov.
Fix suggested by Rich Burridge.
Daiki Ueno [Sat, 24 Jan 2015 02:11:34 +0000 (11:11 +0900)]
unictype: avoid undefined left-shift behavior
* lib/unictype/bidi_of.c (uc_bidi_class): Building libunistring with
gcc's -fsanitize=shift and running its tests triggered:
unictype/bidi_of.c:43:60: runtime error: left shift of 40167 by 16 \
places cannot be represented in type 'int'
Cast LHS to 'unsigned int' after integer promotion.
* lib/unictype/categ_of.c (lookup_withtable): Likewise.
* lib/unictype/joininggroup_of.c (uc_joining_group): Likewise.
Daiki Ueno [Tue, 20 Jan 2015 09:09:03 +0000 (18:09 +0900)]
libunistring: bump version of unitypes dependants
Due to the header file search order, all the headers which depend
on unitypes.h need to be generated, when the preinstalled
libunistring is older.
* modules/unicase/base (configure.ac): Bump minimum version to
0.9.4.
* modules/uniconv/base (configure.ac): Likewise.
* modules/unilbrk/base (configure.ac): Likewise.
* modules/uninorm/base (configure.ac): Likewise.
* modules/unistdio/base (configure.ac): Likewise.
* modules/unistr/base (configure.ac): Likewise.
* modules/uniwbrk/base (configure.ac): Likewise.
* modules/uniwidth/base (configure.ac): Likewise.
Daiki Ueno [Tue, 20 Jan 2015 06:46:54 +0000 (15:46 +0900)]
unictype/category-none: fix link with libunistring
Since _UC_CATEGORY_NONE is not a public symbol, it will be
prefixed with "libstring_" when compiled as part of libunistring.
To avoid undefined symbol at link time, increase the minimum
version when the dependant modules are updated.
* modules/unictype/category-none (configure.ac): Bump minimum
version to 0.9.5.
Daiki Ueno [Tue, 20 Jan 2015 06:34:36 +0000 (15:34 +0900)]
unitypes: fix build with installed libunistring
The minimum version was not bumped after _UC_ATTRIBUTE_CONST and
_UC_ATTRIBUTE_PURE were added to unitypes.in.h.
* modules/unitypes (configure.ac): Bump minimum version to 0.9.4.
Paul Eggert [Fri, 16 Jan 2015 01:37:14 +0000 (17:37 -0800)]
time: port to MinGW32 3.21
Problem reported by Eli Zaretskii in:
http://lists.gnu.org/archive/html/bug-gnulib/2015-01/msg00042.html
* lib/time.in.h:
* m4/time_h.m4 (gl_CHECK_TYPE_STRUCT_TIMESPEC):
* modules/time (Depends-on):
Fall back on unistd.h if the other include files don't define
struct timespec.
Daiki Ueno [Thu, 15 Jan 2015 03:14:14 +0000 (12:14 +0900)]
libunistring: update to Unicode 6.2.0
* lib/unilbrk/lbrktables.h (LBP_RI): New enumeration value.
(unilbrk_table): Adjust table size.
* lib/unilbrk/lbrktables.c (unilbrk_table): Add a row and column
for LBP_RI.
* lib/uniwbrk.in.h (WBP_RI): New enumeration value.
* lib/uniwbrk/u-wordbreaks.h (FUNC): Support rule WB13c.
Normalize table index skipping ignored properties.
* lib/uniwbrk/wbrktable.c (uniwbrk_table): Support WBP_RI. Remove
WBP_EXTEND and WBP_FORMAT, which are now computed without using
the table.
* lib/uniwbrk/wbrktable.h: Adjust table size.
* lib/unigbrk.in.h (GBP_RI): New enumeration value.
* lib/unigbrk/uc-is-grapheme-break.c (UC_IS_GRAPHEME_BREAK):
Support rule GB8a.
(UC_GRAPHEME_BREAKS_FOR, gb_table): Support GBP_RI.
* tests/unigbrk/test-uc-is-grapheme-break.c
(graphemebreakproperty_to_string): Support GBP_RI.
* lib/gen-uni-tables.c (LBP_RI): New enumeration value.
(get_lbp, debug_output_lbp, fill_org_lbp, debug_output_org_lbp)
(output_lbp): Support LBP_RI. Adjust some characters changed from
LBP_AL to LBP_ID.
(output_lbp): Support LBP_RI.
(WBP_RI): New enumeration value.
(debug_output_wbp, fill_org_wbp, debug_output_org_wbp)
(output_wbp): Support WBP_RI.
(GBP_RI): New enumeration value.
(output_gbp_test, fill_org_gbp): Support GBP_RI.
* all generated files under lib/uni* and tests/uni*: Regenerate.
Daiki Ueno [Thu, 15 Jan 2015 03:08:17 +0000 (12:08 +0900)]
libunistring: update to Unicode 6.1.0
* lib/gen-uni-tables.c (output_joining_group): Switch to
3-level table to accommodate joining groups defined with higher
codepoint value. Since there are only 88 groups defined in
Unicode 7.0.0, use 7-bit packed format for level3 entries.
(get_lbp): Update for Unicode 6.1.0.
* lib/unictype/joininggroup_of.c (uc_joining_group): Adjust to use
3-level table.
* lib/unictype/joininggroup_byname.gperf: Add Rohingya Yeh
joining group name.
* lib/unictype/joininggroup_name.h: Likewise.
* lib/unilbrk/lbrktables.h (LBP_HL): New enumeration value.
(unilbrk_table): Adjust table size.
* lib/unilbrk/lbrktables.c (unilbrk_table): Add a row and column
for LBP_HL.
* lib/uniwidth/width.c (nonspacing_table_data): Add U+0604,
U+08E4..U+08FE, U+1BAB, U+1CF4, U+A674..U+A67B, U+A69F,
U+AAEC..U+AAED, U+AAF6, U+11100..U+11102, U+11127..U+1112B,
U+1112D..U+11134, U+11180..U+11181, U+111B6..U+111BE, U+116AB,
U+116AD, U+116B0..U+116B5, U+116B7, U+16F8F..U+16F92. Remove
U+302E..U+302F.
* tests/uniwidth/test-uc_width2.sh: Same updates as in
lib/uniwidth/width.c.
* all generated files under lib/uni* and tests/uni*: Regenerate.
* modules/uni*/* (configure.ac): Bump minimum version to 0.9.5.
Daiki Ueno [Thu, 15 Jan 2015 03:06:30 +0000 (12:06 +0900)]
uniwbrk/u32-wordbreaks-tests: add conformance test
* modules/uniwbrk/u32-wordbreaks-tests (Files): Add
tests/uniwbrk/test-uc-wordbreaks.c,
tests/uniwbrk/test-uc-wordbreaks.sh, and
tests/uniwbrk/WordBreakTest.txt.
(Makefile.am): Add uniwbrk/test-uc-wordbreaks.sh to $(TESTS), add
test-uc-wordbreaks to $(check_PROGRAMS), and define
test_uc_wordbreaks_SOURCES and test_uc_wordbreaks_LDADD.
* tests/uniwbrk/test-uc-wordbreaks.sh: New file.
* tests/uniwbrk/test-uc-wordbreaks.c: New file.
Pádraig Brady [Thu, 8 Jan 2015 12:18:54 +0000 (12:18 +0000)]
maint.mk: fix compatibility with OS X nm
* top/maint.mk (_gl_tight_scope): Use the -g option to
show exported items rather than the -e option which is
ignored on all platforms except OS X where it gives an error.
Reported by Assaf Gordon.
KO Myung-Hun [Wed, 7 Jan 2015 05:36:52 +0000 (14:36 +0900)]
localcharset: improve charset detection on OS/2
Use system codepage when appropriate. Map OS/2 codepages to
GNU canonical charset names if possible.
* lib/config.charset: Don't output aliases if "$os" is os2*.
* lib/localcharset.c (get_charset_aliases) [OS2]: Hardcode the
result for OS/2.
(locale_charset) [OS2]: Use system codepage if codeset is omitted
from the locale name which is neither "C" nor "POSIX".
Paul Eggert [Tue, 6 Jan 2015 17:05:22 +0000 (09:05 -0800)]
count-leading-zeros: use 64-bit intrinsics on 32-bit Windows
This reverts the last patch but one, as it shouldn't be needed now
that the typo is fixed.
* lib/count-leading-zeros.h (count_leading_zeros_ll):
* lib/count-trailing-zeros.h:
* lib/count-one-bits.h:
Go back to using 64-bit intrinsics.