Blame ChangeLog-2013

Packit eba2e2
Sat Nov 30 21:07:06 GMT 2013  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* .bzrignore: Move to ...
Packit eba2e2
	* .gitignore: ... here, adjusting for differences between bzr and
Packit eba2e2
	  git.
Packit eba2e2
	* Makefile.am (EXTRA_DIST): Replace .bzrignore with .gitignore.
Packit eba2e2
	* gnulib: Add --no-vc-files.
Packit eba2e2
Packit eba2e2
Wed Nov 27 10:50:43 GMT 2013  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* configure.ac: Only call AC_PROG_AR if it is defined, to restore
Packit eba2e2
	  compatibility with Automake 1.10 (thanks, Mathieu Malaterre;
Packit eba2e2
	  Debian bug #730191).
Packit eba2e2
	* NEWS: Document this.
Packit eba2e2
Packit eba2e2
Wed Nov 27 10:48:16 GMT 2013  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	Upgrade to Automake 1.14, Gettext 0.18.3, and Gnulib 20130805.
Packit eba2e2
Packit eba2e2
Sun Jun 23 12:44:09 BST 2013  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* lib/pipeline-private.h (struct pipeline): Make want_infile and
Packit eba2e2
	  want_outfile non-const.
Packit eba2e2
	* lib/pipeline.c (pipeline_join): Take copies of p1->want_infile and
Packit eba2e2
	  p2->want_outfile.
Packit eba2e2
	  (pipeline_want_infile): Take a copy of file.
Packit eba2e2
	  (pipeline_want_outfile): Likewise.
Packit eba2e2
	  (pipeline_free): Free p->want_infile and p->want_outfile.
Packit eba2e2
	* NEWS: Document this.
Packit eba2e2
Packit eba2e2
Sun Jun 23 12:40:32 BST 2013  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* lib/pipeline.c (argstr_get_word, pipeline_free): Remove
Packit eba2e2
	  unnecessary tests before freeing pointers.
Packit eba2e2
Packit eba2e2
Sat Jun 22 17:12:03 BST 2013  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* tests/common.c (temp_dir_setup): Fail the test if mkdtemp fails.
Packit eba2e2
Packit eba2e2
Thu Jun  6 12:43:06 BST 2013  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* Version: 1.2.4.
Packit eba2e2
	* lib/Makefile.am (libpipeline_la_LDFLAGS): Bump -version-info to
Packit eba2e2
	  3:4:2.
Packit eba2e2
Packit eba2e2
Thu Jun  6 12:38:07 BST 2013  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* NEWS: Document changes since 1.2.3.
Packit eba2e2
Packit eba2e2
Wed Jun  5 20:28:59 BST 2013  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	Provide a replacement clearenv for non-glibc systems that lack it
Packit eba2e2
	(Savannah bug #36848).
Packit eba2e2
Packit eba2e2
	* gnulib: Import environ module.
Packit eba2e2
	* configure.ac: Check for clearenv.
Packit eba2e2
	* lib/pipeline.c [!HAVE_CLEARENV] (clearenv): New replacement
Packit eba2e2
	  function.
Packit eba2e2
	* lib/pipeline-private.h [!HAVE_CLEARENV] (clearenv): Add prototype.
Packit eba2e2
Packit eba2e2
Wed Jun  5 20:18:23 BST 2013  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* aclocal.m4: Upgrade to Gettext 0.18.2.1.
Packit eba2e2
Packit eba2e2
Wed Jun  5 20:12:11 BST 2013  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* tools/config.guess: Update to 2013-05-16.
Packit eba2e2
	* tools/config.sub: Update to 2013-04-24.
Packit eba2e2
Packit eba2e2
Wed Jun  5 18:01:47 BST 2013  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* lib/pipeline.h (pipecmd_clearenv): Add a warning about use of this
Packit eba2e2
	  function.
Packit eba2e2
	* man/libpipeline.3 (Functions to build individual commands):
Packit eba2e2
	  Likewise.
Packit eba2e2
Packit eba2e2
Wed Jun  5 10:31:01 BST 2013  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	Quieten warnings from compiling Gnulib.
Packit eba2e2
Packit eba2e2
	* m4/pipeline-gcc-warning.m4: Remove.
Packit eba2e2
	* gnulib: Import warnings module.
Packit eba2e2
	* configure.ac: Replace PIPELINE_GCC_WARNING with gl_WARN_ADD.
Packit eba2e2
	* lib/Makefile.am (AM_CFLAGS): Add $(WARN_CFLAGS).
Packit eba2e2
	* tests/Makefile.am (AM_CFLAGS): Likewise.
Packit eba2e2
Packit eba2e2
Wed Jun  5 10:16:59 BST 2013  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* tests/argstr.c, tests/basic.c, tests/exec.c, tests/inspect.c,
Packit eba2e2
	  tests/pump.c, tests/reading_long_line.c, tests/redirect.c: Define
Packit eba2e2
	  program_name (thanks, Fernando Lemos; see Savannah bug #36848).
Packit eba2e2
Packit eba2e2
Wed Jun  5 10:12:29 BST 2013  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* Makefile.in (DIST_COMMON): Regenerate, adding tools/depcomp.
Packit eba2e2
Packit eba2e2
Thu May 30 13:28:08 BST 2013  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	Upgrade to Automake 1.13.2 and Gnulib 20130529.
Packit eba2e2
Packit eba2e2
	* .bzrignore: Add tests/*.log and tests/*.trs.
Packit eba2e2
	* autogen.sh: Drop gnulib/gets.patch backport.
Packit eba2e2
	* Makefile.am (EXTRA_DIST): Remove gnulib/gets.patch.
Packit eba2e2
	* gnulib/gets.patch: Remove.
Packit eba2e2
	* tests/argstr.c, tests/basic.c, tests/exec.c, tests/inspect.c,
Packit eba2e2
	  tests/reading_long_line.c, tests/redirect.c: Include config.h.
Packit eba2e2
Packit eba2e2
Wed Apr 24 07:48:26 BST 2013  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* Version: 1.2.3.
Packit eba2e2
	* lib/Makefile.am (libpipeline_la_LDFLAGS): Bump -version-info to
Packit eba2e2
	  3:3:2.
Packit eba2e2
Packit eba2e2
Wed Apr 24 07:44:38 BST 2013  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* lib/pipeline.c (pipeline_wait_all): Free active_pipelines if it is
Packit eba2e2
	  entirely empty.
Packit eba2e2
Packit eba2e2
Wed Apr 24 07:27:44 BST 2013  Peter Schiffer  <pschiffe@redhat.com>
Packit eba2e2
Packit eba2e2
	* lib/pipeline.c (pipecmd_new_argstr): Fix memory leak when the
Packit eba2e2
	  first word of argstr is "exec".
Packit eba2e2
	* tests/argstr.c (test_argstr_exec): Free cmd at end.
Packit eba2e2
	* tests/basic.c (test_basic_wait_all): Free statuses at end.
Packit eba2e2
	  (test_basic_clearenv): Free p and p2 at end.
Packit eba2e2
	* tests/exec.c (test_exec_process, test_exec_function): Free cmd at
Packit eba2e2
	  end of loop.
Packit eba2e2
	* tests/redirect.c (test_redirect_files): Free p and template at
Packit eba2e2
	  end.
Packit eba2e2
Packit eba2e2
Tue Apr 23 07:52:40 BST 2013  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* lib/pipeline.c (pipecmd_exec): Flush stdio before starting a
Packit eba2e2
	  sequence.
Packit eba2e2
	* NEWS: Document this.
Packit eba2e2
Packit eba2e2
Tue Apr 23 07:50:45 BST 2013  Peter Schiffer  <pschiffe@redhat.com>
Packit eba2e2
                              Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	Don't read uninitialised memory when testing for the end of long
Packit eba2e2
	lines (Fedora bug #876108).
Packit eba2e2
Packit eba2e2
	* lib/pipeline.c (get_line): Fix incorrect memchr bounds.
Packit eba2e2
	* tests/Makefile.am (TESTS): Add reading_long_line.
Packit eba2e2
	  (reading_long_line_SOURCES, reading_long_line_LDADD): Add.
Packit eba2e2
	* tests/reading_long_line.c: New file.
Packit eba2e2
	* .bzrignore: Add tests/reading_long_line.
Packit eba2e2
	* NEWS: Document this.
Packit eba2e2
Packit eba2e2
Mon Jan 21 11:42:09 GMT 2013  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* configure.ac (AC_HEADER_SYS_WAIT): Remove; superseded by Gnulib.
Packit eba2e2
Packit eba2e2
Mon Jan 21 11:26:15 GMT 2013  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	Upgrade to Libtool 2.4.2-1.2 (from Debian).
Packit eba2e2
Packit eba2e2
Mon Dec 24 02:23:37 GMT 2012  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* lib/pipeline.c (pipeline_start): Remove redundant condition.
Packit eba2e2
Packit eba2e2
Mon Sep 17 22:54:12 BST 2012  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* Version: 1.2.2.
Packit eba2e2
	* lib/Makefile.am (libpipeline_la_LDFLAGS): Bump -version-info to
Packit eba2e2
	  3:2:2.
Packit eba2e2
Packit eba2e2
Mon Sep 17 22:52:58 BST 2012  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* Makefile.am (EXTRA_DIST): Add gnulib/gets.patch.
Packit eba2e2
Packit eba2e2
Mon Sep 17 22:31:18 BST 2012  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* release.sh: Use 'set -e' rather than '#! /bin/sh -e', to avoid
Packit eba2e2
	  accidents when debugging with 'sh -x'.
Packit eba2e2
Packit eba2e2
Mon Sep 17 22:27:47 BST 2012  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* NEWS: Document changes since 1.2.1.
Packit eba2e2
Packit eba2e2
Mon Sep 17 22:23:59 BST 2012  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* autogen.sh: Use 'set -e' rather than '#! /bin/sh -e', to avoid
Packit eba2e2
	  accidents when debugging with 'sh -x'.
Packit eba2e2
Packit eba2e2
Mon Sep 17 22:21:44 BST 2012  Křištof Želechovski  <yecril71pl@gmail.com>
Packit eba2e2
Packit eba2e2
	* configure.ac: Use AM_PROG_AR before LT_INIT, for compatibility
Packit eba2e2
	  with Automake 1.12.
Packit eba2e2
Packit eba2e2
Mon Sep 17 22:05:04 BST 2012  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	Backport Gnulib commit 66712c23388e93e5c518ebc8515140fa0c807348 to
Packit eba2e2
	stop assuming gets.
Packit eba2e2
Packit eba2e2
	* gnulib/gets.patch: New file.
Packit eba2e2
	* autogen.sh: Apply gnulib/gets.patch.
Packit eba2e2
Packit eba2e2
Mon Sep 17 22:03:09 BST 2012  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	Upgrade to Autoconf 2.69, Automake 1.11.6, and Gnulib
Packit eba2e2
	20120404-stable.
Packit eba2e2
Packit eba2e2
Sun Mar  4 17:43:21 GMT 2012  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* lib/pipeline.c (pipeline_start): Flush stdio after emitting
Packit eba2e2
	  debugging output.
Packit eba2e2
Packit eba2e2
Fri Mar  2 19:54:40 GMT 2012  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* Version: 1.2.1.
Packit eba2e2
	* lib/Makefile.am (libpipeline_la_LDFLAGS): Bump -version-info to
Packit eba2e2
	  3:1:2.
Packit eba2e2
Packit eba2e2
Thu Mar  1 22:51:30 GMT 2012  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* NEWS: Correct date of 1.2.0 release.
Packit eba2e2
Packit eba2e2
Wed Feb 29 20:09:12 GMT 2012  Martin Pollard  <martin.pollard@sanger.ac.uk>
Packit eba2e2
Packit eba2e2
	* lib/pipeline.h: Enclose in extern "C" { } when compiling as C++.
Packit eba2e2
Packit eba2e2
Wed Feb 29 18:26:22 GMT 2012  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* tests/Makefile.am (TESTS): Add pump.
Packit eba2e2
	  (pump_SOURCES, pump_LDADD): Add.
Packit eba2e2
	* tests/pump.c: New file.
Packit eba2e2
	* .bzrignore: Add tests/pump.
Packit eba2e2
Packit eba2e2
Wed Feb 29 18:19:08 GMT 2012  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* lib/pipeline.c (pipeline_start): Create output files if they do
Packit eba2e2
	  not already exist, and truncate them if they do.
Packit eba2e2
	* lib/pipeline.h (pipeline_want_outfile): Document this.
Packit eba2e2
	* man/libpipeline.3 (Functions to build pipelines): Likewise.
Packit eba2e2
	* tests/common.c: New file.
Packit eba2e2
	* tests/common.h (TEST_CASE_WITH_FIXTURE): New macro.
Packit eba2e2
	  (temp_dir_setup, temp_dir_teardown): Add prototypes.
Packit eba2e2
	* tests/redirect.c (test_redirect_outfile): New test.
Packit eba2e2
	  (redirect_suite): Call test_redirect_outfile.
Packit eba2e2
	* tests/Makefile.am (basic_SOURCES, argstr_SOURCES, exec_SOURCES,
Packit eba2e2
	  inspect_SOURCES, redirect_SOURCES): Add common.c.
Packit eba2e2
	* NEWS: Document this.
Packit eba2e2
Packit eba2e2
Mon Feb 27 22:17:20 GMT 2012  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* tests/exec.c (exit_helper, test_exit_function): Add test that
Packit eba2e2
	  pipecmd_exec works with functions.
Packit eba2e2
	  (exec_suite): Call test_exit_function.
Packit eba2e2
Packit eba2e2
Thu Feb  9 12:04:26 GMT 2012  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	Upgrade to Automake 1.11.3.
Packit eba2e2
Packit eba2e2
Sun Feb  5 02:33:14 GMT 2012  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	Upgrade to Automake 1.11.2 and Gnulib 20111211-stable.
Packit eba2e2
Packit eba2e2
	* Makefile.am (EXTRA_DIST): Remove gnulib/m4/sockpfaf.m4, which was
Packit eba2e2
	  removed from this package some time ago.  Add gnulib/m4/math_h.m4.
Packit eba2e2
Packit eba2e2
Wed Dec 14 12:54:40 GMT 2011  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* man/Makefile.am (FUNCTIONS): Add pipecmd_new_sequencev,
Packit eba2e2
	  pipeline_new_command_argv, pipeline_command_argv,
Packit eba2e2
	  pipeline_wait_all, and pipeline_run.
Packit eba2e2
Packit eba2e2
Wed Dec 14 12:48:56 GMT 2011  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	Upgrade to Libtool 2.4.2.
Packit eba2e2
Packit eba2e2
Mon Oct 10 09:22:41 BST 2011  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* README: Document test suite dependencies.  Suggested by Bruce
Packit eba2e2
	  Dubbs.
Packit eba2e2
Packit eba2e2
Mon Sep 26 13:34:00 BST 2011  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* man/libpipeline.3 (Reaping of child processes): Fix typo.
Packit eba2e2
Packit eba2e2
Mon Sep 26 12:10:35 BST 2011  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	Upgrade to Gnulib 20110908-stable.
Packit eba2e2
Packit eba2e2
Sat Apr 23 17:51:13 BST 2011  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	Upgrade to Autoconf 2.68, Libtool 2.4, and Gnulib 20110412-stable.
Packit eba2e2
Packit eba2e2
Wed Mar 30 13:40:42 BST 2011  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* gnulib: Import full-write, safe-read, and safe-write modules.
Packit eba2e2
	* lib/pipeline.c (passthrough): Use safe_read instead of read.  Use
Packit eba2e2
	  full_write instead of fwrite (stdio is not necessarily
Packit eba2e2
	  EINTR-safe).
Packit eba2e2
	  (pipeline_pump): Use safe_write instead of write and a manual
Packit eba2e2
	  EINTR check.
Packit eba2e2
	  (get_block): Use safe_read instead of read.
Packit eba2e2
	* NEWS: Document this.
Packit eba2e2
Packit eba2e2
Fri Mar 18 22:27:39 GMT 2011  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* Version: 1.2.0.
Packit eba2e2
	* lib/Makefile.am (libpipeline_la_LDFLAGS): Bump -version-info to
Packit eba2e2
	  3:0:2.
Packit eba2e2
Packit eba2e2
Fri Mar 18 18:24:42 GMT 2011  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* man/Makefile.am (FUNCTIONS): Add pipeline_get_pid.
Packit eba2e2
Packit eba2e2
Fri Mar 18 18:22:42 GMT 2011  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* tests/inspect.c (pid_helper): Flush stdout before pausing.
Packit eba2e2
Packit eba2e2
Fri Mar 18 12:08:51 GMT 2011  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* gnulib: Import waitpid module.
Packit eba2e2
Packit eba2e2
Fri Mar 18 12:02:42 GMT 2011  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	Upgrade to Gnulib 20110216-stable.
Packit eba2e2
Packit eba2e2
Fri Mar 18 11:45:10 GMT 2011  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* tests/basic.c (test_basic_clearenv): Test that pipecmd_clearenv
Packit eba2e2
	  and pipecmd_setenv survive pipecmd_dup.
Packit eba2e2
Packit eba2e2
Tue Mar  8 14:10:52 GMT 2011  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	Add a function to get process IDs of commands in started pipelines
Packit eba2e2
	(Savannah bug #32710).
Packit eba2e2
Packit eba2e2
	* lib/pipeline.c (pipeline_get_pid): New function.
Packit eba2e2
	* lib/pipeline.h (pipeline_get_pid): Add prototype.
Packit eba2e2
	* man/libpipeline.3 (Functions to build pipelines): Document
Packit eba2e2
	  pipeline_get_pid.
Packit eba2e2
	* tests/inspect.c (pid_helper, test_inspect_pid): Test
Packit eba2e2
	  pipeline_get_pid.
Packit eba2e2
	* NEWS: Document this.
Packit eba2e2
Packit eba2e2
Mon Mar  7 10:41:50 GMT 2011  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* configure.ac: Check for working fork(2).
Packit eba2e2
Packit eba2e2
Sat Dec 11 15:01:14 GMT 2010  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* Version: 1.1.0.
Packit eba2e2
	* lib/Makefile.am (libpipeline_la_LDFLAGS): Bump -version-info to
Packit eba2e2
	  2:0:1.
Packit eba2e2
Packit eba2e2
Sat Dec 11 15:00:02 GMT 2010  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* man/Makefile.am (FUNCTIONS): Add pipecmd_get_nargs,
Packit eba2e2
	  pipecmd_clearenv, and pipecmd_exec.
Packit eba2e2
Packit eba2e2
Sat Dec 11 13:25:29 GMT 2010  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* lib/pipeline.h (pipecmd_get_nargs): Clarify that the command name
Packit eba2e2
	  is counted as the first argument.
Packit eba2e2
	* man/libpipeline.3 (pipecmd_get_nargs): Likewise.
Packit eba2e2
	* tests/basic.c (test_basic_args): Correct off-by-one error.
Packit eba2e2
Packit eba2e2
Mon Dec  6 20:54:29 GMT 2010  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* lib/pipeline.c (pipecmd_get_nargs): New function.
Packit eba2e2
	* lib/pipeline.h (pipecmd_get_nargs): Add prototype.
Packit eba2e2
	* man/libpipeline.3 (Functions to build individual commands):
Packit eba2e2
	  Document pipecmd_get_nargs.
Packit eba2e2
	* tests/basic.c (test_basic_args): Test pipecmd_get_nargs.
Packit eba2e2
	* NEWS: Document this.
Packit eba2e2
Packit eba2e2
Mon Dec  6 20:07:43 GMT 2010  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* lib/pipeline.c (pipecmd_clearenv): New function.
Packit eba2e2
	  (pipecmd_dup, pipecmd_dump, pipecmd_tostring, pipecmd_exec):
Packit eba2e2
	  Handle cmd->env[i].name being NULL.
Packit eba2e2
	* lib/pipeline.h (pipecmd_clearenv): Add prototype.
Packit eba2e2
	* man/libpipeline.3 (Functions to build individual commands):
Packit eba2e2
	  Document pipecmd_clearenv.
Packit eba2e2
	* tests/basic.c (test_basic_clearenv): Add test.
Packit eba2e2
	  (basic_suite): Call test_basic_clearenv.
Packit eba2e2
	* NEWS: Document this.
Packit eba2e2
Packit eba2e2
Sun Nov 28 14:49:42 GMT 2010  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* NEWS: Note date of 1.0.0 release.
Packit eba2e2
Packit eba2e2
Sun Nov 28 14:47:03 GMT 2010  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* lib/pipeline.c (pipecmd_start_child): Rename to ...
Packit eba2e2
	  (pipecmd_exec): ... this, and make external.  Update all callers.
Packit eba2e2
	* lib/pipeline.h (pipecmd_exec): Add prototype.
Packit eba2e2
	* man/libpipeline.3 (Functions to build individual commands):
Packit eba2e2
	  Document pipecmd_exec.
Packit eba2e2
	* tests/Makefile.am (TESTS): Add exec.
Packit eba2e2
	  (exec_SOURCES, exec_LDADD): Add.
Packit eba2e2
	* tests/exec.c: New file.
Packit eba2e2
	* .bzrignore: Add tests/exec.
Packit eba2e2
	* NEWS: Document this.
Packit eba2e2
Packit eba2e2
Sun Nov 28 13:43:45 GMT 2010  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* gnulib: Remove mkstemp module.  Add sys_stat module.
Packit eba2e2
Packit eba2e2
Tue Nov 16 17:25:08 GMT 2010  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* man/libpipeline.3 (EXAMPLES): Clarify pipeline_readline example:
Packit eba2e2
	  show calls to pipeline_want_out and pipeline_start.
Packit eba2e2
Packit eba2e2
Tue Nov  2 16:56:22 GMT 2010  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* README (Building programs with libpipeline): Recommend -Wformat.
Packit eba2e2
Packit eba2e2
Fri Oct 29 07:34:05 BST 2010  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* Version: 1.0.0.
Packit eba2e2
Packit eba2e2
Fri Oct 29 07:25:14 BST 2010  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* lib/pipeline.h (pipeline_install_post_fork): Clarify that this is
Packit eba2e2
	  run in the child process.
Packit eba2e2
	  (pipeline_wait_all): Clarify that SIGPIPE is considered equivalent
Packit eba2e2
	  to exiting zero.
Packit eba2e2
	* man/libpipeline.3 (DESCRIPTION): Update descriptions of
Packit eba2e2
	  pipeline_install_post_fork and pipeline_wait_all to match this.
Packit eba2e2
	  (Functions to read output from pipelines): Note that output is
Packit eba2e2
	  returned as a pointer into a pipeline-owned buffer.
Packit eba2e2
Packit eba2e2
Fri Oct 29 06:21:02 BST 2010  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* TODO: New file.
Packit eba2e2
Packit eba2e2
Fri Oct 29 06:20:18 BST 2010  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* README (Credits): New section.
Packit eba2e2
Packit eba2e2
Fri Oct 29 06:11:37 BST 2010  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* lib/pipeline.c (pipecmd_new_sequencev): New function.
Packit eba2e2
	  (pipecmd_new_sequence): Rewrite in terms of pipecmd_new_sequence.
Packit eba2e2
	  (pipeline_new_command_argv): New function.
Packit eba2e2
	  (pipeline_new_command_args): Rewrite in terms of
Packit eba2e2
	  pipeline_new_command_argv.
Packit eba2e2
	  (pipeline_command_argv): New function.
Packit eba2e2
	  (pipeline_command_args): Rewrite in terms of
Packit eba2e2
	  pipeline_command_argv.
Packit eba2e2
	* lib/pipeline.h (pipecmd_new_sequencev, pipeline_new_command_argv,
Packit eba2e2
	  pipeline_command_argv): Add prototypes.
Packit eba2e2
	* man/libpipeline.3 (DESCRIPTION): Document pipecmd_new_sequencev,
Packit eba2e2
	  pipeline_new_command_argv, and pipeline_command_argv.
Packit eba2e2
	* tests/basic.c (test_basic_sequence): Add test.
Packit eba2e2
	  (basic_suite): Call test_basic_sequence.
Packit eba2e2
Packit eba2e2
Fri Oct 29 05:25:19 BST 2010  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* lib/pipeline.c (pipeline_wait): Rename to ...
Packit eba2e2
	  (pipeline_wait_all): ... this.  Return 127 rather than 1 if
Packit eba2e2
	  closing the pipeline output fails.  Return 127 if a command other
Packit eba2e2
	  than the last one fails.  Return the statuses and the number of
Packit eba2e2
	  statuses in new output parameters if they are non-NULL.
Packit eba2e2
	  (pipeline_wait): Add new wrapper function.
Packit eba2e2
	* lib/pipeline.h (pipeline_wait_all): Add prototype.
Packit eba2e2
	* man/libpipeline.3 (Functions to run pipelines and handle signals):
Packit eba2e2
	  Document pipeline_wait_all.
Packit eba2e2
	* tests/basic.c (test_basic_wait_all): Add test.
Packit eba2e2
	  (basic_suite): Call test_basic_wait_all.
Packit eba2e2
Packit eba2e2
Fri Oct 29 03:46:39 BST 2010  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* lib/pipeline.c (pipeline_new): Default ignore_signals to 0.
Packit eba2e2
	* man/libpipeline.3 (Functions to build pipelines): Update
Packit eba2e2
	  pipeline_ignore_signals documentation.
Packit eba2e2
Packit eba2e2
Fri Oct 29 03:43:29 BST 2010  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* man/libpipeline.3 (Functions to build pipelines): Rephrase
Packit eba2e2
	  description of want_out and want_in handling in terms of public
Packit eba2e2
	  function calls.
Packit eba2e2
Packit eba2e2
Fri Oct 29 03:30:45 BST 2010  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* man/libpipeline.3 (Functions to build individual commands):
Packit eba2e2
	  Document variable arguments to pipecmd_new_sequence.
Packit eba2e2
	  (Functions to build pipelines): Explain analogy of
Packit eba2e2
	  pipeline_connect to tee(1).
Packit eba2e2
Packit eba2e2
Fri Oct 29 03:13:21 BST 2010  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* lib/pipeline.c, lib/pipeline.h, lib/pipeline-private.h: Rename
Packit eba2e2
	  command to pipecmd, command_* to pipecmd_*, and COMMAND_* to
Packit eba2e2
	  PIPECMD_*.  Update all callers and documentation references.
Packit eba2e2
	* lib/Makefile.am (libpipeline_la_LDFLAGS): Adjust
Packit eba2e2
	  -export-symbols-regex to export pipecmd_* rather than command_*.
Packit eba2e2
Packit eba2e2
Fri Oct 29 03:00:51 BST 2010  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* man/libpipeline.3 (DESCRIPTION): Various minor corrections and
Packit eba2e2
	  clarifications from Ian Jackson.
Packit eba2e2
	  (BUGS): New section.
Packit eba2e2
Packit eba2e2
Tue Oct 26 21:09:53 BST 2010  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* tests/Makefile.am (TESTS): Add argstr.
Packit eba2e2
	  (argstr_SOURCES, argstr_LDADD): Add.
Packit eba2e2
	* tests/argstr.c: New file.
Packit eba2e2
	* .bzrignore: Add tests/argstr.
Packit eba2e2
Packit eba2e2
Mon Oct 25 21:56:08 BST 2010  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* tests/inspect.c (test_inspect_command): Free the result of
Packit eba2e2
	  command_tostring.
Packit eba2e2
	  (test_inspect_pipeline): Free the result of pipeline_tostring.
Packit eba2e2
Packit eba2e2
Mon Oct 25 20:25:11 BST 2010  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	Revert our patched version of xstrdup, since none of libpipeline's
Packit eba2e2
	calls to xstrdup rely on being able to pass NULL to it.
Packit eba2e2
Packit eba2e2
	* Makefile.am (EXTRA_DIST): Remove gnulib/lib/xmalloc.c.orig and
Packit eba2e2
	  gnulib/lib/xmalloc.patch.
Packit eba2e2
	* autogen.sh: Stop applying gnulib/lib/xmalloc.patch.
Packit eba2e2
	* gnulib/lib/xmalloc.c.orig, gnulib/lib/xmalloc.patch: Remove.
Packit eba2e2
Packit eba2e2
Mon Oct 25 20:10:25 BST 2010  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* README (Building programs with libpipeline): New section.
Packit eba2e2
Packit eba2e2
Mon Oct 25 19:39:06 BST 2010  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* man/Makefile.am (FUNCTIONS): Add command_nice,
Packit eba2e2
	  command_discard_err, command_unsetenv, pipeline_new_command_args,
Packit eba2e2
	  pipeline_get_ncommands, pipeline_get_command,
Packit eba2e2
	  pipeline_set_command, pipeline_want_in, pipeline_want_out,
Packit eba2e2
	  pipeline_want_infile, pipeline_want_outfile, and
Packit eba2e2
	  pipeline_ignore_signals.
Packit eba2e2
Packit eba2e2
Mon Oct 25 19:31:27 BST 2010  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* tests/basic.c: Include <string.h>.
Packit eba2e2
Packit eba2e2
Mon Oct 25 19:31:09 BST 2010  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* tests/Makefile.am (TESTS): Add inspect.
Packit eba2e2
	  (inspect_SOURCES, inspect_LDADD): Add.
Packit eba2e2
	* tests/inspect.c: New file.
Packit eba2e2
	* .bzrignore: Add tests/inspect.
Packit eba2e2
Packit eba2e2
Mon Oct 25 19:18:35 BST 2010  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* tests/common.h: New file.
Packit eba2e2
	* tests/basic.c (basic_suite, main), tests/redirect.c
Packit eba2e2
	  (redirect_suite, main): Use new TEST_CASE and MAIN macros.
Packit eba2e2
	* tests/Makefile.am (basic_SOURCES, redirect_SOURCES): Add common.h.
Packit eba2e2
Packit eba2e2
Mon Oct 25 16:17:24 BST 2010  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* gnulib: Import unsetenv module.
Packit eba2e2
	* lib/pipeline.c (command_unsetenv): New function.
Packit eba2e2
	  (command_dup, command_dump, command_tostring): Check for NULL
Packit eba2e2
	  cmd->env[i].value.
Packit eba2e2
	  (command_start_child): If cmd->env[i].value is NULL, call unsetenv
Packit eba2e2
	  rather than setenv.
Packit eba2e2
	* lib/pipeline.h (command_unsetenv): Add prototype.
Packit eba2e2
	* man/libpipeline.3 (Functions to build individual commands):
Packit eba2e2
	  Document command_unsetenv.
Packit eba2e2
	* tests/basic.c (test_basic_setenv, test_basic_unsetenv): New tests.
Packit eba2e2
	  (basic_suite): Call test_basic_setenv and test_basic_unsetenv.
Packit eba2e2
Packit eba2e2
Mon Oct 25 14:31:41 BST 2010  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* gnulib: Import mkstemp module.
Packit eba2e2
	* tests/Makefile.am (TESTS): Add redirect.
Packit eba2e2
	  (LIBPIPELINE): Rename to ...
Packit eba2e2
	  (LIBS): ... this, and add libgnu and $(LTLIBOBJS).
Packit eba2e2
	  (AM_CPPFLAGS): Add -I$(top_srcdir)/gnulib/lib and
Packit eba2e2
	  -I$(top_builddir)/gnulib/lib.
Packit eba2e2
	  (clean-local): Remove temporary test files.
Packit eba2e2
	  (basic_LDADD): Use $(LIBS) rather than $(LIBPIPELINE).
Packit eba2e2
	  (redirect_SOURCES, redirect_LDADD): Add.
Packit eba2e2
	* tests/redirect.c: New file.
Packit eba2e2
	* .bzrignore: Add gnulib/lib/time.h and tests/redirect.
Packit eba2e2
Packit eba2e2
	* lib/Makefile.am (libpipeline_la_CPPFLAGS): Remove spurious
Packit eba2e2
	  -I$(top_builddir)/include.
Packit eba2e2
Packit eba2e2
Mon Oct 25 14:30:14 BST 2010  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* lib/pipeline.c (pipeline_start): Fix typo that broke
Packit eba2e2
	  pipeline_want_infile.
Packit eba2e2
Packit eba2e2
Mon Oct 25 13:38:40 BST 2010  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	Start test suite.
Packit eba2e2
Packit eba2e2
	* lib/Makefile.am (libpipeline_la_LDFLAGS): Remove -module; this
Packit eba2e2
	  introduces too many complications for now.
Packit eba2e2
Packit eba2e2
	* configure.ac: Test for check >= 0.9.4.
Packit eba2e2
	  (AC_CONFIG_FILES): Add tests/Makefile.
Packit eba2e2
	* Makefile.am (SUBDIRS): Add tests if check was found.
Packit eba2e2
	* tests/Makefile.am: New file.
Packit eba2e2
	* tests/basic.c: New file.
Packit eba2e2
	* .bzrignore: Add tests/basic.
Packit eba2e2
Packit eba2e2
Sun Oct 24 22:22:21 BST 2010  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* lib/pipeline.c (command_start_child): Add trailing newline to
Packit eba2e2
	  "nice failed" debug message.
Packit eba2e2
Packit eba2e2
Sun Oct 24 22:21:20 BST 2010  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	Make command and pipeline opaque types.
Packit eba2e2
Packit eba2e2
	* lib/pipeline.c (command_nice, command_discard_err,
Packit eba2e2
	  pipeline_get_ncommands, pipeline_get_command,
Packit eba2e2
	  pipeline_set_command, pipeline_want_in, pipeline_want_out,
Packit eba2e2
	  pipeline_want_infile, pipeline_want_outfile,
Packit eba2e2
	  pipeline_ignore_signals): New functions.
Packit eba2e2
	* lib/pipeline.h (command_nice, command_discard_err,
Packit eba2e2
	  pipeline_get_ncommands, pipeline_get_command,
Packit eba2e2
	  pipeline_set_command, pipeline_want_in, pipeline_want_out,
Packit eba2e2
	  pipeline_want_infile, pipeline_want_outfile,
Packit eba2e2
	  pipeline_ignore_signals): Add prototypes.
Packit eba2e2
	* man/libpipeline.3 (DESCRIPTION): Document new functions.
Packit eba2e2
Packit eba2e2
	* lib/pipeline.h (enum command_tag, struct command_env, struct
Packit eba2e2
	  command, struct pipeline): Move to ...
Packit eba2e2
	* lib/pipeline-private.h (enum command_tag, struct command_env,
Packit eba2e2
	  struct command, struct pipeline): ... here.
Packit eba2e2
	* man/libpipeline.3 (Public command fields, Public pipeline fields):
Packit eba2e2
	  Remove.
Packit eba2e2
Packit eba2e2
	Redirections are now handled slightly differently internally,
Packit eba2e2
	allowing redirection from/to fd 0.
Packit eba2e2
Packit eba2e2
	* lib/pipeline.c (pipeline_new, pipeline_join): Set redirect_in and
Packit eba2e2
	  redirect_out.
Packit eba2e2
	  (pipeline_connect): Use pipeline_want_in and pipeline_want_out.
Packit eba2e2
	  Check source->redirect_out.
Packit eba2e2
	  (pipeline_start): Handle new redirection semantics.
Packit eba2e2
	* man/libpipeline.3 (EXAMPLES): Use pipeline_want_infile.
Packit eba2e2
Packit eba2e2
	* man/libpipeline.3 (DESCRIPTION): Document string copying.
Packit eba2e2
	  (Reaping of child processes): New subsection.
Packit eba2e2
Packit eba2e2
Tue Oct 19 01:43:29 BST 2010  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	Make debugging work properly in a library context.
Packit eba2e2
Packit eba2e2
	* lib/debug.c (init_debug): Check whether we've already been
Packit eba2e2
	  initialised.
Packit eba2e2
	  (debug): Call init_debug.
Packit eba2e2
	* lib/pipeline-private.h (init_debug): Add prototype.
Packit eba2e2
	* lib/pipeline.c (pipeline_start, pipeline_wait): Call init_debug.
Packit eba2e2
Packit eba2e2
Tue Oct 19 01:42:47 BST 2010  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* man/libpipeline.3: Bump licence header to GPLv3, since that more
Packit eba2e2
	  accurately describes the whole package.
Packit eba2e2
Packit eba2e2
Tue Oct 19 01:41:59 BST 2010  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* man/Makefile.am (install-data-hook): Handle repeated
Packit eba2e2
	  installations.
Packit eba2e2
	  (uninstall-hook): Add.
Packit eba2e2
Packit eba2e2
Tue Oct 19 01:39:54 BST 2010  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* lib/pipeline-private.h: Move attribute macros to ...
Packit eba2e2
	* lib/pipeline.h: ... here, and make them namespace-safe.  Update
Packit eba2e2
	  all users.
Packit eba2e2
Packit eba2e2
Mon Oct 18 11:32:52 BST 2010  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* lib/pipeline.c (pipeline_run): This would be a more convenient
Packit eba2e2
	  wrapper for the common case if it freed the pipeline as well, so
Packit eba2e2
	  do that.  (Callers that don't want this should call pipeline_start
Packit eba2e2
	  and pipeline_wait separately.)
Packit eba2e2
	* lib/pipeline.h (pipeline_run): Update comment.
Packit eba2e2
	* man/libpipeline.3 (Functions to build pipelines): Update
Packit eba2e2
	  pipeline_run documentation.
Packit eba2e2
	  (EXAMPLES): Remove now-unnecessary calls to pipeline_free.
Packit eba2e2
Packit eba2e2
Mon Oct 18 11:29:11 BST 2010  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* lib/pipeline.c (pipeline_new_command_args): New function.
Packit eba2e2
	* lib/pipeline.h (pipeline_new_command_args): Add prototype.
Packit eba2e2
	* man/libpipeline.3 (Functions to build pipelines): Add
Packit eba2e2
	  pipeline_new_command_args.
Packit eba2e2
	  (EXAMPLES): Use this to describe the simplest case.
Packit eba2e2
Packit eba2e2
Mon Oct 18 11:10:27 BST 2010  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* lib/pipeline.c (pipeline_run): New function.
Packit eba2e2
	* lib/pipeline.h (pipeline_run): Add prototype.
Packit eba2e2
	* man/libpipeline.3 (Functions to run pipelines and handle signals):
Packit eba2e2
	  Add pipeline_run.
Packit eba2e2
	  (EXAMPLES): Use it.
Packit eba2e2
Packit eba2e2
Mon Oct 18 11:07:16 BST 2010  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* man/libpipeline.3 (DESCRIPTION): Add some more paragraph breaks.
Packit eba2e2
Packit eba2e2
Fri Oct 15 10:26:02 BST 2010  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* lib/libpipeline.pc.in: Add copyright/licensing comment.
Packit eba2e2
	* man/libpipeline.3: Add brief licensing comment.
Packit eba2e2
Packit eba2e2
Thu Oct 14 00:49:34 BST 2010  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* README (Copyright and licensing): Bump to GPLv3 or later, for
Packit eba2e2
	  clarity.  (lib/* remains licensed under GPLv2 or later, but the
Packit eba2e2
	  work as a whole is GPLv3 or later.)  Move further advice to ...
Packit eba2e2
	  (Note on GPL versions): ... here, and expand.
Packit eba2e2
Packit eba2e2
Tue Oct 12 01:12:13 BST 2010  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* README: New file.
Packit eba2e2
	* INSTALL: New file.
Packit eba2e2
Packit eba2e2
Tue Oct 12 01:01:04 BST 2010  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* COPYING: New file.
Packit eba2e2
Packit eba2e2
	* autogen.sh: Add a copyright/licence notice.
Packit eba2e2
	* configure.ac: Likewise.
Packit eba2e2
Packit eba2e2
	* lib/pipeline-private.h: Update copyright years.
Packit eba2e2
Packit eba2e2
Tue Oct 12 00:52:00 BST 2010  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* man/libpipeline.3: Add a licence notice.
Packit eba2e2
Packit eba2e2
Tue Oct 12 00:27:01 BST 2010  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* autogen.sh: Stop setting AUTOPOINT=true.
Packit eba2e2
	* configure.ac: Stop echoing DBLIBS (specific to man-db).
Packit eba2e2
Packit eba2e2
Tue Oct 12 00:22:00 BST 2010  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* configure.ac: Remove check for gnulib/po/Makefile.in.in.
Packit eba2e2
Packit eba2e2
Tue Oct 12 00:17:53 BST 2010  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	Remove gettext support.  It's overkill for a library considering
Packit eba2e2
	that we only emit error messages, and it vastly inflates the size of
Packit eba2e2
	our configuration requirements.
Packit eba2e2
Packit eba2e2
	* Makefile.am (SUBDIRS): Remove gnulib/po and po.
Packit eba2e2
	  (EXTRA_DIST): Remove everything except gnulib/m4/sockpfaf.m4.
Packit eba2e2
	* autogen.sh: Remove call to autopoint and removal of po/ChangeLog.
Packit eba2e2
	* configure.ac: Remove calls to AM_GNU_GETTEXT and
Packit eba2e2
	  AM_GNU_GETTEXT_VERSION.  Stop substituting LINGUAS.
Packit eba2e2
	  (AC_CONFIG_FILES): Remove gnulib/po/Makefile.in and
Packit eba2e2
	  po/Makefile.in.
Packit eba2e2
	* gnulib/m4/gnulib-cache.m4: Remove --po-base and --po-domain
Packit eba2e2
	  options.  Remove gettext module.
Packit eba2e2
	* lib/Makefile.am (libpipeline_la_LIBADD): Remove @LTLIBINTL@.
Packit eba2e2
	* lib/pipeline.c (command_new_argstr, command_start_child),
Packit eba2e2
	  pipeline_get_infile, pipeline_get_outfile,
Packit eba2e2
	  pipeline_install_sigchld, pipeline_start, pipeline_wait,
Packit eba2e2
	  pipeline_pump): Remove gettext support.
Packit eba2e2
	* po/*: Remove.
Packit eba2e2
	* .bzrignore: Remove gnulib/po and po/*.
Packit eba2e2
Packit eba2e2
Mon Oct 11 21:25:37 BST 2010  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* autogen.sh: Remove po/ChangeLog after running autoreconf.
Packit eba2e2
	* .bzrignore: Remove po/ChangeLog.
Packit eba2e2
Packit eba2e2
	* Makefile.am (EXTRA_DIST): Add gnulib/m4/codeset.m4,
Packit eba2e2
	  gnulib/m4/fcntl-o.m4, and gnulib/m4/glibc21.m4.
Packit eba2e2
Packit eba2e2
	* po/LINGUAS: New file.
Packit eba2e2
Packit eba2e2
Mon Oct 11 18:19:37 BST 2010  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* man/Makefile.am (man3_MANS): Move to ...
Packit eba2e2
	  (dist_man3_MANS): ... here.
Packit eba2e2
Packit eba2e2
Mon Oct 11 17:51:16 BST 2010  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* Makefile.am (SUBDIRS): Add man.
Packit eba2e2
	* configure.ac (AC_PROG_LN_S): Add.
Packit eba2e2
	  (AC_CONFIG_FILES): Add man/Makefile.
Packit eba2e2
	* man/Makefile.am: New file.
Packit eba2e2
	* man/libpipeline.3: New file.
Packit eba2e2
Packit eba2e2
Mon Oct 11 16:38:29 BST 2010  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* lib/pipeline.h (pipeline_pump): Mention in comment that arguments
Packit eba2e2
	  must be NULL-terminated.
Packit eba2e2
Packit eba2e2
Mon Oct 11 14:10:54 BST 2010  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* lib/pipeline.h (pipeline_new_commandv): Fix comment.
Packit eba2e2
Packit eba2e2
Thu Oct  7 08:05:41 BST 2010  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* lib/libpipeline.pc.in: New file.
Packit eba2e2
	* configure.ac (AC_CONFIG_FILES): Add lib/libpipeline.pc.
Packit eba2e2
	* lib/Makefile.am (pkgconfigdir, pkgconfig_DATA): Install
Packit eba2e2
	  libpipeline.pc to $(libdir)/pkgconfig.
Packit eba2e2
	* .bzrignore: Add lib/libpipeline.pc.
Packit eba2e2
Packit eba2e2
Thu Oct  7 07:56:27 BST 2010  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* po/libpipeline.pot: Update.
Packit eba2e2
	* po/*.po: Import translations from man-db.
Packit eba2e2
Packit eba2e2
Thu Oct  7 07:54:12 BST 2010  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* lib/Makefile.am (libpipeline_la_SOURCES): Add pipeline-private.h.
Packit eba2e2
Packit eba2e2
Thu Oct  7 07:49:46 BST 2010  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* release.sh: New file, from man-db.
Packit eba2e2
Packit eba2e2
Thu Oct  7 07:48:12 BST 2010  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	Build independently from man-db.  Many new files from gettextize,
Packit eba2e2
	gnulib-tool, and autoreconf.
Packit eba2e2
Packit eba2e2
	* lib/appendstr.c: New file, from man-db.
Packit eba2e2
	* lib/debug.c: Likewise.
Packit eba2e2
	* m4/pipeline-gcc-warning.m4: Likewise.
Packit eba2e2
	* m4/pipeline-socketpair.m4: Likewise.
Packit eba2e2
Packit eba2e2
	* lib/pipeline-private.h: New file.
Packit eba2e2
Packit eba2e2
	* lib/pipeline.c (command_new_argstr): Use strcmp rather than STREQ.
Packit eba2e2
	  (pipeline_install_post_fork): New function.
Packit eba2e2
	  (pipeline_start): Call post-fork handler rather than hardcoding
Packit eba2e2
	  pop_all_cleanups.
Packit eba2e2
	* lib/pipeline.h (pipeline_install_post_fork): Add prototype.
Packit eba2e2
Packit eba2e2
	* lib/pipeline.c: Update copyright notice for libpipeline.
Packit eba2e2
	* lib/pipeline.h: Likewise.
Packit eba2e2
Packit eba2e2
	* gnulib: Import dirname, error, gettext, lib-ignore, setenv,
Packit eba2e2
	  sigaction, signal, sigprocmask, strerror, strsignal, sys_select,
Packit eba2e2
	  xalloc, xstrndup, and xvasprintf modules.
Packit eba2e2
Packit eba2e2
	* Makefile.am: New file.
Packit eba2e2
	* NEWS: New file.
Packit eba2e2
	* autogen.sh: New file.
Packit eba2e2
	* configure.ac: New file.
Packit eba2e2
	* lib/Makefile.am: New file.
Packit eba2e2
	* .bzrignore: New file.
Packit eba2e2
Packit eba2e2
Entries below this point are edited versions of entries in man-db.
Packit eba2e2
Packit eba2e2
Sun Oct  3 23:57:45 BST 2010  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* lib/pipeline.c (command_argf): New function.
Packit eba2e2
	* lib/pipeline.h (command_argf): Add prototype.
Packit eba2e2
Packit eba2e2
Sun Oct  3 22:34:13 BST 2010  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* lib/pipeline.c (reap_children, pipeline_sigchld,
Packit eba2e2
	  pipeline_install_sigchld): Move above pipeline_start.
Packit eba2e2
	  (pipeline_install_sigchld): Make static.  Return immediately if
Packit eba2e2
	  already installed.
Packit eba2e2
	  (pipeline_start): Call pipeline_install_sigchld.
Packit eba2e2
	* lib/pipeline.h (pipeline_start): Document that this installs a
Packit eba2e2
	  SIGCHLD handler.
Packit eba2e2
	  (pipeline_install_sigchld): Remove prototype.
Packit eba2e2
Packit eba2e2
Tue Mar  2 10:04:54 GMT 2010  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	Fix assertion failure on 'man -l' with an uncompressed page and
Packit eba2e2
	prefixed input (no-hyphenation, no-justification, or a non-English
Packit eba2e2
	page).
Packit eba2e2
Packit eba2e2
	* lib/pipeline.c (command_new_passthrough): New function.
Packit eba2e2
	* lib/pipeline.h (command_new_passthrough): Add prototype.
Packit eba2e2
Packit eba2e2
Mon Feb  1 12:18:36 PST 2010  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* lib/pipeline.c (pipeline_wait): Don't bother printing error
Packit eba2e2
	  messages for SIGINT and SIGQUIT, since these correspond to
Packit eba2e2
	  explicit user actions (Debian bug #568000).
Packit eba2e2
Packit eba2e2
Wed Jan 13 23:42:00 GMT 2010  Werner Fink  <werner@suse.de>
Packit eba2e2
Packit eba2e2
	Add support for using socketpair(2) as a replacement for pipe(2),
Packit eba2e2
	which is faster on some systems (Savannah patch #6741).
Packit eba2e2
Packit eba2e2
	* lib/pipeline.c [USE_SOCKETPAIR_PIPE]: Redefine pipe() to a
Packit eba2e2
	  construction based on socketpair().
Packit eba2e2
Packit eba2e2
Tue Jan 12 13:33:51 GMT 2010  Samuel Thibault  <sthibault@debian.org>
Packit eba2e2
Packit eba2e2
	* lib/pipeline.c (pipeline_pump): Fix off-by-one error when write
Packit eba2e2
	  returns EAGAIN (Debian bug #564818).
Packit eba2e2
Packit eba2e2
Sat Nov 14 18:52:15 GMT 2009  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* lib/pipeline.c (argstr_get_word): Fix a small memory leak.
Packit eba2e2
Packit eba2e2
Sat Nov 14 10:23:28 GMT 2009  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* lib/pipeline.c (command_new_sequence, command_sequence_command):
Packit eba2e2
	  New functions.
Packit eba2e2
	  (command_dup, command_dump, command_tostring, command_free):
Packit eba2e2
	  Handle commands of type COMMAND_SEQUENCE.
Packit eba2e2
	  (pipeline_start): Move command execution to ...
Packit eba2e2
	  (command_start_child): ... here (new function). Handle commands of
Packit eba2e2
	  type COMMAND_SEQUENCE.
Packit eba2e2
	* lib/pipeline.h (enum command_tag): Add COMMAND_SEQUENCE.
Packit eba2e2
	  (struct command): Add support for commands that consist of a
Packit eba2e2
	  sequence of commands.
Packit eba2e2
	  (command_new_sequence, command_sequence_command): Add prototypes.
Packit eba2e2
Packit eba2e2
Thu Sep 24 12:32:48 BST 2009  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* lib/pipeline.c (pipeline_pump): When a source pipeline dies, make
Packit eba2e2
	  sure to drain its output before discarding its output file
Packit eba2e2
	  descriptor (Debian bug #548153). We still record the death to
Packit eba2e2
	  avoid duplicate debugging messages.
Packit eba2e2
Packit eba2e2
Sun Aug 23 15:49:45 BST 2009  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* lib/pipeline.c (command_dup): Fix newcmd->nenv assertion.
Packit eba2e2
Packit eba2e2
Sun Aug 23 15:41:32 BST 2009  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* lib/pipeline.c (command_dup, command_setenv): cmd->env does not
Packit eba2e2
	  need to be { NULL, NULL }-terminated.
Packit eba2e2
Packit eba2e2
Sun Aug 23 00:04:56 BST 2009  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* lib/pipeline.c (command_setenv): New function, allowing
Packit eba2e2
	  application code to ask for environment variables to be set when a
Packit eba2e2
	  command is executed.
Packit eba2e2
	  (command_new, command_new_function, command_dup, command_dump,
Packit eba2e2
	  command_tostring, command_free): Handle new nenv, env_max, and env
Packit eba2e2
	  members of 'struct command'.
Packit eba2e2
	  (argstr_get_word): Add TODO comment for environment variable
Packit eba2e2
	  support.
Packit eba2e2
	  (pipeline_start): Set environment variables as requested.
Packit eba2e2
	* lib/pipeline.h (struct command_env): New structure.
Packit eba2e2
	  (struct command): Add nenv, env_max, and env members.
Packit eba2e2
	  (command_setenv): Add prototype.
Packit eba2e2
Packit eba2e2
Sun Jun 28 01:47:51 BST 2009  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* lib/pipeline.c (pipeline_free): Free buffer and line_cache.
Packit eba2e2
Packit eba2e2
Sun Jun 28 01:40:24 BST 2009  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* lib/pipeline.c (get_line): Limit newline search to the data length
Packit eba2e2
	  returned by get_block, fixing an assertion failure.
Packit eba2e2
Packit eba2e2
Sat May 30 12:50:44 BST 2009  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* lib/pipeline.c (pipeline_start): Check the return value of nice.
Packit eba2e2
Packit eba2e2
Mon Nov 17 11:07:50 GMT 2008  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* lib/pipeline.c (command_new_function): Initialise discard_err.
Packit eba2e2
	  (pipeline_start): Zero-initialise pids and statuses arrays on
Packit eba2e2
	  allocation, and don'\''t unblock SIGCHLD until after doing so.
Packit eba2e2
Packit eba2e2
Mon Nov 17 00:39:14 GMT 2008  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* lib/pipeline.c (pipeline_wait): Mangle return value into a value
Packit eba2e2
	  suitable for passing to exit (Debian bug #477305).
Packit eba2e2
Packit eba2e2
Mon Sep  8 09:09:06 BST 2008  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	Add support for freeing command_function data.
Packit eba2e2
Packit eba2e2
	* lib/pipeline.c (command_new_function): Add free_func argument.
Packit eba2e2
	  (command_dup): Copy it.
Packit eba2e2
	  (pipeline_connect): Adjust command_new_function call.
Packit eba2e2
	  (pipeline_start): Free command_function data before exiting.
Packit eba2e2
	  (pipeline_wait): Free command_function data while cleaning up
Packit eba2e2
	  pipeline.
Packit eba2e2
	* lib/pipeline.h: Add command_function_free_type typedef.
Packit eba2e2
	  (struct command [struct command_function]): Add free_func member.
Packit eba2e2
	  (command_new_function): Update prototype.
Packit eba2e2
Packit eba2e2
Thu Jul 31 00:51:58 BST 2008  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* lib/pipeline.c (pipeline_pump): Free known_source before returning
Packit eba2e2
	  (Coverity CID #15).
Packit eba2e2
Packit eba2e2
Sun May  4 23:16:59 BST 2008  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* lib/pipeline.c (pipeline_start, pipeline_pump): Zero sigaction
Packit eba2e2
	  structures before using them. (I believe we set all required
Packit eba2e2
	  fields anyway; this is just an extra safety catch.)
Packit eba2e2
Packit eba2e2
Sun Apr 27 11:24:24 BST 2008  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* lib/pipeline.c (pipeline_sigchld): assert is not
Packit eba2e2
	  async-signal-safe, so avoid calling it in a signal handler and use
Packit eba2e2
	  an if guard instead (Ubuntu bug #221635, although exactly why the
Packit eba2e2
	  assertion is failing there is unclear).
Packit eba2e2
Packit eba2e2
Sun Feb 17 17:13:55 GMT 2008  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* lib/pipeline.c (pipeline_wait): Call strsignal rather than
Packit eba2e2
	  xstrsignal.
Packit eba2e2
Packit eba2e2
Sun Jan 27 13:42:31 GMT 2008  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* lib/pipeline.c (pipeline_join): Initialise source, buffer, buflen,
Packit eba2e2
	  bufmax, line_cache, and peek_offset.
Packit eba2e2
Packit eba2e2
Sun Jan 27 13:37:17 GMT 2008  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* lib/pipeline.h (struct pipeline): Add ignore_signals member.
Packit eba2e2
	* lib/pipeline.c (pipeline_new): Initialise ignore_signals to 1.
Packit eba2e2
	  (pipeline_join): Set ignore_signals if either input pipeline has
Packit eba2e2
	  it set.
Packit eba2e2
	  (pipeline_start): Only ignore SIGINT and SIGQUIT if ignore_signals
Packit eba2e2
	  is set.
Packit eba2e2
	  (pipeline_wait): Only restore SIGINT and SIGQUIT if ignore_signals
Packit eba2e2
	  is set.
Packit eba2e2
Packit eba2e2
Sun Jan  6 15:01:08 GMT 2008  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* lib/pipeline.c (pipeline_start, pipeline_wait,
Packit eba2e2
	  pipeline_install_sigchld, pipeline_pump): Call sigaction rather
Packit eba2e2
	  than xsigaction.
Packit eba2e2
Packit eba2e2
Wed Jan  2 23:30:33 GMT 2008  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* lib/pipeline.c (passthrough): Use STDIN_FILENO, STDOUT_FILENO, and
Packit eba2e2
	  STDERR_FILENO macros rather than calling fileno.
Packit eba2e2
Packit eba2e2
Mon Dec 31 10:02:28 GMT 2007  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* lib/pipeline.c (passthrough): New helper function.
Packit eba2e2
	  (pipeline_connect): Add special (kludge) handling for zero-command
Packit eba2e2
	  sinks.
Packit eba2e2
	  (pipeline_pump): Add minor commentary.
Packit eba2e2
Packit eba2e2
Wed Oct 17 21:05:50 BST 2007  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* lib/pipeline.c: Assume <sys/select.h> and <unistd.h>. Remove
Packit eba2e2
	  duplicate <fcntl.h> inclusion.
Packit eba2e2
	  (command_new): Use base_name.
Packit eba2e2
Packit eba2e2
Mon Oct  8 02:24:19 BST 2007  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* lib/pipeline.c (get_block): Use xrealloc instead of realloc.
Packit eba2e2
Packit eba2e2
Mon Oct  8 02:09:55 BST 2007  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	The strappend function is in the namespace reserved by C99
Packit eba2e2
	7.26.10/7.26.11; rename it to appendstr.
Packit eba2e2
Packit eba2e2
	* lib/pipeline.c: Update all callers.
Packit eba2e2
Packit eba2e2
Mon Sep 17 00:11:38 UTC 2007  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* lib/pipeline.c (pipeline_start): Break after execvp, otherwise we
Packit eba2e2
	  segfault if execvp fails.
Packit eba2e2
Packit eba2e2
Fri Aug 31 04:54:45 BST 2007  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* lib/pipeline.c (pipeline_free): Call pipeline_wait if the pipeline
Packit eba2e2
	  is still running.
Packit eba2e2
	* lib/pipeline.h (pipeline_free): Document that this may happen.
Packit eba2e2
Packit eba2e2
Tue Aug 28 17:19:16 BST 2007  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	Implement and use a decompression library. This allows cat pages to
Packit eba2e2
	be saved in the background (Debian bug #18452) and operation with a
Packit eba2e2
	read-only /tmp (Debian bug #165499).
Packit eba2e2
  
Packit eba2e2
	* lib/pipeline.h (struct command): Add support for commands that
Packit eba2e2
	  consist of calling a function rather than executing a process.
Packit eba2e2
	  (struct pipeline): Add want_infile and want_outfile members. Note
Packit eba2e2
	  that infile and outfile default to NULL. Add source, buffer,
Packit eba2e2
	  buflen, bufmax, line_cache, and peek_offset members.
Packit eba2e2
	  (command_new_function, command_dump, command_tostring,
Packit eba2e2
	  pipeline_connect, pipeline_pump, pipeline_read, pipeline_peek,
Packit eba2e2
	  pipeline_peek_size, pipeline_peek_skip, pipeline_readline,
Packit eba2e2
	  pipeline_peekline): New prototypes.
Packit eba2e2
	  (pipeline_join): Update description for want_infile and
Packit eba2e2
	  want_outfile.
Packit eba2e2
	* lib/pipeline.c (command_new, command_dup, command_arg,
Packit eba2e2
	  command_argv, command_args, command_argstr, command_free): Update
Packit eba2e2
	  for 'struct command' changes.
Packit eba2e2
	  (command_new_function, command_dump, command_tostring): New
Packit eba2e2
	  functions.
Packit eba2e2
	  (pipeline_new, pipeline_join, pipeline_dump, pipeline_tostring):
Packit eba2e2
	  Update for 'struct pipeline' changes.
Packit eba2e2
	  (pipeline_dump): Use command_dump.
Packit eba2e2
	  (pipeline_tostring): Use command_tostring.
Packit eba2e2
	  (pipeline_start): Implement want_infile, want_outfile, and
Packit eba2e2
	  function commands. Make zero-command case work properly (read
Packit eba2e2
	  directly from input file). Flush all pending stdio output so that
Packit eba2e2
	  subprocesses don't inherit it.
Packit eba2e2
	  (pipeline_connect, pipeline_pump, get_block, pipeline_read,
Packit eba2e2
	  pipeline_peek, pipeline_peek_size, pipeline_peek_skip, get_line,
Packit eba2e2
	  pipeline_readline, pipeline_peekline): New functions.
Packit eba2e2
Packit eba2e2
Mon Aug 27 20:02:17 BST 2007  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* lib/pipeline.c (pipeline_wait): Re-raise SIGINT or SIGQUIT if they
Packit eba2e2
	  terminate a subprocess.
Packit eba2e2
Packit eba2e2
Mon Aug 27 19:58:19 BST 2007  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* lib/pipeline.c (pipeline_wait): Return 1 if we fail to close the
Packit eba2e2
	  pipeline's output.
Packit eba2e2
Packit eba2e2
Mon Aug 20 00:10:49 BST 2007  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	Discard stderr from formatting processes when outputting to a pager,
Packit eba2e2
	to avoid visual corruption from any error messages (thanks, Vincent
Packit eba2e2
	Lefevre; Debian bug #372939).
Packit eba2e2
  
Packit eba2e2
	* lib/pipeline.h (struct command): Add discard_err member.
Packit eba2e2
	* lib/pipeline.c (command_new, command_dup): Initialise discard_err.
Packit eba2e2
	  (pipeline_start): Redirect the child's stderr to /dev/null if
Packit eba2e2
	  discard_err is set.
Packit eba2e2
Packit eba2e2
Sun Mar  4 00:51:30 GMT 2007  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	Eliminate variable and function shadowing.
Packit eba2e2
Packit eba2e2
	* lib/pipeline.c (pipeline_start): Remove duplicate declarations of
Packit eba2e2
	  set and oset.
Packit eba2e2
Packit eba2e2
Wed Feb 28 22:04:04 GMT 2007  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* lib/pipeline.c (pipeline_start): Close inputs and outputs from
Packit eba2e2
	  other active pipelines in all subprocesses.
Packit eba2e2
Packit eba2e2
Wed Feb 28 21:57:24 GMT 2007  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* lib/pipeline.c (pipeline_start): Don't ignore SIGPIPE in
Packit eba2e2
	  subprocesses; this has undesirable consequences in some
Packit eba2e2
	  situations.
Packit eba2e2
	  (pipeline_wait): Flatten SIGPIPE exit statuses to zero instead.
Packit eba2e2
Packit eba2e2
Tue Feb 27 20:58:31 GMT 2007  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* lib/pipeline.c (pipeline_start): Save previous value of SIGQUIT
Packit eba2e2
	  such that it gets restored as SIGQUIT, not as SIGINT.
Packit eba2e2
Packit eba2e2
Mon Jan  8 10:39:24 GMT 2007  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* lib/pipeline.c (pipeline_start, pipeline_wait,
Packit eba2e2
	  pipeline_install_sigchld): Use xsigaction instead of
Packit eba2e2
	  sigaction-plus-EINTR-check.
Packit eba2e2
Packit eba2e2
Tue Dec 26 14:27:59 GMT 2006  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* lib/pipeline.c: Include "gettext.h" rather than <libintl.h>. Make
Packit eba2e2
	  sure not to include <locale.h> before "gettext.h", for portability
Packit eba2e2
	  to Solaris.
Packit eba2e2
Packit eba2e2
Sun Sep 17 09:20:33 BST 2006  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* lib/pipeline.c (pipeline_start): Ignore SIGPIPE in child processes
Packit eba2e2
	  (Debian bug #387864).
Packit eba2e2
Packit eba2e2
Wed Feb 22 09:44:02 GMT 2006  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* lib/pipeline.c (command_new_argstr): Skip "exec" at the start of a
Packit eba2e2
	  command, to make old configuration files work (Debian bug
Packit eba2e2
	  #353959).
Packit eba2e2
Packit eba2e2
Wed Sep 21 10:56:22 BST 2005  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* lib/pipeline.c (pipeline_wait): Queue SIGCHLD for the whole time
Packit eba2e2
	  we're collecting child process statuses; we need to keep a careful
Packit eba2e2
	  count of processes. Forget any previous errno before calling
Packit eba2e2
	  reap_children. Should fix Debian bug #326488.
Packit eba2e2
Packit eba2e2
Wed Sep 21 10:10:12 BST 2005  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* lib/pipeline.c (pipeline_start, pipeline_wait): Ignore SIGINT and
Packit eba2e2
	  SIGQUIT in the parent while running subprocesses (Debian bug
Packit eba2e2
	  #328982).
Packit eba2e2
Packit eba2e2
Thu Sep  1 14:10:07 BST 2005  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* lib/pipeline.c (argstr_get_word): Use an enum for quotemode rather
Packit eba2e2
	  than magic numbers.
Packit eba2e2
Packit eba2e2
Mon Jul 11 18:12:58 BST 2005  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* lib/pipeline.c (pipeline_wait): Emit a debugging message.
Packit eba2e2
Packit eba2e2
Mon Jul 11 14:41:52 BST 2005  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* include/manconfig.h.in: Define ATTRIBUTE_SENTINEL to a function
Packit eba2e2
	  attribute enabling sentinel checking if using GCC 4.0 or newer.
Packit eba2e2
	  (strappend): Use it.
Packit eba2e2
	* lib/pipeline.h (command_new_args, command_args,
Packit eba2e2
	  pipeline_new_commands, pipeline_command_args, pipeline_commands):
Packit eba2e2
	  Likewise.
Packit eba2e2
Packit eba2e2
Sun Dec 12 21:48:04 CET 2004  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* lib/pipeline.c (pipeline_sigchld): Don't bother saving and
Packit eba2e2
	  restoring errno if SIGCHLD is being queued.
Packit eba2e2
Packit eba2e2
Sun Nov  7 16:07:26 GMT 2004  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* lib/pipeline.c (pipeline_wait): Close pipeline output before
Packit eba2e2
	  reaping processes, so that writing processes get SIGPIPE.
Packit eba2e2
Packit eba2e2
Sun Nov  7 16:05:08 GMT 2004  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* lib/pipeline.c (pipeline_wait): Fix active process debugging
Packit eba2e2
	  output to include processes without statuses.
Packit eba2e2
Packit eba2e2
Mon Mar  8 11:21:05 GMT 2004  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* lib/pipeline.c (pipeline_dump): Show caller-supplied input and
Packit eba2e2
	  output file descriptors.
Packit eba2e2
Packit eba2e2
	* lib/pipeline.c (command_free, pipeline_free): Return safely if
Packit eba2e2
	  argument is NULL.
Packit eba2e2
	* lib/pipeline.h (command_free, pipeline_free): Document NULL
Packit eba2e2
	  arguments as a safe no-op, like free().
Packit eba2e2
Packit eba2e2
Sun Sep 21 02:17:43 BST 2003  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* lib/pipeline.c (pipeline_start): Dump pipeline in debugging mode.
Packit eba2e2
Packit eba2e2
Thu Aug 28 00:40:09 BST 2003  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* lib/pipeline.c (pipeline_start): Change "couldn't exec %s" to
Packit eba2e2
	  "can't execute %s" in line with src/man.c, to make translators'
Packit eba2e2
	  lives easier.
Packit eba2e2
	  (pipeline_wait): Separate "%s: %s%s" into two translatable
Packit eba2e2
	  strings: the "(core dumped)" portion should definitely be
Packit eba2e2
	  translated.
Packit eba2e2
Packit eba2e2
Fri Aug 15 18:05:37 BST 2003  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* lib/pipeline.c: Include <libgen.h> instead of relying on
Packit eba2e2
	  basename() prototype in manconfig.h.
Packit eba2e2
Packit eba2e2
Sat Aug  9 18:28:01 BST 2003  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	Replace the old "wait() for one child at a time" approach with a
Packit eba2e2
	SIGCHLD-handling edifice that collects children's exit statuses as
Packit eba2e2
	they die.
Packit eba2e2
Packit eba2e2
	* lib/pipeline.c (pipeline_new): Initialize statuses.
Packit eba2e2
	  (pipeline_join): Set statuses to NULL in joined pipeline.
Packit eba2e2
	  (pipeline_join, pipeline_get_infile, pipeline_get_outfile,
Packit eba2e2
	  pipeline_start, pipeline_wait): Assert that statuses field is NULL
Packit eba2e2
	  or non-NULL as appropriate.
Packit eba2e2
	  (pipeline_free): Free statuses if necessary.
Packit eba2e2
Packit eba2e2
	  (pipeline_start): Add p to a new active_pipelines array, to be
Packit eba2e2
	  used while reaping children. Initialize statuses elements to -1.
Packit eba2e2
	  Block SIGCHLD while forking children.
Packit eba2e2
	  (reap_children): New function. Delivers collected exit statuses
Packit eba2e2
	  into statuses fields of entries in active_pipelines.
Packit eba2e2
	  (pipeline_wait): Rather than wait()ing manually here, check
Packit eba2e2
	  whether any statuses have been picked up by the SIGCHLD handler,
Packit eba2e2
	  and if not call reap_children(). Remove now-obsolete TODO comment.
Packit eba2e2
	  (pipeline_sigchld): New function, the SIGCHLD handler.
Packit eba2e2
	  (pipeline_install_sigchld): New function, to be called once per
Packit eba2e2
	  program.
Packit eba2e2
Packit eba2e2
	  (pipeline_start, pipeline_wait): Add minimal debugging
Packit eba2e2
	  information.
Packit eba2e2
Packit eba2e2
	* lib/pipeline.h: Prototype new functions.
Packit eba2e2
	  (struct pipeline): New statuses member.
Packit eba2e2
Packit eba2e2
Sat Aug  9 17:00:12 BST 2003  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* lib/pipeline.c (command_dup): Copy cmd->nice.
Packit eba2e2
	  (pipeline_command): Correct condition for growing commands array.
Packit eba2e2
Packit eba2e2
Mon Aug  4 19:35:26 BST 2003  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* lib/pipeline.c (command_dup): Terminate argv with a NULL.
Packit eba2e2
	  (command_dup, command_arg): Assert that argc < argv_max after
Packit eba2e2
	  changing either.
Packit eba2e2
Packit eba2e2
Mon Aug  4 19:30:22 BST 2003  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* lib/pipeline.c (pipeline_dump): New function to dump a printable
Packit eba2e2
	  representation of a pipeline to a stream.
Packit eba2e2
	  (pipeline_tostring): Likewise, but to a newly allocated string.
Packit eba2e2
	* lib/pipeline.h: Prototype these.
Packit eba2e2
Packit eba2e2
Mon Aug  4 12:03:38 BST 2003  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* lib/pipeline.c (argstr_get_word): Plug some memory leaks.
Packit eba2e2
Packit eba2e2
Mon Aug  4 01:05:12 BST 2003  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* lib/pipeline.c (pipeline_wait): The return value was a bit
Packit eba2e2
	  groff-specific. Now just return the status of the last command in
Packit eba2e2
	  the pipeline, as reported by wait().
Packit eba2e2
Packit eba2e2
Mon Aug  4 00:31:44 BST 2003  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	Add support for getting stdio streams for input and output. Needs
Packit eba2e2
	library support because pipeline_wait() needs to know to close the
Packit eba2e2
	stream rather than the underlying file descriptor.
Packit eba2e2
Packit eba2e2
	* lib/pipeline.h (struct pipeline): New infile and outfile members.
Packit eba2e2
	  (pipeline_get_infile, pipeline_get_outfile): Add prototypes.
Packit eba2e2
	* lib/pipeline.c (pipeline_new): Initialize infile and outfile.
Packit eba2e2
	  (pipeline_join): Likewise.
Packit eba2e2
	  (pipeline_get_infile, pipeline_get_outfile): New functions.
Packit eba2e2
	  (pipeline_wait): Check for infile and outfile and fclose() them in
Packit eba2e2
	  preference to close()ing infd and outfd. Check for errors on
Packit eba2e2
	  close().
Packit eba2e2
Packit eba2e2
Sun Aug  3 23:59:18 BST 2003  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* lib/pipeline.c (pipeline_start): Use dup2() instead of close()
Packit eba2e2
	  then dup().
Packit eba2e2
Packit eba2e2
Sun Aug  3 23:52:14 BST 2003  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	infd and outfd should now only be set by pipeline_start(). Positive
Packit eba2e2
	values in want_in and want_out now indicate caller-supplied file
Packit eba2e2
	descriptors, while negative values indicate a request for
Packit eba2e2
	pipeline_start() to create a pipe.
Packit eba2e2
Packit eba2e2
	* lib/pipeline.h (struct pipeline): Document this.
Packit eba2e2
	* lib/pipeline.c (pipeline_start): Implement it. Caller-supplied
Packit eba2e2
	  input and output file descriptors previously didn't work properly.
Packit eba2e2
	  (pipeline_wait): Update TODO comment.
Packit eba2e2
Packit eba2e2
Sun Aug  3 21:07:46 BST 2003  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* lib/pipeline.h (struct command): New 'nice' member.
Packit eba2e2
	* lib/pipeline.c (command_new): Initialize nice.
Packit eba2e2
	  (pipeline_start): Change child process priority if nice is set.
Packit eba2e2
Packit eba2e2
Sun Aug  3 20:50:35 BST 2003  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* lib/pipeline.c (pipeline_start): Pop all cleanups in child.
Packit eba2e2
Packit eba2e2
Sun Aug  3 20:47:24 BST 2003  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* lib/pipeline.c (argstr_get_word, command_new_argstr,
Packit eba2e2
	  command_argstr, pipeline_command_argstr): New functions to handle
Packit eba2e2
	  constructing commands from shell-quoted strings, such as those
Packit eba2e2
	  found in man-db configuration files. They deliberately handle only
Packit eba2e2
	  a safe subset of shell syntax.
Packit eba2e2
	* lib/pipeline.h: Prototype command_new_argstr(), command_argstr(),
Packit eba2e2
	  and pipeline_command_argstr().
Packit eba2e2
Packit eba2e2
Sun Aug  3 19:09:59 BST 2003  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* lib/pipeline.c (command_dup): New function to duplicate a command.
Packit eba2e2
	  (pipeline_join): New function to join two pipelines together.
Packit eba2e2
	* lib/pipeline.h: Prototype these.
Packit eba2e2
Packit eba2e2
Sun Aug  3 18:00:59 BST 2003  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* lib/pipeline.h (struct pipeline): The writeto, readfrom, writefd,
Packit eba2e2
	  and readfd names turn out to be confusing in calling code. Rename
Packit eba2e2
	  to want_in, want_out, infd, and outfd respectively.
Packit eba2e2
	* lib/pipeline.c (pipeline_new, pipeline_start, pipeline_wait): Use
Packit eba2e2
	  new names.
Packit eba2e2
Packit eba2e2
Sun Aug  3 16:35:24 BST 2003  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	Add support in pipeline library for writing input to or reading
Packit eba2e2
	output from the whole pipeline.
Packit eba2e2
Packit eba2e2
	* lib/pipeline.c (pipeline_new): Initialize writeto, readfrom,
Packit eba2e2
	  writefd, and readfd.
Packit eba2e2
	  (pipeline_start): Create extra pipes as necessary.
Packit eba2e2
	  (pipeline_wait): Expand TODO comment. Close file descriptors from
Packit eba2e2
	  extra pipes if necessary.
Packit eba2e2
	* lib/pipeline.h (struct pipeline): Add writeto, readfrom, writefd,
Packit eba2e2
	  and readfd.
Packit eba2e2
Packit eba2e2
Sun Aug  3 11:15:17 BST 2003  Colin Watson  <cjwatson@debian.org>
Packit eba2e2
Packit eba2e2
	* lib/pipeline.c: New pipeline library, adapted from that in groff.
Packit eba2e2
	  The interface isn't complete yet; in particular, it can't be a
Packit eba2e2
	  replacement for popen() at the moment.
Packit eba2e2
	* lib/pipeline.h: New file with pipeline library interface.