Imported Upstream version 1.2.5 upstream/1.2.5
authorJinWang An <jinwang.an@samsung.com>
Thu, 23 Dec 2021 05:11:06 +0000 (14:11 +0900)
committerJinWang An <jinwang.an@samsung.com>
Thu, 23 Dec 2021 05:11:06 +0000 (14:11 +0900)
30 files changed:
.gitignore [moved from .bzrignore with 79% similarity]
ChangeLog
ChangeLog-2013 [new file with mode: 0644]
Makefile.am
Makefile.in
NEWS
aclocal.m4
config.h.in
configure
configure.ac
gnulib/lib/Makefile.am
gnulib/lib/Makefile.in
gnulib/lib/vasnprintf.c
gnulib/lib/verify.h
gnulib/m4/gnulib-cache.m4
gnulib/m4/gnulib-comp.m4
gnulib/m4/largefile.m4 [new file with mode: 0644]
lib/Makefile.am
lib/Makefile.in
lib/pipeline-private.h
lib/pipeline.c
man/Makefile.in
tests/Makefile.in
tests/common.c
tools/config.guess
tools/config.sub
tools/depcomp
tools/gitlog-to-changelog [new file with mode: 0755]
tools/gnupload [new file with mode: 0755]
tools/ltmain.sh

similarity index 79%
rename from .bzrignore
rename to .gitignore
index 31cf54b..92220fb 100644 (file)
@@ -1,15 +1,19 @@
+**/*.a
 **/*.la
 **/*.lo
+**/*.o
+**/*.so
+**/*~
 **/.deps
 **/.libs
 **/Makefile
-./autom4te.cache
-./config.h
-./config.log
-./config.status
-./config.status.lineno
-./libtool
-./stamp-h*
+/autom4te.cache
+/config.h
+/config.log
+/config.status
+/config.status.lineno
+/libtool
+/stamp-h*
 gnulib/lib/alloca.h
 gnulib/lib/arg-nonnull.h
 gnulib/lib/c++defs.h
index bd5dd0c..bcf0ac2 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
-Thu Jun  6 12:43:06 BST 2013  Colin Watson  <cjwatson@debian.org>
+2013-12-03  Colin Watson  <cjwatson@debian.org>
 
-       * Version: 1.2.4.
-       * lib/Makefile.am (libpipeline_la_LDFLAGS): Bump -version-info to
-         3:4:2.
-
-Thu Jun  6 12:38:07 BST 2013  Colin Watson  <cjwatson@debian.org>
-
-       * NEWS: Document changes since 1.2.3.
-
-Wed Jun  5 20:28:59 BST 2013  Colin Watson  <cjwatson@debian.org>
-
-       Provide a replacement clearenv for non-glibc systems that lack it
-       (Savannah bug #36848).
-
-       * gnulib: Import environ module.
-       * configure.ac: Check for clearenv.
-       * lib/pipeline.c [!HAVE_CLEARENV] (clearenv): New replacement
-         function.
-       * lib/pipeline-private.h [!HAVE_CLEARENV] (clearenv): Add prototype.
-
-Wed Jun  5 20:18:23 BST 2013  Colin Watson  <cjwatson@debian.org>
-
-       * aclocal.m4: Upgrade to Gettext 0.18.2.1.
-
-Wed Jun  5 20:12:11 BST 2013  Colin Watson  <cjwatson@debian.org>
-
-       * tools/config.guess: Update to 2013-05-16.
-       * tools/config.sub: Update to 2013-04-24.
-
-Wed Jun  5 18:01:47 BST 2013  Colin Watson  <cjwatson@debian.org>
-
-       * lib/pipeline.h (pipecmd_clearenv): Add a warning about use of this
-         function.
-       * man/libpipeline.3 (Functions to build individual commands):
-         Likewise.
-
-Wed Jun  5 10:31:01 BST 2013  Colin Watson  <cjwatson@debian.org>
+       Version: 1.2.5.
 
-       Quieten warnings from compiling Gnulib.
-
-       * m4/pipeline-gcc-warning.m4: Remove.
-       * gnulib: Import warnings module.
-       * configure.ac: Replace PIPELINE_GCC_WARNING with gl_WARN_ADD.
-       * lib/Makefile.am (AM_CFLAGS): Add $(WARN_CFLAGS).
-       * tests/Makefile.am (AM_CFLAGS): Likewise.
-
-Wed Jun  5 10:16:59 BST 2013  Colin Watson  <cjwatson@debian.org>
-
-       * tests/argstr.c, tests/basic.c, tests/exec.c, tests/inspect.c,
-         tests/pump.c, tests/reading_long_line.c, tests/redirect.c: Define
-         program_name (thanks, Fernando Lemos; see Savannah bug #36848).
-
-Wed Jun  5 10:12:29 BST 2013  Colin Watson  <cjwatson@debian.org>
-
-       * Makefile.in (DIST_COMMON): Regenerate, adding tools/depcomp.
-
-Thu May 30 13:28:08 BST 2013  Colin Watson  <cjwatson@debian.org>
-
-       Upgrade to Automake 1.13.2 and Gnulib 20130529.
-
-       * .bzrignore: Add tests/*.log and tests/*.trs.
-       * autogen.sh: Drop gnulib/gets.patch backport.
-       * Makefile.am (EXTRA_DIST): Remove gnulib/gets.patch.
-       * gnulib/gets.patch: Remove.
-       * tests/argstr.c, tests/basic.c, tests/exec.c, tests/inspect.c,
-         tests/reading_long_line.c, tests/redirect.c: Include config.h.
-
-Wed Apr 24 07:48:26 BST 2013  Colin Watson  <cjwatson@debian.org>
-
-       * Version: 1.2.3.
        * lib/Makefile.am (libpipeline_la_LDFLAGS): Bump -version-info to
-         3:3:2.
-
-Wed Apr 24 07:44:38 BST 2013  Colin Watson  <cjwatson@debian.org>
-
-       * lib/pipeline.c (pipeline_wait_all): Free active_pipelines if it is
-         entirely empty.
-
-Wed Apr 24 07:27:44 BST 2013  Peter Schiffer  <pschiffe@redhat.com>
+         3:5:2.
 
-       * lib/pipeline.c (pipecmd_new_argstr): Fix memory leak when the
-         first word of argstr is "exec".
-       * tests/argstr.c (test_argstr_exec): Free cmd at end.
-       * tests/basic.c (test_basic_wait_all): Free statuses at end.
-         (test_basic_clearenv): Free p and p2 at end.
-       * tests/exec.c (test_exec_process, test_exec_function): Free cmd at
-         end of loop.
-       * tests/redirect.c (test_redirect_files): Free p and template at
-         end.
+2013-12-03  Colin Watson  <cjwatson@debian.org>
 
-Tue Apr 23 07:52:40 BST 2013  Colin Watson  <cjwatson@debian.org>
+       gnulib: Import gnupload module.
 
-       * lib/pipeline.c (pipecmd_exec): Flush stdio before starting a
-         sequence.
-       * NEWS: Document this.
-
-Tue Apr 23 07:50:45 BST 2013  Peter Schiffer  <pschiffe@redhat.com>
-                              Colin Watson  <cjwatson@debian.org>
+2013-12-03  Colin Watson  <cjwatson@debian.org>
 
-       Don't read uninitialised memory when testing for the end of long
-       lines (Fedora bug #876108).
+       Build with large file support where available
 
-       * lib/pipeline.c (get_line): Fix incorrect memchr bounds.
-       * tests/Makefile.am (TESTS): Add reading_long_line.
-         (reading_long_line_SOURCES, reading_long_line_LDADD): Add.
-       * tests/reading_long_line.c: New file.
-       * .bzrignore: Add tests/reading_long_line.
+       * gnulib: Import largefile module.
        * NEWS: Document this.
 
-Mon Jan 21 11:42:09 GMT 2013  Colin Watson  <cjwatson@debian.org>
-
-       * configure.ac (AC_HEADER_SYS_WAIT): Remove; superseded by Gnulib.
-
-Mon Jan 21 11:26:15 GMT 2013  Colin Watson  <cjwatson@debian.org>
-
-       Upgrade to Libtool 2.4.2-1.2 (from Debian).
-
-Mon Dec 24 02:23:37 GMT 2012  Colin Watson  <cjwatson@debian.org>
-
-       * lib/pipeline.c (pipeline_start): Remove redundant condition.
-
-Mon Sep 17 22:54:12 BST 2012  Colin Watson  <cjwatson@debian.org>
-
-       * Version: 1.2.2.
-       * lib/Makefile.am (libpipeline_la_LDFLAGS): Bump -version-info to
-         3:2:2.
-
-Mon Sep 17 22:52:58 BST 2012  Colin Watson  <cjwatson@debian.org>
-
-       * Makefile.am (EXTRA_DIST): Add gnulib/gets.patch.
-
-Mon Sep 17 22:31:18 BST 2012  Colin Watson  <cjwatson@debian.org>
-
-       * release.sh: Use 'set -e' rather than '#! /bin/sh -e', to avoid
-         accidents when debugging with 'sh -x'.
-
-Mon Sep 17 22:27:47 BST 2012  Colin Watson  <cjwatson@debian.org>
-
-       * NEWS: Document changes since 1.2.1.
-
-Mon Sep 17 22:23:59 BST 2012  Colin Watson  <cjwatson@debian.org>
-
-       * autogen.sh: Use 'set -e' rather than '#! /bin/sh -e', to avoid
-         accidents when debugging with 'sh -x'.
-
-Mon Sep 17 22:21:44 BST 2012  Křištof Želechovski  <yecril71pl@gmail.com>
-
-       * configure.ac: Use AM_PROG_AR before LT_INIT, for compatibility
-         with Automake 1.12.
-
-Mon Sep 17 22:05:04 BST 2012  Colin Watson  <cjwatson@debian.org>
-
-       Backport Gnulib commit 66712c23388e93e5c518ebc8515140fa0c807348 to
-       stop assuming gets.
-
-       * gnulib/gets.patch: New file.
-       * autogen.sh: Apply gnulib/gets.patch.
-
-Mon Sep 17 22:03:09 BST 2012  Colin Watson  <cjwatson@debian.org>
-
-       Upgrade to Autoconf 2.69, Automake 1.11.6, and Gnulib
-       20120404-stable.
-
-Sun Mar  4 17:43:21 GMT 2012  Colin Watson  <cjwatson@debian.org>
-
-       * lib/pipeline.c (pipeline_start): Flush stdio after emitting
-         debugging output.
-
-Fri Mar  2 19:54:40 GMT 2012  Colin Watson  <cjwatson@debian.org>
-
-       * Version: 1.2.1.
-       * lib/Makefile.am (libpipeline_la_LDFLAGS): Bump -version-info to
-         3:1:2.
-
-Thu Mar  1 22:51:30 GMT 2012  Colin Watson  <cjwatson@debian.org>
-
-       * NEWS: Correct date of 1.2.0 release.
-
-Wed Feb 29 20:09:12 GMT 2012  Martin Pollard  <martin.pollard@sanger.ac.uk>
-
-       * lib/pipeline.h: Enclose in extern "C" { } when compiling as C++.
-
-Wed Feb 29 18:26:22 GMT 2012  Colin Watson  <cjwatson@debian.org>
-
-       * tests/Makefile.am (TESTS): Add pump.
-         (pump_SOURCES, pump_LDADD): Add.
-       * tests/pump.c: New file.
-       * .bzrignore: Add tests/pump.
-
-Wed Feb 29 18:19:08 GMT 2012  Colin Watson  <cjwatson@debian.org>
-
-       * lib/pipeline.c (pipeline_start): Create output files if they do
-         not already exist, and truncate them if they do.
-       * lib/pipeline.h (pipeline_want_outfile): Document this.
-       * man/libpipeline.3 (Functions to build pipelines): Likewise.
-       * tests/common.c: New file.
-       * tests/common.h (TEST_CASE_WITH_FIXTURE): New macro.
-         (temp_dir_setup, temp_dir_teardown): Add prototypes.
-       * tests/redirect.c (test_redirect_outfile): New test.
-         (redirect_suite): Call test_redirect_outfile.
-       * tests/Makefile.am (basic_SOURCES, argstr_SOURCES, exec_SOURCES,
-         inspect_SOURCES, redirect_SOURCES): Add common.c.
-       * NEWS: Document this.
-
-Mon Feb 27 22:17:20 GMT 2012  Colin Watson  <cjwatson@debian.org>
-
-       * tests/exec.c (exit_helper, test_exit_function): Add test that
-         pipecmd_exec works with functions.
-         (exec_suite): Call test_exit_function.
-
-Thu Feb  9 12:04:26 GMT 2012  Colin Watson  <cjwatson@debian.org>
-
-       Upgrade to Automake 1.11.3.
-
-Sun Feb  5 02:33:14 GMT 2012  Colin Watson  <cjwatson@debian.org>
-
-       Upgrade to Automake 1.11.2 and Gnulib 20111211-stable.
-
-       * Makefile.am (EXTRA_DIST): Remove gnulib/m4/sockpfaf.m4, which was
-         removed from this package some time ago.  Add gnulib/m4/math_h.m4.
-
-Wed Dec 14 12:54:40 GMT 2011  Colin Watson  <cjwatson@debian.org>
-
-       * man/Makefile.am (FUNCTIONS): Add pipecmd_new_sequencev,
-         pipeline_new_command_argv, pipeline_command_argv,
-         pipeline_wait_all, and pipeline_run.
-
-Wed Dec 14 12:48:56 GMT 2011  Colin Watson  <cjwatson@debian.org>
-
-       Upgrade to Libtool 2.4.2.
-
-Mon Oct 10 09:22:41 BST 2011  Colin Watson  <cjwatson@debian.org>
-
-       * README: Document test suite dependencies.  Suggested by Bruce
-         Dubbs.
-
-Mon Sep 26 13:34:00 BST 2011  Colin Watson  <cjwatson@debian.org>
-
-       * man/libpipeline.3 (Reaping of child processes): Fix typo.
-
-Mon Sep 26 12:10:35 BST 2011  Colin Watson  <cjwatson@debian.org>
-
-       Upgrade to Gnulib 20110908-stable.
-
-Sat Apr 23 17:51:13 BST 2011  Colin Watson  <cjwatson@debian.org>
-
-       Upgrade to Autoconf 2.68, Libtool 2.4, and Gnulib 20110412-stable.
-
-Wed Mar 30 13:40:42 BST 2011  Colin Watson  <cjwatson@debian.org>
-
-       * gnulib: Import full-write, safe-read, and safe-write modules.
-       * lib/pipeline.c (passthrough): Use safe_read instead of read.  Use
-         full_write instead of fwrite (stdio is not necessarily
-         EINTR-safe).
-         (pipeline_pump): Use safe_write instead of write and a manual
-         EINTR check.
-         (get_block): Use safe_read instead of read.
-       * NEWS: Document this.
-
-Fri Mar 18 22:27:39 GMT 2011  Colin Watson  <cjwatson@debian.org>
-
-       * Version: 1.2.0.
-       * lib/Makefile.am (libpipeline_la_LDFLAGS): Bump -version-info to
-         3:0:2.
-
-Fri Mar 18 18:24:42 GMT 2011  Colin Watson  <cjwatson@debian.org>
-
-       * man/Makefile.am (FUNCTIONS): Add pipeline_get_pid.
-
-Fri Mar 18 18:22:42 GMT 2011  Colin Watson  <cjwatson@debian.org>
-
-       * tests/inspect.c (pid_helper): Flush stdout before pausing.
-
-Fri Mar 18 12:08:51 GMT 2011  Colin Watson  <cjwatson@debian.org>
-
-       * gnulib: Import waitpid module.
-
-Fri Mar 18 12:02:42 GMT 2011  Colin Watson  <cjwatson@debian.org>
-
-       Upgrade to Gnulib 20110216-stable.
-
-Fri Mar 18 11:45:10 GMT 2011  Colin Watson  <cjwatson@debian.org>
-
-       * tests/basic.c (test_basic_clearenv): Test that pipecmd_clearenv
-         and pipecmd_setenv survive pipecmd_dup.
-
-Tue Mar  8 14:10:52 GMT 2011  Colin Watson  <cjwatson@debian.org>
-
-       Add a function to get process IDs of commands in started pipelines
-       (Savannah bug #32710).
-
-       * lib/pipeline.c (pipeline_get_pid): New function.
-       * lib/pipeline.h (pipeline_get_pid): Add prototype.
-       * man/libpipeline.3 (Functions to build pipelines): Document
-         pipeline_get_pid.
-       * tests/inspect.c (pid_helper, test_inspect_pid): Test
-         pipeline_get_pid.
-       * NEWS: Document this.
-
-Mon Mar  7 10:41:50 GMT 2011  Colin Watson  <cjwatson@debian.org>
-
-       * configure.ac: Check for working fork(2).
-
-Sat Dec 11 15:01:14 GMT 2010  Colin Watson  <cjwatson@debian.org>
-
-       * Version: 1.1.0.
-       * lib/Makefile.am (libpipeline_la_LDFLAGS): Bump -version-info to
-         2:0:1.
-
-Sat Dec 11 15:00:02 GMT 2010  Colin Watson  <cjwatson@debian.org>
-
-       * man/Makefile.am (FUNCTIONS): Add pipecmd_get_nargs,
-         pipecmd_clearenv, and pipecmd_exec.
-
-Sat Dec 11 13:25:29 GMT 2010  Colin Watson  <cjwatson@debian.org>
-
-       * lib/pipeline.h (pipecmd_get_nargs): Clarify that the command name
-         is counted as the first argument.
-       * man/libpipeline.3 (pipecmd_get_nargs): Likewise.
-       * tests/basic.c (test_basic_args): Correct off-by-one error.
-
-Mon Dec  6 20:54:29 GMT 2010  Colin Watson  <cjwatson@debian.org>
-
-       * lib/pipeline.c (pipecmd_get_nargs): New function.
-       * lib/pipeline.h (pipecmd_get_nargs): Add prototype.
-       * man/libpipeline.3 (Functions to build individual commands):
-         Document pipecmd_get_nargs.
-       * tests/basic.c (test_basic_args): Test pipecmd_get_nargs.
-       * NEWS: Document this.
-
-Mon Dec  6 20:07:43 GMT 2010  Colin Watson  <cjwatson@debian.org>
-
-       * lib/pipeline.c (pipecmd_clearenv): New function.
-         (pipecmd_dup, pipecmd_dump, pipecmd_tostring, pipecmd_exec):
-         Handle cmd->env[i].name being NULL.
-       * lib/pipeline.h (pipecmd_clearenv): Add prototype.
-       * man/libpipeline.3 (Functions to build individual commands):
-         Document pipecmd_clearenv.
-       * tests/basic.c (test_basic_clearenv): Add test.
-         (basic_suite): Call test_basic_clearenv.
-       * NEWS: Document this.
-
-Sun Nov 28 14:49:42 GMT 2010  Colin Watson  <cjwatson@debian.org>
-
-       * NEWS: Note date of 1.0.0 release.
-
-Sun Nov 28 14:47:03 GMT 2010  Colin Watson  <cjwatson@debian.org>
-
-       * lib/pipeline.c (pipecmd_start_child): Rename to ...
-         (pipecmd_exec): ... this, and make external.  Update all callers.
-       * lib/pipeline.h (pipecmd_exec): Add prototype.
-       * man/libpipeline.3 (Functions to build individual commands):
-         Document pipecmd_exec.
-       * tests/Makefile.am (TESTS): Add exec.
-         (exec_SOURCES, exec_LDADD): Add.
-       * tests/exec.c: New file.
-       * .bzrignore: Add tests/exec.
-       * NEWS: Document this.
-
-Sun Nov 28 13:43:45 GMT 2010  Colin Watson  <cjwatson@debian.org>
-
-       * gnulib: Remove mkstemp module.  Add sys_stat module.
-
-Tue Nov 16 17:25:08 GMT 2010  Colin Watson  <cjwatson@debian.org>
-
-       * man/libpipeline.3 (EXAMPLES): Clarify pipeline_readline example:
-         show calls to pipeline_want_out and pipeline_start.
-
-Tue Nov  2 16:56:22 GMT 2010  Colin Watson  <cjwatson@debian.org>
-
-       * README (Building programs with libpipeline): Recommend -Wformat.
-
-Fri Oct 29 07:34:05 BST 2010  Colin Watson  <cjwatson@debian.org>
-
-       * Version: 1.0.0.
-
-Fri Oct 29 07:25:14 BST 2010  Colin Watson  <cjwatson@debian.org>
-
-       * lib/pipeline.h (pipeline_install_post_fork): Clarify that this is
-         run in the child process.
-         (pipeline_wait_all): Clarify that SIGPIPE is considered equivalent
-         to exiting zero.
-       * man/libpipeline.3 (DESCRIPTION): Update descriptions of
-         pipeline_install_post_fork and pipeline_wait_all to match this.
-         (Functions to read output from pipelines): Note that output is
-         returned as a pointer into a pipeline-owned buffer.
-
-Fri Oct 29 06:21:02 BST 2010  Colin Watson  <cjwatson@debian.org>
-
-       * TODO: New file.
-
-Fri Oct 29 06:20:18 BST 2010  Colin Watson  <cjwatson@debian.org>
-
-       * README (Credits): New section.
-
-Fri Oct 29 06:11:37 BST 2010  Colin Watson  <cjwatson@debian.org>
-
-       * lib/pipeline.c (pipecmd_new_sequencev): New function.
-         (pipecmd_new_sequence): Rewrite in terms of pipecmd_new_sequence.
-         (pipeline_new_command_argv): New function.
-         (pipeline_new_command_args): Rewrite in terms of
-         pipeline_new_command_argv.
-         (pipeline_command_argv): New function.
-         (pipeline_command_args): Rewrite in terms of
-         pipeline_command_argv.
-       * lib/pipeline.h (pipecmd_new_sequencev, pipeline_new_command_argv,
-         pipeline_command_argv): Add prototypes.
-       * man/libpipeline.3 (DESCRIPTION): Document pipecmd_new_sequencev,
-         pipeline_new_command_argv, and pipeline_command_argv.
-       * tests/basic.c (test_basic_sequence): Add test.
-         (basic_suite): Call test_basic_sequence.
-
-Fri Oct 29 05:25:19 BST 2010  Colin Watson  <cjwatson@debian.org>
-
-       * lib/pipeline.c (pipeline_wait): Rename to ...
-         (pipeline_wait_all): ... this.  Return 127 rather than 1 if
-         closing the pipeline output fails.  Return 127 if a command other
-         than the last one fails.  Return the statuses and the number of
-         statuses in new output parameters if they are non-NULL.
-         (pipeline_wait): Add new wrapper function.
-       * lib/pipeline.h (pipeline_wait_all): Add prototype.
-       * man/libpipeline.3 (Functions to run pipelines and handle signals):
-         Document pipeline_wait_all.
-       * tests/basic.c (test_basic_wait_all): Add test.
-         (basic_suite): Call test_basic_wait_all.
-
-Fri Oct 29 03:46:39 BST 2010  Colin Watson  <cjwatson@debian.org>
-
-       * lib/pipeline.c (pipeline_new): Default ignore_signals to 0.
-       * man/libpipeline.3 (Functions to build pipelines): Update
-         pipeline_ignore_signals documentation.
-
-Fri Oct 29 03:43:29 BST 2010  Colin Watson  <cjwatson@debian.org>
-
-       * man/libpipeline.3 (Functions to build pipelines): Rephrase
-         description of want_out and want_in handling in terms of public
-         function calls.
-
-Fri Oct 29 03:30:45 BST 2010  Colin Watson  <cjwatson@debian.org>
-
-       * man/libpipeline.3 (Functions to build individual commands):
-         Document variable arguments to pipecmd_new_sequence.
-         (Functions to build pipelines): Explain analogy of
-         pipeline_connect to tee(1).
-
-Fri Oct 29 03:13:21 BST 2010  Colin Watson  <cjwatson@debian.org>
-
-       * lib/pipeline.c, lib/pipeline.h, lib/pipeline-private.h: Rename
-         command to pipecmd, command_* to pipecmd_*, and COMMAND_* to
-         PIPECMD_*.  Update all callers and documentation references.
-       * lib/Makefile.am (libpipeline_la_LDFLAGS): Adjust
-         -export-symbols-regex to export pipecmd_* rather than command_*.
-
-Fri Oct 29 03:00:51 BST 2010  Colin Watson  <cjwatson@debian.org>
-
-       * man/libpipeline.3 (DESCRIPTION): Various minor corrections and
-         clarifications from Ian Jackson.
-         (BUGS): New section.
-
-Tue Oct 26 21:09:53 BST 2010  Colin Watson  <cjwatson@debian.org>
-
-       * tests/Makefile.am (TESTS): Add argstr.
-         (argstr_SOURCES, argstr_LDADD): Add.
-       * tests/argstr.c: New file.
-       * .bzrignore: Add tests/argstr.
-
-Mon Oct 25 21:56:08 BST 2010  Colin Watson  <cjwatson@debian.org>
-
-       * tests/inspect.c (test_inspect_command): Free the result of
-         command_tostring.
-         (test_inspect_pipeline): Free the result of pipeline_tostring.
-
-Mon Oct 25 20:25:11 BST 2010  Colin Watson  <cjwatson@debian.org>
-
-       Revert our patched version of xstrdup, since none of libpipeline's
-       calls to xstrdup rely on being able to pass NULL to it.
-
-       * Makefile.am (EXTRA_DIST): Remove gnulib/lib/xmalloc.c.orig and
-         gnulib/lib/xmalloc.patch.
-       * autogen.sh: Stop applying gnulib/lib/xmalloc.patch.
-       * gnulib/lib/xmalloc.c.orig, gnulib/lib/xmalloc.patch: Remove.
-
-Mon Oct 25 20:10:25 BST 2010  Colin Watson  <cjwatson@debian.org>
-
-       * README (Building programs with libpipeline): New section.
-
-Mon Oct 25 19:39:06 BST 2010  Colin Watson  <cjwatson@debian.org>
-
-       * man/Makefile.am (FUNCTIONS): Add command_nice,
-         command_discard_err, command_unsetenv, pipeline_new_command_args,
-         pipeline_get_ncommands, pipeline_get_command,
-         pipeline_set_command, pipeline_want_in, pipeline_want_out,
-         pipeline_want_infile, pipeline_want_outfile, and
-         pipeline_ignore_signals.
-
-Mon Oct 25 19:31:27 BST 2010  Colin Watson  <cjwatson@debian.org>
-
-       * tests/basic.c: Include <string.h>.
-
-Mon Oct 25 19:31:09 BST 2010  Colin Watson  <cjwatson@debian.org>
-
-       * tests/Makefile.am (TESTS): Add inspect.
-         (inspect_SOURCES, inspect_LDADD): Add.
-       * tests/inspect.c: New file.
-       * .bzrignore: Add tests/inspect.
-
-Mon Oct 25 19:18:35 BST 2010  Colin Watson  <cjwatson@debian.org>
-
-       * tests/common.h: New file.
-       * tests/basic.c (basic_suite, main), tests/redirect.c
-         (redirect_suite, main): Use new TEST_CASE and MAIN macros.
-       * tests/Makefile.am (basic_SOURCES, redirect_SOURCES): Add common.h.
-
-Mon Oct 25 16:17:24 BST 2010  Colin Watson  <cjwatson@debian.org>
-
-       * gnulib: Import unsetenv module.
-       * lib/pipeline.c (command_unsetenv): New function.
-         (command_dup, command_dump, command_tostring): Check for NULL
-         cmd->env[i].value.
-         (command_start_child): If cmd->env[i].value is NULL, call unsetenv
-         rather than setenv.
-       * lib/pipeline.h (command_unsetenv): Add prototype.
-       * man/libpipeline.3 (Functions to build individual commands):
-         Document command_unsetenv.
-       * tests/basic.c (test_basic_setenv, test_basic_unsetenv): New tests.
-         (basic_suite): Call test_basic_setenv and test_basic_unsetenv.
-
-Mon Oct 25 14:31:41 BST 2010  Colin Watson  <cjwatson@debian.org>
-
-       * gnulib: Import mkstemp module.
-       * tests/Makefile.am (TESTS): Add redirect.
-         (LIBPIPELINE): Rename to ...
-         (LIBS): ... this, and add libgnu and $(LTLIBOBJS).
-         (AM_CPPFLAGS): Add -I$(top_srcdir)/gnulib/lib and
-         -I$(top_builddir)/gnulib/lib.
-         (clean-local): Remove temporary test files.
-         (basic_LDADD): Use $(LIBS) rather than $(LIBPIPELINE).
-         (redirect_SOURCES, redirect_LDADD): Add.
-       * tests/redirect.c: New file.
-       * .bzrignore: Add gnulib/lib/time.h and tests/redirect.
-
-       * lib/Makefile.am (libpipeline_la_CPPFLAGS): Remove spurious
-         -I$(top_builddir)/include.
-
-Mon Oct 25 14:30:14 BST 2010  Colin Watson  <cjwatson@debian.org>
-
-       * lib/pipeline.c (pipeline_start): Fix typo that broke
-         pipeline_want_infile.
-
-Mon Oct 25 13:38:40 BST 2010  Colin Watson  <cjwatson@debian.org>
-
-       Start test suite.
-
-       * lib/Makefile.am (libpipeline_la_LDFLAGS): Remove -module; this
-         introduces too many complications for now.
-
-       * configure.ac: Test for check >= 0.9.4.
-         (AC_CONFIG_FILES): Add tests/Makefile.
-       * Makefile.am (SUBDIRS): Add tests if check was found.
-       * tests/Makefile.am: New file.
-       * tests/basic.c: New file.
-       * .bzrignore: Add tests/basic.
-
-Sun Oct 24 22:22:21 BST 2010  Colin Watson  <cjwatson@debian.org>
-
-       * lib/pipeline.c (command_start_child): Add trailing newline to
-         "nice failed" debug message.
-
-Sun Oct 24 22:21:20 BST 2010  Colin Watson  <cjwatson@debian.org>
-
-       Make command and pipeline opaque types.
-
-       * lib/pipeline.c (command_nice, command_discard_err,
-         pipeline_get_ncommands, pipeline_get_command,
-         pipeline_set_command, pipeline_want_in, pipeline_want_out,
-         pipeline_want_infile, pipeline_want_outfile,
-         pipeline_ignore_signals): New functions.
-       * lib/pipeline.h (command_nice, command_discard_err,
-         pipeline_get_ncommands, pipeline_get_command,
-         pipeline_set_command, pipeline_want_in, pipeline_want_out,
-         pipeline_want_infile, pipeline_want_outfile,
-         pipeline_ignore_signals): Add prototypes.
-       * man/libpipeline.3 (DESCRIPTION): Document new functions.
-
-       * lib/pipeline.h (enum command_tag, struct command_env, struct
-         command, struct pipeline): Move to ...
-       * lib/pipeline-private.h (enum command_tag, struct command_env,
-         struct command, struct pipeline): ... here.
-       * man/libpipeline.3 (Public command fields, Public pipeline fields):
-         Remove.
-
-       Redirections are now handled slightly differently internally,
-       allowing redirection from/to fd 0.
-
-       * lib/pipeline.c (pipeline_new, pipeline_join): Set redirect_in and
-         redirect_out.
-         (pipeline_connect): Use pipeline_want_in and pipeline_want_out.
-         Check source->redirect_out.
-         (pipeline_start): Handle new redirection semantics.
-       * man/libpipeline.3 (EXAMPLES): Use pipeline_want_infile.
-
-       * man/libpipeline.3 (DESCRIPTION): Document string copying.
-         (Reaping of child processes): New subsection.
-
-Tue Oct 19 01:43:29 BST 2010  Colin Watson  <cjwatson@debian.org>
-
-       Make debugging work properly in a library context.
-
-       * lib/debug.c (init_debug): Check whether we've already been
-         initialised.
-         (debug): Call init_debug.
-       * lib/pipeline-private.h (init_debug): Add prototype.
-       * lib/pipeline.c (pipeline_start, pipeline_wait): Call init_debug.
-
-Tue Oct 19 01:42:47 BST 2010  Colin Watson  <cjwatson@debian.org>
-
-       * man/libpipeline.3: Bump licence header to GPLv3, since that more
-         accurately describes the whole package.
-
-Tue Oct 19 01:41:59 BST 2010  Colin Watson  <cjwatson@debian.org>
-
-       * man/Makefile.am (install-data-hook): Handle repeated
-         installations.
-         (uninstall-hook): Add.
-
-Tue Oct 19 01:39:54 BST 2010  Colin Watson  <cjwatson@debian.org>
-
-       * lib/pipeline-private.h: Move attribute macros to ...
-       * lib/pipeline.h: ... here, and make them namespace-safe.  Update
-         all users.
-
-Mon Oct 18 11:32:52 BST 2010  Colin Watson  <cjwatson@debian.org>
-
-       * lib/pipeline.c (pipeline_run): This would be a more convenient
-         wrapper for the common case if it freed the pipeline as well, so
-         do that.  (Callers that don't want this should call pipeline_start
-         and pipeline_wait separately.)
-       * lib/pipeline.h (pipeline_run): Update comment.
-       * man/libpipeline.3 (Functions to build pipelines): Update
-         pipeline_run documentation.
-         (EXAMPLES): Remove now-unnecessary calls to pipeline_free.
-
-Mon Oct 18 11:29:11 BST 2010  Colin Watson  <cjwatson@debian.org>
-
-       * lib/pipeline.c (pipeline_new_command_args): New function.
-       * lib/pipeline.h (pipeline_new_command_args): Add prototype.
-       * man/libpipeline.3 (Functions to build pipelines): Add
-         pipeline_new_command_args.
-         (EXAMPLES): Use this to describe the simplest case.
-
-Mon Oct 18 11:10:27 BST 2010  Colin Watson  <cjwatson@debian.org>
-
-       * lib/pipeline.c (pipeline_run): New function.
-       * lib/pipeline.h (pipeline_run): Add prototype.
-       * man/libpipeline.3 (Functions to run pipelines and handle signals):
-         Add pipeline_run.
-         (EXAMPLES): Use it.
-
-Mon Oct 18 11:07:16 BST 2010  Colin Watson  <cjwatson@debian.org>
-
-       * man/libpipeline.3 (DESCRIPTION): Add some more paragraph breaks.
-
-Fri Oct 15 10:26:02 BST 2010  Colin Watson  <cjwatson@debian.org>
-
-       * lib/libpipeline.pc.in: Add copyright/licensing comment.
-       * man/libpipeline.3: Add brief licensing comment.
-
-Thu Oct 14 00:49:34 BST 2010  Colin Watson  <cjwatson@debian.org>
-
-       * README (Copyright and licensing): Bump to GPLv3 or later, for
-         clarity.  (lib/* remains licensed under GPLv2 or later, but the
-         work as a whole is GPLv3 or later.)  Move further advice to ...
-         (Note on GPL versions): ... here, and expand.
-
-Tue Oct 12 01:12:13 BST 2010  Colin Watson  <cjwatson@debian.org>
-
-       * README: New file.
-       * INSTALL: New file.
-
-Tue Oct 12 01:01:04 BST 2010  Colin Watson  <cjwatson@debian.org>
-
-       * COPYING: New file.
-
-       * autogen.sh: Add a copyright/licence notice.
-       * configure.ac: Likewise.
-
-       * lib/pipeline-private.h: Update copyright years.
-
-Tue Oct 12 00:52:00 BST 2010  Colin Watson  <cjwatson@debian.org>
-
-       * man/libpipeline.3: Add a licence notice.
-
-Tue Oct 12 00:27:01 BST 2010  Colin Watson  <cjwatson@debian.org>
-
-       * autogen.sh: Stop setting AUTOPOINT=true.
-       * configure.ac: Stop echoing DBLIBS (specific to man-db).
-
-Tue Oct 12 00:22:00 BST 2010  Colin Watson  <cjwatson@debian.org>
-
-       * configure.ac: Remove check for gnulib/po/Makefile.in.in.
-
-Tue Oct 12 00:17:53 BST 2010  Colin Watson  <cjwatson@debian.org>
-
-       Remove gettext support.  It's overkill for a library considering
-       that we only emit error messages, and it vastly inflates the size of
-       our configuration requirements.
-
-       * Makefile.am (SUBDIRS): Remove gnulib/po and po.
-         (EXTRA_DIST): Remove everything except gnulib/m4/sockpfaf.m4.
-       * autogen.sh: Remove call to autopoint and removal of po/ChangeLog.
-       * configure.ac: Remove calls to AM_GNU_GETTEXT and
-         AM_GNU_GETTEXT_VERSION.  Stop substituting LINGUAS.
-         (AC_CONFIG_FILES): Remove gnulib/po/Makefile.in and
-         po/Makefile.in.
-       * gnulib/m4/gnulib-cache.m4: Remove --po-base and --po-domain
-         options.  Remove gettext module.
-       * lib/Makefile.am (libpipeline_la_LIBADD): Remove @LTLIBINTL@.
-       * lib/pipeline.c (command_new_argstr, command_start_child),
-         pipeline_get_infile, pipeline_get_outfile,
-         pipeline_install_sigchld, pipeline_start, pipeline_wait,
-         pipeline_pump): Remove gettext support.
-       * po/*: Remove.
-       * .bzrignore: Remove gnulib/po and po/*.
-
-Mon Oct 11 21:25:37 BST 2010  Colin Watson  <cjwatson@debian.org>
-
-       * autogen.sh: Remove po/ChangeLog after running autoreconf.
-       * .bzrignore: Remove po/ChangeLog.
-
-       * Makefile.am (EXTRA_DIST): Add gnulib/m4/codeset.m4,
-         gnulib/m4/fcntl-o.m4, and gnulib/m4/glibc21.m4.
-
-       * po/LINGUAS: New file.
-
-Mon Oct 11 18:19:37 BST 2010  Colin Watson  <cjwatson@debian.org>
-
-       * man/Makefile.am (man3_MANS): Move to ...
-         (dist_man3_MANS): ... here.
-
-Mon Oct 11 17:51:16 BST 2010  Colin Watson  <cjwatson@debian.org>
-
-       * Makefile.am (SUBDIRS): Add man.
-       * configure.ac (AC_PROG_LN_S): Add.
-         (AC_CONFIG_FILES): Add man/Makefile.
-       * man/Makefile.am: New file.
-       * man/libpipeline.3: New file.
-
-Mon Oct 11 16:38:29 BST 2010  Colin Watson  <cjwatson@debian.org>
-
-       * lib/pipeline.h (pipeline_pump): Mention in comment that arguments
-         must be NULL-terminated.
-
-Mon Oct 11 14:10:54 BST 2010  Colin Watson  <cjwatson@debian.org>
-
-       * lib/pipeline.h (pipeline_new_commandv): Fix comment.
-
-Thu Oct  7 08:05:41 BST 2010  Colin Watson  <cjwatson@debian.org>
-
-       * lib/libpipeline.pc.in: New file.
-       * configure.ac (AC_CONFIG_FILES): Add lib/libpipeline.pc.
-       * lib/Makefile.am (pkgconfigdir, pkgconfig_DATA): Install
-         libpipeline.pc to $(libdir)/pkgconfig.
-       * .bzrignore: Add lib/libpipeline.pc.
-
-Thu Oct  7 07:56:27 BST 2010  Colin Watson  <cjwatson@debian.org>
-
-       * po/libpipeline.pot: Update.
-       * po/*.po: Import translations from man-db.
-
-Thu Oct  7 07:54:12 BST 2010  Colin Watson  <cjwatson@debian.org>
-
-       * lib/Makefile.am (libpipeline_la_SOURCES): Add pipeline-private.h.
-
-Thu Oct  7 07:49:46 BST 2010  Colin Watson  <cjwatson@debian.org>
-
-       * release.sh: New file, from man-db.
-
-Thu Oct  7 07:48:12 BST 2010  Colin Watson  <cjwatson@debian.org>
-
-       Build independently from man-db.  Many new files from gettextize,
-       gnulib-tool, and autoreconf.
-
-       * lib/appendstr.c: New file, from man-db.
-       * lib/debug.c: Likewise.
-       * m4/pipeline-gcc-warning.m4: Likewise.
-       * m4/pipeline-socketpair.m4: Likewise.
-
-       * lib/pipeline-private.h: New file.
-
-       * lib/pipeline.c (command_new_argstr): Use strcmp rather than STREQ.
-         (pipeline_install_post_fork): New function.
-         (pipeline_start): Call post-fork handler rather than hardcoding
-         pop_all_cleanups.
-       * lib/pipeline.h (pipeline_install_post_fork): Add prototype.
-
-       * lib/pipeline.c: Update copyright notice for libpipeline.
-       * lib/pipeline.h: Likewise.
-
-       * gnulib: Import dirname, error, gettext, lib-ignore, setenv,
-         sigaction, signal, sigprocmask, strerror, strsignal, sys_select,
-         xalloc, xstrndup, and xvasprintf modules.
-
-       * Makefile.am: New file.
-       * NEWS: New file.
-       * autogen.sh: New file.
-       * configure.ac: New file.
-       * lib/Makefile.am: New file.
-       * .bzrignore: New file.
-
-Entries below this point are edited versions of entries in man-db.
-
-Sun Oct  3 23:57:45 BST 2010  Colin Watson  <cjwatson@debian.org>
-
-       * lib/pipeline.c (command_argf): New function.
-       * lib/pipeline.h (command_argf): Add prototype.
-
-Sun Oct  3 22:34:13 BST 2010  Colin Watson  <cjwatson@debian.org>
-
-       * lib/pipeline.c (reap_children, pipeline_sigchld,
-         pipeline_install_sigchld): Move above pipeline_start.
-         (pipeline_install_sigchld): Make static.  Return immediately if
-         already installed.
-         (pipeline_start): Call pipeline_install_sigchld.
-       * lib/pipeline.h (pipeline_start): Document that this installs a
-         SIGCHLD handler.
-         (pipeline_install_sigchld): Remove prototype.
-
-Tue Mar  2 10:04:54 GMT 2010  Colin Watson  <cjwatson@debian.org>
-
-       Fix assertion failure on 'man -l' with an uncompressed page and
-       prefixed input (no-hyphenation, no-justification, or a non-English
-       page).
-
-       * lib/pipeline.c (command_new_passthrough): New function.
-       * lib/pipeline.h (command_new_passthrough): Add prototype.
-
-Mon Feb  1 12:18:36 PST 2010  Colin Watson  <cjwatson@debian.org>
-
-       * lib/pipeline.c (pipeline_wait): Don't bother printing error
-         messages for SIGINT and SIGQUIT, since these correspond to
-         explicit user actions (Debian bug #568000).
-
-Wed Jan 13 23:42:00 GMT 2010  Werner Fink  <werner@suse.de>
-
-       Add support for using socketpair(2) as a replacement for pipe(2),
-       which is faster on some systems (Savannah patch #6741).
-
-       * lib/pipeline.c [USE_SOCKETPAIR_PIPE]: Redefine pipe() to a
-         construction based on socketpair().
-
-Tue Jan 12 13:33:51 GMT 2010  Samuel Thibault  <sthibault@debian.org>
-
-       * lib/pipeline.c (pipeline_pump): Fix off-by-one error when write
-         returns EAGAIN (Debian bug #564818).
-
-Sat Nov 14 18:52:15 GMT 2009  Colin Watson  <cjwatson@debian.org>
-
-       * lib/pipeline.c (argstr_get_word): Fix a small memory leak.
-
-Sat Nov 14 10:23:28 GMT 2009  Colin Watson  <cjwatson@debian.org>
-
-       * lib/pipeline.c (command_new_sequence, command_sequence_command):
-         New functions.
-         (command_dup, command_dump, command_tostring, command_free):
-         Handle commands of type COMMAND_SEQUENCE.
-         (pipeline_start): Move command execution to ...
-         (command_start_child): ... here (new function). Handle commands of
-         type COMMAND_SEQUENCE.
-       * lib/pipeline.h (enum command_tag): Add COMMAND_SEQUENCE.
-         (struct command): Add support for commands that consist of a
-         sequence of commands.
-         (command_new_sequence, command_sequence_command): Add prototypes.
-
-Thu Sep 24 12:32:48 BST 2009  Colin Watson  <cjwatson@debian.org>
-
-       * lib/pipeline.c (pipeline_pump): When a source pipeline dies, make
-         sure to drain its output before discarding its output file
-         descriptor (Debian bug #548153). We still record the death to
-         avoid duplicate debugging messages.
-
-Sun Aug 23 15:49:45 BST 2009  Colin Watson  <cjwatson@debian.org>
-
-       * lib/pipeline.c (command_dup): Fix newcmd->nenv assertion.
-
-Sun Aug 23 15:41:32 BST 2009  Colin Watson  <cjwatson@debian.org>
-
-       * lib/pipeline.c (command_dup, command_setenv): cmd->env does not
-         need to be { NULL, NULL }-terminated.
-
-Sun Aug 23 00:04:56 BST 2009  Colin Watson  <cjwatson@debian.org>
-
-       * lib/pipeline.c (command_setenv): New function, allowing
-         application code to ask for environment variables to be set when a
-         command is executed.
-         (command_new, command_new_function, command_dup, command_dump,
-         command_tostring, command_free): Handle new nenv, env_max, and env
-         members of 'struct command'.
-         (argstr_get_word): Add TODO comment for environment variable
-         support.
-         (pipeline_start): Set environment variables as requested.
-       * lib/pipeline.h (struct command_env): New structure.
-         (struct command): Add nenv, env_max, and env members.
-         (command_setenv): Add prototype.
-
-Sun Jun 28 01:47:51 BST 2009  Colin Watson  <cjwatson@debian.org>
-
-       * lib/pipeline.c (pipeline_free): Free buffer and line_cache.
-
-Sun Jun 28 01:40:24 BST 2009  Colin Watson  <cjwatson@debian.org>
-
-       * lib/pipeline.c (get_line): Limit newline search to the data length
-         returned by get_block, fixing an assertion failure.
-
-Sat May 30 12:50:44 BST 2009  Colin Watson  <cjwatson@debian.org>
-
-       * lib/pipeline.c (pipeline_start): Check the return value of nice.
-
-Mon Nov 17 11:07:50 GMT 2008  Colin Watson  <cjwatson@debian.org>
-
-       * lib/pipeline.c (command_new_function): Initialise discard_err.
-         (pipeline_start): Zero-initialise pids and statuses arrays on
-         allocation, and don'\''t unblock SIGCHLD until after doing so.
-
-Mon Nov 17 00:39:14 GMT 2008  Colin Watson  <cjwatson@debian.org>
-
-       * lib/pipeline.c (pipeline_wait): Mangle return value into a value
-         suitable for passing to exit (Debian bug #477305).
-
-Mon Sep  8 09:09:06 BST 2008  Colin Watson  <cjwatson@debian.org>
-
-       Add support for freeing command_function data.
-
-       * lib/pipeline.c (command_new_function): Add free_func argument.
-         (command_dup): Copy it.
-         (pipeline_connect): Adjust command_new_function call.
-         (pipeline_start): Free command_function data before exiting.
-         (pipeline_wait): Free command_function data while cleaning up
-         pipeline.
-       * lib/pipeline.h: Add command_function_free_type typedef.
-         (struct command [struct command_function]): Add free_func member.
-         (command_new_function): Update prototype.
-
-Thu Jul 31 00:51:58 BST 2008  Colin Watson  <cjwatson@debian.org>
-
-       * lib/pipeline.c (pipeline_pump): Free known_source before returning
-         (Coverity CID #15).
-
-Sun May  4 23:16:59 BST 2008  Colin Watson  <cjwatson@debian.org>
-
-       * lib/pipeline.c (pipeline_start, pipeline_pump): Zero sigaction
-         structures before using them. (I believe we set all required
-         fields anyway; this is just an extra safety catch.)
-
-Sun Apr 27 11:24:24 BST 2008  Colin Watson  <cjwatson@debian.org>
-
-       * lib/pipeline.c (pipeline_sigchld): assert is not
-         async-signal-safe, so avoid calling it in a signal handler and use
-         an if guard instead (Ubuntu bug #221635, although exactly why the
-         assertion is failing there is unclear).
-
-Sun Feb 17 17:13:55 GMT 2008  Colin Watson  <cjwatson@debian.org>
-
-       * lib/pipeline.c (pipeline_wait): Call strsignal rather than
-         xstrsignal.
-
-Sun Jan 27 13:42:31 GMT 2008  Colin Watson  <cjwatson@debian.org>
-
-       * lib/pipeline.c (pipeline_join): Initialise source, buffer, buflen,
-         bufmax, line_cache, and peek_offset.
-
-Sun Jan 27 13:37:17 GMT 2008  Colin Watson  <cjwatson@debian.org>
-
-       * lib/pipeline.h (struct pipeline): Add ignore_signals member.
-       * lib/pipeline.c (pipeline_new): Initialise ignore_signals to 1.
-         (pipeline_join): Set ignore_signals if either input pipeline has
-         it set.
-         (pipeline_start): Only ignore SIGINT and SIGQUIT if ignore_signals
-         is set.
-         (pipeline_wait): Only restore SIGINT and SIGQUIT if ignore_signals
-         is set.
-
-Sun Jan  6 15:01:08 GMT 2008  Colin Watson  <cjwatson@debian.org>
-
-       * lib/pipeline.c (pipeline_start, pipeline_wait,
-         pipeline_install_sigchld, pipeline_pump): Call sigaction rather
-         than xsigaction.
-
-Wed Jan  2 23:30:33 GMT 2008  Colin Watson  <cjwatson@debian.org>
-
-       * lib/pipeline.c (passthrough): Use STDIN_FILENO, STDOUT_FILENO, and
-         STDERR_FILENO macros rather than calling fileno.
-
-Mon Dec 31 10:02:28 GMT 2007  Colin Watson  <cjwatson@debian.org>
-
-       * lib/pipeline.c (passthrough): New helper function.
-         (pipeline_connect): Add special (kludge) handling for zero-command
-         sinks.
-         (pipeline_pump): Add minor commentary.
-
-Wed Oct 17 21:05:50 BST 2007  Colin Watson  <cjwatson@debian.org>
-
-       * lib/pipeline.c: Assume <sys/select.h> and <unistd.h>. Remove
-         duplicate <fcntl.h> inclusion.
-         (command_new): Use base_name.
-
-Mon Oct  8 02:24:19 BST 2007  Colin Watson  <cjwatson@debian.org>
-
-       * lib/pipeline.c (get_block): Use xrealloc instead of realloc.
-
-Mon Oct  8 02:09:55 BST 2007  Colin Watson  <cjwatson@debian.org>
-
-       The strappend function is in the namespace reserved by C99
-       7.26.10/7.26.11; rename it to appendstr.
-
-       * lib/pipeline.c: Update all callers.
-
-Mon Sep 17 00:11:38 UTC 2007  Colin Watson  <cjwatson@debian.org>
-
-       * lib/pipeline.c (pipeline_start): Break after execvp, otherwise we
-         segfault if execvp fails.
-
-Fri Aug 31 04:54:45 BST 2007  Colin Watson  <cjwatson@debian.org>
-
-       * lib/pipeline.c (pipeline_free): Call pipeline_wait if the pipeline
-         is still running.
-       * lib/pipeline.h (pipeline_free): Document that this may happen.
-
-Tue Aug 28 17:19:16 BST 2007  Colin Watson  <cjwatson@debian.org>
-
-       Implement and use a decompression library. This allows cat pages to
-       be saved in the background (Debian bug #18452) and operation with a
-       read-only /tmp (Debian bug #165499).
-  
-       * lib/pipeline.h (struct command): Add support for commands that
-         consist of calling a function rather than executing a process.
-         (struct pipeline): Add want_infile and want_outfile members. Note
-         that infile and outfile default to NULL. Add source, buffer,
-         buflen, bufmax, line_cache, and peek_offset members.
-         (command_new_function, command_dump, command_tostring,
-         pipeline_connect, pipeline_pump, pipeline_read, pipeline_peek,
-         pipeline_peek_size, pipeline_peek_skip, pipeline_readline,
-         pipeline_peekline): New prototypes.
-         (pipeline_join): Update description for want_infile and
-         want_outfile.
-       * lib/pipeline.c (command_new, command_dup, command_arg,
-         command_argv, command_args, command_argstr, command_free): Update
-         for 'struct command' changes.
-         (command_new_function, command_dump, command_tostring): New
-         functions.
-         (pipeline_new, pipeline_join, pipeline_dump, pipeline_tostring):
-         Update for 'struct pipeline' changes.
-         (pipeline_dump): Use command_dump.
-         (pipeline_tostring): Use command_tostring.
-         (pipeline_start): Implement want_infile, want_outfile, and
-         function commands. Make zero-command case work properly (read
-         directly from input file). Flush all pending stdio output so that
-         subprocesses don't inherit it.
-         (pipeline_connect, pipeline_pump, get_block, pipeline_read,
-         pipeline_peek, pipeline_peek_size, pipeline_peek_skip, get_line,
-         pipeline_readline, pipeline_peekline): New functions.
-
-Mon Aug 27 20:02:17 BST 2007  Colin Watson  <cjwatson@debian.org>
-
-       * lib/pipeline.c (pipeline_wait): Re-raise SIGINT or SIGQUIT if they
-         terminate a subprocess.
-
-Mon Aug 27 19:58:19 BST 2007  Colin Watson  <cjwatson@debian.org>
-
-       * lib/pipeline.c (pipeline_wait): Return 1 if we fail to close the
-         pipeline's output.
-
-Mon Aug 20 00:10:49 BST 2007  Colin Watson  <cjwatson@debian.org>
-
-       Discard stderr from formatting processes when outputting to a pager,
-       to avoid visual corruption from any error messages (thanks, Vincent
-       Lefevre; Debian bug #372939).
-  
-       * lib/pipeline.h (struct command): Add discard_err member.
-       * lib/pipeline.c (command_new, command_dup): Initialise discard_err.
-         (pipeline_start): Redirect the child's stderr to /dev/null if
-         discard_err is set.
-
-Sun Mar  4 00:51:30 GMT 2007  Colin Watson  <cjwatson@debian.org>
-
-       Eliminate variable and function shadowing.
-
-       * lib/pipeline.c (pipeline_start): Remove duplicate declarations of
-         set and oset.
-
-Wed Feb 28 22:04:04 GMT 2007  Colin Watson  <cjwatson@debian.org>
-
-       * lib/pipeline.c (pipeline_start): Close inputs and outputs from
-         other active pipelines in all subprocesses.
-
-Wed Feb 28 21:57:24 GMT 2007  Colin Watson  <cjwatson@debian.org>
-
-       * lib/pipeline.c (pipeline_start): Don't ignore SIGPIPE in
-         subprocesses; this has undesirable consequences in some
-         situations.
-         (pipeline_wait): Flatten SIGPIPE exit statuses to zero instead.
-
-Tue Feb 27 20:58:31 GMT 2007  Colin Watson  <cjwatson@debian.org>
-
-       * lib/pipeline.c (pipeline_start): Save previous value of SIGQUIT
-         such that it gets restored as SIGQUIT, not as SIGINT.
-
-Mon Jan  8 10:39:24 GMT 2007  Colin Watson  <cjwatson@debian.org>
-
-       * lib/pipeline.c (pipeline_start, pipeline_wait,
-         pipeline_install_sigchld): Use xsigaction instead of
-         sigaction-plus-EINTR-check.
-
-Tue Dec 26 14:27:59 GMT 2006  Colin Watson  <cjwatson@debian.org>
-
-       * lib/pipeline.c: Include "gettext.h" rather than <libintl.h>. Make
-         sure not to include <locale.h> before "gettext.h", for portability
-         to Solaris.
-
-Sun Sep 17 09:20:33 BST 2006  Colin Watson  <cjwatson@debian.org>
-
-       * lib/pipeline.c (pipeline_start): Ignore SIGPIPE in child processes
-         (Debian bug #387864).
-
-Wed Feb 22 09:44:02 GMT 2006  Colin Watson  <cjwatson@debian.org>
-
-       * lib/pipeline.c (command_new_argstr): Skip "exec" at the start of a
-         command, to make old configuration files work (Debian bug
-         #353959).
-
-Wed Sep 21 10:56:22 BST 2005  Colin Watson  <cjwatson@debian.org>
-
-       * lib/pipeline.c (pipeline_wait): Queue SIGCHLD for the whole time
-         we're collecting child process statuses; we need to keep a careful
-         count of processes. Forget any previous errno before calling
-         reap_children. Should fix Debian bug #326488.
-
-Wed Sep 21 10:10:12 BST 2005  Colin Watson  <cjwatson@debian.org>
-
-       * lib/pipeline.c (pipeline_start, pipeline_wait): Ignore SIGINT and
-         SIGQUIT in the parent while running subprocesses (Debian bug
-         #328982).
-
-Thu Sep  1 14:10:07 BST 2005  Colin Watson  <cjwatson@debian.org>
-
-       * lib/pipeline.c (argstr_get_word): Use an enum for quotemode rather
-         than magic numbers.
-
-Mon Jul 11 18:12:58 BST 2005  Colin Watson  <cjwatson@debian.org>
-
-       * lib/pipeline.c (pipeline_wait): Emit a debugging message.
-
-Mon Jul 11 14:41:52 BST 2005  Colin Watson  <cjwatson@debian.org>
-
-       * include/manconfig.h.in: Define ATTRIBUTE_SENTINEL to a function
-         attribute enabling sentinel checking if using GCC 4.0 or newer.
-         (strappend): Use it.
-       * lib/pipeline.h (command_new_args, command_args,
-         pipeline_new_commands, pipeline_command_args, pipeline_commands):
-         Likewise.
-
-Sun Dec 12 21:48:04 CET 2004  Colin Watson  <cjwatson@debian.org>
-
-       * lib/pipeline.c (pipeline_sigchld): Don't bother saving and
-         restoring errno if SIGCHLD is being queued.
-
-Sun Nov  7 16:07:26 GMT 2004  Colin Watson  <cjwatson@debian.org>
-
-       * lib/pipeline.c (pipeline_wait): Close pipeline output before
-         reaping processes, so that writing processes get SIGPIPE.
-
-Sun Nov  7 16:05:08 GMT 2004  Colin Watson  <cjwatson@debian.org>
-
-       * lib/pipeline.c (pipeline_wait): Fix active process debugging
-         output to include processes without statuses.
-
-Mon Mar  8 11:21:05 GMT 2004  Colin Watson  <cjwatson@debian.org>
-
-       * lib/pipeline.c (pipeline_dump): Show caller-supplied input and
-         output file descriptors.
-
-       * lib/pipeline.c (command_free, pipeline_free): Return safely if
-         argument is NULL.
-       * lib/pipeline.h (command_free, pipeline_free): Document NULL
-         arguments as a safe no-op, like free().
-
-Sun Sep 21 02:17:43 BST 2003  Colin Watson  <cjwatson@debian.org>
-
-       * lib/pipeline.c (pipeline_start): Dump pipeline in debugging mode.
-
-Thu Aug 28 00:40:09 BST 2003  Colin Watson  <cjwatson@debian.org>
-
-       * lib/pipeline.c (pipeline_start): Change "couldn't exec %s" to
-         "can't execute %s" in line with src/man.c, to make translators'
-         lives easier.
-         (pipeline_wait): Separate "%s: %s%s" into two translatable
-         strings: the "(core dumped)" portion should definitely be
-         translated.
-
-Fri Aug 15 18:05:37 BST 2003  Colin Watson  <cjwatson@debian.org>
-
-       * lib/pipeline.c: Include <libgen.h> instead of relying on
-         basename() prototype in manconfig.h.
-
-Sat Aug  9 18:28:01 BST 2003  Colin Watson  <cjwatson@debian.org>
-
-       Replace the old "wait() for one child at a time" approach with a
-       SIGCHLD-handling edifice that collects children's exit statuses as
-       they die.
-
-       * lib/pipeline.c (pipeline_new): Initialize statuses.
-         (pipeline_join): Set statuses to NULL in joined pipeline.
-         (pipeline_join, pipeline_get_infile, pipeline_get_outfile,
-         pipeline_start, pipeline_wait): Assert that statuses field is NULL
-         or non-NULL as appropriate.
-         (pipeline_free): Free statuses if necessary.
-
-         (pipeline_start): Add p to a new active_pipelines array, to be
-         used while reaping children. Initialize statuses elements to -1.
-         Block SIGCHLD while forking children.
-         (reap_children): New function. Delivers collected exit statuses
-         into statuses fields of entries in active_pipelines.
-         (pipeline_wait): Rather than wait()ing manually here, check
-         whether any statuses have been picked up by the SIGCHLD handler,
-         and if not call reap_children(). Remove now-obsolete TODO comment.
-         (pipeline_sigchld): New function, the SIGCHLD handler.
-         (pipeline_install_sigchld): New function, to be called once per
-         program.
-
-         (pipeline_start, pipeline_wait): Add minimal debugging
-         information.
-
-       * lib/pipeline.h: Prototype new functions.
-         (struct pipeline): New statuses member.
-
-Sat Aug  9 17:00:12 BST 2003  Colin Watson  <cjwatson@debian.org>
-
-       * lib/pipeline.c (command_dup): Copy cmd->nice.
-         (pipeline_command): Correct condition for growing commands array.
-
-Mon Aug  4 19:35:26 BST 2003  Colin Watson  <cjwatson@debian.org>
-
-       * lib/pipeline.c (command_dup): Terminate argv with a NULL.
-         (command_dup, command_arg): Assert that argc < argv_max after
-         changing either.
-
-Mon Aug  4 19:30:22 BST 2003  Colin Watson  <cjwatson@debian.org>
-
-       * lib/pipeline.c (pipeline_dump): New function to dump a printable
-         representation of a pipeline to a stream.
-         (pipeline_tostring): Likewise, but to a newly allocated string.
-       * lib/pipeline.h: Prototype these.
-
-Mon Aug  4 12:03:38 BST 2003  Colin Watson  <cjwatson@debian.org>
-
-       * lib/pipeline.c (argstr_get_word): Plug some memory leaks.
-
-Mon Aug  4 01:05:12 BST 2003  Colin Watson  <cjwatson@debian.org>
-
-       * lib/pipeline.c (pipeline_wait): The return value was a bit
-         groff-specific. Now just return the status of the last command in
-         the pipeline, as reported by wait().
-
-Mon Aug  4 00:31:44 BST 2003  Colin Watson  <cjwatson@debian.org>
-
-       Add support for getting stdio streams for input and output. Needs
-       library support because pipeline_wait() needs to know to close the
-       stream rather than the underlying file descriptor.
-
-       * lib/pipeline.h (struct pipeline): New infile and outfile members.
-         (pipeline_get_infile, pipeline_get_outfile): Add prototypes.
-       * lib/pipeline.c (pipeline_new): Initialize infile and outfile.
-         (pipeline_join): Likewise.
-         (pipeline_get_infile, pipeline_get_outfile): New functions.
-         (pipeline_wait): Check for infile and outfile and fclose() them in
-         preference to close()ing infd and outfd. Check for errors on
-         close().
-
-Sun Aug  3 23:59:18 BST 2003  Colin Watson  <cjwatson@debian.org>
-
-       * lib/pipeline.c (pipeline_start): Use dup2() instead of close()
-         then dup().
-
-Sun Aug  3 23:52:14 BST 2003  Colin Watson  <cjwatson@debian.org>
-
-       infd and outfd should now only be set by pipeline_start(). Positive
-       values in want_in and want_out now indicate caller-supplied file
-       descriptors, while negative values indicate a request for
-       pipeline_start() to create a pipe.
-
-       * lib/pipeline.h (struct pipeline): Document this.
-       * lib/pipeline.c (pipeline_start): Implement it. Caller-supplied
-         input and output file descriptors previously didn't work properly.
-         (pipeline_wait): Update TODO comment.
-
-Sun Aug  3 21:07:46 BST 2003  Colin Watson  <cjwatson@debian.org>
-
-       * lib/pipeline.h (struct command): New 'nice' member.
-       * lib/pipeline.c (command_new): Initialize nice.
-         (pipeline_start): Change child process priority if nice is set.
-
-Sun Aug  3 20:50:35 BST 2003  Colin Watson  <cjwatson@debian.org>
-
-       * lib/pipeline.c (pipeline_start): Pop all cleanups in child.
-
-Sun Aug  3 20:47:24 BST 2003  Colin Watson  <cjwatson@debian.org>
-
-       * lib/pipeline.c (argstr_get_word, command_new_argstr,
-         command_argstr, pipeline_command_argstr): New functions to handle
-         constructing commands from shell-quoted strings, such as those
-         found in man-db configuration files. They deliberately handle only
-         a safe subset of shell syntax.
-       * lib/pipeline.h: Prototype command_new_argstr(), command_argstr(),
-         and pipeline_command_argstr().
-
-Sun Aug  3 19:09:59 BST 2003  Colin Watson  <cjwatson@debian.org>
-
-       * lib/pipeline.c (command_dup): New function to duplicate a command.
-         (pipeline_join): New function to join two pipelines together.
-       * lib/pipeline.h: Prototype these.
-
-Sun Aug  3 18:00:59 BST 2003  Colin Watson  <cjwatson@debian.org>
-
-       * lib/pipeline.h (struct pipeline): The writeto, readfrom, writefd,
-         and readfd names turn out to be confusing in calling code. Rename
-         to want_in, want_out, infd, and outfd respectively.
-       * lib/pipeline.c (pipeline_new, pipeline_start, pipeline_wait): Use
-         new names.
-
-Sun Aug  3 16:35:24 BST 2003  Colin Watson  <cjwatson@debian.org>
-
-       Add support in pipeline library for writing input to or reading
-       output from the whole pipeline.
-
-       * lib/pipeline.c (pipeline_new): Initialize writeto, readfrom,
-         writefd, and readfd.
-         (pipeline_start): Create extra pipes as necessary.
-         (pipeline_wait): Expand TODO comment. Close file descriptors from
-         extra pipes if necessary.
-       * lib/pipeline.h (struct pipeline): Add writeto, readfrom, writefd,
-         and readfd.
+2013-12-03  Colin Watson  <cjwatson@debian.org>
 
-Sun Aug  3 11:15:17 BST 2003  Colin Watson  <cjwatson@debian.org>
+       Automatically generate ChangeLog from git
 
-       * lib/pipeline.c: New pipeline library, adapted from that in groff.
-         The interface isn't complete yet; in particular, it can't be a
-         replacement for popen() at the moment.
-       * lib/pipeline.h: New file with pipeline library interface.
+       * ChangeLog: Move to ...
+       * ChangeLog-2013: ... here.
+       * Makefile.am (EXTRA_DIST): Add ChangeLog-2013.
+         (dist-hook): Add gen-ChangeLog.
+         (gen-ChangeLog): New rule, based on that in coreutils.
+       * gnulib: Import gitlog-to-changelog module.
diff --git a/ChangeLog-2013 b/ChangeLog-2013
new file mode 100644 (file)
index 0000000..369392c
--- /dev/null
@@ -0,0 +1,1387 @@
+Sat Nov 30 21:07:06 GMT 2013  Colin Watson  <cjwatson@debian.org>
+
+       * .bzrignore: Move to ...
+       * .gitignore: ... here, adjusting for differences between bzr and
+         git.
+       * Makefile.am (EXTRA_DIST): Replace .bzrignore with .gitignore.
+       * gnulib: Add --no-vc-files.
+
+Wed Nov 27 10:50:43 GMT 2013  Colin Watson  <cjwatson@debian.org>
+
+       * configure.ac: Only call AC_PROG_AR if it is defined, to restore
+         compatibility with Automake 1.10 (thanks, Mathieu Malaterre;
+         Debian bug #730191).
+       * NEWS: Document this.
+
+Wed Nov 27 10:48:16 GMT 2013  Colin Watson  <cjwatson@debian.org>
+
+       Upgrade to Automake 1.14, Gettext 0.18.3, and Gnulib 20130805.
+
+Sun Jun 23 12:44:09 BST 2013  Colin Watson  <cjwatson@debian.org>
+
+       * lib/pipeline-private.h (struct pipeline): Make want_infile and
+         want_outfile non-const.
+       * lib/pipeline.c (pipeline_join): Take copies of p1->want_infile and
+         p2->want_outfile.
+         (pipeline_want_infile): Take a copy of file.
+         (pipeline_want_outfile): Likewise.
+         (pipeline_free): Free p->want_infile and p->want_outfile.
+       * NEWS: Document this.
+
+Sun Jun 23 12:40:32 BST 2013  Colin Watson  <cjwatson@debian.org>
+
+       * lib/pipeline.c (argstr_get_word, pipeline_free): Remove
+         unnecessary tests before freeing pointers.
+
+Sat Jun 22 17:12:03 BST 2013  Colin Watson  <cjwatson@debian.org>
+
+       * tests/common.c (temp_dir_setup): Fail the test if mkdtemp fails.
+
+Thu Jun  6 12:43:06 BST 2013  Colin Watson  <cjwatson@debian.org>
+
+       * Version: 1.2.4.
+       * lib/Makefile.am (libpipeline_la_LDFLAGS): Bump -version-info to
+         3:4:2.
+
+Thu Jun  6 12:38:07 BST 2013  Colin Watson  <cjwatson@debian.org>
+
+       * NEWS: Document changes since 1.2.3.
+
+Wed Jun  5 20:28:59 BST 2013  Colin Watson  <cjwatson@debian.org>
+
+       Provide a replacement clearenv for non-glibc systems that lack it
+       (Savannah bug #36848).
+
+       * gnulib: Import environ module.
+       * configure.ac: Check for clearenv.
+       * lib/pipeline.c [!HAVE_CLEARENV] (clearenv): New replacement
+         function.
+       * lib/pipeline-private.h [!HAVE_CLEARENV] (clearenv): Add prototype.
+
+Wed Jun  5 20:18:23 BST 2013  Colin Watson  <cjwatson@debian.org>
+
+       * aclocal.m4: Upgrade to Gettext 0.18.2.1.
+
+Wed Jun  5 20:12:11 BST 2013  Colin Watson  <cjwatson@debian.org>
+
+       * tools/config.guess: Update to 2013-05-16.
+       * tools/config.sub: Update to 2013-04-24.
+
+Wed Jun  5 18:01:47 BST 2013  Colin Watson  <cjwatson@debian.org>
+
+       * lib/pipeline.h (pipecmd_clearenv): Add a warning about use of this
+         function.
+       * man/libpipeline.3 (Functions to build individual commands):
+         Likewise.
+
+Wed Jun  5 10:31:01 BST 2013  Colin Watson  <cjwatson@debian.org>
+
+       Quieten warnings from compiling Gnulib.
+
+       * m4/pipeline-gcc-warning.m4: Remove.
+       * gnulib: Import warnings module.
+       * configure.ac: Replace PIPELINE_GCC_WARNING with gl_WARN_ADD.
+       * lib/Makefile.am (AM_CFLAGS): Add $(WARN_CFLAGS).
+       * tests/Makefile.am (AM_CFLAGS): Likewise.
+
+Wed Jun  5 10:16:59 BST 2013  Colin Watson  <cjwatson@debian.org>
+
+       * tests/argstr.c, tests/basic.c, tests/exec.c, tests/inspect.c,
+         tests/pump.c, tests/reading_long_line.c, tests/redirect.c: Define
+         program_name (thanks, Fernando Lemos; see Savannah bug #36848).
+
+Wed Jun  5 10:12:29 BST 2013  Colin Watson  <cjwatson@debian.org>
+
+       * Makefile.in (DIST_COMMON): Regenerate, adding tools/depcomp.
+
+Thu May 30 13:28:08 BST 2013  Colin Watson  <cjwatson@debian.org>
+
+       Upgrade to Automake 1.13.2 and Gnulib 20130529.
+
+       * .bzrignore: Add tests/*.log and tests/*.trs.
+       * autogen.sh: Drop gnulib/gets.patch backport.
+       * Makefile.am (EXTRA_DIST): Remove gnulib/gets.patch.
+       * gnulib/gets.patch: Remove.
+       * tests/argstr.c, tests/basic.c, tests/exec.c, tests/inspect.c,
+         tests/reading_long_line.c, tests/redirect.c: Include config.h.
+
+Wed Apr 24 07:48:26 BST 2013  Colin Watson  <cjwatson@debian.org>
+
+       * Version: 1.2.3.
+       * lib/Makefile.am (libpipeline_la_LDFLAGS): Bump -version-info to
+         3:3:2.
+
+Wed Apr 24 07:44:38 BST 2013  Colin Watson  <cjwatson@debian.org>
+
+       * lib/pipeline.c (pipeline_wait_all): Free active_pipelines if it is
+         entirely empty.
+
+Wed Apr 24 07:27:44 BST 2013  Peter Schiffer  <pschiffe@redhat.com>
+
+       * lib/pipeline.c (pipecmd_new_argstr): Fix memory leak when the
+         first word of argstr is "exec".
+       * tests/argstr.c (test_argstr_exec): Free cmd at end.
+       * tests/basic.c (test_basic_wait_all): Free statuses at end.
+         (test_basic_clearenv): Free p and p2 at end.
+       * tests/exec.c (test_exec_process, test_exec_function): Free cmd at
+         end of loop.
+       * tests/redirect.c (test_redirect_files): Free p and template at
+         end.
+
+Tue Apr 23 07:52:40 BST 2013  Colin Watson  <cjwatson@debian.org>
+
+       * lib/pipeline.c (pipecmd_exec): Flush stdio before starting a
+         sequence.
+       * NEWS: Document this.
+
+Tue Apr 23 07:50:45 BST 2013  Peter Schiffer  <pschiffe@redhat.com>
+                              Colin Watson  <cjwatson@debian.org>
+
+       Don't read uninitialised memory when testing for the end of long
+       lines (Fedora bug #876108).
+
+       * lib/pipeline.c (get_line): Fix incorrect memchr bounds.
+       * tests/Makefile.am (TESTS): Add reading_long_line.
+         (reading_long_line_SOURCES, reading_long_line_LDADD): Add.
+       * tests/reading_long_line.c: New file.
+       * .bzrignore: Add tests/reading_long_line.
+       * NEWS: Document this.
+
+Mon Jan 21 11:42:09 GMT 2013  Colin Watson  <cjwatson@debian.org>
+
+       * configure.ac (AC_HEADER_SYS_WAIT): Remove; superseded by Gnulib.
+
+Mon Jan 21 11:26:15 GMT 2013  Colin Watson  <cjwatson@debian.org>
+
+       Upgrade to Libtool 2.4.2-1.2 (from Debian).
+
+Mon Dec 24 02:23:37 GMT 2012  Colin Watson  <cjwatson@debian.org>
+
+       * lib/pipeline.c (pipeline_start): Remove redundant condition.
+
+Mon Sep 17 22:54:12 BST 2012  Colin Watson  <cjwatson@debian.org>
+
+       * Version: 1.2.2.
+       * lib/Makefile.am (libpipeline_la_LDFLAGS): Bump -version-info to
+         3:2:2.
+
+Mon Sep 17 22:52:58 BST 2012  Colin Watson  <cjwatson@debian.org>
+
+       * Makefile.am (EXTRA_DIST): Add gnulib/gets.patch.
+
+Mon Sep 17 22:31:18 BST 2012  Colin Watson  <cjwatson@debian.org>
+
+       * release.sh: Use 'set -e' rather than '#! /bin/sh -e', to avoid
+         accidents when debugging with 'sh -x'.
+
+Mon Sep 17 22:27:47 BST 2012  Colin Watson  <cjwatson@debian.org>
+
+       * NEWS: Document changes since 1.2.1.
+
+Mon Sep 17 22:23:59 BST 2012  Colin Watson  <cjwatson@debian.org>
+
+       * autogen.sh: Use 'set -e' rather than '#! /bin/sh -e', to avoid
+         accidents when debugging with 'sh -x'.
+
+Mon Sep 17 22:21:44 BST 2012  Křištof Želechovski  <yecril71pl@gmail.com>
+
+       * configure.ac: Use AM_PROG_AR before LT_INIT, for compatibility
+         with Automake 1.12.
+
+Mon Sep 17 22:05:04 BST 2012  Colin Watson  <cjwatson@debian.org>
+
+       Backport Gnulib commit 66712c23388e93e5c518ebc8515140fa0c807348 to
+       stop assuming gets.
+
+       * gnulib/gets.patch: New file.
+       * autogen.sh: Apply gnulib/gets.patch.
+
+Mon Sep 17 22:03:09 BST 2012  Colin Watson  <cjwatson@debian.org>
+
+       Upgrade to Autoconf 2.69, Automake 1.11.6, and Gnulib
+       20120404-stable.
+
+Sun Mar  4 17:43:21 GMT 2012  Colin Watson  <cjwatson@debian.org>
+
+       * lib/pipeline.c (pipeline_start): Flush stdio after emitting
+         debugging output.
+
+Fri Mar  2 19:54:40 GMT 2012  Colin Watson  <cjwatson@debian.org>
+
+       * Version: 1.2.1.
+       * lib/Makefile.am (libpipeline_la_LDFLAGS): Bump -version-info to
+         3:1:2.
+
+Thu Mar  1 22:51:30 GMT 2012  Colin Watson  <cjwatson@debian.org>
+
+       * NEWS: Correct date of 1.2.0 release.
+
+Wed Feb 29 20:09:12 GMT 2012  Martin Pollard  <martin.pollard@sanger.ac.uk>
+
+       * lib/pipeline.h: Enclose in extern "C" { } when compiling as C++.
+
+Wed Feb 29 18:26:22 GMT 2012  Colin Watson  <cjwatson@debian.org>
+
+       * tests/Makefile.am (TESTS): Add pump.
+         (pump_SOURCES, pump_LDADD): Add.
+       * tests/pump.c: New file.
+       * .bzrignore: Add tests/pump.
+
+Wed Feb 29 18:19:08 GMT 2012  Colin Watson  <cjwatson@debian.org>
+
+       * lib/pipeline.c (pipeline_start): Create output files if they do
+         not already exist, and truncate them if they do.
+       * lib/pipeline.h (pipeline_want_outfile): Document this.
+       * man/libpipeline.3 (Functions to build pipelines): Likewise.
+       * tests/common.c: New file.
+       * tests/common.h (TEST_CASE_WITH_FIXTURE): New macro.
+         (temp_dir_setup, temp_dir_teardown): Add prototypes.
+       * tests/redirect.c (test_redirect_outfile): New test.
+         (redirect_suite): Call test_redirect_outfile.
+       * tests/Makefile.am (basic_SOURCES, argstr_SOURCES, exec_SOURCES,
+         inspect_SOURCES, redirect_SOURCES): Add common.c.
+       * NEWS: Document this.
+
+Mon Feb 27 22:17:20 GMT 2012  Colin Watson  <cjwatson@debian.org>
+
+       * tests/exec.c (exit_helper, test_exit_function): Add test that
+         pipecmd_exec works with functions.
+         (exec_suite): Call test_exit_function.
+
+Thu Feb  9 12:04:26 GMT 2012  Colin Watson  <cjwatson@debian.org>
+
+       Upgrade to Automake 1.11.3.
+
+Sun Feb  5 02:33:14 GMT 2012  Colin Watson  <cjwatson@debian.org>
+
+       Upgrade to Automake 1.11.2 and Gnulib 20111211-stable.
+
+       * Makefile.am (EXTRA_DIST): Remove gnulib/m4/sockpfaf.m4, which was
+         removed from this package some time ago.  Add gnulib/m4/math_h.m4.
+
+Wed Dec 14 12:54:40 GMT 2011  Colin Watson  <cjwatson@debian.org>
+
+       * man/Makefile.am (FUNCTIONS): Add pipecmd_new_sequencev,
+         pipeline_new_command_argv, pipeline_command_argv,
+         pipeline_wait_all, and pipeline_run.
+
+Wed Dec 14 12:48:56 GMT 2011  Colin Watson  <cjwatson@debian.org>
+
+       Upgrade to Libtool 2.4.2.
+
+Mon Oct 10 09:22:41 BST 2011  Colin Watson  <cjwatson@debian.org>
+
+       * README: Document test suite dependencies.  Suggested by Bruce
+         Dubbs.
+
+Mon Sep 26 13:34:00 BST 2011  Colin Watson  <cjwatson@debian.org>
+
+       * man/libpipeline.3 (Reaping of child processes): Fix typo.
+
+Mon Sep 26 12:10:35 BST 2011  Colin Watson  <cjwatson@debian.org>
+
+       Upgrade to Gnulib 20110908-stable.
+
+Sat Apr 23 17:51:13 BST 2011  Colin Watson  <cjwatson@debian.org>
+
+       Upgrade to Autoconf 2.68, Libtool 2.4, and Gnulib 20110412-stable.
+
+Wed Mar 30 13:40:42 BST 2011  Colin Watson  <cjwatson@debian.org>
+
+       * gnulib: Import full-write, safe-read, and safe-write modules.
+       * lib/pipeline.c (passthrough): Use safe_read instead of read.  Use
+         full_write instead of fwrite (stdio is not necessarily
+         EINTR-safe).
+         (pipeline_pump): Use safe_write instead of write and a manual
+         EINTR check.
+         (get_block): Use safe_read instead of read.
+       * NEWS: Document this.
+
+Fri Mar 18 22:27:39 GMT 2011  Colin Watson  <cjwatson@debian.org>
+
+       * Version: 1.2.0.
+       * lib/Makefile.am (libpipeline_la_LDFLAGS): Bump -version-info to
+         3:0:2.
+
+Fri Mar 18 18:24:42 GMT 2011  Colin Watson  <cjwatson@debian.org>
+
+       * man/Makefile.am (FUNCTIONS): Add pipeline_get_pid.
+
+Fri Mar 18 18:22:42 GMT 2011  Colin Watson  <cjwatson@debian.org>
+
+       * tests/inspect.c (pid_helper): Flush stdout before pausing.
+
+Fri Mar 18 12:08:51 GMT 2011  Colin Watson  <cjwatson@debian.org>
+
+       * gnulib: Import waitpid module.
+
+Fri Mar 18 12:02:42 GMT 2011  Colin Watson  <cjwatson@debian.org>
+
+       Upgrade to Gnulib 20110216-stable.
+
+Fri Mar 18 11:45:10 GMT 2011  Colin Watson  <cjwatson@debian.org>
+
+       * tests/basic.c (test_basic_clearenv): Test that pipecmd_clearenv
+         and pipecmd_setenv survive pipecmd_dup.
+
+Tue Mar  8 14:10:52 GMT 2011  Colin Watson  <cjwatson@debian.org>
+
+       Add a function to get process IDs of commands in started pipelines
+       (Savannah bug #32710).
+
+       * lib/pipeline.c (pipeline_get_pid): New function.
+       * lib/pipeline.h (pipeline_get_pid): Add prototype.
+       * man/libpipeline.3 (Functions to build pipelines): Document
+         pipeline_get_pid.
+       * tests/inspect.c (pid_helper, test_inspect_pid): Test
+         pipeline_get_pid.
+       * NEWS: Document this.
+
+Mon Mar  7 10:41:50 GMT 2011  Colin Watson  <cjwatson@debian.org>
+
+       * configure.ac: Check for working fork(2).
+
+Sat Dec 11 15:01:14 GMT 2010  Colin Watson  <cjwatson@debian.org>
+
+       * Version: 1.1.0.
+       * lib/Makefile.am (libpipeline_la_LDFLAGS): Bump -version-info to
+         2:0:1.
+
+Sat Dec 11 15:00:02 GMT 2010  Colin Watson  <cjwatson@debian.org>
+
+       * man/Makefile.am (FUNCTIONS): Add pipecmd_get_nargs,
+         pipecmd_clearenv, and pipecmd_exec.
+
+Sat Dec 11 13:25:29 GMT 2010  Colin Watson  <cjwatson@debian.org>
+
+       * lib/pipeline.h (pipecmd_get_nargs): Clarify that the command name
+         is counted as the first argument.
+       * man/libpipeline.3 (pipecmd_get_nargs): Likewise.
+       * tests/basic.c (test_basic_args): Correct off-by-one error.
+
+Mon Dec  6 20:54:29 GMT 2010  Colin Watson  <cjwatson@debian.org>
+
+       * lib/pipeline.c (pipecmd_get_nargs): New function.
+       * lib/pipeline.h (pipecmd_get_nargs): Add prototype.
+       * man/libpipeline.3 (Functions to build individual commands):
+         Document pipecmd_get_nargs.
+       * tests/basic.c (test_basic_args): Test pipecmd_get_nargs.
+       * NEWS: Document this.
+
+Mon Dec  6 20:07:43 GMT 2010  Colin Watson  <cjwatson@debian.org>
+
+       * lib/pipeline.c (pipecmd_clearenv): New function.
+         (pipecmd_dup, pipecmd_dump, pipecmd_tostring, pipecmd_exec):
+         Handle cmd->env[i].name being NULL.
+       * lib/pipeline.h (pipecmd_clearenv): Add prototype.
+       * man/libpipeline.3 (Functions to build individual commands):
+         Document pipecmd_clearenv.
+       * tests/basic.c (test_basic_clearenv): Add test.
+         (basic_suite): Call test_basic_clearenv.
+       * NEWS: Document this.
+
+Sun Nov 28 14:49:42 GMT 2010  Colin Watson  <cjwatson@debian.org>
+
+       * NEWS: Note date of 1.0.0 release.
+
+Sun Nov 28 14:47:03 GMT 2010  Colin Watson  <cjwatson@debian.org>
+
+       * lib/pipeline.c (pipecmd_start_child): Rename to ...
+         (pipecmd_exec): ... this, and make external.  Update all callers.
+       * lib/pipeline.h (pipecmd_exec): Add prototype.
+       * man/libpipeline.3 (Functions to build individual commands):
+         Document pipecmd_exec.
+       * tests/Makefile.am (TESTS): Add exec.
+         (exec_SOURCES, exec_LDADD): Add.
+       * tests/exec.c: New file.
+       * .bzrignore: Add tests/exec.
+       * NEWS: Document this.
+
+Sun Nov 28 13:43:45 GMT 2010  Colin Watson  <cjwatson@debian.org>
+
+       * gnulib: Remove mkstemp module.  Add sys_stat module.
+
+Tue Nov 16 17:25:08 GMT 2010  Colin Watson  <cjwatson@debian.org>
+
+       * man/libpipeline.3 (EXAMPLES): Clarify pipeline_readline example:
+         show calls to pipeline_want_out and pipeline_start.
+
+Tue Nov  2 16:56:22 GMT 2010  Colin Watson  <cjwatson@debian.org>
+
+       * README (Building programs with libpipeline): Recommend -Wformat.
+
+Fri Oct 29 07:34:05 BST 2010  Colin Watson  <cjwatson@debian.org>
+
+       * Version: 1.0.0.
+
+Fri Oct 29 07:25:14 BST 2010  Colin Watson  <cjwatson@debian.org>
+
+       * lib/pipeline.h (pipeline_install_post_fork): Clarify that this is
+         run in the child process.
+         (pipeline_wait_all): Clarify that SIGPIPE is considered equivalent
+         to exiting zero.
+       * man/libpipeline.3 (DESCRIPTION): Update descriptions of
+         pipeline_install_post_fork and pipeline_wait_all to match this.
+         (Functions to read output from pipelines): Note that output is
+         returned as a pointer into a pipeline-owned buffer.
+
+Fri Oct 29 06:21:02 BST 2010  Colin Watson  <cjwatson@debian.org>
+
+       * TODO: New file.
+
+Fri Oct 29 06:20:18 BST 2010  Colin Watson  <cjwatson@debian.org>
+
+       * README (Credits): New section.
+
+Fri Oct 29 06:11:37 BST 2010  Colin Watson  <cjwatson@debian.org>
+
+       * lib/pipeline.c (pipecmd_new_sequencev): New function.
+         (pipecmd_new_sequence): Rewrite in terms of pipecmd_new_sequence.
+         (pipeline_new_command_argv): New function.
+         (pipeline_new_command_args): Rewrite in terms of
+         pipeline_new_command_argv.
+         (pipeline_command_argv): New function.
+         (pipeline_command_args): Rewrite in terms of
+         pipeline_command_argv.
+       * lib/pipeline.h (pipecmd_new_sequencev, pipeline_new_command_argv,
+         pipeline_command_argv): Add prototypes.
+       * man/libpipeline.3 (DESCRIPTION): Document pipecmd_new_sequencev,
+         pipeline_new_command_argv, and pipeline_command_argv.
+       * tests/basic.c (test_basic_sequence): Add test.
+         (basic_suite): Call test_basic_sequence.
+
+Fri Oct 29 05:25:19 BST 2010  Colin Watson  <cjwatson@debian.org>
+
+       * lib/pipeline.c (pipeline_wait): Rename to ...
+         (pipeline_wait_all): ... this.  Return 127 rather than 1 if
+         closing the pipeline output fails.  Return 127 if a command other
+         than the last one fails.  Return the statuses and the number of
+         statuses in new output parameters if they are non-NULL.
+         (pipeline_wait): Add new wrapper function.
+       * lib/pipeline.h (pipeline_wait_all): Add prototype.
+       * man/libpipeline.3 (Functions to run pipelines and handle signals):
+         Document pipeline_wait_all.
+       * tests/basic.c (test_basic_wait_all): Add test.
+         (basic_suite): Call test_basic_wait_all.
+
+Fri Oct 29 03:46:39 BST 2010  Colin Watson  <cjwatson@debian.org>
+
+       * lib/pipeline.c (pipeline_new): Default ignore_signals to 0.
+       * man/libpipeline.3 (Functions to build pipelines): Update
+         pipeline_ignore_signals documentation.
+
+Fri Oct 29 03:43:29 BST 2010  Colin Watson  <cjwatson@debian.org>
+
+       * man/libpipeline.3 (Functions to build pipelines): Rephrase
+         description of want_out and want_in handling in terms of public
+         function calls.
+
+Fri Oct 29 03:30:45 BST 2010  Colin Watson  <cjwatson@debian.org>
+
+       * man/libpipeline.3 (Functions to build individual commands):
+         Document variable arguments to pipecmd_new_sequence.
+         (Functions to build pipelines): Explain analogy of
+         pipeline_connect to tee(1).
+
+Fri Oct 29 03:13:21 BST 2010  Colin Watson  <cjwatson@debian.org>
+
+       * lib/pipeline.c, lib/pipeline.h, lib/pipeline-private.h: Rename
+         command to pipecmd, command_* to pipecmd_*, and COMMAND_* to
+         PIPECMD_*.  Update all callers and documentation references.
+       * lib/Makefile.am (libpipeline_la_LDFLAGS): Adjust
+         -export-symbols-regex to export pipecmd_* rather than command_*.
+
+Fri Oct 29 03:00:51 BST 2010  Colin Watson  <cjwatson@debian.org>
+
+       * man/libpipeline.3 (DESCRIPTION): Various minor corrections and
+         clarifications from Ian Jackson.
+         (BUGS): New section.
+
+Tue Oct 26 21:09:53 BST 2010  Colin Watson  <cjwatson@debian.org>
+
+       * tests/Makefile.am (TESTS): Add argstr.
+         (argstr_SOURCES, argstr_LDADD): Add.
+       * tests/argstr.c: New file.
+       * .bzrignore: Add tests/argstr.
+
+Mon Oct 25 21:56:08 BST 2010  Colin Watson  <cjwatson@debian.org>
+
+       * tests/inspect.c (test_inspect_command): Free the result of
+         command_tostring.
+         (test_inspect_pipeline): Free the result of pipeline_tostring.
+
+Mon Oct 25 20:25:11 BST 2010  Colin Watson  <cjwatson@debian.org>
+
+       Revert our patched version of xstrdup, since none of libpipeline's
+       calls to xstrdup rely on being able to pass NULL to it.
+
+       * Makefile.am (EXTRA_DIST): Remove gnulib/lib/xmalloc.c.orig and
+         gnulib/lib/xmalloc.patch.
+       * autogen.sh: Stop applying gnulib/lib/xmalloc.patch.
+       * gnulib/lib/xmalloc.c.orig, gnulib/lib/xmalloc.patch: Remove.
+
+Mon Oct 25 20:10:25 BST 2010  Colin Watson  <cjwatson@debian.org>
+
+       * README (Building programs with libpipeline): New section.
+
+Mon Oct 25 19:39:06 BST 2010  Colin Watson  <cjwatson@debian.org>
+
+       * man/Makefile.am (FUNCTIONS): Add command_nice,
+         command_discard_err, command_unsetenv, pipeline_new_command_args,
+         pipeline_get_ncommands, pipeline_get_command,
+         pipeline_set_command, pipeline_want_in, pipeline_want_out,
+         pipeline_want_infile, pipeline_want_outfile, and
+         pipeline_ignore_signals.
+
+Mon Oct 25 19:31:27 BST 2010  Colin Watson  <cjwatson@debian.org>
+
+       * tests/basic.c: Include <string.h>.
+
+Mon Oct 25 19:31:09 BST 2010  Colin Watson  <cjwatson@debian.org>
+
+       * tests/Makefile.am (TESTS): Add inspect.
+         (inspect_SOURCES, inspect_LDADD): Add.
+       * tests/inspect.c: New file.
+       * .bzrignore: Add tests/inspect.
+
+Mon Oct 25 19:18:35 BST 2010  Colin Watson  <cjwatson@debian.org>
+
+       * tests/common.h: New file.
+       * tests/basic.c (basic_suite, main), tests/redirect.c
+         (redirect_suite, main): Use new TEST_CASE and MAIN macros.
+       * tests/Makefile.am (basic_SOURCES, redirect_SOURCES): Add common.h.
+
+Mon Oct 25 16:17:24 BST 2010  Colin Watson  <cjwatson@debian.org>
+
+       * gnulib: Import unsetenv module.
+       * lib/pipeline.c (command_unsetenv): New function.
+         (command_dup, command_dump, command_tostring): Check for NULL
+         cmd->env[i].value.
+         (command_start_child): If cmd->env[i].value is NULL, call unsetenv
+         rather than setenv.
+       * lib/pipeline.h (command_unsetenv): Add prototype.
+       * man/libpipeline.3 (Functions to build individual commands):
+         Document command_unsetenv.
+       * tests/basic.c (test_basic_setenv, test_basic_unsetenv): New tests.
+         (basic_suite): Call test_basic_setenv and test_basic_unsetenv.
+
+Mon Oct 25 14:31:41 BST 2010  Colin Watson  <cjwatson@debian.org>
+
+       * gnulib: Import mkstemp module.
+       * tests/Makefile.am (TESTS): Add redirect.
+         (LIBPIPELINE): Rename to ...
+         (LIBS): ... this, and add libgnu and $(LTLIBOBJS).
+         (AM_CPPFLAGS): Add -I$(top_srcdir)/gnulib/lib and
+         -I$(top_builddir)/gnulib/lib.
+         (clean-local): Remove temporary test files.
+         (basic_LDADD): Use $(LIBS) rather than $(LIBPIPELINE).
+         (redirect_SOURCES, redirect_LDADD): Add.
+       * tests/redirect.c: New file.
+       * .bzrignore: Add gnulib/lib/time.h and tests/redirect.
+
+       * lib/Makefile.am (libpipeline_la_CPPFLAGS): Remove spurious
+         -I$(top_builddir)/include.
+
+Mon Oct 25 14:30:14 BST 2010  Colin Watson  <cjwatson@debian.org>
+
+       * lib/pipeline.c (pipeline_start): Fix typo that broke
+         pipeline_want_infile.
+
+Mon Oct 25 13:38:40 BST 2010  Colin Watson  <cjwatson@debian.org>
+
+       Start test suite.
+
+       * lib/Makefile.am (libpipeline_la_LDFLAGS): Remove -module; this
+         introduces too many complications for now.
+
+       * configure.ac: Test for check >= 0.9.4.
+         (AC_CONFIG_FILES): Add tests/Makefile.
+       * Makefile.am (SUBDIRS): Add tests if check was found.
+       * tests/Makefile.am: New file.
+       * tests/basic.c: New file.
+       * .bzrignore: Add tests/basic.
+
+Sun Oct 24 22:22:21 BST 2010  Colin Watson  <cjwatson@debian.org>
+
+       * lib/pipeline.c (command_start_child): Add trailing newline to
+         "nice failed" debug message.
+
+Sun Oct 24 22:21:20 BST 2010  Colin Watson  <cjwatson@debian.org>
+
+       Make command and pipeline opaque types.
+
+       * lib/pipeline.c (command_nice, command_discard_err,
+         pipeline_get_ncommands, pipeline_get_command,
+         pipeline_set_command, pipeline_want_in, pipeline_want_out,
+         pipeline_want_infile, pipeline_want_outfile,
+         pipeline_ignore_signals): New functions.
+       * lib/pipeline.h (command_nice, command_discard_err,
+         pipeline_get_ncommands, pipeline_get_command,
+         pipeline_set_command, pipeline_want_in, pipeline_want_out,
+         pipeline_want_infile, pipeline_want_outfile,
+         pipeline_ignore_signals): Add prototypes.
+       * man/libpipeline.3 (DESCRIPTION): Document new functions.
+
+       * lib/pipeline.h (enum command_tag, struct command_env, struct
+         command, struct pipeline): Move to ...
+       * lib/pipeline-private.h (enum command_tag, struct command_env,
+         struct command, struct pipeline): ... here.
+       * man/libpipeline.3 (Public command fields, Public pipeline fields):
+         Remove.
+
+       Redirections are now handled slightly differently internally,
+       allowing redirection from/to fd 0.
+
+       * lib/pipeline.c (pipeline_new, pipeline_join): Set redirect_in and
+         redirect_out.
+         (pipeline_connect): Use pipeline_want_in and pipeline_want_out.
+         Check source->redirect_out.
+         (pipeline_start): Handle new redirection semantics.
+       * man/libpipeline.3 (EXAMPLES): Use pipeline_want_infile.
+
+       * man/libpipeline.3 (DESCRIPTION): Document string copying.
+         (Reaping of child processes): New subsection.
+
+Tue Oct 19 01:43:29 BST 2010  Colin Watson  <cjwatson@debian.org>
+
+       Make debugging work properly in a library context.
+
+       * lib/debug.c (init_debug): Check whether we've already been
+         initialised.
+         (debug): Call init_debug.
+       * lib/pipeline-private.h (init_debug): Add prototype.
+       * lib/pipeline.c (pipeline_start, pipeline_wait): Call init_debug.
+
+Tue Oct 19 01:42:47 BST 2010  Colin Watson  <cjwatson@debian.org>
+
+       * man/libpipeline.3: Bump licence header to GPLv3, since that more
+         accurately describes the whole package.
+
+Tue Oct 19 01:41:59 BST 2010  Colin Watson  <cjwatson@debian.org>
+
+       * man/Makefile.am (install-data-hook): Handle repeated
+         installations.
+         (uninstall-hook): Add.
+
+Tue Oct 19 01:39:54 BST 2010  Colin Watson  <cjwatson@debian.org>
+
+       * lib/pipeline-private.h: Move attribute macros to ...
+       * lib/pipeline.h: ... here, and make them namespace-safe.  Update
+         all users.
+
+Mon Oct 18 11:32:52 BST 2010  Colin Watson  <cjwatson@debian.org>
+
+       * lib/pipeline.c (pipeline_run): This would be a more convenient
+         wrapper for the common case if it freed the pipeline as well, so
+         do that.  (Callers that don't want this should call pipeline_start
+         and pipeline_wait separately.)
+       * lib/pipeline.h (pipeline_run): Update comment.
+       * man/libpipeline.3 (Functions to build pipelines): Update
+         pipeline_run documentation.
+         (EXAMPLES): Remove now-unnecessary calls to pipeline_free.
+
+Mon Oct 18 11:29:11 BST 2010  Colin Watson  <cjwatson@debian.org>
+
+       * lib/pipeline.c (pipeline_new_command_args): New function.
+       * lib/pipeline.h (pipeline_new_command_args): Add prototype.
+       * man/libpipeline.3 (Functions to build pipelines): Add
+         pipeline_new_command_args.
+         (EXAMPLES): Use this to describe the simplest case.
+
+Mon Oct 18 11:10:27 BST 2010  Colin Watson  <cjwatson@debian.org>
+
+       * lib/pipeline.c (pipeline_run): New function.
+       * lib/pipeline.h (pipeline_run): Add prototype.
+       * man/libpipeline.3 (Functions to run pipelines and handle signals):
+         Add pipeline_run.
+         (EXAMPLES): Use it.
+
+Mon Oct 18 11:07:16 BST 2010  Colin Watson  <cjwatson@debian.org>
+
+       * man/libpipeline.3 (DESCRIPTION): Add some more paragraph breaks.
+
+Fri Oct 15 10:26:02 BST 2010  Colin Watson  <cjwatson@debian.org>
+
+       * lib/libpipeline.pc.in: Add copyright/licensing comment.
+       * man/libpipeline.3: Add brief licensing comment.
+
+Thu Oct 14 00:49:34 BST 2010  Colin Watson  <cjwatson@debian.org>
+
+       * README (Copyright and licensing): Bump to GPLv3 or later, for
+         clarity.  (lib/* remains licensed under GPLv2 or later, but the
+         work as a whole is GPLv3 or later.)  Move further advice to ...
+         (Note on GPL versions): ... here, and expand.
+
+Tue Oct 12 01:12:13 BST 2010  Colin Watson  <cjwatson@debian.org>
+
+       * README: New file.
+       * INSTALL: New file.
+
+Tue Oct 12 01:01:04 BST 2010  Colin Watson  <cjwatson@debian.org>
+
+       * COPYING: New file.
+
+       * autogen.sh: Add a copyright/licence notice.
+       * configure.ac: Likewise.
+
+       * lib/pipeline-private.h: Update copyright years.
+
+Tue Oct 12 00:52:00 BST 2010  Colin Watson  <cjwatson@debian.org>
+
+       * man/libpipeline.3: Add a licence notice.
+
+Tue Oct 12 00:27:01 BST 2010  Colin Watson  <cjwatson@debian.org>
+
+       * autogen.sh: Stop setting AUTOPOINT=true.
+       * configure.ac: Stop echoing DBLIBS (specific to man-db).
+
+Tue Oct 12 00:22:00 BST 2010  Colin Watson  <cjwatson@debian.org>
+
+       * configure.ac: Remove check for gnulib/po/Makefile.in.in.
+
+Tue Oct 12 00:17:53 BST 2010  Colin Watson  <cjwatson@debian.org>
+
+       Remove gettext support.  It's overkill for a library considering
+       that we only emit error messages, and it vastly inflates the size of
+       our configuration requirements.
+
+       * Makefile.am (SUBDIRS): Remove gnulib/po and po.
+         (EXTRA_DIST): Remove everything except gnulib/m4/sockpfaf.m4.
+       * autogen.sh: Remove call to autopoint and removal of po/ChangeLog.
+       * configure.ac: Remove calls to AM_GNU_GETTEXT and
+         AM_GNU_GETTEXT_VERSION.  Stop substituting LINGUAS.
+         (AC_CONFIG_FILES): Remove gnulib/po/Makefile.in and
+         po/Makefile.in.
+       * gnulib/m4/gnulib-cache.m4: Remove --po-base and --po-domain
+         options.  Remove gettext module.
+       * lib/Makefile.am (libpipeline_la_LIBADD): Remove @LTLIBINTL@.
+       * lib/pipeline.c (command_new_argstr, command_start_child),
+         pipeline_get_infile, pipeline_get_outfile,
+         pipeline_install_sigchld, pipeline_start, pipeline_wait,
+         pipeline_pump): Remove gettext support.
+       * po/*: Remove.
+       * .bzrignore: Remove gnulib/po and po/*.
+
+Mon Oct 11 21:25:37 BST 2010  Colin Watson  <cjwatson@debian.org>
+
+       * autogen.sh: Remove po/ChangeLog after running autoreconf.
+       * .bzrignore: Remove po/ChangeLog.
+
+       * Makefile.am (EXTRA_DIST): Add gnulib/m4/codeset.m4,
+         gnulib/m4/fcntl-o.m4, and gnulib/m4/glibc21.m4.
+
+       * po/LINGUAS: New file.
+
+Mon Oct 11 18:19:37 BST 2010  Colin Watson  <cjwatson@debian.org>
+
+       * man/Makefile.am (man3_MANS): Move to ...
+         (dist_man3_MANS): ... here.
+
+Mon Oct 11 17:51:16 BST 2010  Colin Watson  <cjwatson@debian.org>
+
+       * Makefile.am (SUBDIRS): Add man.
+       * configure.ac (AC_PROG_LN_S): Add.
+         (AC_CONFIG_FILES): Add man/Makefile.
+       * man/Makefile.am: New file.
+       * man/libpipeline.3: New file.
+
+Mon Oct 11 16:38:29 BST 2010  Colin Watson  <cjwatson@debian.org>
+
+       * lib/pipeline.h (pipeline_pump): Mention in comment that arguments
+         must be NULL-terminated.
+
+Mon Oct 11 14:10:54 BST 2010  Colin Watson  <cjwatson@debian.org>
+
+       * lib/pipeline.h (pipeline_new_commandv): Fix comment.
+
+Thu Oct  7 08:05:41 BST 2010  Colin Watson  <cjwatson@debian.org>
+
+       * lib/libpipeline.pc.in: New file.
+       * configure.ac (AC_CONFIG_FILES): Add lib/libpipeline.pc.
+       * lib/Makefile.am (pkgconfigdir, pkgconfig_DATA): Install
+         libpipeline.pc to $(libdir)/pkgconfig.
+       * .bzrignore: Add lib/libpipeline.pc.
+
+Thu Oct  7 07:56:27 BST 2010  Colin Watson  <cjwatson@debian.org>
+
+       * po/libpipeline.pot: Update.
+       * po/*.po: Import translations from man-db.
+
+Thu Oct  7 07:54:12 BST 2010  Colin Watson  <cjwatson@debian.org>
+
+       * lib/Makefile.am (libpipeline_la_SOURCES): Add pipeline-private.h.
+
+Thu Oct  7 07:49:46 BST 2010  Colin Watson  <cjwatson@debian.org>
+
+       * release.sh: New file, from man-db.
+
+Thu Oct  7 07:48:12 BST 2010  Colin Watson  <cjwatson@debian.org>
+
+       Build independently from man-db.  Many new files from gettextize,
+       gnulib-tool, and autoreconf.
+
+       * lib/appendstr.c: New file, from man-db.
+       * lib/debug.c: Likewise.
+       * m4/pipeline-gcc-warning.m4: Likewise.
+       * m4/pipeline-socketpair.m4: Likewise.
+
+       * lib/pipeline-private.h: New file.
+
+       * lib/pipeline.c (command_new_argstr): Use strcmp rather than STREQ.
+         (pipeline_install_post_fork): New function.
+         (pipeline_start): Call post-fork handler rather than hardcoding
+         pop_all_cleanups.
+       * lib/pipeline.h (pipeline_install_post_fork): Add prototype.
+
+       * lib/pipeline.c: Update copyright notice for libpipeline.
+       * lib/pipeline.h: Likewise.
+
+       * gnulib: Import dirname, error, gettext, lib-ignore, setenv,
+         sigaction, signal, sigprocmask, strerror, strsignal, sys_select,
+         xalloc, xstrndup, and xvasprintf modules.
+
+       * Makefile.am: New file.
+       * NEWS: New file.
+       * autogen.sh: New file.
+       * configure.ac: New file.
+       * lib/Makefile.am: New file.
+       * .bzrignore: New file.
+
+Entries below this point are edited versions of entries in man-db.
+
+Sun Oct  3 23:57:45 BST 2010  Colin Watson  <cjwatson@debian.org>
+
+       * lib/pipeline.c (command_argf): New function.
+       * lib/pipeline.h (command_argf): Add prototype.
+
+Sun Oct  3 22:34:13 BST 2010  Colin Watson  <cjwatson@debian.org>
+
+       * lib/pipeline.c (reap_children, pipeline_sigchld,
+         pipeline_install_sigchld): Move above pipeline_start.
+         (pipeline_install_sigchld): Make static.  Return immediately if
+         already installed.
+         (pipeline_start): Call pipeline_install_sigchld.
+       * lib/pipeline.h (pipeline_start): Document that this installs a
+         SIGCHLD handler.
+         (pipeline_install_sigchld): Remove prototype.
+
+Tue Mar  2 10:04:54 GMT 2010  Colin Watson  <cjwatson@debian.org>
+
+       Fix assertion failure on 'man -l' with an uncompressed page and
+       prefixed input (no-hyphenation, no-justification, or a non-English
+       page).
+
+       * lib/pipeline.c (command_new_passthrough): New function.
+       * lib/pipeline.h (command_new_passthrough): Add prototype.
+
+Mon Feb  1 12:18:36 PST 2010  Colin Watson  <cjwatson@debian.org>
+
+       * lib/pipeline.c (pipeline_wait): Don't bother printing error
+         messages for SIGINT and SIGQUIT, since these correspond to
+         explicit user actions (Debian bug #568000).
+
+Wed Jan 13 23:42:00 GMT 2010  Werner Fink  <werner@suse.de>
+
+       Add support for using socketpair(2) as a replacement for pipe(2),
+       which is faster on some systems (Savannah patch #6741).
+
+       * lib/pipeline.c [USE_SOCKETPAIR_PIPE]: Redefine pipe() to a
+         construction based on socketpair().
+
+Tue Jan 12 13:33:51 GMT 2010  Samuel Thibault  <sthibault@debian.org>
+
+       * lib/pipeline.c (pipeline_pump): Fix off-by-one error when write
+         returns EAGAIN (Debian bug #564818).
+
+Sat Nov 14 18:52:15 GMT 2009  Colin Watson  <cjwatson@debian.org>
+
+       * lib/pipeline.c (argstr_get_word): Fix a small memory leak.
+
+Sat Nov 14 10:23:28 GMT 2009  Colin Watson  <cjwatson@debian.org>
+
+       * lib/pipeline.c (command_new_sequence, command_sequence_command):
+         New functions.
+         (command_dup, command_dump, command_tostring, command_free):
+         Handle commands of type COMMAND_SEQUENCE.
+         (pipeline_start): Move command execution to ...
+         (command_start_child): ... here (new function). Handle commands of
+         type COMMAND_SEQUENCE.
+       * lib/pipeline.h (enum command_tag): Add COMMAND_SEQUENCE.
+         (struct command): Add support for commands that consist of a
+         sequence of commands.
+         (command_new_sequence, command_sequence_command): Add prototypes.
+
+Thu Sep 24 12:32:48 BST 2009  Colin Watson  <cjwatson@debian.org>
+
+       * lib/pipeline.c (pipeline_pump): When a source pipeline dies, make
+         sure to drain its output before discarding its output file
+         descriptor (Debian bug #548153). We still record the death to
+         avoid duplicate debugging messages.
+
+Sun Aug 23 15:49:45 BST 2009  Colin Watson  <cjwatson@debian.org>
+
+       * lib/pipeline.c (command_dup): Fix newcmd->nenv assertion.
+
+Sun Aug 23 15:41:32 BST 2009  Colin Watson  <cjwatson@debian.org>
+
+       * lib/pipeline.c (command_dup, command_setenv): cmd->env does not
+         need to be { NULL, NULL }-terminated.
+
+Sun Aug 23 00:04:56 BST 2009  Colin Watson  <cjwatson@debian.org>
+
+       * lib/pipeline.c (command_setenv): New function, allowing
+         application code to ask for environment variables to be set when a
+         command is executed.
+         (command_new, command_new_function, command_dup, command_dump,
+         command_tostring, command_free): Handle new nenv, env_max, and env
+         members of 'struct command'.
+         (argstr_get_word): Add TODO comment for environment variable
+         support.
+         (pipeline_start): Set environment variables as requested.
+       * lib/pipeline.h (struct command_env): New structure.
+         (struct command): Add nenv, env_max, and env members.
+         (command_setenv): Add prototype.
+
+Sun Jun 28 01:47:51 BST 2009  Colin Watson  <cjwatson@debian.org>
+
+       * lib/pipeline.c (pipeline_free): Free buffer and line_cache.
+
+Sun Jun 28 01:40:24 BST 2009  Colin Watson  <cjwatson@debian.org>
+
+       * lib/pipeline.c (get_line): Limit newline search to the data length
+         returned by get_block, fixing an assertion failure.
+
+Sat May 30 12:50:44 BST 2009  Colin Watson  <cjwatson@debian.org>
+
+       * lib/pipeline.c (pipeline_start): Check the return value of nice.
+
+Mon Nov 17 11:07:50 GMT 2008  Colin Watson  <cjwatson@debian.org>
+
+       * lib/pipeline.c (command_new_function): Initialise discard_err.
+         (pipeline_start): Zero-initialise pids and statuses arrays on
+         allocation, and don'\''t unblock SIGCHLD until after doing so.
+
+Mon Nov 17 00:39:14 GMT 2008  Colin Watson  <cjwatson@debian.org>
+
+       * lib/pipeline.c (pipeline_wait): Mangle return value into a value
+         suitable for passing to exit (Debian bug #477305).
+
+Mon Sep  8 09:09:06 BST 2008  Colin Watson  <cjwatson@debian.org>
+
+       Add support for freeing command_function data.
+
+       * lib/pipeline.c (command_new_function): Add free_func argument.
+         (command_dup): Copy it.
+         (pipeline_connect): Adjust command_new_function call.
+         (pipeline_start): Free command_function data before exiting.
+         (pipeline_wait): Free command_function data while cleaning up
+         pipeline.
+       * lib/pipeline.h: Add command_function_free_type typedef.
+         (struct command [struct command_function]): Add free_func member.
+         (command_new_function): Update prototype.
+
+Thu Jul 31 00:51:58 BST 2008  Colin Watson  <cjwatson@debian.org>
+
+       * lib/pipeline.c (pipeline_pump): Free known_source before returning
+         (Coverity CID #15).
+
+Sun May  4 23:16:59 BST 2008  Colin Watson  <cjwatson@debian.org>
+
+       * lib/pipeline.c (pipeline_start, pipeline_pump): Zero sigaction
+         structures before using them. (I believe we set all required
+         fields anyway; this is just an extra safety catch.)
+
+Sun Apr 27 11:24:24 BST 2008  Colin Watson  <cjwatson@debian.org>
+
+       * lib/pipeline.c (pipeline_sigchld): assert is not
+         async-signal-safe, so avoid calling it in a signal handler and use
+         an if guard instead (Ubuntu bug #221635, although exactly why the
+         assertion is failing there is unclear).
+
+Sun Feb 17 17:13:55 GMT 2008  Colin Watson  <cjwatson@debian.org>
+
+       * lib/pipeline.c (pipeline_wait): Call strsignal rather than
+         xstrsignal.
+
+Sun Jan 27 13:42:31 GMT 2008  Colin Watson  <cjwatson@debian.org>
+
+       * lib/pipeline.c (pipeline_join): Initialise source, buffer, buflen,
+         bufmax, line_cache, and peek_offset.
+
+Sun Jan 27 13:37:17 GMT 2008  Colin Watson  <cjwatson@debian.org>
+
+       * lib/pipeline.h (struct pipeline): Add ignore_signals member.
+       * lib/pipeline.c (pipeline_new): Initialise ignore_signals to 1.
+         (pipeline_join): Set ignore_signals if either input pipeline has
+         it set.
+         (pipeline_start): Only ignore SIGINT and SIGQUIT if ignore_signals
+         is set.
+         (pipeline_wait): Only restore SIGINT and SIGQUIT if ignore_signals
+         is set.
+
+Sun Jan  6 15:01:08 GMT 2008  Colin Watson  <cjwatson@debian.org>
+
+       * lib/pipeline.c (pipeline_start, pipeline_wait,
+         pipeline_install_sigchld, pipeline_pump): Call sigaction rather
+         than xsigaction.
+
+Wed Jan  2 23:30:33 GMT 2008  Colin Watson  <cjwatson@debian.org>
+
+       * lib/pipeline.c (passthrough): Use STDIN_FILENO, STDOUT_FILENO, and
+         STDERR_FILENO macros rather than calling fileno.
+
+Mon Dec 31 10:02:28 GMT 2007  Colin Watson  <cjwatson@debian.org>
+
+       * lib/pipeline.c (passthrough): New helper function.
+         (pipeline_connect): Add special (kludge) handling for zero-command
+         sinks.
+         (pipeline_pump): Add minor commentary.
+
+Wed Oct 17 21:05:50 BST 2007  Colin Watson  <cjwatson@debian.org>
+
+       * lib/pipeline.c: Assume <sys/select.h> and <unistd.h>. Remove
+         duplicate <fcntl.h> inclusion.
+         (command_new): Use base_name.
+
+Mon Oct  8 02:24:19 BST 2007  Colin Watson  <cjwatson@debian.org>
+
+       * lib/pipeline.c (get_block): Use xrealloc instead of realloc.
+
+Mon Oct  8 02:09:55 BST 2007  Colin Watson  <cjwatson@debian.org>
+
+       The strappend function is in the namespace reserved by C99
+       7.26.10/7.26.11; rename it to appendstr.
+
+       * lib/pipeline.c: Update all callers.
+
+Mon Sep 17 00:11:38 UTC 2007  Colin Watson  <cjwatson@debian.org>
+
+       * lib/pipeline.c (pipeline_start): Break after execvp, otherwise we
+         segfault if execvp fails.
+
+Fri Aug 31 04:54:45 BST 2007  Colin Watson  <cjwatson@debian.org>
+
+       * lib/pipeline.c (pipeline_free): Call pipeline_wait if the pipeline
+         is still running.
+       * lib/pipeline.h (pipeline_free): Document that this may happen.
+
+Tue Aug 28 17:19:16 BST 2007  Colin Watson  <cjwatson@debian.org>
+
+       Implement and use a decompression library. This allows cat pages to
+       be saved in the background (Debian bug #18452) and operation with a
+       read-only /tmp (Debian bug #165499).
+  
+       * lib/pipeline.h (struct command): Add support for commands that
+         consist of calling a function rather than executing a process.
+         (struct pipeline): Add want_infile and want_outfile members. Note
+         that infile and outfile default to NULL. Add source, buffer,
+         buflen, bufmax, line_cache, and peek_offset members.
+         (command_new_function, command_dump, command_tostring,
+         pipeline_connect, pipeline_pump, pipeline_read, pipeline_peek,
+         pipeline_peek_size, pipeline_peek_skip, pipeline_readline,
+         pipeline_peekline): New prototypes.
+         (pipeline_join): Update description for want_infile and
+         want_outfile.
+       * lib/pipeline.c (command_new, command_dup, command_arg,
+         command_argv, command_args, command_argstr, command_free): Update
+         for 'struct command' changes.
+         (command_new_function, command_dump, command_tostring): New
+         functions.
+         (pipeline_new, pipeline_join, pipeline_dump, pipeline_tostring):
+         Update for 'struct pipeline' changes.
+         (pipeline_dump): Use command_dump.
+         (pipeline_tostring): Use command_tostring.
+         (pipeline_start): Implement want_infile, want_outfile, and
+         function commands. Make zero-command case work properly (read
+         directly from input file). Flush all pending stdio output so that
+         subprocesses don't inherit it.
+         (pipeline_connect, pipeline_pump, get_block, pipeline_read,
+         pipeline_peek, pipeline_peek_size, pipeline_peek_skip, get_line,
+         pipeline_readline, pipeline_peekline): New functions.
+
+Mon Aug 27 20:02:17 BST 2007  Colin Watson  <cjwatson@debian.org>
+
+       * lib/pipeline.c (pipeline_wait): Re-raise SIGINT or SIGQUIT if they
+         terminate a subprocess.
+
+Mon Aug 27 19:58:19 BST 2007  Colin Watson  <cjwatson@debian.org>
+
+       * lib/pipeline.c (pipeline_wait): Return 1 if we fail to close the
+         pipeline's output.
+
+Mon Aug 20 00:10:49 BST 2007  Colin Watson  <cjwatson@debian.org>
+
+       Discard stderr from formatting processes when outputting to a pager,
+       to avoid visual corruption from any error messages (thanks, Vincent
+       Lefevre; Debian bug #372939).
+  
+       * lib/pipeline.h (struct command): Add discard_err member.
+       * lib/pipeline.c (command_new, command_dup): Initialise discard_err.
+         (pipeline_start): Redirect the child's stderr to /dev/null if
+         discard_err is set.
+
+Sun Mar  4 00:51:30 GMT 2007  Colin Watson  <cjwatson@debian.org>
+
+       Eliminate variable and function shadowing.
+
+       * lib/pipeline.c (pipeline_start): Remove duplicate declarations of
+         set and oset.
+
+Wed Feb 28 22:04:04 GMT 2007  Colin Watson  <cjwatson@debian.org>
+
+       * lib/pipeline.c (pipeline_start): Close inputs and outputs from
+         other active pipelines in all subprocesses.
+
+Wed Feb 28 21:57:24 GMT 2007  Colin Watson  <cjwatson@debian.org>
+
+       * lib/pipeline.c (pipeline_start): Don't ignore SIGPIPE in
+         subprocesses; this has undesirable consequences in some
+         situations.
+         (pipeline_wait): Flatten SIGPIPE exit statuses to zero instead.
+
+Tue Feb 27 20:58:31 GMT 2007  Colin Watson  <cjwatson@debian.org>
+
+       * lib/pipeline.c (pipeline_start): Save previous value of SIGQUIT
+         such that it gets restored as SIGQUIT, not as SIGINT.
+
+Mon Jan  8 10:39:24 GMT 2007  Colin Watson  <cjwatson@debian.org>
+
+       * lib/pipeline.c (pipeline_start, pipeline_wait,
+         pipeline_install_sigchld): Use xsigaction instead of
+         sigaction-plus-EINTR-check.
+
+Tue Dec 26 14:27:59 GMT 2006  Colin Watson  <cjwatson@debian.org>
+
+       * lib/pipeline.c: Include "gettext.h" rather than <libintl.h>. Make
+         sure not to include <locale.h> before "gettext.h", for portability
+         to Solaris.
+
+Sun Sep 17 09:20:33 BST 2006  Colin Watson  <cjwatson@debian.org>
+
+       * lib/pipeline.c (pipeline_start): Ignore SIGPIPE in child processes
+         (Debian bug #387864).
+
+Wed Feb 22 09:44:02 GMT 2006  Colin Watson  <cjwatson@debian.org>
+
+       * lib/pipeline.c (command_new_argstr): Skip "exec" at the start of a
+         command, to make old configuration files work (Debian bug
+         #353959).
+
+Wed Sep 21 10:56:22 BST 2005  Colin Watson  <cjwatson@debian.org>
+
+       * lib/pipeline.c (pipeline_wait): Queue SIGCHLD for the whole time
+         we're collecting child process statuses; we need to keep a careful
+         count of processes. Forget any previous errno before calling
+         reap_children. Should fix Debian bug #326488.
+
+Wed Sep 21 10:10:12 BST 2005  Colin Watson  <cjwatson@debian.org>
+
+       * lib/pipeline.c (pipeline_start, pipeline_wait): Ignore SIGINT and
+         SIGQUIT in the parent while running subprocesses (Debian bug
+         #328982).
+
+Thu Sep  1 14:10:07 BST 2005  Colin Watson  <cjwatson@debian.org>
+
+       * lib/pipeline.c (argstr_get_word): Use an enum for quotemode rather
+         than magic numbers.
+
+Mon Jul 11 18:12:58 BST 2005  Colin Watson  <cjwatson@debian.org>
+
+       * lib/pipeline.c (pipeline_wait): Emit a debugging message.
+
+Mon Jul 11 14:41:52 BST 2005  Colin Watson  <cjwatson@debian.org>
+
+       * include/manconfig.h.in: Define ATTRIBUTE_SENTINEL to a function
+         attribute enabling sentinel checking if using GCC 4.0 or newer.
+         (strappend): Use it.
+       * lib/pipeline.h (command_new_args, command_args,
+         pipeline_new_commands, pipeline_command_args, pipeline_commands):
+         Likewise.
+
+Sun Dec 12 21:48:04 CET 2004  Colin Watson  <cjwatson@debian.org>
+
+       * lib/pipeline.c (pipeline_sigchld): Don't bother saving and
+         restoring errno if SIGCHLD is being queued.
+
+Sun Nov  7 16:07:26 GMT 2004  Colin Watson  <cjwatson@debian.org>
+
+       * lib/pipeline.c (pipeline_wait): Close pipeline output before
+         reaping processes, so that writing processes get SIGPIPE.
+
+Sun Nov  7 16:05:08 GMT 2004  Colin Watson  <cjwatson@debian.org>
+
+       * lib/pipeline.c (pipeline_wait): Fix active process debugging
+         output to include processes without statuses.
+
+Mon Mar  8 11:21:05 GMT 2004  Colin Watson  <cjwatson@debian.org>
+
+       * lib/pipeline.c (pipeline_dump): Show caller-supplied input and
+         output file descriptors.
+
+       * lib/pipeline.c (command_free, pipeline_free): Return safely if
+         argument is NULL.
+       * lib/pipeline.h (command_free, pipeline_free): Document NULL
+         arguments as a safe no-op, like free().
+
+Sun Sep 21 02:17:43 BST 2003  Colin Watson  <cjwatson@debian.org>
+
+       * lib/pipeline.c (pipeline_start): Dump pipeline in debugging mode.
+
+Thu Aug 28 00:40:09 BST 2003  Colin Watson  <cjwatson@debian.org>
+
+       * lib/pipeline.c (pipeline_start): Change "couldn't exec %s" to
+         "can't execute %s" in line with src/man.c, to make translators'
+         lives easier.
+         (pipeline_wait): Separate "%s: %s%s" into two translatable
+         strings: the "(core dumped)" portion should definitely be
+         translated.
+
+Fri Aug 15 18:05:37 BST 2003  Colin Watson  <cjwatson@debian.org>
+
+       * lib/pipeline.c: Include <libgen.h> instead of relying on
+         basename() prototype in manconfig.h.
+
+Sat Aug  9 18:28:01 BST 2003  Colin Watson  <cjwatson@debian.org>
+
+       Replace the old "wait() for one child at a time" approach with a
+       SIGCHLD-handling edifice that collects children's exit statuses as
+       they die.
+
+       * lib/pipeline.c (pipeline_new): Initialize statuses.
+         (pipeline_join): Set statuses to NULL in joined pipeline.
+         (pipeline_join, pipeline_get_infile, pipeline_get_outfile,
+         pipeline_start, pipeline_wait): Assert that statuses field is NULL
+         or non-NULL as appropriate.
+         (pipeline_free): Free statuses if necessary.
+
+         (pipeline_start): Add p to a new active_pipelines array, to be
+         used while reaping children. Initialize statuses elements to -1.
+         Block SIGCHLD while forking children.
+         (reap_children): New function. Delivers collected exit statuses
+         into statuses fields of entries in active_pipelines.
+         (pipeline_wait): Rather than wait()ing manually here, check
+         whether any statuses have been picked up by the SIGCHLD handler,
+         and if not call reap_children(). Remove now-obsolete TODO comment.
+         (pipeline_sigchld): New function, the SIGCHLD handler.
+         (pipeline_install_sigchld): New function, to be called once per
+         program.
+
+         (pipeline_start, pipeline_wait): Add minimal debugging
+         information.
+
+       * lib/pipeline.h: Prototype new functions.
+         (struct pipeline): New statuses member.
+
+Sat Aug  9 17:00:12 BST 2003  Colin Watson  <cjwatson@debian.org>
+
+       * lib/pipeline.c (command_dup): Copy cmd->nice.
+         (pipeline_command): Correct condition for growing commands array.
+
+Mon Aug  4 19:35:26 BST 2003  Colin Watson  <cjwatson@debian.org>
+
+       * lib/pipeline.c (command_dup): Terminate argv with a NULL.
+         (command_dup, command_arg): Assert that argc < argv_max after
+         changing either.
+
+Mon Aug  4 19:30:22 BST 2003  Colin Watson  <cjwatson@debian.org>
+
+       * lib/pipeline.c (pipeline_dump): New function to dump a printable
+         representation of a pipeline to a stream.
+         (pipeline_tostring): Likewise, but to a newly allocated string.
+       * lib/pipeline.h: Prototype these.
+
+Mon Aug  4 12:03:38 BST 2003  Colin Watson  <cjwatson@debian.org>
+
+       * lib/pipeline.c (argstr_get_word): Plug some memory leaks.
+
+Mon Aug  4 01:05:12 BST 2003  Colin Watson  <cjwatson@debian.org>
+
+       * lib/pipeline.c (pipeline_wait): The return value was a bit
+         groff-specific. Now just return the status of the last command in
+         the pipeline, as reported by wait().
+
+Mon Aug  4 00:31:44 BST 2003  Colin Watson  <cjwatson@debian.org>
+
+       Add support for getting stdio streams for input and output. Needs
+       library support because pipeline_wait() needs to know to close the
+       stream rather than the underlying file descriptor.
+
+       * lib/pipeline.h (struct pipeline): New infile and outfile members.
+         (pipeline_get_infile, pipeline_get_outfile): Add prototypes.
+       * lib/pipeline.c (pipeline_new): Initialize infile and outfile.
+         (pipeline_join): Likewise.
+         (pipeline_get_infile, pipeline_get_outfile): New functions.
+         (pipeline_wait): Check for infile and outfile and fclose() them in
+         preference to close()ing infd and outfd. Check for errors on
+         close().
+
+Sun Aug  3 23:59:18 BST 2003  Colin Watson  <cjwatson@debian.org>
+
+       * lib/pipeline.c (pipeline_start): Use dup2() instead of close()
+         then dup().
+
+Sun Aug  3 23:52:14 BST 2003  Colin Watson  <cjwatson@debian.org>
+
+       infd and outfd should now only be set by pipeline_start(). Positive
+       values in want_in and want_out now indicate caller-supplied file
+       descriptors, while negative values indicate a request for
+       pipeline_start() to create a pipe.
+
+       * lib/pipeline.h (struct pipeline): Document this.
+       * lib/pipeline.c (pipeline_start): Implement it. Caller-supplied
+         input and output file descriptors previously didn't work properly.
+         (pipeline_wait): Update TODO comment.
+
+Sun Aug  3 21:07:46 BST 2003  Colin Watson  <cjwatson@debian.org>
+
+       * lib/pipeline.h (struct command): New 'nice' member.
+       * lib/pipeline.c (command_new): Initialize nice.
+         (pipeline_start): Change child process priority if nice is set.
+
+Sun Aug  3 20:50:35 BST 2003  Colin Watson  <cjwatson@debian.org>
+
+       * lib/pipeline.c (pipeline_start): Pop all cleanups in child.
+
+Sun Aug  3 20:47:24 BST 2003  Colin Watson  <cjwatson@debian.org>
+
+       * lib/pipeline.c (argstr_get_word, command_new_argstr,
+         command_argstr, pipeline_command_argstr): New functions to handle
+         constructing commands from shell-quoted strings, such as those
+         found in man-db configuration files. They deliberately handle only
+         a safe subset of shell syntax.
+       * lib/pipeline.h: Prototype command_new_argstr(), command_argstr(),
+         and pipeline_command_argstr().
+
+Sun Aug  3 19:09:59 BST 2003  Colin Watson  <cjwatson@debian.org>
+
+       * lib/pipeline.c (command_dup): New function to duplicate a command.
+         (pipeline_join): New function to join two pipelines together.
+       * lib/pipeline.h: Prototype these.
+
+Sun Aug  3 18:00:59 BST 2003  Colin Watson  <cjwatson@debian.org>
+
+       * lib/pipeline.h (struct pipeline): The writeto, readfrom, writefd,
+         and readfd names turn out to be confusing in calling code. Rename
+         to want_in, want_out, infd, and outfd respectively.
+       * lib/pipeline.c (pipeline_new, pipeline_start, pipeline_wait): Use
+         new names.
+
+Sun Aug  3 16:35:24 BST 2003  Colin Watson  <cjwatson@debian.org>
+
+       Add support in pipeline library for writing input to or reading
+       output from the whole pipeline.
+
+       * lib/pipeline.c (pipeline_new): Initialize writeto, readfrom,
+         writefd, and readfd.
+         (pipeline_start): Create extra pipes as necessary.
+         (pipeline_wait): Expand TODO comment. Close file descriptors from
+         extra pipes if necessary.
+       * lib/pipeline.h (struct pipeline): Add writeto, readfrom, writefd,
+         and readfd.
+
+Sun Aug  3 11:15:17 BST 2003  Colin Watson  <cjwatson@debian.org>
+
+       * lib/pipeline.c: New pipeline library, adapted from that in groff.
+         The interface isn't complete yet; in particular, it can't be a
+         replacement for popen() at the moment.
+       * lib/pipeline.h: New file with pipeline library interface.
index c2543e8..500dc70 100644 (file)
@@ -27,7 +27,8 @@ endif
 dist_noinst_DATA = NEWS
 
 EXTRA_DIST = \
-       .bzrignore \
+       .gitignore \
+       ChangeLog-2013 \
        autogen.sh \
        gnulib/m4/gnulib-cache.m4 \
        gnulib/m4/gnulib-tool.m4 \
@@ -44,3 +45,16 @@ EXTRA_DIST += \
 # http://lists.gnu.org/archive/html/bug-gnulib/2009-03/msg00154.html and
 # thread.
 ACLOCAL_AMFLAGS = -I gnulib/m4 -I m4
+
+dist-hook: gen-ChangeLog
+
+gen_start_date = '2013-11-30 21:08'
+.PHONY: gen-ChangeLog
+gen-ChangeLog:
+       $(AM_V_GEN)if test -d .git; then \
+               $(top_srcdir)/tools/gitlog-to-changelog \
+                       --format='%s%n%n%b%n' \
+                       --since="$(gen_start_date)" > $(distdir)/cl-t; \
+               rm -f $(distdir)/ChangeLog; \
+               mv $(distdir)/cl-t $(distdir)/ChangeLog; \
+       fi
index 2be0786..c0b447c 100644 (file)
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.2 from Makefile.am.
+# Makefile.in generated by automake 1.14 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994-2013 Free Software Foundation, Inc.
@@ -82,10 +82,10 @@ host_triplet = @host@
 subdir = .
 DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
        $(top_srcdir)/configure $(am__configure_deps) \
-       $(srcdir)/config.h.in $(dist_noinst_DATA) COPYING ChangeLog \
-       INSTALL NEWS README TODO tools/ar-lib tools/compile \
-       tools/config.guess tools/config.rpath tools/config.sub \
-       tools/depcomp tools/install-sh tools/missing tools/ltmain.sh \
+       $(srcdir)/config.h.in $(dist_noinst_DATA) COPYING INSTALL NEWS \
+       README TODO tools/ar-lib tools/compile tools/config.guess \
+       tools/config.rpath tools/config.sub tools/depcomp \
+       tools/install-sh tools/missing tools/ltmain.sh \
        $(top_srcdir)/tools/ar-lib $(top_srcdir)/tools/compile \
        $(top_srcdir)/tools/config.guess \
        $(top_srcdir)/tools/config.rpath \
@@ -110,6 +110,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/pipeline-socketpair.m4 \
        $(top_srcdir)/gnulib/m4/include_next.m4 \
        $(top_srcdir)/gnulib/m4/intmax_t.m4 \
        $(top_srcdir)/gnulib/m4/inttypes_h.m4 \
+       $(top_srcdir)/gnulib/m4/largefile.m4 \
        $(top_srcdir)/gnulib/m4/lib-ignore.m4 \
        $(top_srcdir)/gnulib/m4/lib-ld.m4 \
        $(top_srcdir)/gnulib/m4/lib-link.m4 \
@@ -1052,8 +1053,9 @@ dist_noinst_DATA = NEWS
 
 # These macro files are imported by gnulib-tool, but at present not used. We
 # include them in the distribution anyway for maximum consistency.
-EXTRA_DIST = .bzrignore autogen.sh gnulib/m4/gnulib-cache.m4 \
-       gnulib/m4/gnulib-tool.m4 release.sh gnulib/m4/math_h.m4
+EXTRA_DIST = .gitignore ChangeLog-2013 autogen.sh \
+       gnulib/m4/gnulib-cache.m4 gnulib/m4/gnulib-tool.m4 release.sh \
+       gnulib/m4/math_h.m4
 
 # Note that autopoint installs into the first directory here. Yes, this
 # means that it installs into gnulib/m4, so we always run gnulib-tool after
@@ -1061,6 +1063,7 @@ EXTRA_DIST = .bzrignore autogen.sh gnulib/m4/gnulib-cache.m4 \
 # http://lists.gnu.org/archive/html/bug-gnulib/2009-03/msg00154.html and
 # thread.
 ACLOCAL_AMFLAGS = -I gnulib/m4 -I m4
+gen_start_date = '2013-11-30 21:08'
 all: config.h
        $(MAKE) $(AM_MAKEFLAGS) all-recursive
 
@@ -1101,8 +1104,8 @@ $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 $(am__aclocal_m4_deps):
 
 config.h: stamp-h1
-       @if test ! -f $@; then rm -f stamp-h1; else :; fi
-       @if test ! -f $@; then $(MAKE) $(AM_MAKEFLAGS) stamp-h1; else :; fi
+       @test -f $@ || rm -f stamp-h1
+       @test -f $@ || $(MAKE) $(AM_MAKEFLAGS) stamp-h1
 
 stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
        @rm -f stamp-h1
@@ -1287,6 +1290,9 @@ distdir: $(DISTFILES)
              || exit 1; \
          fi; \
        done
+       $(MAKE) $(AM_MAKEFLAGS) \
+         top_distdir="$(top_distdir)" distdir="$(distdir)" \
+         dist-hook
        -test -n "$(am__skip_mode_fix)" \
        || find "$(distdir)" -type d ! -perm -755 \
                -exec chmod u+rwx,go+rx {} \; -o \
@@ -1311,10 +1317,16 @@ dist-xz: distdir
        $(am__post_remove_distdir)
 
 dist-tarZ: distdir
+       @echo WARNING: "Support for shar distribution archives is" \
+                      "deprecated." >&2
+       @echo WARNING: "It will be removed altogether in Automake 2.0" >&2
        tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
        $(am__post_remove_distdir)
 
 dist-shar: distdir
+       @echo WARNING: "Support for distribution archives compressed with" \
+                      "legacy program 'compress' is deprecated." >&2
+       @echo WARNING: "It will be removed altogether in Automake 2.0" >&2
        shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
        $(am__post_remove_distdir)
 
@@ -1521,20 +1533,31 @@ uninstall-am:
 .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \
        am--refresh check check-am clean clean-cscope clean-generic \
        clean-libtool cscope cscopelist-am ctags ctags-am dist \
-       dist-all dist-bzip2 dist-gzip dist-lzip dist-shar dist-tarZ \
-       dist-xz dist-zip distcheck distclean distclean-generic \
-       distclean-hdr distclean-libtool distclean-tags distcleancheck \
-       distdir distuninstallcheck dvi dvi-am html html-am info \
-       info-am install install-am install-data install-data-am \
-       install-dvi install-dvi-am install-exec install-exec-am \
-       install-html install-html-am install-info install-info-am \
-       install-man install-pdf install-pdf-am install-ps \
-       install-ps-am install-strip installcheck installcheck-am \
-       installdirs installdirs-am maintainer-clean \
-       maintainer-clean-generic mostlyclean mostlyclean-generic \
-       mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \
-       uninstall-am
-
+       dist-all dist-bzip2 dist-gzip dist-hook dist-lzip dist-shar \
+       dist-tarZ dist-xz dist-zip distcheck distclean \
+       distclean-generic distclean-hdr distclean-libtool \
+       distclean-tags distcleancheck distdir distuninstallcheck dvi \
+       dvi-am html html-am info info-am install install-am \
+       install-data install-data-am install-dvi install-dvi-am \
+       install-exec install-exec-am install-html install-html-am \
+       install-info install-info-am install-man install-pdf \
+       install-pdf-am install-ps install-ps-am install-strip \
+       installcheck installcheck-am installdirs installdirs-am \
+       maintainer-clean maintainer-clean-generic mostlyclean \
+       mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+       tags tags-am uninstall uninstall-am
+
+
+dist-hook: gen-ChangeLog
+.PHONY: gen-ChangeLog
+gen-ChangeLog:
+       $(AM_V_GEN)if test -d .git; then \
+               $(top_srcdir)/tools/gitlog-to-changelog \
+                       --format='%s%n%n%b%n' \
+                       --since="$(gen_start_date)" > $(distdir)/cl-t; \
+               rm -f $(distdir)/ChangeLog; \
+               mv $(distdir)/cl-t $(distdir)/ChangeLog; \
+       fi
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/NEWS b/NEWS
index ca0592a..31fc3e6 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,13 @@
+libpipeline 1.2.5 (3 December 2013)
+===================================
+
+pipeline_want_infile and pipeline_want_outfile now take copies of their file
+name arguments.
+
+Restore compatibility with Automake 1.10.
+
+Build with large file support on systems where it is available.
+
 libpipeline 1.2.4 (6 June 2013)
 ===============================
 
index 86ed398..2826fc5 100644 (file)
@@ -1,4 +1,4 @@
-# generated automatically by aclocal 1.13.2 -*- Autoconf -*-
+# generated automatically by aclocal 1.14 -*- Autoconf -*-
 
 # Copyright (C) 1996-2013 Free Software Foundation, Inc.
 
@@ -180,7 +180,7 @@ else
 fi[]dnl
 ])# PKG_CHECK_MODULES
 
-# po.m4 serial 20 (gettext-0.18.2)
+# po.m4 serial 21 (gettext-0.18.3)
 dnl Copyright (C) 1995-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -207,6 +207,7 @@ AC_DEFUN([AM_PO_SUBDIRS],
   AC_REQUIRE([AC_PROG_MAKE_SET])dnl
   AC_REQUIRE([AC_PROG_INSTALL])dnl
   AC_REQUIRE([AC_PROG_MKDIR_P])dnl
+  AC_REQUIRE([AC_PROG_SED])dnl
   AC_REQUIRE([AM_NLS])dnl
 
   dnl Release version of the gettext macros. This is used to ensure that
@@ -645,10 +646,10 @@ AC_DEFUN([AM_XGETTEXT_OPTION],
 # generated from the m4 files accompanying Automake X.Y.
 # (This private macro should not be called outside this file.)
 AC_DEFUN([AM_AUTOMAKE_VERSION],
-[am__api_version='1.13'
+[am__api_version='1.14'
 dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
 dnl require some minimum version.  Point them to the right macro.
-m4_if([$1], [1.13.2], [],
+m4_if([$1], [1.14], [],
       [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
 ])
 
@@ -664,7 +665,7 @@ m4_define([_AM_AUTOCONF_VERSION], [])
 # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
 # This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
 AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
-[AM_AUTOMAKE_VERSION([1.13.2])dnl
+[AM_AUTOMAKE_VERSION([1.14])dnl
 m4_ifndef([AC_AUTOCONF_VERSION],
   [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
 _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
@@ -689,7 +690,8 @@ AC_CHECK_TOOLS([AR], [ar lib "link -lib"], [false])
 : ${AR=ar}
 
 AC_CACHE_CHECK([the archiver ($AR) interface], [am_cv_ar_interface],
-  [am_cv_ar_interface=ar
+  [AC_LANG_PUSH([C])
+   am_cv_ar_interface=ar
    AC_COMPILE_IFELSE([AC_LANG_SOURCE([[int some_variable = 0;]])],
      [am_ar_try='$AR cru libconftest.a conftest.$ac_objext >&AS_MESSAGE_LOG_FD'
       AC_TRY_EVAL([am_ar_try])
@@ -706,7 +708,7 @@ AC_CACHE_CHECK([the archiver ($AR) interface], [am_cv_ar_interface],
       fi
       rm -f conftest.lib libconftest.a
      ])
-   ])
+   AC_LANG_POP([C])])
 
 case $am_cv_ar_interface in
 ar)
@@ -1090,6 +1092,12 @@ AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
 # This macro actually does too much.  Some checks are only needed if
 # your package does certain things.  But this isn't really a big deal.
 
+dnl Redefine AC_PROG_CC to automatically invoke _AM_PROG_CC_C_O.
+m4_define([AC_PROG_CC],
+m4_defn([AC_PROG_CC])
+[_AM_PROG_CC_C_O
+])
+
 # AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
 # AM_INIT_AUTOMAKE([OPTIONS])
 # -----------------------------------------------
@@ -1198,7 +1206,48 @@ dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below.
 AC_CONFIG_COMMANDS_PRE(dnl
 [m4_provide_if([_AM_COMPILER_EXEEXT],
   [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl
-])
+
+# POSIX will say in a future version that running "rm -f" with no argument
+# is OK; and we want to be able to make that assumption in our Makefile
+# recipes.  So use an aggressive probe to check that the usage we want is
+# actually supported "in the wild" to an acceptable degree.
+# See automake bug#10828.
+# To make any issue more visible, cause the running configure to be aborted
+# by default if the 'rm' program in use doesn't match our expectations; the
+# user can still override this though.
+if rm -f && rm -fr && rm -rf; then : OK; else
+  cat >&2 <<'END'
+Oops!
+
+Your 'rm' program seems unable to run without file operands specified
+on the command line, even when the '-f' option is present.  This is contrary
+to the behaviour of most rm programs out there, and not conforming with
+the upcoming POSIX standard: <http://austingroupbugs.net/view.php?id=542>
+
+Please tell bug-automake@gnu.org about your system, including the value
+of your $PATH and any error possibly output before this message.  This
+can help us improve future automake versions.
+
+END
+  if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then
+    echo 'Configuration will proceed anyway, since you have set the' >&2
+    echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2
+    echo >&2
+  else
+    cat >&2 <<'END'
+Aborting the configuration process, to ensure you take notice of the issue.
+
+You can download and install GNU coreutils to get an 'rm' implementation
+that behaves properly: <http://www.gnu.org/software/coreutils/>.
+
+If you want to complete the configuration process using your problematic
+'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM
+to "yes", and re-run configure.
+
+END
+    AC_MSG_ERROR([Your 'rm' program is bad, sorry.])
+  fi
+fi])
 
 dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion.  Do not
 dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further
@@ -1206,7 +1255,6 @@ dnl mangled by Autoconf and run in a shell conditional statement.
 m4_define([_AC_COMPILER_EXEEXT],
 m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])])
 
-
 # When config.status generates a header, we must update the stamp-h file.
 # This file resides in the same directory as the config header
 # that is generated.  The stamp files are numbered to have different names.
@@ -1354,38 +1402,6 @@ AC_MSG_RESULT([$_am_result])
 rm -f confinc confmf
 ])
 
-# Copyright (C) 1999-2013 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# AM_PROG_CC_C_O
-# --------------
-# Like AC_PROG_CC_C_O, but changed for automake.
-AC_DEFUN([AM_PROG_CC_C_O],
-[AC_REQUIRE([AC_PROG_CC_C_O])dnl
-AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
-AC_REQUIRE_AUX_FILE([compile])dnl
-# FIXME: we rely on the cache variable name because
-# there is no other way.
-set dummy $CC
-am_cc=`echo $[2] | sed ['s/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/']`
-eval am_t=\$ac_cv_prog_cc_${am_cc}_c_o
-if test "$am_t" != yes; then
-   # Losing compiler, so override with the script.
-   # FIXME: It is wrong to rewrite CC.
-   # But if we don't then we get into trouble of one sort or another.
-   # A longer-term fix would be to have automake use am__CC in this case,
-   # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
-   CC="$am_aux_dir/compile $CC"
-fi
-dnl Make sure AC_PROG_CC is never called again, or it will override our
-dnl setting of CC.
-m4_define([AC_PROG_CC],
-          [m4_fatal([AC_PROG_CC cannot be called after AM_PROG_CC_C_O])])
-])
-
 # Fake the existence of programs that GNU maintainers use.  -*- Autoconf -*-
 
 # Copyright (C) 1997-2013 Free Software Foundation, Inc.
@@ -1456,6 +1472,70 @@ AC_DEFUN([_AM_SET_OPTIONS],
 AC_DEFUN([_AM_IF_OPTION],
 [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
 
+# Copyright (C) 1999-2013 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# _AM_PROG_CC_C_O
+# ---------------
+# Like AC_PROG_CC_C_O, but changed for automake.  We rewrite AC_PROG_CC
+# to automatically call this.
+AC_DEFUN([_AM_PROG_CC_C_O],
+[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+AC_REQUIRE_AUX_FILE([compile])dnl
+AC_LANG_PUSH([C])dnl
+AC_CACHE_CHECK(
+  [whether $CC understands -c and -o together],
+  [am_cv_prog_cc_c_o],
+  [AC_LANG_CONFTEST([AC_LANG_PROGRAM([])])
+  # Make sure it works both with $CC and with simple cc.
+  # Following AC_PROG_CC_C_O, we do the test twice because some
+  # compilers refuse to overwrite an existing .o file with -o,
+  # though they will create one.
+  am_cv_prog_cc_c_o=yes
+  for am_i in 1 2; do
+    if AM_RUN_LOG([$CC -c conftest.$ac_ext -o conftest2.$ac_objext]) \
+         && test -f conftest2.$ac_objext; then
+      : OK
+    else
+      am_cv_prog_cc_c_o=no
+      break
+    fi
+  done
+  rm -f core conftest*
+  unset am_i])
+if test "$am_cv_prog_cc_c_o" != yes; then
+   # Losing compiler, so override with the script.
+   # FIXME: It is wrong to rewrite CC.
+   # But if we don't then we get into trouble of one sort or another.
+   # A longer-term fix would be to have automake use am__CC in this case,
+   # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
+   CC="$am_aux_dir/compile $CC"
+fi
+AC_LANG_POP([C])])
+
+# For backward compatibility.
+AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])])
+
+# Copyright (C) 2001-2013 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_RUN_LOG(COMMAND)
+# -------------------
+# Run COMMAND, save the exit status in ac_status, and log it.
+# (This has been adapted from Autoconf's _AC_RUN_LOG macro.)
+AC_DEFUN([AM_RUN_LOG],
+[{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD
+   ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD
+   ac_status=$?
+   echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
+   (exit $ac_status); }])
+
 # Check to make sure that the build environment is sane.    -*- Autoconf -*-
 
 # Copyright (C) 1996-2013 Free Software Foundation, Inc.
@@ -1795,6 +1875,7 @@ m4_include([gnulib/m4/gnulib-comp.m4])
 m4_include([gnulib/m4/include_next.m4])
 m4_include([gnulib/m4/intmax_t.m4])
 m4_include([gnulib/m4/inttypes_h.m4])
+m4_include([gnulib/m4/largefile.m4])
 m4_include([gnulib/m4/lib-ignore.m4])
 m4_include([gnulib/m4/lib-ld.m4])
 m4_include([gnulib/m4/lib-link.m4])
index e608994..720cb9a 100644 (file)
 /* Define to a substitute value for mmap()'s MAP_ANONYMOUS flag. */
 #undef MAP_ANONYMOUS
 
-/* Define to 1 if your C compiler doesn't accept -c and -o together. */
-#undef NO_MINUS_C_MINUS_O
-
 /* Name of package */
 #undef PACKAGE
 
 # endif
 #endif
 
+/* Enable large inode numbers on Mac OS X 10.5. */
+#undef _DARWIN_USE_64_BIT_INODE
+
+/* Number of bits in a file offset, on hosts where this is settable. */
+#undef _FILE_OFFSET_BITS
+
 /* Define to 1 if Gnulib overrides 'struct stat' on Windows so that struct
    stat.st_size becomes 64-bit. */
 #undef _GL_WINDOWS_64_BIT_ST_SIZE
 
+/* Define for large files, on AIX-style hosts. */
+#undef _LARGE_FILES
+
 /* Define to 1 if on MINIX. */
 #undef _MINIX
 
index b14a07a..cefec89 100755 (executable)
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for libpipeline 1.2.4.
+# Generated by GNU Autoconf 2.69 for libpipeline 1.2.5.
 #
 # Report bugs to <cjwatson@debian.org>.
 #
@@ -590,8 +590,8 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='libpipeline'
 PACKAGE_TARNAME='libpipeline'
-PACKAGE_VERSION='1.2.4'
-PACKAGE_STRING='libpipeline 1.2.4'
+PACKAGE_VERSION='1.2.5'
+PACKAGE_STRING='libpipeline 1.2.5'
 PACKAGE_BUGREPORT='cjwatson@debian.org'
 PACKAGE_URL=''
 
@@ -1431,6 +1431,7 @@ enable_fast_install
 with_gnu_ld
 with_sysroot
 enable_libtool_lock
+enable_largefile
 enable_threads
 enable_rpath
 with_libpth_prefix
@@ -1990,7 +1991,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures libpipeline 1.2.4 to adapt to many kinds of systems.
+\`configure' configures libpipeline 1.2.5 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -2060,7 +2061,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of libpipeline 1.2.4:";;
+     short | recursive ) echo "Configuration of libpipeline 1.2.5:";;
    esac
   cat <<\_ACEOF
 
@@ -2082,6 +2083,7 @@ Optional Features:
   --enable-fast-install[=PKGS]
                           optimize for fast installation [default=yes]
   --disable-libtool-lock  avoid locking (might break parallel builds)
+  --disable-largefile     omit support for large files
   --enable-threads={posix|solaris|pth|windows}
                           specify multithreading API
   --disable-threads       build without multithread safety
@@ -2185,7 +2187,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-libpipeline configure 1.2.4
+libpipeline configure 1.2.5
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2894,7 +2896,7 @@ cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by libpipeline $as_me 1.2.4, which was
+It was created by libpipeline $as_me 1.2.5, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -3290,7 +3292,7 @@ ac_config_sub="$SHELL $ac_aux_dir/config.sub"  # Please don't use this var.
 ac_configure="$SHELL $ac_aux_dir/configure"  # Please don't use this var.
 
 
-am__api_version='1.13'
+am__api_version='1.14'
 
 # Find a good install program.  We prefer a C program (faster),
 # so one script is as good as another.  But avoid the broken or
@@ -3776,7 +3778,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='libpipeline'
- VERSION='1.2.4'
+ VERSION='1.2.5'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -3827,6 +3829,47 @@ am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'
 
 
 
+# POSIX will say in a future version that running "rm -f" with no argument
+# is OK; and we want to be able to make that assumption in our Makefile
+# recipes.  So use an aggressive probe to check that the usage we want is
+# actually supported "in the wild" to an acceptable degree.
+# See automake bug#10828.
+# To make any issue more visible, cause the running configure to be aborted
+# by default if the 'rm' program in use doesn't match our expectations; the
+# user can still override this though.
+if rm -f && rm -fr && rm -rf; then : OK; else
+  cat >&2 <<'END'
+Oops!
+
+Your 'rm' program seems unable to run without file operands specified
+on the command line, even when the '-f' option is present.  This is contrary
+to the behaviour of most rm programs out there, and not conforming with
+the upcoming POSIX standard: <http://austingroupbugs.net/view.php?id=542>
+
+Please tell bug-automake@gnu.org about your system, including the value
+of your $PATH and any error possibly output before this message.  This
+can help us improve future automake versions.
+
+END
+  if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then
+    echo 'Configuration will proceed anyway, since you have set the' >&2
+    echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2
+    echo >&2
+  else
+    cat >&2 <<'END'
+Aborting the configuration process, to ensure you take notice of the issue.
+
+You can download and install GNU coreutils to get an 'rm' implementation
+that behaves properly: <http://www.gnu.org/software/coreutils/>.
+
+If you want to complete the configuration process using your problematic
+'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM
+to "yes", and re-run configure.
+
+END
+    as_fn_error $? "Your 'rm' program is bad, sorry." "$LINENO" 5
+  fi
+fi
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5
 $as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; }
@@ -4743,6 +4786,65 @@ ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
 ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
 ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5
+$as_echo_n "checking whether $CC understands -c and -o together... " >&6; }
+if ${am_cv_prog_cc_c_o+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+  # Make sure it works both with $CC and with simple cc.
+  # Following AC_PROG_CC_C_O, we do the test twice because some
+  # compilers refuse to overwrite an existing .o file with -o,
+  # though they will create one.
+  am_cv_prog_cc_c_o=yes
+  for am_i in 1 2; do
+    if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5
+   ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5
+   ac_status=$?
+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } \
+         && test -f conftest2.$ac_objext; then
+      : OK
+    else
+      am_cv_prog_cc_c_o=no
+      break
+    fi
+  done
+  rm -f core conftest*
+  unset am_i
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5
+$as_echo "$am_cv_prog_cc_c_o" >&6; }
+if test "$am_cv_prog_cc_c_o" != yes; then
+   # Losing compiler, so override with the script.
+   # FIXME: It is wrong to rewrite CC.
+   # But if we don't then we get into trouble of one sort or another.
+   # A longer-term fix would be to have automake use am__CC in this case,
+   # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
+   CC="$am_aux_dir/compile $CC"
+fi
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
 depcc="$CC"   am_compiler_list=
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
@@ -5491,7 +5593,13 @@ $as_echo_n "checking the archiver ($AR) interface... " >&6; }
 if ${am_cv_ar_interface+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  am_cv_ar_interface=ar
+  ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+   am_cv_ar_interface=ar
    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 int some_variable = 0;
@@ -5522,6 +5630,11 @@ if ac_fn_c_try_compile "$LINENO"; then :
 
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+   ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_ar_interface" >&5
@@ -13281,6 +13394,65 @@ ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
 ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
 ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5
+$as_echo_n "checking whether $CC understands -c and -o together... " >&6; }
+if ${am_cv_prog_cc_c_o+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+  # Make sure it works both with $CC and with simple cc.
+  # Following AC_PROG_CC_C_O, we do the test twice because some
+  # compilers refuse to overwrite an existing .o file with -o,
+  # though they will create one.
+  am_cv_prog_cc_c_o=yes
+  for am_i in 1 2; do
+    if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5
+   ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5
+   ac_status=$?
+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } \
+         && test -f conftest2.$ac_objext; then
+      : OK
+    else
+      am_cv_prog_cc_c_o=no
+      break
+    fi
+  done
+  rm -f core conftest*
+  unset am_i
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5
+$as_echo "$am_cv_prog_cc_c_o" >&6; }
+if test "$am_cv_prog_cc_c_o" != yes; then
+   # Losing compiler, so override with the script.
+   # FIXME: It is wrong to rewrite CC.
+   # But if we don't then we get into trouble of one sort or another.
+   # A longer-term fix would be to have automake use am__CC in this case,
+   # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
+   CC="$am_aux_dir/compile $CC"
+fi
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
 depcc="$CC"   am_compiler_list=
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
   fi
 
 
-if test "x$CC" != xcc; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC and cc understand -c and -o together" >&5
-$as_echo_n "checking whether $CC and cc understand -c and -o together... " >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether cc understands -c and -o together" >&5
-$as_echo_n "checking whether cc understands -c and -o together... " >&6; }
+
+
+
+
+
+
+# Check whether --enable-largefile was given.
+if test "${enable_largefile+set}" = set; then :
+  enableval=$enable_largefile;
 fi
-set dummy $CC; ac_cc=`$as_echo "$2" |
-                     sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'`
-if eval \${ac_cv_prog_cc_${ac_cc}_c_o+:} false; then :
+
+if test "$enable_largefile" != no; then
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for special C compiler options needed for large files" >&5
+$as_echo_n "checking for special C compiler options needed for large files... " >&6; }
+if ${ac_cv_sys_largefile_CC+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+  ac_cv_sys_largefile_CC=no
+     if test "$GCC" != yes; then
+       ac_save_CC=$CC
+       while :; do
+         # IRIX 6.2 and later do not support large files by default,
+         # so use the C compiler's -n32 option if that helps.
+         cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-
+#include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+    We can't simply define LARGE_OFF_T to be 9223372036854775807,
+    since some C++ compilers masquerading as C compilers
+    incorrectly reject 9223372036854775807.  */
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+                       && LARGE_OFF_T % 2147483647 == 1)
+                      ? 1 : -1];
 int
 main ()
 {
@@ -13670,113 +13862,170 @@ main ()
   return 0;
 }
 _ACEOF
-# Make sure it works both with $CC and with simple cc.
-# We do the test twice because some compilers refuse to overwrite an
-# existing .o file with -o, though they will create one.
-ac_try='$CC -c conftest.$ac_ext -o conftest2.$ac_objext >&5'
-rm -f conftest2.*
-if { { case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } &&
-   test -f conftest2.$ac_objext && { { case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; };
-then
-  eval ac_cv_prog_cc_${ac_cc}_c_o=yes
-  if test "x$CC" != xcc; then
-    # Test first that cc exists at all.
-    if { ac_try='cc -c conftest.$ac_ext >&5'
-  { { case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; }; then
-      ac_try='cc -c conftest.$ac_ext -o conftest2.$ac_objext >&5'
-      rm -f conftest2.*
-      if { { case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } &&
-        test -f conftest2.$ac_objext && { { case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; };
-      then
-       # cc works too.
-       :
-      else
-       # cc exists but doesn't like -o.
-       eval ac_cv_prog_cc_${ac_cc}_c_o=no
-      fi
+         if ac_fn_c_try_compile "$LINENO"; then :
+  break
+fi
+rm -f core conftest.err conftest.$ac_objext
+         CC="$CC -n32"
+         if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_sys_largefile_CC=' -n32'; break
+fi
+rm -f core conftest.err conftest.$ac_objext
+         break
+       done
+       CC=$ac_save_CC
+       rm -f conftest.$ac_ext
     fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_CC" >&5
+$as_echo "$ac_cv_sys_largefile_CC" >&6; }
+  if test "$ac_cv_sys_largefile_CC" != no; then
+    CC=$CC$ac_cv_sys_largefile_CC
   fi
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _FILE_OFFSET_BITS value needed for large files" >&5
+$as_echo_n "checking for _FILE_OFFSET_BITS value needed for large files... " >&6; }
+if ${ac_cv_sys_file_offset_bits+:} false; then :
+  $as_echo_n "(cached) " >&6
 else
-  eval ac_cv_prog_cc_${ac_cc}_c_o=no
+  while :; do
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+    We can't simply define LARGE_OFF_T to be 9223372036854775807,
+    since some C++ compilers masquerading as C compilers
+    incorrectly reject 9223372036854775807.  */
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+                       && LARGE_OFF_T % 2147483647 == 1)
+                      ? 1 : -1];
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_sys_file_offset_bits=no; break
 fi
-rm -f core conftest*
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#define _FILE_OFFSET_BITS 64
+#include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+    We can't simply define LARGE_OFF_T to be 9223372036854775807,
+    since some C++ compilers masquerading as C compilers
+    incorrectly reject 9223372036854775807.  */
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+                       && LARGE_OFF_T % 2147483647 == 1)
+                      ? 1 : -1];
+int
+main ()
+{
 
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_sys_file_offset_bits=64; break
 fi
-if eval test \$ac_cv_prog_cc_${ac_cc}_c_o = yes; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+  ac_cv_sys_file_offset_bits=unknown
+  break
+done
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_file_offset_bits" >&5
+$as_echo "$ac_cv_sys_file_offset_bits" >&6; }
+case $ac_cv_sys_file_offset_bits in #(
+  no | unknown) ;;
+  *)
+cat >>confdefs.h <<_ACEOF
+#define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits
+_ACEOF
+;;
+esac
+rm -rf conftest*
+  if test $ac_cv_sys_file_offset_bits = unknown; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _LARGE_FILES value needed for large files" >&5
+$as_echo_n "checking for _LARGE_FILES value needed for large files... " >&6; }
+if ${ac_cv_sys_large_files+:} false; then :
+  $as_echo_n "(cached) " >&6
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-
-$as_echo "#define NO_MINUS_C_MINUS_O 1" >>confdefs.h
+  while :; do
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+    We can't simply define LARGE_OFF_T to be 9223372036854775807,
+    since some C++ compilers masquerading as C compilers
+    incorrectly reject 9223372036854775807.  */
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+                       && LARGE_OFF_T % 2147483647 == 1)
+                      ? 1 : -1];
+int
+main ()
+{
 
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_sys_large_files=no; break
 fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#define _LARGE_FILES 1
+#include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+    We can't simply define LARGE_OFF_T to be 9223372036854775807,
+    since some C++ compilers masquerading as C compilers
+    incorrectly reject 9223372036854775807.  */
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+                       && LARGE_OFF_T % 2147483647 == 1)
+                      ? 1 : -1];
+int
+main ()
+{
 
-# FIXME: we rely on the cache variable name because
-# there is no other way.
-set dummy $CC
-am_cc=`echo $2 | sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'`
-eval am_t=\$ac_cv_prog_cc_${am_cc}_c_o
-if test "$am_t" != yes; then
-   # Losing compiler, so override with the script.
-   # FIXME: It is wrong to rewrite CC.
-   # But if we don't then we get into trouble of one sort or another.
-   # A longer-term fix would be to have automake use am__CC in this case,
-   # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
-   CC="$am_aux_dir/compile $CC"
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_sys_large_files=1; break
 fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+  ac_cv_sys_large_files=unknown
+  break
+done
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_large_files" >&5
+$as_echo "$ac_cv_sys_large_files" >&6; }
+case $ac_cv_sys_large_files in #(
+  no | unknown) ;;
+  *)
+cat >>confdefs.h <<_ACEOF
+#define _LARGE_FILES $ac_cv_sys_large_files
+_ACEOF
+;;
+esac
+rm -rf conftest*
+  fi
 
 
+$as_echo "#define _DARWIN_USE_64_BIT_INODE 1" >>confdefs.h
 
-
-
-
+fi
 
    case $ac_cv_prog_cc_stdc in #(
   no) :
   # Code from module float:
   # Code from module full-write:
   # Code from module gettext-h:
+  # Code from module gitlog-to-changelog:
+  # Code from module gnupload:
   # Code from module havelib:
   # Code from module include_next:
   # Code from module intprops:
+  # Code from module largefile:
+
   # Code from module lib-ignore:
   # Code from module lock:
   # Code from module malloc-posix:
 
 
 
+
+  case "$host_os" in
+    mingw*)
+                        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for 64-bit off_t" >&5
+$as_echo_n "checking for 64-bit off_t... " >&6; }
+if ${gl_cv_type_off_t_64+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <sys/types.h>
+                int verify_off_t_size[sizeof (off_t) >= 8 ? 1 : -1];
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  gl_cv_type_off_t_64=yes
+else
+  gl_cv_type_off_t_64=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_type_off_t_64" >&5
+$as_echo "$gl_cv_type_off_t_64" >&6; }
+      if test $gl_cv_type_off_t_64 = no; then
+        WINDOWS_64_BIT_OFF_T=1
+      else
+        WINDOWS_64_BIT_OFF_T=0
+      fi
+                  WINDOWS_64_BIT_ST_SIZE=1
+      ;;
+    *)
+                                                      WINDOWS_64_BIT_OFF_T=0
+      WINDOWS_64_BIT_ST_SIZE=0
+      ;;
+  esac
+
+
       if test "X$prefix" = "XNONE"; then
     acl_final_prefix="$ac_default_prefix"
   else
@@ -19677,7 +19975,7 @@ fi
 
 
 
-    WINDOWS_64_BIT_OFF_T=0
+
 
 
 
@@ -21131,6 +21429,7 @@ fi
 
 
 
+
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler flag to ignore unused libraries" >&5
 $as_echo_n "checking for C compiler flag to ignore unused libraries... " >&6; }
 if ${gl_cv_prog_c_ignore_unused_libraries+:} false; then :
@@ -23567,7 +23866,7 @@ $as_echo "$gl_cv_next_sys_stat_h" >&6; }
 
 
 
-    WINDOWS_64_BIT_ST_SIZE=0
+
 
 
   if test $WINDOWS_64_BIT_ST_SIZE = 1; then
@@ -25671,7 +25970,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by libpipeline $as_me 1.2.4, which was
+This file was extended by libpipeline $as_me 1.2.5, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -25737,7 +26036,7 @@ _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-libpipeline config.status 1.2.4
+libpipeline config.status 1.2.5
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
index cbf8d31..8d73ce2 100644 (file)
@@ -22,7 +22,7 @@ dnl Process this file with autoconf to produce a configure script.
 m4_pattern_forbid([^PIPELINE_])
 
 # Initialise and check we're in the correct directory.
-AC_INIT([libpipeline], [1.2.4], [cjwatson@debian.org])
+AC_INIT([libpipeline], [1.2.5], [cjwatson@debian.org])
 AC_CONFIG_AUX_DIR([tools])
 AM_INIT_AUTOMAKE([1.10 -Wall -Werror foreign])
 AM_MAINTAINER_MODE
@@ -30,7 +30,7 @@ m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
 AC_PREREQ([2.59])
 AC_CONFIG_SRCDIR([lib/pipeline.c])
 AC_GNU_SOURCE
-AM_PROG_AR
+m4_ifdef([AM_PROG_AR], [AM_PROG_AR])
 LT_INIT([disable-static])
 
 AC_CONFIG_HEADER([config.h])
index 670e46d..40d9e52 100644 (file)
@@ -21,7 +21,7 @@
 # the same distribution terms as the rest of that program.
 #
 # Generated by gnulib-tool.
-# Reproduce by: gnulib-tool --import --dir=. --lib=libgnu --source-base=gnulib/lib --m4-base=gnulib/m4 --doc-base=doc --tests-base=tests --aux-dir=tools --no-conditional-dependencies --libtool --macro-prefix=gl dirname environ error full-write lib-ignore safe-read safe-write setenv sigaction signal sigprocmask strerror strsignal sys_select sys_stat unsetenv waitpid warnings xalloc xstrndup xvasprintf
+# Reproduce by: gnulib-tool --import --dir=. --lib=libgnu --source-base=gnulib/lib --m4-base=gnulib/m4 --doc-base=doc --tests-base=tests --aux-dir=tools --no-conditional-dependencies --libtool --macro-prefix=gl --no-vc-files dirname environ error full-write gitlog-to-changelog gnupload largefile lib-ignore safe-read safe-write setenv sigaction signal sigprocmask strerror strsignal sys_select sys_stat unsetenv waitpid warnings xalloc xstrndup xvasprintf
 
 AUTOMAKE_OPTIONS = 1.9.6 gnits subdir-objects
 
@@ -194,6 +194,20 @@ libgnu_la_SOURCES += gettext.h
 
 ## end   gnulib module gettext-h
 
+## begin gnulib module gitlog-to-changelog
+
+
+EXTRA_DIST += $(top_srcdir)/tools/gitlog-to-changelog
+
+## end   gnulib module gitlog-to-changelog
+
+## begin gnulib module gnupload
+
+
+EXTRA_DIST += $(top_srcdir)/tools/gnupload
+
+## end   gnulib module gnupload
+
 ## begin gnulib module havelib
 
 
index b15e125..ad1c57f 100644 (file)
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.2 from Makefile.am.
+# Makefile.in generated by automake 1.14 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994-2013 Free Software Foundation, Inc.
@@ -35,7 +35,7 @@
 # the same distribution terms as the rest of that program.
 #
 # Generated by gnulib-tool.
-# Reproduce by: gnulib-tool --import --dir=. --lib=libgnu --source-base=gnulib/lib --m4-base=gnulib/m4 --doc-base=doc --tests-base=tests --aux-dir=tools --no-conditional-dependencies --libtool --macro-prefix=gl dirname environ error full-write lib-ignore safe-read safe-write setenv sigaction signal sigprocmask strerror strsignal sys_select sys_stat unsetenv waitpid warnings xalloc xstrndup xvasprintf
+# Reproduce by: gnulib-tool --import --dir=. --lib=libgnu --source-base=gnulib/lib --m4-base=gnulib/m4 --doc-base=doc --tests-base=tests --aux-dir=tools --no-conditional-dependencies --libtool --macro-prefix=gl --no-vc-files dirname environ error full-write gitlog-to-changelog gnupload largefile lib-ignore safe-read safe-write setenv sigaction signal sigprocmask strerror strsignal sys_select sys_stat unsetenv waitpid warnings xalloc xstrndup xvasprintf
 
 
 
@@ -125,6 +125,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/pipeline-socketpair.m4 \
        $(top_srcdir)/gnulib/m4/include_next.m4 \
        $(top_srcdir)/gnulib/m4/intmax_t.m4 \
        $(top_srcdir)/gnulib/m4/inttypes_h.m4 \
+       $(top_srcdir)/gnulib/m4/largefile.m4 \
        $(top_srcdir)/gnulib/m4/lib-ignore.m4 \
        $(top_srcdir)/gnulib/m4/lib-ld.m4 \
        $(top_srcdir)/gnulib/m4/lib-link.m4 \
@@ -1089,12 +1090,13 @@ noinst_LIBRARIES =
 noinst_LTLIBRARIES = libgnu.la
 EXTRA_DIST = alloca.in.h stripslash.c dirname.h dosname.h errno.in.h \
        error.c error.h exitfail.h float.c float.in.h itold.c \
-       $(top_srcdir)/tools/config.rpath intprops.h malloc.c malloca.h \
-       malloca.valgrind memchr.c memchr.valgrind msvc-inval.c \
-       msvc-inval.h msvc-nothrow.c msvc-nothrow.h raise.c read.c \
-       safe-read.h safe-read.c safe-write.h setenv.c sig-handler.h \
-       sigaction.c signal.in.h sigprocmask.c \
-       $(top_srcdir)/tools/snippet/_Noreturn.h \
+       $(top_srcdir)/tools/gitlog-to-changelog \
+       $(top_srcdir)/tools/gnupload $(top_srcdir)/tools/config.rpath \
+       intprops.h malloc.c malloca.h malloca.valgrind memchr.c \
+       memchr.valgrind msvc-inval.c msvc-inval.h msvc-nothrow.c \
+       msvc-nothrow.h raise.c read.c safe-read.h safe-read.c \
+       safe-write.h setenv.c sig-handler.h sigaction.c signal.in.h \
+       sigprocmask.c $(top_srcdir)/tools/snippet/_Noreturn.h \
        $(top_srcdir)/tools/snippet/arg-nonnull.h \
        $(top_srcdir)/tools/snippet/c++defs.h \
        $(top_srcdir)/tools/snippet/warn-on-use.h snprintf.c \
index 8fdab32..5267b1b 100644 (file)
@@ -5153,7 +5153,8 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
                                 size_t tmp_length =
                                   MAX_ROOM_NEEDED (&a, dp->arg_index,
                                                    dp->conversion, type, flags,
-                                                   width, has_precision,
+                                                   has_width ? width : 0,
+                                                   has_precision,
                                                    precision, pad_ourselves);
 
                                 if (maxlen < tmp_length)
index cb8e90b..03492ef 100644 (file)
@@ -31,7 +31,9 @@
    Use this only with GCC.  If we were willing to slow 'configure'
    down we could also use it with other compilers, but since this
    affects only the quality of diagnostics, why bother?  */
-# if (4 < __GNUC__ || (__GNUC__ == 4 && 6 <= __GNUC_MINOR__)) && !defined __cplusplus
+# if (4 < __GNUC__ + (6 <= __GNUC_MINOR__) \
+      && (201112L <= __STDC_VERSION__  || !defined __STRICT_ANSI__) \
+      && !defined __cplusplus)
 #  define _GL_HAVE__STATIC_ASSERT 1
 # endif
 /* The condition (99 < __GNUC__) is temporary, until we know about the
index 80fc643..699e397 100644 (file)
@@ -27,7 +27,7 @@
 
 
 # Specification in the form of a command-line invocation:
-#   gnulib-tool --import --dir=. --lib=libgnu --source-base=gnulib/lib --m4-base=gnulib/m4 --doc-base=doc --tests-base=tests --aux-dir=tools --no-conditional-dependencies --libtool --macro-prefix=gl dirname environ error full-write lib-ignore safe-read safe-write setenv sigaction signal sigprocmask strerror strsignal sys_select sys_stat unsetenv waitpid warnings xalloc xstrndup xvasprintf
+#   gnulib-tool --import --dir=. --lib=libgnu --source-base=gnulib/lib --m4-base=gnulib/m4 --doc-base=doc --tests-base=tests --aux-dir=tools --no-conditional-dependencies --libtool --macro-prefix=gl --no-vc-files dirname environ error full-write gitlog-to-changelog gnupload largefile lib-ignore safe-read safe-write setenv sigaction signal sigprocmask strerror strsignal sys_select sys_stat unsetenv waitpid warnings xalloc xstrndup xvasprintf
 
 # Specification in the form of a few gnulib-tool.m4 macro invocations:
 gl_LOCAL_DIR([])
@@ -36,6 +36,9 @@ gl_MODULES([
   environ
   error
   full-write
+  gitlog-to-changelog
+  gnupload
+  largefile
   lib-ignore
   safe-read
   safe-write
@@ -66,3 +69,4 @@ gl_LIBTOOL
 gl_MACRO_PREFIX([gl])
 gl_PO_DOMAIN([])
 gl_WITNESS_C_MACRO([])
+gl_VC_FILES([false])
index b890738..f5c32bb 100644 (file)
@@ -54,9 +54,13 @@ AC_DEFUN([gl_EARLY],
   # Code from module float:
   # Code from module full-write:
   # Code from module gettext-h:
+  # Code from module gitlog-to-changelog:
+  # Code from module gnupload:
   # Code from module havelib:
   # Code from module include_next:
   # Code from module intprops:
+  # Code from module largefile:
+  AC_REQUIRE([AC_SYS_LARGEFILE])
   # Code from module lib-ignore:
   # Code from module lock:
   # Code from module malloc-posix:
@@ -164,6 +168,7 @@ AC_DEFUN([gl_INIT],
   fi
   AC_SUBST([LIBINTL])
   AC_SUBST([LTLIBINTL])
+  AC_REQUIRE([gl_LARGEFILE])
   gl_IGNORE_UNUSED_LIBRARIES
   gl_LOCK
   gl_MODULE_INDICATOR([lock])
@@ -442,6 +447,8 @@ AC_DEFUN([gltests_LIBSOURCES], [
 # gnulib-tool and may be removed by future gnulib-tool invocations.
 AC_DEFUN([gl_FILE_LIST], [
   build-aux/config.rpath
+  build-aux/gitlog-to-changelog
+  build-aux/gnupload
   build-aux/snippet/_Noreturn.h
   build-aux/snippet/arg-nonnull.h
   build-aux/snippet/c++defs.h
@@ -559,6 +566,7 @@ AC_DEFUN([gl_FILE_LIST], [
   m4/include_next.m4
   m4/intmax_t.m4
   m4/inttypes_h.m4
+  m4/largefile.m4
   m4/lib-ignore.m4
   m4/lib-ld.m4
   m4/lib-link.m4
diff --git a/gnulib/m4/largefile.m4 b/gnulib/m4/largefile.m4
new file mode 100644 (file)
index 0000000..1e605e3
--- /dev/null
@@ -0,0 +1,146 @@
+# Enable large files on systems where this is not the default.
+
+# Copyright 1992-1996, 1998-2013 Free Software Foundation, Inc.
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# The following implementation works around a problem in autoconf <= 2.69;
+# AC_SYS_LARGEFILE does not configure for large inodes on Mac OS X 10.5,
+# or configures them incorrectly in some cases.
+m4_version_prereq([2.70], [] ,[
+
+# _AC_SYS_LARGEFILE_TEST_INCLUDES
+# -------------------------------
+m4_define([_AC_SYS_LARGEFILE_TEST_INCLUDES],
+[@%:@include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+    We can't simply define LARGE_OFF_T to be 9223372036854775807,
+    since some C++ compilers masquerading as C compilers
+    incorrectly reject 9223372036854775807.  */
+@%:@define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+  int off_t_is_large[[(LARGE_OFF_T % 2147483629 == 721
+                       && LARGE_OFF_T % 2147483647 == 1)
+                      ? 1 : -1]];[]dnl
+])
+
+
+# _AC_SYS_LARGEFILE_MACRO_VALUE(C-MACRO, VALUE,
+#                               CACHE-VAR,
+#                               DESCRIPTION,
+#                               PROLOGUE, [FUNCTION-BODY])
+# --------------------------------------------------------
+m4_define([_AC_SYS_LARGEFILE_MACRO_VALUE],
+[AC_CACHE_CHECK([for $1 value needed for large files], [$3],
+[while :; do
+  m4_ifval([$6], [AC_LINK_IFELSE], [AC_COMPILE_IFELSE])(
+    [AC_LANG_PROGRAM([$5], [$6])],
+    [$3=no; break])
+  m4_ifval([$6], [AC_LINK_IFELSE], [AC_COMPILE_IFELSE])(
+    [AC_LANG_PROGRAM([@%:@define $1 $2
+$5], [$6])],
+    [$3=$2; break])
+  $3=unknown
+  break
+done])
+case $$3 in #(
+  no | unknown) ;;
+  *) AC_DEFINE_UNQUOTED([$1], [$$3], [$4]);;
+esac
+rm -rf conftest*[]dnl
+])# _AC_SYS_LARGEFILE_MACRO_VALUE
+
+
+# AC_SYS_LARGEFILE
+# ----------------
+# By default, many hosts won't let programs access large files;
+# one must use special compiler options to get large-file access to work.
+# For more details about this brain damage please see:
+# http://www.unix-systems.org/version2/whatsnew/lfs20mar.html
+AC_DEFUN([AC_SYS_LARGEFILE],
+[AC_ARG_ENABLE(largefile,
+               [  --disable-largefile     omit support for large files])
+if test "$enable_largefile" != no; then
+
+  AC_CACHE_CHECK([for special C compiler options needed for large files],
+    ac_cv_sys_largefile_CC,
+    [ac_cv_sys_largefile_CC=no
+     if test "$GCC" != yes; then
+       ac_save_CC=$CC
+       while :; do
+         # IRIX 6.2 and later do not support large files by default,
+         # so use the C compiler's -n32 option if that helps.
+         AC_LANG_CONFTEST([AC_LANG_PROGRAM([_AC_SYS_LARGEFILE_TEST_INCLUDES])])
+         AC_COMPILE_IFELSE([], [break])
+         CC="$CC -n32"
+         AC_COMPILE_IFELSE([], [ac_cv_sys_largefile_CC=' -n32'; break])
+         break
+       done
+       CC=$ac_save_CC
+       rm -f conftest.$ac_ext
+    fi])
+  if test "$ac_cv_sys_largefile_CC" != no; then
+    CC=$CC$ac_cv_sys_largefile_CC
+  fi
+
+  _AC_SYS_LARGEFILE_MACRO_VALUE(_FILE_OFFSET_BITS, 64,
+    ac_cv_sys_file_offset_bits,
+    [Number of bits in a file offset, on hosts where this is settable.],
+    [_AC_SYS_LARGEFILE_TEST_INCLUDES])
+  if test $ac_cv_sys_file_offset_bits = unknown; then
+    _AC_SYS_LARGEFILE_MACRO_VALUE(_LARGE_FILES, 1,
+      ac_cv_sys_large_files,
+      [Define for large files, on AIX-style hosts.],
+      [_AC_SYS_LARGEFILE_TEST_INCLUDES])
+  fi
+
+  AC_DEFINE([_DARWIN_USE_64_BIT_INODE], [1],
+    [Enable large inode numbers on Mac OS X 10.5.])
+fi
+])# AC_SYS_LARGEFILE
+])# m4_version_prereq 2.70
+
+# Enable large files on systems where this is implemented by Gnulib, not by the
+# system headers.
+# Set the variables WINDOWS_64_BIT_OFF_T, WINDOWS_64_BIT_ST_SIZE if Gnulib
+# overrides ensure that off_t or 'struct size.st_size' are 64-bit, respectively.
+AC_DEFUN([gl_LARGEFILE],
+[
+  AC_REQUIRE([AC_CANONICAL_HOST])
+  case "$host_os" in
+    mingw*)
+      dnl Native Windows.
+      dnl mingw64 defines off_t to a 64-bit type already, if
+      dnl _FILE_OFFSET_BITS=64, which is ensured by AC_SYS_LARGEFILE.
+      AC_CACHE_CHECK([for 64-bit off_t], [gl_cv_type_off_t_64],
+        [AC_COMPILE_IFELSE(
+           [AC_LANG_PROGRAM(
+              [[#include <sys/types.h>
+                int verify_off_t_size[sizeof (off_t) >= 8 ? 1 : -1];
+              ]],
+              [[]])],
+           [gl_cv_type_off_t_64=yes], [gl_cv_type_off_t_64=no])
+        ])
+      if test $gl_cv_type_off_t_64 = no; then
+        WINDOWS_64_BIT_OFF_T=1
+      else
+        WINDOWS_64_BIT_OFF_T=0
+      fi
+      dnl But all native Windows platforms (including mingw64) have a 32-bit
+      dnl st_size member in 'struct stat'.
+      WINDOWS_64_BIT_ST_SIZE=1
+      ;;
+    *)
+      dnl Nothing to do on gnulib's side.
+      dnl A 64-bit off_t is
+      dnl   - already the default on Mac OS X, FreeBSD, NetBSD, OpenBSD, IRIX,
+      dnl     OSF/1, Cygwin,
+      dnl   - enabled by _FILE_OFFSET_BITS=64 (ensured by AC_SYS_LARGEFILE) on
+      dnl     glibc, HP-UX, Solaris,
+      dnl   - enabled by _LARGE_FILES=1 (ensured by AC_SYS_LARGEFILE) on AIX,
+      dnl   - impossible to achieve on Minix 3.1.8.
+      WINDOWS_64_BIT_OFF_T=0
+      WINDOWS_64_BIT_ST_SIZE=0
+      ;;
+  esac
+])
index 811e2e0..4fb4007 100644 (file)
@@ -39,7 +39,7 @@ libpipeline_la_LIBADD = ../gnulib/lib/libgnu.la $(LTLIBOBJS)
 
 libpipeline_la_LDFLAGS = \
        -export-symbols-regex '^(pipecmd|pipeline)_' \
-       -version-info 3:4:2
+       -version-info 3:5:2
 
 pkgconfigdir = $(libdir)/pkgconfig
 pkgconfig_DATA = libpipeline.pc
index 0974cdf..6244e31 100644 (file)
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.2 from Makefile.am.
+# Makefile.in generated by automake 1.14 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994-2013 Free Software Foundation, Inc.
@@ -103,6 +103,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/pipeline-socketpair.m4 \
        $(top_srcdir)/gnulib/m4/include_next.m4 \
        $(top_srcdir)/gnulib/m4/intmax_t.m4 \
        $(top_srcdir)/gnulib/m4/inttypes_h.m4 \
+       $(top_srcdir)/gnulib/m4/largefile.m4 \
        $(top_srcdir)/gnulib/m4/lib-ignore.m4 \
        $(top_srcdir)/gnulib/m4/lib-ld.m4 \
        $(top_srcdir)/gnulib/m4/lib-link.m4 \
@@ -1059,7 +1060,7 @@ include_HEADERS = pipeline.h
 libpipeline_la_LIBADD = ../gnulib/lib/libgnu.la $(LTLIBOBJS)
 libpipeline_la_LDFLAGS = \
        -export-symbols-regex '^(pipecmd|pipeline)_' \
-       -version-info 3:4:2
+       -version-info 3:5:2
 
 pkgconfigdir = $(libdir)/pkgconfig
 pkgconfig_DATA = libpipeline.pc
@@ -1153,14 +1154,14 @@ distclean-compile:
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
 
 .c.obj:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
 
 .c.lo:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
index 66f238e..7d80a78 100644 (file)
@@ -112,7 +112,7 @@ struct pipeline {
         * that the files will be opened with the same privileges under
         * which the pipeline is being run.
         */
-       const char *want_infile, *want_outfile;
+       char *want_infile, *want_outfile;
 
        /* See above. Default to -1. The caller should consider these
         * read-only.
index c9fe0dd..652055c 100644 (file)
@@ -221,8 +221,7 @@ static char *argstr_get_word (const char **argstr)
                                backslashed[0] = *++*argstr;
                                if (!backslashed[0]) {
                                        /* Unterminated quoting; give up. */
-                                       if (out)
-                                               free (out);
+                                       free (out);
                                        return NULL;
                                }
                                backslashed[1] = '\0';
@@ -237,8 +236,7 @@ static char *argstr_get_word (const char **argstr)
 
        if (quotemode != NONE) {
                /* Unterminated quoting; give up. */
-               if (out)
-                       free (out);
+               free (out);
                return NULL;
        }
 
@@ -962,10 +960,10 @@ pipeline *pipeline_join (pipeline *p1, pipeline *p2)
        p->statuses = NULL;
        p->redirect_in = p1->redirect_in;
        p->want_in = p1->want_in;
-       p->want_infile = p1->want_infile;
+       p->want_infile = p1->want_infile ? xstrdup (p1->want_infile) : NULL;
        p->redirect_out = p2->redirect_out;
        p->want_out = p2->want_out;
-       p->want_outfile = p2->want_outfile;
+       p->want_outfile = p2->want_outfile ? xstrdup (p2->want_outfile) : NULL;
        p->infd = p1->infd;
        p->outfd = p2->outfd;
        p->infile = p1->infile;
@@ -1119,14 +1117,14 @@ void pipeline_want_infile (pipeline *p, const char *file)
 {
        p->redirect_in = (file != NULL) ? REDIRECT_FILE_NAME : REDIRECT_NONE;
        p->want_in = 0;
-       p->want_infile = file;
+       p->want_infile = file ? xstrdup (file) : NULL;
 }
 
 void pipeline_want_outfile (pipeline *p, const char *file)
 {
        p->redirect_out = (file != NULL) ? REDIRECT_FILE_NAME : REDIRECT_NONE;
        p->want_out = 0;
-       p->want_outfile = file;
+       p->want_outfile = file ? xstrdup (file) : NULL;
 }
 
 void pipeline_ignore_signals (pipeline *p, int ignore_signals)
@@ -1202,14 +1200,12 @@ void pipeline_free (pipeline *p)
        for (i = 0; i < p->ncommands; ++i)
                pipecmd_free (p->commands[i]);
        free (p->commands);
-       if (p->pids)
-               free (p->pids);
-       if (p->statuses)
-               free (p->statuses);
-       if (p->buffer)
-               free (p->buffer);
-       if (p->line_cache)
-               free (p->line_cache);
+       free (p->pids);
+       free (p->statuses);
+       free (p->want_infile);
+       free (p->want_outfile);
+       free (p->buffer);
+       free (p->line_cache);
        free (p);
 }
 
index e712f69..6c7d316 100644 (file)
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.2 from Makefile.am.
+# Makefile.in generated by automake 1.14 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994-2013 Free Software Foundation, Inc.
@@ -99,6 +99,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/pipeline-socketpair.m4 \
        $(top_srcdir)/gnulib/m4/include_next.m4 \
        $(top_srcdir)/gnulib/m4/intmax_t.m4 \
        $(top_srcdir)/gnulib/m4/inttypes_h.m4 \
+       $(top_srcdir)/gnulib/m4/largefile.m4 \
        $(top_srcdir)/gnulib/m4/lib-ignore.m4 \
        $(top_srcdir)/gnulib/m4/lib-ld.m4 \
        $(top_srcdir)/gnulib/m4/lib-link.m4 \
index cc54342..b62cec1 100644 (file)
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.13.2 from Makefile.am.
+# Makefile.in generated by automake 1.14 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994-2013 Free Software Foundation, Inc.
@@ -102,6 +102,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/pipeline-socketpair.m4 \
        $(top_srcdir)/gnulib/m4/include_next.m4 \
        $(top_srcdir)/gnulib/m4/intmax_t.m4 \
        $(top_srcdir)/gnulib/m4/inttypes_h.m4 \
+       $(top_srcdir)/gnulib/m4/largefile.m4 \
        $(top_srcdir)/gnulib/m4/lib-ignore.m4 \
        $(top_srcdir)/gnulib/m4/lib-ld.m4 \
        $(top_srcdir)/gnulib/m4/lib-link.m4 \
@@ -1347,14 +1348,14 @@ distclean-compile:
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
 
 .c.obj:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
 
 .c.lo:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
index 367186f..012bafe 100644 (file)
 #  include "config.h"
 #endif
 
+#include <stdlib.h>
+#include <string.h>
+#include <errno.h>
+
 #include "xalloc.h"
 
 #include "common.h"
@@ -32,7 +36,8 @@ char *temp_dir;
 void temp_dir_setup (void)
 {
        temp_dir = xstrdup ("libpipeline.XXXXXX");
-       mkdtemp (temp_dir);
+       if (mkdtemp (temp_dir) == NULL)
+               fail ("mkdtemp failed: %s", strerror (errno));
 }
 
 void temp_dir_teardown (void)
index 120cc0d..b79252d 100755 (executable)
@@ -2,7 +2,7 @@
 # Attempt to guess a canonical system name.
 #   Copyright 1992-2013 Free Software Foundation, Inc.
 
-timestamp='2013-05-16'
+timestamp='2013-06-10'
 
 # This file is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
@@ -995,6 +995,12 @@ EOF
     ppc:Linux:*:*)
        echo powerpc-unknown-linux-${LIBC}
        exit ;;
+    ppc64le:Linux:*:*)
+       echo powerpc64le-unknown-linux-${LIBC}
+       exit ;;
+    ppcle:Linux:*:*)
+       echo powerpcle-unknown-linux-${LIBC}
+       exit ;;
     s390:Linux:*:* | s390x:Linux:*:*)
        echo ${UNAME_MACHINE}-ibm-linux-${LIBC}
        exit ;;
index 8b612ab..9633db7 100755 (executable)
@@ -2,7 +2,7 @@
 # Configuration validation subroutine script.
 #   Copyright 1992-2013 Free Software Foundation, Inc.
 
-timestamp='2013-04-24'
+timestamp='2013-08-10'
 
 # This file is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
@@ -257,7 +257,7 @@ case $basic_machine in
        | avr | avr32 \
        | be32 | be64 \
        | bfin \
-       | c4x | clipper \
+       | c4x | c8051 | clipper \
        | d10v | d30v | dlx | dsp16xx \
        | epiphany \
        | fido | fr30 | frv \
@@ -372,7 +372,7 @@ case $basic_machine in
        | be32-* | be64-* \
        | bfin-* | bs2000-* \
        | c[123]* | c30-* | [cjt]90-* | c4x-* \
-       | clipper-* | craynv-* | cydra-* \
+       | c8051-* | clipper-* | craynv-* | cydra-* \
        | d10v-* | d30v-* | dlx-* \
        | elxsi-* \
        | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
@@ -794,7 +794,7 @@ case $basic_machine in
                os=-mingw64
                ;;
        mingw32)
-               basic_machine=i386-pc
+               basic_machine=i686-pc
                os=-mingw32
                ;;
        mingw32ce)
@@ -830,7 +830,7 @@ case $basic_machine in
                basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
                ;;
        msys)
-               basic_machine=i386-pc
+               basic_machine=i686-pc
                os=-msys
                ;;
        mvs)
@@ -1546,6 +1546,9 @@ case $basic_machine in
        c4x-* | tic4x-*)
                os=-coff
                ;;
+       c8051-*)
+               os=-elf
+               ;;
        hexagon-*)
                os=-elf
                ;;
index 06b0882..4ebd5b3 100755 (executable)
@@ -1,7 +1,7 @@
 #! /bin/sh
 # depcomp - compile a program generating dependencies as side-effects
 
-scriptversion=2012-10-18.11; # UTC
+scriptversion=2013-05-30.07; # UTC
 
 # Copyright (C) 1999-2013 Free Software Foundation, Inc.
 
@@ -552,6 +552,7 @@ $ {
   G
   p
 }' >> "$depfile"
+  echo >> "$depfile" # make sure the fragment doesn't end with a backslash
   rm -f "$tmpdepfile"
   ;;
 
diff --git a/tools/gitlog-to-changelog b/tools/gitlog-to-changelog
new file mode 100755 (executable)
index 0000000..e02d34c
--- /dev/null
@@ -0,0 +1,432 @@
+eval '(exit $?0)' && eval 'exec perl -wS "$0" ${1+"$@"}'
+  & eval 'exec perl -wS "$0" $argv:q'
+    if 0;
+# Convert git log output to ChangeLog format.
+
+my $VERSION = '2012-07-29 06:11'; # UTC
+# The definition above must lie within the first 8 lines in order
+# for the Emacs time-stamp write hook (at end) to update it.
+# If you change this file with Emacs, please let the write hook
+# do its job.  Otherwise, update this string manually.
+
+# Copyright (C) 2008-2013 Free Software Foundation, Inc.
+
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+# Written by Jim Meyering
+
+use strict;
+use warnings;
+use Getopt::Long;
+use POSIX qw(strftime);
+
+(my $ME = $0) =~ s|.*/||;
+
+# use File::Coda; # http://meyering.net/code/Coda/
+END {
+  defined fileno STDOUT or return;
+  close STDOUT and return;
+  warn "$ME: failed to close standard output: $!\n";
+  $? ||= 1;
+}
+
+sub usage ($)
+{
+  my ($exit_code) = @_;
+  my $STREAM = ($exit_code == 0 ? *STDOUT : *STDERR);
+  if ($exit_code != 0)
+    {
+      print $STREAM "Try '$ME --help' for more information.\n";
+    }
+  else
+    {
+      print $STREAM <<EOF;
+Usage: $ME [OPTIONS] [ARGS]
+
+Convert git log output to ChangeLog format.  If present, any ARGS
+are passed to "git log".  To avoid ARGS being parsed as options to
+$ME, they may be preceded by '--'.
+
+OPTIONS:
+
+   --amend=FILE FILE maps from an SHA1 to perl code (i.e., s/old/new/) that
+                  makes a change to SHA1's commit log text or metadata.
+   --append-dot append a dot to the first line of each commit message if
+                  there is no other punctuation or blank at the end.
+   --no-cluster never cluster commit messages under the same date/author
+                  header; the default is to cluster adjacent commit messages
+                  if their headers are the same and neither commit message
+                  contains multiple paragraphs.
+   --srcdir=DIR the root of the source tree, from which the .git/
+                  directory can be derived.
+   --since=DATE convert only the logs since DATE;
+                  the default is to convert all log entries.
+   --format=FMT set format string for commit subject and body;
+                  see 'man git-log' for the list of format metacharacters;
+                  the default is '%s%n%b%n'
+   --strip-tab  remove one additional leading TAB from commit message lines.
+   --strip-cherry-pick  remove data inserted by "git cherry-pick";
+                  this includes the "cherry picked from commit ..." line,
+                  and the possible final "Conflicts:" paragraph.
+   --help       display this help and exit
+   --version    output version information and exit
+
+EXAMPLE:
+
+  $ME --since=2008-01-01 > ChangeLog
+  $ME -- -n 5 foo > last-5-commits-to-branch-foo
+
+SPECIAL SYNTAX:
+
+The following types of strings are interpreted specially when they appear
+at the beginning of a log message line.  They are not copied to the output.
+
+  Copyright-paperwork-exempt: Yes
+    Append the "(tiny change)" notation to the usual "date name email"
+    ChangeLog header to mark a change that does not require a copyright
+    assignment.
+  Co-authored-by: Joe User <user\@example.com>
+    List the specified name and email address on a second
+    ChangeLog header, denoting a co-author.
+  Signed-off-by: Joe User <user\@example.com>
+    These lines are simply elided.
+
+In a FILE specified via --amend, comment lines (starting with "#") are ignored.
+FILE must consist of <SHA,CODE+> pairs where SHA is a 40-byte SHA1 (alone on
+a line) referring to a commit in the current project, and CODE refers to one
+or more consecutive lines of Perl code.  Pairs must be separated by one or
+more blank line.
+
+Here is sample input for use with --amend=FILE, from coreutils:
+
+3a169f4c5d9159283548178668d2fae6fced3030
+# fix typo in title:
+s/all tile types/all file types/
+
+1379ed974f1fa39b12e2ffab18b3f7a607082202
+# Due to a bug in vc-dwim, I mis-attributed a patch by Paul to myself.
+# Change the author to be Paul.  Note the escaped "@":
+s,Jim .*>,Paul Eggert <eggert\\\@cs.ucla.edu>,
+
+EOF
+    }
+  exit $exit_code;
+}
+
+# If the string $S is a well-behaved file name, simply return it.
+# If it contains white space, quotes, etc., quote it, and return the new string.
+sub shell_quote($)
+{
+  my ($s) = @_;
+  if ($s =~ m![^\w+/.,-]!)
+    {
+      # Convert each single quote to '\''
+      $s =~ s/\'/\'\\\'\'/g;
+      # Then single quote the string.
+      $s = "'$s'";
+    }
+  return $s;
+}
+
+sub quoted_cmd(@)
+{
+  return join (' ', map {shell_quote $_} @_);
+}
+
+# Parse file F.
+# Comment lines (starting with "#") are ignored.
+# F must consist of <SHA,CODE+> pairs where SHA is a 40-byte SHA1
+# (alone on a line) referring to a commit in the current project, and
+# CODE refers to one or more consecutive lines of Perl code.
+# Pairs must be separated by one or more blank line.
+sub parse_amend_file($)
+{
+  my ($f) = @_;
+
+  open F, '<', $f
+    or die "$ME: $f: failed to open for reading: $!\n";
+
+  my $fail;
+  my $h = {};
+  my $in_code = 0;
+  my $sha;
+  while (defined (my $line = <F>))
+    {
+      $line =~ /^\#/
+        and next;
+      chomp $line;
+      $line eq ''
+        and $in_code = 0, next;
+
+      if (!$in_code)
+        {
+          $line =~ /^([0-9a-fA-F]{40})$/
+            or (warn "$ME: $f:$.: invalid line; expected an SHA1\n"),
+              $fail = 1, next;
+          $sha = lc $1;
+          $in_code = 1;
+          exists $h->{$sha}
+            and (warn "$ME: $f:$.: duplicate SHA1\n"),
+              $fail = 1, next;
+        }
+      else
+        {
+          $h->{$sha} ||= '';
+          $h->{$sha} .= "$line\n";
+        }
+    }
+  close F;
+
+  $fail
+    and exit 1;
+
+  return $h;
+}
+
+# git_dir_option $SRCDIR
+#
+# From $SRCDIR, the --git-dir option to pass to git (none if $SRCDIR
+# is undef).  Return as a list (0 or 1 element).
+sub git_dir_option($)
+{
+  my ($srcdir) = @_;
+  my @res = ();
+  if (defined $srcdir)
+    {
+      my $qdir = shell_quote $srcdir;
+      my $cmd = "cd $qdir && git rev-parse --show-toplevel";
+      my $qcmd = shell_quote $cmd;
+      my $git_dir = qx($cmd);
+      defined $git_dir
+        or die "$ME: cannot run $qcmd: $!\n";
+      $? == 0
+        or die "$ME: $qcmd had unexpected exit code or signal ($?)\n";
+      chomp $git_dir;
+      push @res, "--git-dir=$git_dir/.git";
+    }
+  @res;
+}
+
+{
+  my $since_date;
+  my $format_string = '%s%n%b%n';
+  my $amend_file;
+  my $append_dot = 0;
+  my $cluster = 1;
+  my $strip_tab = 0;
+  my $strip_cherry_pick = 0;
+  my $srcdir;
+  GetOptions
+    (
+     help => sub { usage 0 },
+     version => sub { print "$ME version $VERSION\n"; exit },
+     'since=s' => \$since_date,
+     'format=s' => \$format_string,
+     'amend=s' => \$amend_file,
+     'append-dot' => \$append_dot,
+     'cluster!' => \$cluster,
+     'strip-tab' => \$strip_tab,
+     'strip-cherry-pick' => \$strip_cherry_pick,
+     'srcdir=s' => \$srcdir,
+    ) or usage 1;
+
+  defined $since_date
+    and unshift @ARGV, "--since=$since_date";
+
+  # This is a hash that maps an SHA1 to perl code (i.e., s/old/new/)
+  # that makes a correction in the log or attribution of that commit.
+  my $amend_code = defined $amend_file ? parse_amend_file $amend_file : {};
+
+  my @cmd = ('git',
+             git_dir_option $srcdir,
+             qw(log --log-size),
+             '--pretty=format:%H:%ct  %an  <%ae>%n%n'.$format_string, @ARGV);
+  open PIPE, '-|', @cmd
+    or die ("$ME: failed to run '". quoted_cmd (@cmd) ."': $!\n"
+            . "(Is your Git too old?  Version 1.5.1 or later is required.)\n");
+
+  my $prev_multi_paragraph;
+  my $prev_date_line = '';
+  my @prev_coauthors = ();
+  while (1)
+    {
+      defined (my $in = <PIPE>)
+        or last;
+      $in =~ /^log size (\d+)$/
+        or die "$ME:$.: Invalid line (expected log size):\n$in";
+      my $log_nbytes = $1;
+
+      my $log;
+      my $n_read = read PIPE, $log, $log_nbytes;
+      $n_read == $log_nbytes
+        or die "$ME:$.: unexpected EOF\n";
+
+      # Extract leading hash.
+      my ($sha, $rest) = split ':', $log, 2;
+      defined $sha
+        or die "$ME:$.: malformed log entry\n";
+      $sha =~ /^[0-9a-fA-F]{40}$/
+        or die "$ME:$.: invalid SHA1: $sha\n";
+
+      # If this commit's log requires any transformation, do it now.
+      my $code = $amend_code->{$sha};
+      if (defined $code)
+        {
+          eval 'use Safe';
+          my $s = new Safe;
+          # Put the unpreprocessed entry into "$_".
+          $_ = $rest;
+
+          # Let $code operate on it, safely.
+          my $r = $s->reval("$code")
+            or die "$ME:$.:$sha: failed to eval \"$code\":\n$@\n";
+
+          # Note that we've used this entry.
+          delete $amend_code->{$sha};
+
+          # Update $rest upon success.
+          $rest = $_;
+        }
+
+      # Remove lines inserted by "git cherry-pick".
+      if ($strip_cherry_pick)
+        {
+          $rest =~ s/^\s*Conflicts:\n.*//sm;
+          $rest =~ s/^\s*\(cherry picked from commit [\da-f]+\)\n//m;
+        }
+
+      my @line = split "\n", $rest;
+      my $author_line = shift @line;
+      defined $author_line
+        or die "$ME:$.: unexpected EOF\n";
+      $author_line =~ /^(\d+)  (.*>)$/
+        or die "$ME:$.: Invalid line "
+          . "(expected date/author/email):\n$author_line\n";
+
+      # Format 'Copyright-paperwork-exempt: Yes' as a standard ChangeLog
+      # `(tiny change)' annotation.
+      my $tiny = (grep (/^Copyright-paperwork-exempt:\s+[Yy]es$/, @line)
+                  ? '  (tiny change)' : '');
+
+      my $date_line = sprintf "%s  %s$tiny\n",
+        strftime ("%F", localtime ($1)), $2;
+
+      my @coauthors = grep /^Co-authored-by:.*$/, @line;
+      # Omit meta-data lines we've already interpreted.
+      @line = grep !/^(?:Signed-off-by:[ ].*>$
+                       |Co-authored-by:[ ]
+                       |Copyright-paperwork-exempt:[ ]
+                       )/x, @line;
+
+      # Remove leading and trailing blank lines.
+      if (@line)
+        {
+          while ($line[0] =~ /^\s*$/) { shift @line; }
+          while ($line[$#line] =~ /^\s*$/) { pop @line; }
+        }
+
+      # Record whether there are two or more paragraphs.
+      my $multi_paragraph = grep /^\s*$/, @line;
+
+      # Format 'Co-authored-by: A U Thor <email@example.com>' lines in
+      # standard multi-author ChangeLog format.
+      for (@coauthors)
+        {
+          s/^Co-authored-by:\s*/\t    /;
+          s/\s*</  </;
+
+          /<.*?@.*\..*>/
+            or warn "$ME: warning: missing email address for "
+              . substr ($_, 5) . "\n";
+        }
+
+      # If clustering of commit messages has been disabled, if this header
+      # would be different from the previous date/name/email/coauthors header,
+      # or if this or the previous entry consists of two or more paragraphs,
+      # then print the header.
+      if ( ! $cluster
+          || $date_line ne $prev_date_line
+          || "@coauthors" ne "@prev_coauthors"
+          || $multi_paragraph
+          || $prev_multi_paragraph)
+        {
+          $prev_date_line eq ''
+            or print "\n";
+          print $date_line;
+          @coauthors
+            and print join ("\n", @coauthors), "\n";
+        }
+      $prev_date_line = $date_line;
+      @prev_coauthors = @coauthors;
+      $prev_multi_paragraph = $multi_paragraph;
+
+      # If there were any lines
+      if (@line == 0)
+        {
+          warn "$ME: warning: empty commit message:\n  $date_line\n";
+        }
+      else
+        {
+          if ($append_dot)
+            {
+              # If the first line of the message has enough room, then
+              if (length $line[0] < 72)
+                {
+                  # append a dot if there is no other punctuation or blank
+                  # at the end.
+                  $line[0] =~ /[[:punct:]\s]$/
+                    or $line[0] .= '.';
+                }
+            }
+
+          # Remove one additional leading TAB from each line.
+          $strip_tab
+            and map { s/^\t// } @line;
+
+          # Prefix each non-empty line with a TAB.
+          @line = map { length $_ ? "\t$_" : '' } @line;
+
+          print "\n", join ("\n", @line), "\n";
+        }
+
+      defined ($in = <PIPE>)
+        or last;
+      $in ne "\n"
+        and die "$ME:$.: unexpected line:\n$in";
+    }
+
+  close PIPE
+    or die "$ME: error closing pipe from " . quoted_cmd (@cmd) . "\n";
+  # FIXME-someday: include $PROCESS_STATUS in the diagnostic
+
+  # Complain about any unused entry in the --amend=F specified file.
+  my $fail = 0;
+  foreach my $sha (keys %$amend_code)
+    {
+      warn "$ME:$amend_file: unused entry: $sha\n";
+      $fail = 1;
+    }
+
+  exit $fail;
+}
+
+# Local Variables:
+# mode: perl
+# indent-tabs-mode: nil
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "my $VERSION = '"
+# time-stamp-format: "%:y-%02m-%02d %02H:%02M"
+# time-stamp-time-zone: "UTC"
+# time-stamp-end: "'; # UTC"
+# End:
diff --git a/tools/gnupload b/tools/gnupload
new file mode 100755 (executable)
index 0000000..7a137c1
--- /dev/null
@@ -0,0 +1,440 @@
+#!/bin/sh
+# Sign files and upload them.
+
+scriptversion=2013-03-19.17; # UTC
+
+# Copyright (C) 2004-2013 Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+# Originally written by Alexandre Duret-Lutz <adl@gnu.org>.
+# The master copy of this file is maintained in the gnulib Git repository.
+# Please send bug reports and feature requests to bug-gnulib@gnu.org.
+
+set -e
+
+GPG='gpg --batch --no-tty'
+conffile=.gnuploadrc
+to=
+dry_run=false
+replace=
+symlink_files=
+delete_files=
+delete_symlinks=
+collect_var=
+dbg=
+nl='
+'
+
+usage="Usage: $0 [OPTION]... [CMD] FILE... [[CMD] FILE...]
+
+Sign all FILES, and process them at the destinations specified with --to.
+If CMD is not given, it defaults to uploading.  See examples below.
+
+Commands:
+  --delete                 delete FILES from destination
+  --symlink                create symbolic links
+  --rmsymlink              remove symbolic links
+  --                       treat the remaining arguments as files to upload
+
+Options:
+  --to DEST                specify a destination DEST for FILES
+                           (multiple --to options are allowed)
+  --user NAME              sign with key NAME
+  --replace                allow replacements of existing files
+  --symlink-regex[=EXPR]   use sed script EXPR to compute symbolic link names
+  --dry-run                do nothing, show what would have been done
+                           (including the constructed directive file)
+  --version                output version information and exit
+  --help                   print this help text and exit
+
+If --symlink-regex is given without EXPR, then the link target name
+is created by replacing the version information with '-latest', e.g.:
+  foo-1.3.4.tar.gz -> foo-latest.tar.gz
+
+Recognized destinations are:
+  alpha.gnu.org:DIRECTORY
+  savannah.gnu.org:DIRECTORY
+  savannah.nongnu.org:DIRECTORY
+  ftp.gnu.org:DIRECTORY
+                           build directive files and upload files by FTP
+  download.gnu.org.ua:{alpha|ftp}/DIRECTORY
+                           build directive files and upload files by SFTP
+  [user@]host:DIRECTORY    upload files with scp
+
+Options and commands are applied in order.  If the file $conffile exists
+in the current working directory, its contents are prepended to the
+actual command line options.  Use this to keep your defaults.  Comments
+(#) and empty lines in $conffile are allowed.
+
+<http://www.gnu.org/prep/maintain/html_node/Automated-FTP-Uploads.html>
+gives some further background.
+
+Examples:
+1. Upload foobar-1.0.tar.gz to ftp.gnu.org:
+  gnupload --to ftp.gnu.org:foobar foobar-1.0.tar.gz
+
+2. Upload foobar-1.0.tar.gz and foobar-1.0.tar.xz to ftp.gnu.org:
+  gnupload --to ftp.gnu.org:foobar foobar-1.0.tar.gz foobar-1.0.tar.xz
+
+3. Same as above, and also create symbolic links to foobar-latest.tar.*:
+  gnupload --to ftp.gnu.org:foobar \\
+           --symlink-regex \\
+           foobar-1.0.tar.gz foobar-1.0.tar.xz
+
+4. Upload foobar-0.9.90.tar.gz to two sites:
+  gnupload --to alpha.gnu.org:foobar \\
+           --to sources.redhat.com:~ftp/pub/foobar \\
+           foobar-0.9.90.tar.gz
+
+5. Delete oopsbar-0.9.91.tar.gz and upload foobar-0.9.91.tar.gz
+   (the -- terminates the list of files to delete):
+  gnupload --to alpha.gnu.org:foobar \\
+           --to sources.redhat.com:~ftp/pub/foobar \\
+           --delete oopsbar-0.9.91.tar.gz \\
+           -- foobar-0.9.91.tar.gz
+
+gnupload executes a program ncftpput to do the transfers; if you don't
+happen to have an ncftp package installed, the ncftpput-ftp script in
+the build-aux/ directory of the gnulib package
+(http://savannah.gnu.org/projects/gnulib) may serve as a replacement.
+
+Send patches and bug reports to <bug-gnulib@gnu.org>."
+
+# Read local configuration file
+if test -r "$conffile"; then
+  echo "$0: Reading configuration file $conffile"
+  conf=`sed 's/#.*$//;/^$/d' "$conffile" | tr "\015$nl" '  '`
+  eval set x "$conf \"\$@\""
+  shift
+fi
+
+while test -n "$1"; do
+  case $1 in
+  -*)
+    collect_var=
+    case $1 in
+    --help)
+      echo "$usage"
+      exit $?
+      ;;
+    --to)
+      if test -z "$2"; then
+        echo "$0: Missing argument for --to" 1>&2
+        exit 1
+      elif echo "$2" | grep 'ftp-upload\.gnu\.org' >/dev/null; then
+        echo "$0: Use ftp.gnu.org:PKGNAME or alpha.gnu.org:PKGNAME" >&2
+        echo "$0: for the destination, not ftp-upload.gnu.org (which" >&2
+        echo "$0:  is used for direct ftp uploads, not with gnupload)." >&2
+        echo "$0: See --help and its examples if need be." >&2
+        exit 1
+      else
+        to="$to $2"
+        shift
+      fi
+      ;;
+    --user)
+      if test -z "$2"; then
+        echo "$0: Missing argument for --user" 1>&2
+        exit 1
+      else
+        GPG="$GPG --local-user $2"
+        shift
+      fi
+      ;;
+    --delete)
+      collect_var=delete_files
+      ;;
+    --replace)
+      replace="replace: true"
+      ;;
+    --rmsymlink)
+      collect_var=delete_symlinks
+      ;;
+    --symlink-regex=*)
+      symlink_expr=`expr "$1" : '[^=]*=\(.*\)'`
+      ;;
+    --symlink-regex)
+      symlink_expr='s|-[0-9][0-9\.]*\(-[0-9][0-9]*\)\{0,1\}\.|-latest.|'
+      ;;
+    --symlink)
+      collect_var=symlink_files
+      ;;
+    --dry-run|-n)
+      dry_run=:
+      ;;
+    --version)
+      echo "gnupload $scriptversion"
+      exit $?
+      ;;
+    --)
+      shift
+      break
+      ;;
+    -*)
+      echo "$0: Unknown option '$1', try '$0 --help'" 1>&2
+      exit 1
+      ;;
+    esac
+    ;;
+  *)
+    if test -z "$collect_var"; then
+      break
+    else
+      eval "$collect_var=\"\$$collect_var $1\""
+    fi
+    ;;
+  esac
+  shift
+done
+
+dprint()
+{
+  echo "Running $* ..."
+}
+
+if $dry_run; then
+  dbg=dprint
+fi
+
+if test -z "$to"; then
+  echo "$0: Missing destination sites" >&2
+  exit 1
+fi
+
+if test -n "$symlink_files"; then
+  x=`echo "$symlink_files" | sed 's/[^ ]//g;s/  //g'`
+  if test -n "$x"; then
+    echo "$0: Odd number of symlink arguments" >&2
+    exit 1
+  fi
+fi
+
+if test $# = 0; then
+  if test -z "${symlink_files}${delete_files}${delete_symlinks}"; then
+    echo "$0: No file to upload" 1>&2
+    exit 1
+  fi
+else
+  # Make sure all files exist.  We don't want to ask
+  # for the passphrase if the script will fail.
+  for file
+  do
+    if test ! -f $file; then
+      echo "$0: Cannot find '$file'" 1>&2
+      exit 1
+    elif test -n "$symlink_expr"; then
+      linkname=`echo $file | sed "$symlink_expr"`
+      if test -z "$linkname"; then
+        echo "$0: symlink expression produces empty results" >&2
+        exit 1
+      elif test "$linkname" = $file; then
+        echo "$0: symlink expression does not alter file name" >&2
+        exit 1
+      fi
+    fi
+  done
+fi
+
+# Make sure passphrase is not exported in the environment.
+unset passphrase
+unset passphrase_fd_0
+GNUPGHOME=${GNUPGHOME:-$HOME/.gnupg}
+
+# Reset PATH to be sure that echo is a built-in.  We will later use
+# 'echo $passphrase' to output the passphrase, so it is important that
+# it is a built-in (third-party programs tend to appear in 'ps'
+# listings with their arguments...).
+# Remember this script runs with 'set -e', so if echo is not built-in
+# it will exit now.
+if $dry_run || grep -q "^use-agent" $GNUPGHOME/gpg.conf; then :; else
+  PATH=/empty echo -n "Enter GPG passphrase: "
+  stty -echo
+  read -r passphrase
+  stty echo
+  echo
+  passphrase_fd_0="--passphrase-fd 0"
+fi
+
+if test $# -ne 0; then
+  for file
+  do
+    echo "Signing $file ..."
+    rm -f $file.sig
+    echo "$passphrase" | $dbg $GPG $passphrase_fd_0 -ba -o $file.sig $file
+  done
+fi
+
+
+# mkdirective DESTDIR BASE FILE STMT
+# Arguments: See upload, below
+mkdirective ()
+{
+  stmt="$4"
+  if test -n "$3"; then
+    stmt="
+filename: $3$stmt"
+  fi
+
+  cat >${2}.directive<<EOF
+version: 1.2
+directory: $1
+comment: gnupload v. $scriptversion$stmt
+EOF
+  if $dry_run; then
+    echo "File ${2}.directive:"
+    cat ${2}.directive
+    echo "File ${2}.directive:" | sed 's/./-/g'
+  fi
+}
+
+mksymlink ()
+{
+  while test $# -ne 0
+  do
+    echo "symlink: $1 $2"
+    shift
+    shift
+  done
+}
+
+# upload DEST DESTDIR BASE FILE STMT FILES
+# Arguments:
+#  DEST     Destination site;
+#  DESTDIR  Destination directory;
+#  BASE     Base name for the directive file;
+#  FILE     Name of the file to distribute (may be empty);
+#  STMT     Additional statements for the directive file;
+#  FILES    List of files to upload.
+upload ()
+{
+  dest=$1
+  destdir=$2
+  base=$3
+  file=$4
+  stmt=$5
+  files=$6
+
+  rm -f $base.directive $base.directive.asc
+  case $dest in
+    alpha.gnu.org:*)
+      mkdirective "$destdir" "$base" "$file" "$stmt"
+      echo "$passphrase" | $dbg $GPG $passphrase_fd_0 --clearsign $base.directive
+      $dbg ncftpput ftp-upload.gnu.org /incoming/alpha $files $base.directive.asc
+      ;;
+    ftp.gnu.org:*)
+      mkdirective "$destdir" "$base" "$file" "$stmt"
+      echo "$passphrase" | $dbg $GPG $passphrase_fd_0 --clearsign $base.directive
+      $dbg ncftpput ftp-upload.gnu.org /incoming/ftp $files $base.directive.asc
+      ;;
+    savannah.gnu.org:*)
+      if test -z "$files"; then
+        echo "$0: warning: standalone directives not applicable for $dest" >&2
+      fi
+      $dbg ncftpput savannah.gnu.org /incoming/savannah/$destdir $files
+      ;;
+    savannah.nongnu.org:*)
+      if test -z "$files"; then
+        echo "$0: warning: standalone directives not applicable for $dest" >&2
+      fi
+      $dbg ncftpput savannah.nongnu.org /incoming/savannah/$destdir $files
+      ;;
+    download.gnu.org.ua:alpha/*|download.gnu.org.ua:ftp/*)
+      destdir_p1=`echo "$destdir" | sed 's,^[^/]*/,,'`
+      destdir_topdir=`echo "$destdir" | sed 's,/.*,,'`
+      mkdirective "$destdir_p1" "$base" "$file" "$stmt"
+      echo "$passphrase" | $dbg $GPG $passphrase_fd_0 --clearsign $base.directive
+      for f in $files $base.directive.asc
+      do
+        echo put $f
+      done | $dbg sftp -b - puszcza.gnu.org.ua:/incoming/$destdir_topdir
+      ;;
+    /*)
+      dest_host=`echo "$dest" | sed 's,:.*,,'`
+      mkdirective "$destdir" "$base" "$file" "$stmt"
+      echo "$passphrase" | $dbg $GPG $passphrase_fd_0 --clearsign $base.directive
+      $dbg cp $files $base.directive.asc $dest_host
+      ;;
+    *)
+      if test -z "$files"; then
+        echo "$0: warning: standalone directives not applicable for $dest" >&2
+      fi
+      $dbg scp $files $dest
+      ;;
+  esac
+  rm -f $base.directive $base.directive.asc
+}
+
+#####
+# Process any standalone directives
+stmt=
+if test -n "$symlink_files"; then
+  stmt="$stmt
+`mksymlink $symlink_files`"
+fi
+
+for file in $delete_files
+do
+  stmt="$stmt
+archive: $file"
+done
+
+for file in $delete_symlinks
+do
+  stmt="$stmt
+rmsymlink: $file"
+done
+
+if test -n "$stmt"; then
+  for dest in $to
+  do
+    destdir=`echo $dest | sed 's/[^:]*://'`
+    upload "$dest" "$destdir" "`hostname`-$$" "" "$stmt"
+  done
+fi
+
+# Process actual uploads
+for dest in $to
+do
+  for file
+  do
+    echo "Uploading $file to $dest ..."
+    stmt=
+    #
+    # allowing file replacement is all or nothing.
+    if test -n "$replace"; then stmt="$stmt
+$replace"
+    fi
+    #
+    files="$file $file.sig"
+    destdir=`echo $dest | sed 's/[^:]*://'`
+    if test -n "$symlink_expr"; then
+      linkname=`echo $file | sed "$symlink_expr"`
+      stmt="$stmt
+symlink: $file $linkname
+symlink: $file.sig $linkname.sig"
+    fi
+    upload "$dest" "$destdir" "$file" "$file" "$stmt" "$files"
+  done
+done
+
+exit 0
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-time-zone: "UTC"
+# time-stamp-end: "; # UTC"
+# End:
index 499e473..68c6d96 100644 (file)
@@ -70,7 +70,7 @@
 #         compiler:            $LTCC
 #         compiler flags:              $LTCFLAGS
 #         linker:              $LD (gnu? $with_gnu_ld)
-#         $progname:   (GNU libtool) 2.4.2 Debian-2.4.2-1.2
+#         $progname:   (GNU libtool) 2.4.2 Debian-2.4.2-1.3
 #         automake:    $automake_version
 #         autoconf:    $autoconf_version
 #
@@ -80,7 +80,7 @@
 
 PROGRAM=libtool
 PACKAGE=libtool
-VERSION="2.4.2 Debian-2.4.2-1.2"
+VERSION="2.4.2 Debian-2.4.2-1.3"
 TIMESTAMP=""
 package_revision=1.3337