bootstrap: discard non translation project po files
* build-aux/bootstrap (update_po_files): Remove any
local only files from the $po_dir/.reference directory.
The LINGUAS index is generated from this directory
and so those translations will not be distributed.
Note, local only translations are not removed from the
$po_dir directory.
Jim Meyering [Sun, 4 Jul 2010 08:54:38 +0000 (10:54 +0200)]
hash: once again explicitly disallow insertion of NULL
* lib/hash.c (hash_insert0): Reinstate just-removed test:
inserting a NULL pointer cannot work with these functions.
Add a comment with details.
This reverts part of the 2010-07-01 commit, 5bef1a35
"hash: extend module to deal with non-pointer keys".
Jim Meyering [Thu, 1 Jul 2010 21:17:25 +0000 (23:17 +0200)]
hash: extend module to deal with non-pointer keys
* lib/hash.c (hash_insert0): New interface, much like hash_insert
but that allows insertion of non-pointer entries.
Do not disallow an ENTRY value of NULL.
(hash_insert): This is now just a thin wrapper. Call hash_insert0.
* lib/hash.h (hash_insert0): Declare.
Eric Blake [Mon, 21 Jun 2010 22:16:44 +0000 (16:16 -0600)]
memmem: slight optimization
For any needle, the factorization 0/n has a local period of 1, so it
is a critical factorization iff the entire needle consists only of a
single repeated byte, in which case 1/n-1 would also be critical.
Starting with a comparison of x[0] and x[1] in the maximal suffix
check will either find the 0/n case or move on to something else, so
we can optimize and start with the x[1] vs. x[2] case to begin with.
To avoid out-of-bounds references, we must then special case needles
of length two or less. However, for these cases, we can determine a
critical factorization without any probes of the needle (we already
require a non-empty needle; a 1-byte needle can factor as either 0/1
or 1/0 but the rest of our code assumes a non-empty suffix; and of the
two 2-byte needle patterns, "aa" can factor as either 0/2 or 1/1 but
with best performance for 1/1, and "ab" must be factored as 1/1).
* lib/str-two-way.h (critical_factorization): Update comments.
Reduce work during factorization phase.
Reported by Carlos Bueno <carlos@bueno.org>.
Paul Eggert [Mon, 14 Jun 2010 19:20:22 +0000 (12:20 -0700)]
priv-set: Don't assume that priv.h exists merely because getppriv does.
See Jan Andersen's bug report about AIX 5L in
http://lists.gnu.org/archive/html/bug-tar/2010-06/msg00019.html
* m4/priv-set.m4 (gl_PRIV_SET): Check for priv.h.
* lib/priv-set.c: Do nothing unless HAVE_PRIV_H.
* lib/priv-set.h: Likewise.
* tests/test-priv-set.c: Likewise.
Jim Meyering [Fri, 11 Jun 2010 20:09:27 +0000 (22:09 +0200)]
test-sys_socket: mark variables as used more readably
* tests/test-sys_socket.c (main): Mark otherwise unused variables
as "used" explicitly via (void) statement casts. This is more
readable than using them in an artificial return expression.
Suggestion from Bruno Haible.
Ralf Wildenhues [Fri, 11 Jun 2010 17:03:33 +0000 (19:03 +0200)]
init.sh: change framework_failure_ to fail with status 99, not 1
* tests/init.sh (framework_failure_): Exit 99, not 1. This informs
automake's parallel-tests rule that this is an unexpected failure,
even if the test is listed in XFAIL_TESTS.
Jim Meyering [Fri, 11 Jun 2010 15:31:04 +0000 (17:31 +0200)]
test-inttostr: avoid warnings about 4-6KB literal strings
* tests/test-inttostr.c: Don't use <assert.h>. Instead, ...
Include "macros.h", for its definition of ASSERT.
(CK): s/assert/ASSERT/
* modules/inttostr-tests (Files): Add macros.h.
Jim Meyering [Fri, 11 Jun 2010 11:41:31 +0000 (13:41 +0200)]
init.sh: don't use $ME_ or skip_ before they are defined
* tests/init.sh: Hoist definitions of $ME_ and skip_ to precede
their first uses. Also hoist their companions: warn_, fail_,
framework_failure_, $stderr_fileno. Prompted by a patch from
Stefano Lattarini.
Jim Meyering [Fri, 11 Jun 2010 09:03:54 +0000 (11:03 +0200)]
test-xvasprintf: avoid 'const' discard warnings
* tests/test-xvasprintf.c (test_xvasprintf, test_xasprintf): Use
"const" when assigning from literal strings.
(test_xasprintf): Add "void" in function argument list to placate
-Wstrict-prototypes and to be consistent with test_xvasprintf above.
Jim Meyering [Fri, 11 Jun 2010 07:50:29 +0000 (09:50 +0200)]
tests: avoid compilation warnings in argmatch and exclude tests...
in packages that define ARGMATCH_DIE_DECL, like coreutils.
* tests/test-exclude.c [ARGMATCH_DIE_DECL]: Also declare the function.
Since it always exits, declare with the "noreturn" attribute.
* tests/test-argmatch.c: Likewise.
Jim Meyering [Fri, 11 Jun 2010 06:50:08 +0000 (08:50 +0200)]
test-linkat: avoid failed assertion on "other" architectures
* tests/test-linkat.c: Include <sys/stat.h>, for declarations of stat,
lstat, mkdir. Patch by John Rigby, to fix FTBFS on armel, powerpc,
sparc: https://bugs.launchpad.net/bugs/591968
Jim Meyering [Thu, 10 Jun 2010 13:21:09 +0000 (15:21 +0200)]
printf.m4: avoid autoconf's "Expanded Before Required" warning
* m4/printf.m4 (gl_SNPRINTF_RETVAL_C99): Define using AC_DEFUN_ONCE,
rather than AC_DEFUN, to avoid the classic "Expanded Before Required"
autoconf warning.
Jim Meyering [Thu, 10 Jun 2010 16:35:59 +0000 (18:35 +0200)]
inttostr-tests: depend on snprintf, not snprintf-posix
* modules/inttostr-tests (Depends-on): Depend on snprintf, not
snprintf-posix, to avoid this aclocal failure:
missing file gnulib-tests/vasnprintf.c
configure.ac:45: error: expected source file, required through \
AC_LIBSOURCES, not found
Jim Meyering [Wed, 9 Jun 2010 16:22:25 +0000 (18:22 +0200)]
inttostr: add a new function, inttostr, and tests
The namesake function was not available. The existence of the
template file, inttostr.c makes its addition nontrivial.
* lib/anytostr.c: Rename from inttostr.c.
(anytostr): Rename from inttostr.
* lib/inttostr.c: New file.
* modules/inttostr (Files): Add anytostr.c.
(Makefile.am): Set lib_SOURCES instead of ...
* m4/inttostr.m4: Remove uses of AC_LIBOBJ.
* lib/imaxtostr.c: Update use. s/inttostr/anytostr/
* lib/offtostr.c: Likewise.
* lib/uinttostr.c: Likewise.
* lib/umaxtostr.c: Likewise.
* modules/inttostr-tests: New file.
* tests/test-inttostr.c: New file. Test these functions.
Ben Pfaff [Thu, 10 Jun 2010 03:53:13 +0000 (20:53 -0700)]
Add "Extending Gnulib" chapter to manual.
* doc/gnulib.texi (Writing Modules): Add cross-reference to new chapter.
(Extending Gnulib): New chapter.
* doc/gnulib-intro.texi (Openness): Add cross-reference to new chapter.
Eric Blake [Wed, 2 Jun 2010 17:08:06 +0000 (11:08 -0600)]
time: work with mingw + pthreads-win32 library
When using the pthreads-win32 library with mingw, struct timespec
is available in <pthread.h>. Meanwhile, that header has some
rather buggy macros for localtime_r and gmtime_r that interfere
with proper gnulib replacement header actions.
Tested in a cross-compilation environment: Fedora 13 with mingw32-gcc
and mingw32-pthreads installed.
* m4/time_h.m4 (gl_CHECK_TYPE_STRUCT_TIMESPEC): Set new variable
if timespec is defined only in pthread.h.
* modules/time (Makefile.am): Substitute it.
* lib/time.in.h (!TIME_H_DEFINES_STRUCT_TIMESPEC): Include
<pthread.h>, when needed.
(GNULIB_TIME_R): Undefine broken localtime_r and gmtime_r macros
from the library.
Ludovic Courtès [Fri, 28 May 2010 10:15:23 +0000 (12:15 +0200)]
git-version-gen: take a sed script to transform the git tag
* build-aux/git-version-gen (tag_sed_script): New variable. Use it to
transform the output of "git describe" to the canonical form.
* top/GNUmakefile (_curr-ver): Pass $(git-version-gen-tag-sed-script) as
a second argument to `git-version-gen'.
Jim Meyering [Thu, 27 May 2010 11:33:04 +0000 (13:33 +0200)]
maint.mk: also prohibit "#undef" of always-defined symbols
* top/maint.mk (def_sym_regex): Handle #undef as well as #define.
Allow more than one space before the symbol name.
(sc_prohibit_always-defined_macros): Use grep's -E, now that
the regexp uses alternation.
Eric Blake [Wed, 26 May 2010 17:47:22 +0000 (11:47 -0600)]
maint.mk: avoid echo -e
There are still other potentially non-portable uses of echo
throughout this file, if $(ME) contains \ or starts with -,
but this patch is a trivial step in the right direction.
* top/maint.mk (gzip_rsyncable): Convert all uses of echo -* to
printf.
Reported by Matthias Bolte.
Jim Meyering [Sun, 23 May 2010 08:32:12 +0000 (10:32 +0200)]
test-pwrite: do not leave behind a test file named "out"
Revert commit d8fa18472a54c1cb2674c296b3d82443f234d5f7.
The trivial-looking use of init.sh is really necessary.
It ensures that the temporary file, "out", is created in
a temporary directory, and removed upon termination.
* tests/test-pwrite.sh: Re-add file.
* modules/pwrite-tests: Reference it.