All of lore.kernel.org
 help / color / mirror / Atom feed
* [STABLE] procps update
@ 2010-03-22 11:05 Marcin Juszkiewicz
  2010-03-22 11:05 ` [PATCH][STABLE] procps: adjust FILES so that libproc-*.so lands in ${PN} Marcin Juszkiewicz
                   ` (3 more replies)
  0 siblings, 4 replies; 13+ messages in thread
From: Marcin Juszkiewicz @ 2010-03-22 11:05 UTC (permalink / raw)
  To: openembedded-devel

Due to too many questions asked about "Unknown Hz value" during boot
of devices I want to merge my recent fixes for it into stable/2009.






^ permalink raw reply	[flat|nested] 13+ messages in thread

* [PATCH][STABLE] procps: adjust FILES so that libproc-*.so lands in ${PN}
  2010-03-22 11:05 [STABLE] procps update Marcin Juszkiewicz
@ 2010-03-22 11:05 ` Marcin Juszkiewicz
  2010-03-22 12:33   ` Koen Kooi
  2010-03-23  1:58   ` Philip Balister
  2010-03-22 11:05 ` [PATCH][STABLE] procps_3.2.7.bb: Fix compilation when usr/bin is same as /bin Marcin Juszkiewicz
                   ` (2 subsequent siblings)
  3 siblings, 2 replies; 13+ messages in thread
From: Marcin Juszkiewicz @ 2010-03-22 11:05 UTC (permalink / raw)
  To: openembedded-devel

From: Phil Blundell <philb@gnu.org>

---
 recipes/procps/procps.inc |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/recipes/procps/procps.inc b/recipes/procps/procps.inc
index ddc8030..2de32d2 100644
--- a/recipes/procps/procps.inc
+++ b/recipes/procps/procps.inc
@@ -8,6 +8,8 @@ PRIORITY = "optional"
 LICENSE = "GPL"
 DEPENDS = "ncurses"
 
+FILES_${PN} += "${base_libdir}/libproc-*.so"
+
 SRC_URI = "http://procps.sourceforge.net/procps-${PV}.tar.gz \
            file://install.patch;patch=1"
 
-- 
1.7.0.2






^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH][STABLE] procps_3.2.7.bb: Fix compilation when usr/bin is same as /bin
  2010-03-22 11:05 [STABLE] procps update Marcin Juszkiewicz
  2010-03-22 11:05 ` [PATCH][STABLE] procps: adjust FILES so that libproc-*.so lands in ${PN} Marcin Juszkiewicz
@ 2010-03-22 11:05 ` Marcin Juszkiewicz
  2010-03-22 12:33   ` Koen Kooi
  2010-03-23  1:58   ` Philip Balister
  2010-03-22 11:05 ` [PATCH][STABLE] procps: added 3.2.8 and dropped older Marcin Juszkiewicz
  2010-03-22 11:05 ` [PATCH][STABLE] procps: apply patch from Ubuntu to finally get rid of 'Unknown Hz value' Marcin Juszkiewicz
  3 siblings, 2 replies; 13+ messages in thread
From: Marcin Juszkiewicz @ 2010-03-22 11:05 UTC (permalink / raw)
  To: openembedded-devel

From: Khem Raj <raj.khem@gmail.com>

* On DISTROs like micro where bindir and base_bindir are
  same, procps does not compile because it wants to install
  binaries in both places. We have to pass the variable to
  make file since it does not use autotools.

Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 recipes/procps/procps_3.2.7.bb |    5 ++++-
 1 files changed, 4 insertions(+), 1 deletions(-)

diff --git a/recipes/procps/procps_3.2.7.bb b/recipes/procps/procps_3.2.7.bb
index 6da975a..b31b683 100644
--- a/recipes/procps/procps_3.2.7.bb
+++ b/recipes/procps/procps_3.2.7.bb
@@ -1,6 +1,6 @@
 require procps.inc
 
-PR = "r8"
+PR = "r9"
 
 inherit update-rc.d
 
@@ -23,6 +23,9 @@ CONFFILES_${PN} = "${sysconfdir}/sysctl.conf"
 
 EXTRA_OEMAKE = "CFLAGS=-I${STAGING_INCDIR} \
                 CPPFLAGS=-I${STAGING_INCDIR} \
+		usr/bin=${D}${bindir}/ \
+		bin=${D}${base_bindir}/ \
+		usr/proc/bin=${D}${bindir}/ \
                 LDFLAGS="${LDFLAGS}" \
                 CURSES=-lncurses \
                 install='install -D' \
-- 
1.7.0.2






^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH][STABLE] procps: added 3.2.8 and dropped older
  2010-03-22 11:05 [STABLE] procps update Marcin Juszkiewicz
  2010-03-22 11:05 ` [PATCH][STABLE] procps: adjust FILES so that libproc-*.so lands in ${PN} Marcin Juszkiewicz
  2010-03-22 11:05 ` [PATCH][STABLE] procps_3.2.7.bb: Fix compilation when usr/bin is same as /bin Marcin Juszkiewicz
@ 2010-03-22 11:05 ` Marcin Juszkiewicz
  2010-03-22 12:34   ` Koen Kooi
  2010-03-23  1:59   ` Philip Balister
  2010-03-22 11:05 ` [PATCH][STABLE] procps: apply patch from Ubuntu to finally get rid of 'Unknown Hz value' Marcin Juszkiewicz
  3 siblings, 2 replies; 13+ messages in thread
From: Marcin Juszkiewicz @ 2010-03-22 11:05 UTC (permalink / raw)
  To: openembedded-devel

This version no longer complain about unknown Hz value during boot.

Signed-off-by: Marcin Juszkiewicz <marcin@juszkiewicz.com.pl>
---
 recipes/procps/procps-3.1.15/install.patch         |   16 -
 recipes/procps/procps-3.1.15/procps_3.1.15-2.diff  | 5133 --------------------
 recipes/procps/procps-3.2.1/install.patch          |   16 -
 .../procps/procps-3.2.5/pagesz-not-constant.patch  |   22 -
 recipes/procps/procps-3.2.7/install.patch          |   27 -
 .../procps/procps-3.2.7/pagesz-not-constant.patch  |   22 -
 recipes/procps/procps-3.2.7/procmodule.patch       |   36 -
 recipes/procps/procps-3.2.7/psmodule.patch         |   21 -
 .../{procps-3.2.5 => procps-3.2.8}/install.patch   |    0
 .../linux-limits.patch                             |    0
 .../pagesz-not-constant.patch                      |    0
 .../procmodule.patch                               |    0
 .../{procps-3.2.7 => procps-3.2.8}/procps.init     |    0
 .../{procps-3.2.5 => procps-3.2.8}/psmodule.patch  |    0
 .../{procps-3.2.7 => procps-3.2.8}/sysctl.conf     |    0
 recipes/procps/procps.inc                          |   61 +-
 recipes/procps/procps_3.1.15.bb                    |    9 -
 recipes/procps/procps_3.2.1.bb                     |   11 -
 recipes/procps/procps_3.2.5.bb                     |   45 -
 recipes/procps/procps_3.2.7.bb                     |   67 -
 recipes/procps/procps_3.2.8.bb                     |   11 +
 21 files changed, 69 insertions(+), 5428 deletions(-)
 delete mode 100644 recipes/procps/procps-3.1.15/install.patch
 delete mode 100644 recipes/procps/procps-3.1.15/procps_3.1.15-2.diff
 delete mode 100644 recipes/procps/procps-3.2.1/install.patch
 delete mode 100644 recipes/procps/procps-3.2.5/pagesz-not-constant.patch
 delete mode 100644 recipes/procps/procps-3.2.7/install.patch
 delete mode 100644 recipes/procps/procps-3.2.7/pagesz-not-constant.patch
 delete mode 100644 recipes/procps/procps-3.2.7/procmodule.patch
 delete mode 100644 recipes/procps/procps-3.2.7/psmodule.patch
 rename recipes/procps/{procps-3.2.5 => procps-3.2.8}/install.patch (100%)
 rename recipes/procps/{procps-3.2.7 => procps-3.2.8}/linux-limits.patch (100%)
 rename recipes/procps/{procps-3.2.1 => procps-3.2.8}/pagesz-not-constant.patch (100%)
 rename recipes/procps/{procps-3.2.5 => procps-3.2.8}/procmodule.patch (100%)
 rename recipes/procps/{procps-3.2.7 => procps-3.2.8}/procps.init (100%)
 rename recipes/procps/{procps-3.2.5 => procps-3.2.8}/psmodule.patch (100%)
 rename recipes/procps/{procps-3.2.7 => procps-3.2.8}/sysctl.conf (100%)
 delete mode 100644 recipes/procps/procps_3.1.15.bb
 delete mode 100644 recipes/procps/procps_3.2.1.bb
 delete mode 100644 recipes/procps/procps_3.2.5.bb
 delete mode 100644 recipes/procps/procps_3.2.7.bb
 create mode 100644 recipes/procps/procps_3.2.8.bb

diff --git a/recipes/procps/procps-3.1.15/install.patch b/recipes/procps/procps-3.1.15/install.patch
deleted file mode 100644
index 2d16c26..0000000
--- a/recipes/procps/procps-3.1.15/install.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-
-#
-# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
-#
-
---- procps-3.1.15/Makefile~install	2003-12-24 03:01:55.000000000 +0100
-+++ procps-3.1.15/Makefile	2004-02-11 00:45:59.000000000 +0100
-@@ -147,7 +147,7 @@
- ###### install
- 
- $(BINFILES) : all
--	$(install) --mode a=rx --strip $(notdir $@) $@
-+	$(install) --mode a=rx $(notdir $@) $@
- 
- $(MANFILES) : all
- 	$(install) --mode a=r $(notdir $@) $@
diff --git a/recipes/procps/procps-3.1.15/procps_3.1.15-2.diff b/recipes/procps/procps-3.1.15/procps_3.1.15-2.diff
deleted file mode 100644
index 438fd0f..0000000
--- a/recipes/procps/procps-3.1.15/procps_3.1.15-2.diff
+++ /dev/null
@@ -1,5133 +0,0 @@
---- procps-3.1.15.orig/proc/library.map
-+++ procps-3.1.15/proc/library.map
-@@ -4,7 +4,7 @@
- 
-   readproc; readtask; readproctab; readproctab2; look_up_our_self; escape_command;
-   escape_str; escape_strlist;
--  openproc; closeproc;
-+  openproc; closeproc; freeproc;
-   tty_to_dev; dev_to_tty; open_psdb_message; open_psdb; wchan;
-   display_version; procps_version; linux_version_code;
-   Hertz; smp_num_cpus;
---- procps-3.1.15.orig/proc/readproc.c
-+++ procps-3.1.15/proc/readproc.c
-@@ -162,7 +162,7 @@
-         // examine a field name (hash and compare)
-     base:
-         if(unlikely(!*S)) break;
--        entry = table[63 & (asso[S[3]] + asso[S[2]] + asso[S[0]])];
-+        entry = table[63 & (asso[(int)S[3]] + asso[(int)S[2]] + asso[(int)S[0]])];
-         colon = strchr(S, ':');
-         if(unlikely(!colon)) break;
-         if(unlikely(colon[1]!='\t')) break;
-@@ -888,6 +888,8 @@
-     else
- 	PT = openproc(flags);
-     va_end(ap);
-+    if (!PT)
-+      return 0;
-     do {					/* read table: */
- 	tab = xrealloc(tab, (n+1)*sizeof(proc_t*));/* realloc as we go, using */
- 	tab[n] = readproc_direct(PT, NULL);     /* final null to terminate */
---- procps-3.1.15.orig/proc/module.mk
-+++ procps-3.1.15/proc/module.mk
-@@ -3,7 +3,7 @@
- # for lib$(NAME).so and /usr/include/($NAME) and such
- NAME      :=  proc
- 
--SHARED := 1
-+SHARED ?= 1
- 
- SONAME    :=  lib$(NAME).so.$(LIBVERSION)
- 
---- procps-3.1.15.orig/debian/README.Debian
-+++ procps-3.1.15/debian/README.Debian
-@@ -0,0 +1,22 @@
-+README for Debian package of procps
-+===================================
-+
-+XConsole gone
-+-------------
-+ XConsole and other X-based programs have been finally removed.  Look in
-+ the x packages for their equivalents.
-+
-+pgrep
-+-----
-+pgrep is a new program, using the Unix standard name for something that
-+greps for processes.  If you are looking for Perl compatible regular
-+expression grep, it is called pcregrep.
-+
-+forks
-+-----
-+Procps upstream is forked.  This one comes from procps.sf.net  I'm really
-+not interested when the others have new versions so please don't bug me about
-+it.  However if you see something neat in the others and would like it in
-+the Debian one, report a *wishlist* level bug about it.
-+
-+ Craig Small <csmall@debian.org>
---- procps-3.1.15.orig/debian/copyright
-+++ procps-3.1.15/debian/copyright
-@@ -0,0 +1,27 @@
-+This is the Debian Linux prepackaged version of the /proc file
-+system utilities.
-+
-+This package was downloaded from:
-+  http://procps.sourceforge.net/
-+
-+
-+Upstream Authors:
-+Werner Almesberger <almesber@di.epfl.ch>, Roger Binns, Charles
-+Blake <cblake@ucsd.edu>, Brian Edmonds, David Engel <david@ods.com>,
-+Larry Greenfield <greenfie@gauss.rutgers.edu>, Michael K. Johnson
-+<johnsonm@sunsite.unc.edu>, Branko Lankester <lankeste@fwi.uva.nl>,
-+Robert Nation <nation@rocket.sanders.lockheed.com>, Michael Shields
-+<mjshield@nyx.cs.du.edu>, Henry Ware <al172@yfn.ysu.edu>, Matt
-+Welsh <mdw@sunsite.unc.edu>, Albert D. Cahalan and Jim C. Warner
-+<warnerjc@worldnet.att.net>
-+
-+All programs except ps, skill and snice are copyright by their
-+authors and redistributable under the terms of the GNU General
-+Public License. On Debian Linux systems, the complete text of
-+the GNU General Public License can be found in
-+`/usr/share/common-licenses/GPL'.
-+
-+ps, skill and snice are copyright by their authors and redistributable under 
-+the terms of the GNU Library General Public License. On Debian Linux 
-+systems, the complete text of the GNU Library General Public License can 
-+be found in `/usr/share/common/licenses/LGPL'.
---- procps-3.1.15.orig/debian/dirs
-+++ procps-3.1.15/debian/dirs
-@@ -0,0 +1,12 @@
-+etc
-+lib
-+sbin
-+bin
-+usr/bin
-+usr/sbin
-+usr/lib
-+usr/include/proc
-+usr/share/man/man1
-+usr/share/man/man5
-+usr/share/man/man8
-+
---- procps-3.1.15.orig/debian/docs
-+++ procps-3.1.15/debian/docs
-@@ -0,0 +1,4 @@
-+BUGS
-+TODO
-+README.top
-+
---- procps-3.1.15.orig/debian/examples
-+++ procps-3.1.15/debian/examples
-@@ -0,0 +1,2 @@
-+debian/sysctl.conf
-+
---- procps-3.1.15.orig/debian/libproc-dev.dirs
-+++ procps-3.1.15/debian/libproc-dev.dirs
-@@ -0,0 +1,2 @@
-+usr/lib
-+usr/include/proc
---- procps-3.1.15.orig/debian/menu
-+++ procps-3.1.15/debian/menu
-@@ -0,0 +1 @@
-+?package(procps):needs=text section="Apps/System" title="Top" command="/usr/bin/top" hints="Monitoring"
---- procps-3.1.15.orig/debian/postinst
-+++ procps-3.1.15/debian/postinst
-@@ -0,0 +1,74 @@
-+#!/bin/sh
-+# postinst script for procps
-+#
-+# see: dh_installdeb(1)
-+
-+set -e
-+
-+# summary of how this script can be called:
-+#        * <postinst> `configure' <most-recently-configured-version>
-+#        * <old-postinst> `abort-upgrade' <new version>
-+#        * <conflictor's-postinst> `abort-remove' `in-favour' <package>
-+#          <new-version>
-+#        * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
-+#          <failed-install-package> <version> `removing'
-+#          <conflicting-package> <version>
-+# for details, see http://www.debian.org/doc/debian-policy/ or
-+# the debian-policy package
-+#
-+# quoting from the policy:
-+#     Any necessary prompting should almost always be confined to the
-+#     post-installation script, and should be protected with a conditional
-+#     so that unnecessary prompting doesn't happen if a package's
-+#     installation fails and the `postinst' is called with `abort-upgrade',
-+#     `abort-remove' or `abort-deconfigure'.
-+
-+case "$1" in
-+    configure)
-+		if [ -e /etc/psdevtab ] ; then
-+			rm -f /etc/psdevtab
-+		fi
-+		if [ -e /etc/psdatabase ] 
-+		then
-+			rm -f /etc/psdatabase
-+		fi
-+		# Remove old /etc/init.d/procps file, Bug #53818
-+		if [ -e /etc/init.d/procps ]
-+		then
-+			rm -f /etc/init.d/procps
-+		fi
-+		# Remove old procps init.d script, if it exists Closes: #55137
-+		if [ -e /etc/rcS.d/S30procps ]
-+		then
-+			update-rc.d procps remove >/dev/null
-+		fi
-+		# and if that didn't work Closes: #92184
-+		if [ -e /etc/rcS.d/S30procps ]
-+		then
-+			rm -f /etc/rcS.d/S30procps
-+		fi
-+		#
-+		# Now to do the alternatives for w and ps
-+		update-alternatives --install /usr/bin/w w /usr/bin/w.procps 50 \
-+			--slave /usr/share/man/man1/w.1.gz w.1.gz /usr/share/man/man1/w.procps.1.gz
-+		
-+    ;;
-+
-+    abort-upgrade|abort-remove|abort-deconfigure)
-+
-+    ;;
-+
-+    *)
-+        echo "postinst called with unknown argument \`$1'" >&2
-+        exit 1
-+    ;;
-+esac
-+
-+# dh_installdeb will replace this with shell code automatically
-+# generated by other debhelper scripts.
-+
-+#DEBHELPER#
-+
-+exit 0
-+
-+
---- procps-3.1.15.orig/debian/prerm
-+++ procps-3.1.15/debian/prerm
-@@ -0,0 +1,11 @@
-+#!/bin/sh
-+
-+if [ "$1" != "upgrade" ]
-+then
-+	update-alternatives --remove w /usr/bin/w.procps
-+fi
-+
-+#DEBHELPER#
-+
-+exit 0
-+
---- procps-3.1.15.orig/debian/sysctl.conf
-+++ procps-3.1.15/debian/sysctl.conf
-@@ -0,0 +1,6 @@
-+#
-+# /etc/sysctl.conf - Configuration file for setting system variables
-+# See sysctl.conf (5) for information.
-+#
-+#kernel.domainname = example.com
-+#net/ipv4/icmp_echo_ignore_broadcasts=1
---- procps-3.1.15.orig/debian/watch
-+++ procps-3.1.15/debian/watch
-@@ -0,0 +1,6 @@
-+# Example watch control file for uscan
-+# Rename this file to "watch" and then you can run the "uscan" command
-+# to check for upstream updates and more.
-+# Site		Directory		Pattern			Version	Script
-+sunsite.unc.edu	/pub/Linux/Incoming	procps-*.tar.gz	debian	uupdate
-+
---- procps-3.1.15.orig/debian/procps.sh
-+++ procps-3.1.15/debian/procps.sh
-@@ -0,0 +1,40 @@
-+#! /bin/sh
-+# /etc/init.d/procps: Set kernel variables from /etc/sysctl.conf
-+#
-+# written by Elrond <Elrond@Wunder-Nett.org>
-+
-+# Check for existance of the default file and exit if not there,
-+# Closes #52839 for the boot-floppy people
-+[ -r /etc/default/rcS ] || exit 0
-+. /etc/default/rcS
-+
-+[ -x /sbin/sysctl ] || exit 0
-+
-+
-+case "$1" in
-+       start|reload|restart|force-reload)
-+               if [ ! -r /etc/sysctl.conf ]
-+               then
-+                       exit 0
-+               fi
-+               if [ "$VERBOSE" = "no" ]
-+               then
-+                       n="-n"
-+                       redir=">/dev/null"
-+               else
-+                       echo -n "Setting kernel variables."
-+                       n=""
-+                       redir=""
-+               fi
-+               eval "/sbin/sysctl $n -p $redir"
-+			   echo "."
-+               ;;
-+       stop|show)
-+               ;;
-+       *)
-+               echo "Usage: /etc/init.d/procps.sh {start|stop|reload|restart}" >&2
-+               exit 1
-+               ;;
-+esac
-+
-+
---- procps-3.1.15.orig/debian/procps.manpages
-+++ procps-3.1.15/debian/procps.manpages
-@@ -0,0 +1 @@
-+ps/ps.1
---- procps-3.1.15.orig/debian/compat
-+++ procps-3.1.15/debian/compat
-@@ -0,0 +1 @@
-+4
---- procps-3.1.15.orig/debian/libproc-dev.files
-+++ procps-3.1.15/debian/libproc-dev.files
-@@ -0,0 +1,2 @@
-+usr/include/proc/*.h
-+lib/libproc.so
---- procps-3.1.15.orig/debian/libproc-dev.README
-+++ procps-3.1.15/debian/libproc-dev.README
-@@ -0,0 +1,12 @@
-+README for libproc-dev
-+======================
-+
-+This README is for people who want to use the libraries for their own
-+programs.  If you just want to use procps tools you don't need to use this
-+and you can probably remove libproc-dev too.
-+
-+It is generally a bad idea to dynamically link to libproc.  The API changes
-+a fair bit and I cannot guarantee that it will stay the same between minor
-+versions (though it will stay the same between Debian versions).  I've now
-+re-included the libproc.a file so use that.
-+
---- procps-3.1.15.orig/debian/patches/20_procps-fix+attr.dpatch
-+++ procps-3.1.15/debian/patches/20_procps-fix+attr.dpatch
-@@ -0,0 +1,55 @@
-+#! /bin/sh -e
-+## 20_procps-fix++attr by someone
-+##
-+## All lines beginning with `## DP:' are a description of the patch.
-+## DP: SELINUX Attr value in /proc
-+
-+[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts
-+patch_opts="${patch_opts:--f --no-backup-if-mismatch}"
-+
-+if [ $# -ne 1 ]; then
-+    echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
-+    exit 1
-+fi
-+case "$1" in
-+       -patch) patch $patch_opts -p1 < $0;;
-+       -unpatch) patch $patch_opts -p1 -R < $0;;
-+        *)
-+                echo >&2 "`basename $0`: script expects -patch|-unpatch as argum
-+ent"
-+                exit 1;;
-+esac
-+
-+exit 0
-+@DPATCH@
-+diff -urN procps-3.1.15/ps/output.c procps-3.1.15.new/ps/output.c
-+--- procps-3.1.15/ps/output.c	2003-12-23 19:46:32.000000000 -0600
-++++ procps-3.1.15.new/ps/output.c	2003-12-24 13:31:16.000000000 -0600
-+@@ -944,7 +944,7 @@
-+ 
-+ // wchan file is suitable for testing
-+ //snprintf(filename, sizeof filename, "/proc/%d/task/%d/wchan", pp->tgid, pp->tid);
-+-  snprintf(filename, sizeof filename, "/proc/%d/task/%d/attr/current", pp->tgid, pp->tid);
-++  snprintf(filename, sizeof filename, "/proc/%d/attr/current", pp->tgid);
-+ 
-+   fd = open(filename, O_RDONLY, 0);
-+   if(likely(fd==-1)) goto fail;
-+diff -urN procps-3.1.15/ps/parser.c procps-3.1.15.new/ps/parser.c
-+--- procps-3.1.15/ps/parser.c	2003-12-23 17:58:06.000000000 -0600
-++++ procps-3.1.15.new/ps/parser.c	2003-12-24 13:45:08.000000000 -0600
-+@@ -315,12 +315,10 @@
-+       exclusive("-V");
-+       display_version();
-+       exit(0);
-+-#if 0
-+-    case 'Z':     /* full Mandatory Access Control level info */
-+-      trace("-Z shows full MAC info\n");
-+-      return "Don't understand MAC on Linux.";
-++    case 'Z':
-++      trace("-Z shows SELinux contexts\n");
-++      format_flags |= FF_Fc;
-+       break;
-+-#endif
-+     case 'a':
-+       trace("-a select all with a tty, but omit session leaders.\n");
-+       simple_select |= SS_U_a;
---- procps-3.1.15.orig/debian/patches/20_ps.1.dpatch
-+++ procps-3.1.15/debian/patches/20_ps.1.dpatch
-@@ -0,0 +1,376 @@
-+#! /bin/sh -e
-+## 20_ps.1.dpatch by Craig Small <csmall@debian.org>
-+##
-+## All lines beginning with `## DP:' are a description of the patch.
-+## DP: Fix ps manual page
-+
-+[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts
-+patch_opts="${patch_opts:--f --no-backup-if-mismatch}"
-+
-+if [ $# -ne 1 ]; then
-+    echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
-+    exit 1
-+fi
-+case "$1" in
-+       -patch) patch $patch_opts -p1 < $0;;
-+       -unpatch) patch $patch_opts -p1 -R < $0;;
-+        *)
-+                echo >&2 "`basename $0`: script expects -patch|-unpatch as argum
-+ent"
-+                exit 1;;
-+esac
-+
-+exit 0
-+@DPATCH@
-+--- procps-3.1.15/ps/ps.1	2003-12-24 12:59:47.000000000 +1100
-++++ procps-3.1.15.newps/ps.1	2003-12-26 18:05:01.000000000 +1100
-+@@ -1,3 +1,5 @@
-++'\" t
-++.\" (The preceding line is a note to broken versions of man to tell
-+ .\" Man page for ps.
-+ .\" Quick hack conversion by Albert Cahalan, 1998.
-+ .\" Licensed under version 2 of the Gnu General Public License.
-+@@ -10,8 +12,8 @@
-+ .\" invented this crap in 1973. Oh yeah, they did. Sorry.
-+ .\"
-+ .TH PS 1 "July 5, 1998" "Linux" "Linux User's Manual"
-+-.SH \fRNAME\fR
-+-ps \- report process status
-++.SH NAME
-++ps \- report a snapshot of the current processes.
-+ .ad r
-+ .na
-+ .ss 12 0
-+@@ -19,17 +21,17 @@
-+ .nh
-+ .nf
-+ 
-+-SYNOPSIS
-++.SH SYNOPSIS
-+ ps [options]
-+ 
-+ 
-+-DESCRIPTION
-++.SH DESCRIPTION
-+ ps gives a snapshot of the current processes. If you want
-+ a repetitive update of this status, use top. This man
-+ page documents the /proc-based version of ps, or tries to.
-+ 
-+ 
-+-COMMAND-LINE OPTIONS
-++.SH "COMMAND-LINE OPTIONS"
-+ 
-+ This version of ps accepts several kinds of options.
-+ 
-+@@ -43,7 +45,9 @@
-+ when options are preceeded by a dash. The PS_PERSONALITY environment
-+ variable (described below) provides more detailed control of ps behavior.
-+ 
-+-SIMPLE PROCESS SELECTION
-++.SH "SIMPLE PROCESS SELECTION"
-++.TS
-++l l.
-+ -A           select all processes
-+ -N           negate selection
-+ -a           select all with a tty except session leaders
-+@@ -55,8 +59,11 @@
-+ r            restrict output to running processes
-+ x            select processes without controlling ttys
-+ --deselect   negate selection
-++.TE
-+ 
-+-PROCESS SELECTION BY LIST
-++.SH "PROCESS SELECTION BY LIST"
-++.TS
-++l l.
-+ -C           select by command name
-+ -G           select by RGID (supports names)
-+ -U           select by RUID (supports names)
-+@@ -78,8 +85,10 @@
-+ --user       select by effective user name or ID
-+ -123         implied --sid
-+ 123          implied --pid
-+-
-+-OUTPUT FORMAT CONTROL
-++.TE
-++.SH "OUTPUT FORMAT CONTROL"
-++.TS
-++l l.
-+ -O           is preloaded "-o"
-+ -F           extra full format
-+ -c           different scheduler info for -l option
-+@@ -98,8 +107,10 @@
-+ v            display virtual memory format
-+ --format     user-defined format
-+ --context    display security context format (NSA SELinux, etc.)
-+-
-+-OUTPUT MODIFIERS
-++.TE
-++.SH "OUTPUT MODIFIERS"
-++.TS
-++l l.
-+ -H           show process hierarchy (forest)
-+ -n           set namelist file
-+ -w           wide output
-+@@ -123,31 +134,40 @@
-+ --rows       set screen height
-+ --sort       specify sorting order
-+ --width      set screen width
-+-
-+-THREAD DISPLAY
-++.TE
-++.SH "THREAD DISPLAY"
-++.TS
-++l l.
-+ -L           show threads, possibly with LWP and NLWP columns
-+ -T           show threads, possibly with SPID column
-+ -m           show threads after processes
-+ H            show threads as if they were processes
-+ m            show threads after processes
-++.TE
-+ 
-+-INFORMATION
-++.SH INFORMATION
-++
-++.TS
-++l l.
-+ -V          print version
-+ L           list all format specifiers
-+ V           show version info
-+ --help      print help message
-+ --info      print debugging info
-+ --version   print version
-++.TE
-++
-++.SH OBSOLETE
-+ 
-+-OBSOLETE
-++.TS
-++l l.
-+ A           increases the argument space (DecUnix)
-+ M           use alternate core (try -n or N instead)
-+ W           get swap info from ... not /dev/drum (try -n or N instead)
-+ k           use /vmcore as c-dumpfile (try -n or N instead)
-+-
-+-
-+-
-+-NOTES
-++.TE
-++  
-++.SH NOTES
-+ 
-+ User-defined format options ("o", "-o", "O", and "-O") offer
-+ a way to specify individual output columns. Headers may be
-+@@ -249,14 +269,17 @@
-+ will be destroyed by init(8) if the parent process exits.
-+ 
-+ 
-+-PROCESS FLAGS
-+-
-++.SH "PROCESS FLAGS"
-++.TS
-++l l l.
-+ FORKNOEXEC   1    forked but didn't exec
-+ SUPERPRIV    4    used super-user privileges
-++.TE
-+ 
-++.SH "PROCESS STATE CODES"
-+ 
-+-PROCESS STATE CODES
-+-
-++.TS
-++l l.
-+ D uninterruptible sleep (usually IO)
-+ R runnable (on run queue)
-+ S sleeping
-+@@ -264,23 +287,30 @@
-+ W paging
-+ X dead
-+ Z a defunct ("zombie") process
-++.TE
-+ 
-+ For BSD formats and when the "stat" keyword is used, additional
-+ letters may be displayed:
-+ 
-+-W has no resident pages
-+-< high-priority process
-+-N low-priority task
-+-L has pages locked into memory (for real-time and custom IO)
-++.IP W
-++has no resident pages
-++.IP <
-++high-priority process
-++.IP N
-++low-priority task
-++.IP L
-++has pages locked into memory (for real-time and custom IO)
-+ 
-+ 
-+-SORT KEYS
-++.SH "SORT KEYS"
-+ 
-+ Note that the values used in sorting are the internal values ps uses and not
-+ the `cooked' values used in some of the output format fields. Pipe ps
-+ output into the sort(1) command if you want to sort the cooked values.
-+ 
-+-KEY LONG       DESCRIPTION
-++.TS
-++l l l.
-++\fBKEY LONG       DESCRIPTION\fR
-+ c   cmd        simple name of executable
-+ C   cmdline    full command line
-+ f   flags      flags as in long format F field
-+@@ -307,14 +337,15 @@
-+ u   user       user name
-+ v   vsize      total VM size in kB
-+ y   priority   kernel scheduling priority
-++.TE
-+ 
-+-
-+-AIX FORMAT DESCRIPTORS
-++.SH "AIX FORMAT DESCRIPTORS"
-+ 
-+ This ps supports AIX format descriptors, which work somewhat like the
-+ formatting codes of printf(1) and printf(3). For example, the normal
-+ default output can be produced with this:   ps -eo "%p %y %x %c"
-+-
-++.TS
-++l l l.
-+ CODE  NORMAL    HEADER
-+ %C    pcpu      %CPU
-+ %G    group     GROUP
-+@@ -331,14 +362,16 @@
-+ %x    time      TIME
-+ %y    tty       TTY
-+ %z    vsz       VSZ
-++.TE
-+ 
-+-
-+-STANDARD FORMAT SPECIFIERS
-++.SH "STANDARD FORMAT SPECIFIERS"
-+ 
-+ These may be used to control both output format and sorting.
-+ For example:  ps -eo pid,user,args --sort user
-+ 
-+-CODE         HEADER
-++.TS
-++l l.
-++\fBCODE         HEADER\fR
-+ %cpu         %CPU    
-+ %mem         %MEM    
-+ alarm        ALARM   
-+@@ -459,25 +492,51 @@
-+ vsize        VSZ     
-+ vsz          VSZ     
-+ wchan        WCHAN   
-++.TE
-+ 
-++.SH "ENVIRONMENT VARIABLES"
-+ 
-+-
-+-
-+-ENVIRONMENT VARIABLES
-+ The following environment variables could affect ps:
-+-    COLUMNS             Override default display width.
-+-    LINES               Override default display height.
-+-    PS_PERSONALITY      Set to one of posix,old,linux,bsd,sun,digital...
-+-    CMD_ENV             Set to one of posix,old,linux,bsd,sun,digital...
-+-    I_WANT_A_BROKEN_PS  Force obsolete command line interpretation.
-+-    LC_TIME             Date format.
-+-    PS_COLORS           Not currently supported.
-+-    PS_FORMAT           Default output format override.
-+-    PS_SYSMAP           Default namelist (System.map) location.
-+-    PS_SYSTEM_MAP       Default namelist (System.map) location.
-+-    POSIXLY_CORRECT     Don't find excuses to ignore bad "features".
-+-    UNIX95              Don't find excuses to ignore bad "features".
-+-    _XPG                Cancel CMD_ENV=irix non-standard behavior.
-++
-++.TP 
-++.B COLUMNS
-++Override default display width.
-++.TP
-++.B LINES
-++Override default display height.
-++.TP
-++.B PS_PERSONALITY
-++Set to one of posix,old,linux,bsd,sun,digital...
-++.TP
-++.B CMD_ENV
-++Set to one of posix,old,linux,bsd,sun,digital...
-++.TP
-++.B I_WANT_A_BROKEN_PS
-++Force obsolete command line interpretation.
-++.TP
-++.B LC_TIME
-++Date format.
-++.TP
-++.B PS_COLORS
-++Not currently supported.
-++.TP
-++.B PS_FORMAT
-++Default output format override.
-++.TP
-++.B PS_SYSMAP
-++Default namelist (System.map) location.
-++.TP
-++.B PS_SYSTEM_MAP
-++Default namelist (System.map) location.
-++.TP
-++.B POSIXLY_CORRECT
-++Don't find excuses to ignore bad "features".
-++.TP
-++.B UNIX95
-++Don't find excuses to ignore bad "features".
-++.TP
-++.B _XPG
-++Cancel CMD_ENV=irix non-standard behavior.
-+ 
-+ In general, it is a bad idea to set these variables. The one exception
-+ is CMD_ENV or PS_PERSONALITY, which could be set to Linux for normal
-+@@ -485,7 +544,9 @@
-+ of the Unix98 standard.
-+ 
-+ 
-+-PERSONALITY
-++.SH "PERSONALITY"
-++.TS
-++l l.
-+     390      like the S/390 OpenEdition ps
-+     aix      like AIX ps
-+     bsd      like FreeBSD ps (totally non-standard)
-+@@ -507,9 +568,9 @@
-+     unix     standard
-+     unix95   standard
-+     unix98   standard
-++.TE
-+ 
-+-
-+-EXAMPLES
-++.SH "EXAMPLES"
-+ To see every process on the system using standard syntax:
-+     ps -e
-+ To see every process on the system using BSD syntax:
-+@@ -523,13 +584,13 @@
-+ Print only the process IDs of syslogd:
-+     ps -C syslogd -o pid=
-+ 
-+-SEE ALSO
-+-top(1) pgrep(1) pstree(1) proc(5)
-++.SH "SEE ALSO"
-++.BR top (1), pgrep (1), pstree (1),  proc (5).
-+ 
-+-STANDARDS
-++.SH STANDARDS
-+ This ps conforms to version 2 of the Single Unix Specification.
-+ 
-+-AUTHOR
-++.SH AUTHOR
-+ ps was originally written by Branko Lankester <lankeste@fwi.uva.nl>. Michael
-+ K. Johnson <johnsonm@redhat.com> re-wrote it significantly to use the proc
-+ filesystem, changing a few things in the process. Michael Shields
-+@@ -541,4 +602,4 @@
-+ <acahalan@cs.uml.edu> rewrote ps for full Unix98 and BSD support, along with
-+ some ugly hacks for obsolete and foreign syntax.
-+ 
-+-Please send bug reports to <acahalan@cs.uml.edu>
-++Please send bug reports to <procps-feedback@lists.sf.net>.
---- procps-3.1.15.orig/debian/patches/20_top_manpage.dpatch
-+++ procps-3.1.15/debian/patches/20_top_manpage.dpatch
-@@ -0,0 +1,384 @@
-+#! /bin/sh -e
-+## 20_top_manpage by Randy Hron
-+##
-+## All lines beginning with `## DP:' are a description of the patch.
-+## DP: Fix bold in top manual page
-+
-+[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts
-+patch_opts="${patch_opts:--f --no-backup-if-mismatch}"
-+
-+if [ $# -ne 1 ]; then
-+    echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
-+    exit 1
-+fi
-+case "$1" in
-+       -patch) patch $patch_opts -p1 < $0;;
-+       -unpatch) patch $patch_opts -p1 -R < $0;;
-+        *)
-+                echo >&2 "`basename $0`: script expects -patch|-unpatch as argum
-+ent"
-+                exit 1;;
-+esac
-+
-+exit 0
-+@DPATCH@
-+--- procps/top.1.orig	2003-12-24 15:51:35.000000000 -0500
-++++ procps/top.1	2003-12-24 18:57:14.564156176 -0500
-+@@ -52,7 +52,7 @@
-+ .ds CF configuration file
-+ .ds CI interactive command
-+ .ds CO command\-line option
-+-.ds CW \'current' window
-++.ds CW 'current' window
-+ .ds FM full\-screen mode
-+ .ds MP \fBphysical\fR memory
-+ .ds MS \fBshared\fR memory
-+@@ -370,7 +370,7 @@
-+ The task's share of the elapsed \*(PU time since the last screen update, expressed
-+ as a percentage of total \*(PU time.
-+ In a true SMP environment, if 'Irix mode' is \*F, \*(Me will operate in
-+-\'Solaris mode' where a task's \*(Pu usage will be divided by the total
-++'Solaris mode' where a task's \*(Pu usage will be divided by the total
-+ number of \*(PUs.
-+ You toggle 'Irix/Solaris' modes with the 'I' \*(CI.
-+ 
-+@@ -498,7 +498,7 @@
-+ .\" ......................................................................
-+ .SS 2b. SELECTING and ORDERING Columns
-+ .\" ----------------------------------------------------------------------
-+-After pressing the \*(CIs 'f' (Fields select) or \'o' (Order fields) you will
-++After pressing the \*(CIs 'f' (Fields select) or 'o' (Order fields) you will
-+ be shown a screen containing the current \fBfields string\fR followed by names
-+ and descriptions for all fields.
-+ 
-+@@ -574,7 +574,7 @@
-+ see current status,
-+ 
-+ .TP 7
-+-\ \ \'\fB?\fR\' or \'\fBh\fR\' :\fIHelp\fR
-++\ \ \<\fB?\fR\> or \<\fBh\fR\> :\fIHelp\fR
-+ There are two help levels available.
-+ The first will provide a reminder of all the basic \*(CIs.
-+ If \*(Me is\fI secured\fR, that screen will be abbreviated.
-+@@ -583,7 +583,7 @@
-+ applicable to \*(AM.
-+ 
-+ .TP 7
-+-\ \ \'\fB=\fR\' :\fIExit_Task_Limits\fR
-++\ \ \<\fB=\fR\> :\fIExit_Task_Limits\fR
-+ Removes restrictions on which tasks are shown.
-+ This command will reverse any 'i' (idle tasks) and 'n' (max tasks) commands
-+ that might be active.
-+@@ -593,13 +593,13 @@
-+ When operating in \*(AM this command has a slightly broader meaning.
-+ 
-+ .TP 7
-+-\ \ \'\fBA\fR\' :\fIAlternate_Display_Mode_toggle\fR
-++\ \ \<\fBA\fR\> :\fIAlternate_Display_Mode_toggle\fR
-+ This command will switch between \*(FM and \*(AM.
-+-\*(XT 4. ALTERNATE\-DISPLAY Mode and the 'G' \*(CI for insight into
-+-\*(CWs and field groups.
-++\*(XT 4. ALTERNATE\-DISPLAY Mode and the 'G' \*(CI for insight
-++into \*(CWs and field groups.
-+ 
-+ .TP 7
-+-\ \ \'\fBB\fR\' :\fIBold_Disable/Enable_toggle\fR
-++\ \ \<\fBB\fR\> :\fIBold_Disable/Enable_toggle\fR
-+ This command will influence use of the 'bold' terminfo capability and
-+ alters\fB both\fR the \*(SA and \*(TA for the \*(CW.
-+ While it is intended primarily for use with dumb terminals, it can be
-+@@ -611,7 +611,7 @@
-+ there will be no visual confirmation that they are even on.
-+ 
-+ .TP 7
-+-*\ \'\fBd\fR\' or \'\fBs\fR\' :\fIChange_Delay_Time_interval\fR
-++*\ \<\fBd\fR\> or \<\fBs\fR\> :\fIChange_Delay_Time_interval\fR
-+ You will be prompted to enter the delay time, in seconds, between
-+ display updates.
-+ 
-+@@ -625,32 +625,32 @@
-+ and view the system summary on the second line.
-+ 
-+ .TP 7
-+-\ \ \'\fBG\fR\' :\fIChoose_Another_Window/Field_Group\fR
-++\ \ \<\fBG\fR\> :\fIChoose_Another_Window/Field_Group\fR
-+ You will be prompted to enter a number between 1 and 4 designating the
-+ window/field group which should be made the \*(CW.
-+ You will soon grow comfortable with these 4 windows, especially after
-+ experimenting with \*(AM.
-+ 
-+ .TP 7
-+-\ \ \'\fBI\fR\' :\fIIrix/Solaris_Mode_toggle\fR
-++\ \ \<\fBI\fR\> :\fIIrix/Solaris_Mode_toggle\fR
-+ When operating in 'Solaris mode' ('I' toggled \*F), a task's \*(Pu usage
-+ will be divided by the total number of \*(PUs.
-+ After issuing this command, you'll be informed of the new state of this toggle.
-+ 
-+ .TP 7
-+-\ \ \'\fBu\fR\' :\fIselect a user\fR
-++\ \ \<\fBu\fR\> :\fIselect a user\fR
-+ You will be prompted for a UID or username. Only processes
-+ belonging to the selected user will be displayed. This option
-+ matches on the effective UID.
-+ 
-+ .TP 7
-+-\ \ \'\fBU\fR\' :\fIselect a user\fR
-++\ \ \<\fBU\fR\> :\fIselect a user\fR
-+ You will be prompted for a UID or username. Only processes
-+ belonging to the selected user will be displayed. This option
-+ matches on the real, effective, saved, and filesystem UID.
-+ 
-+ .TP 7
-+-*\ \'\fBk\fR\' :\fIKill_a_task\fR
-++*\ \<\fBk\fR\> :\fIKill_a_task\fR
-+ You will be prompted for a PID and then the signal to send.
-+ The default signal, as reflected in the prompt, is SIGTERM.
-+ However, you can send any signal, via number or name.
-+@@ -661,24 +661,24 @@
-+    2) at the signal prompt, type 0
-+ 
-+ .TP 7
-+-\ \ \'\fBq\fR\' :\fIQuit\fR
-++\ \ \<\fBq\fR\> :\fIQuit\fR
-+ 
-+ .TP 7
-+-*\ \'\fBr\fR\' :\fIRenice_a_Task\fR
-++*\ \<\fBr\fR\> :\fIRenice_a_Task\fR
-+ You will be prompted for a PID and then the value to nice it to.
-+ Entering a positive value will cause a process to lose priority.
-+ Conversely, a negative value will cause a process to be viewed more
-+ favorably by the kernel.
-+ 
-+ .TP 7
-+-\ \ \'\fBW\fR\' :\fIWrite_the_Configuration_File\fR
-++\ \ \<\fBW\fR\> :\fIWrite_the_Configuration_File\fR
-+ This will save all of your options and toggles plus the current
-+ display mode and delay time.
-+ By issuing this command just before quitting \*(Me, you will be able restart
-+ later in exactly that same state.
-+ 
-+ .TP 7
-+-\ \ \'\fBZ\fR\' :\fIChange_Color_Mapping
-++\ \ \<\fBZ\fR\> :\fIChange_Color_Mapping
-+ This key will take you to a separate screen where you can change the
-+ colors for the \*(CW, or for all windows.
-+ For details regarding this \*(CI \*(Xt 3d. COLOR Mapping.
-+@@ -694,25 +694,25 @@
-+ of messages and prompts.
-+ 
-+ These commands always impact just the \*(CW/field group.
-+-\*(XT 4. ALTERNATE\-DISPLAY Mode and the 'G' \*(CI for insight into
-+-\*(CWs and field groups.
-++\*(XT 4. ALTERNATE\-DISPLAY Mode and the 'G' \*(CI for insight
-++into \*(CWs and field groups.
-+ 
-+ .TP 7
-+-\ \ \'\fBl\fR\' :\fIToggle_Load_Average/Uptime\fR \*(EM On/Off
-++\ \ \<\fBl\fR\> :\fIToggle_Load_Average/Uptime\fR \*(EM On/Off
-+ This is also the line containing the program name (possibly an alias) when
-+ operating in \*(FM or the \*(CW name when operating in \*(AM.
-+ 
-+ .TP 7
-+-\ \ \'\fBm\fR\' :\fIToggle_Memory/Swap_Usage\fR \*(EM On/Off
-++\ \ \<\fBm\fR\> :\fIToggle_Memory/Swap_Usage\fR \*(EM On/Off
-+ This command affects two \*(SA lines.
-+ 
-+ .TP 7
-+-\ \ \'\fBt\fR\' :\fIToggle_Task/Cpu_States\fR \*(EM On/Off
-++\ \ \<\fBt\fR\> :\fIToggle_Task/Cpu_States\fR \*(EM On/Off
-+ This command affects from 2 to many \*(SA lines, depending on the state
-+ of the '1' toggle and whether or not \*(Me is running under true SMP.
-+ 
-+ .TP 7
-+-\ \ \'\fB1\fR\' :\fIToggle_Single/Separate_Cpu_States\fR \*(EM On/Off
-++\ \ \<\fB1\fR\> :\fIToggle_Single/Separate_Cpu_States\fR \*(EM On/Off
-+ This command affects how the 't' command's Cpu States portion is shown.
-+ Although this toggle exists primarily to serve massively-parallel SMP machines,
-+ it is not restricted to solely SMP environments.
-+@@ -744,12 +744,12 @@
-+ .in
-+ 
-+ .TP 7
-+-\ \ \'\fBb\fR\' :\fIBold/Reverse_toggle\fR
-++\ \ \<\fBb\fR\> :\fIBold/Reverse_toggle\fR
-+ This command will impact how the 'x' and 'y' toggles are displayed.
-+ Further, it will only be available when at least one of those toggles is \*O.
-+ 
-+ .TP 7
-+-\ \ \'\fBx\fR\' :\fIColumn_Highlight_toggle\fR
-++\ \ \<\fBx\fR\> :\fIColumn_Highlight_toggle\fR
-+ Changes highlighting for the current sort field.
-+ You probably don't need a constant visual reminder of the sort field and
-+ \*(Me hopes that you always run with 'column highlight' \*F, due to the cost
-+@@ -759,7 +759,7 @@
-+ visual reminder.
-+ 
-+ .TP 7
-+-\ \ \'\fBy\fR\' :\fIRow_Highlight_toggle\fR
-++\ \ \<\fBy\fR\> :\fIRow_Highlight_toggle\fR
-+ Changes highlighting for "running" tasks.
-+ For additional insight into this task state, \*(Xt 2a. DESCRIPTIONS of Fields,
-+ Process Status.
-+@@ -768,7 +768,7 @@
-+ The only costs will be a few additional tty escape sequences.
-+ 
-+ .TP 7
-+-\ \ \'\fBz\fR\' :\fIColor/Monochrome_toggle\fR
-++\ \ \<\fBz\fR\> :\fIColor/Monochrome_toggle\fR
-+ Switches the \*(CW between your last used color scheme and the older form
-+ of black-on-white or white-on-black.
-+ This command will alter\fB both\fR the \*(SA and \*(TA but does not affect the
-+@@ -779,20 +779,20 @@
-+ .B CONTENT\fR of \*(TW
-+ .PD 0
-+ .TP 7
-+-\ \ \'\fBc\fR\' :\fICommand_Line/Program_Name_toggle\fR
-++\ \ \<\fBc\fR\> :\fICommand_Line/Program_Name_toggle\fR
-+ This command will be honored whether or not the 'Command' column
-+ is currently visible.
-+ Later, should that field come into view, the change you applied will be seen.
-+ 
-+ .TP 7
-+-\ \ \'\fBf\fR\' and \'\fBo\fR\' :\fIFields_select\fR or \fIOrder_fields\fR
-++\ \ \<\fBf\fR\> and \<\fBo\fR\> :\fIFields_select\fR or \fIOrder_fields\fR
-+ These keys display separate screens where you can change which
-+ fields are displayed and their order.
-+ For additional information on these \*(CIs
-+ \*(Xt 2b. SELECTING and ORDERING Columns.
-+ 
-+ .TP 7
-+-\ \ \'\fBS\fR\' :\fICumulative_Time_Mode_toggle\fR
-++\ \ \<\fBS\fR\> :\fICumulative_Time_Mode_toggle\fR
-+ When 'Cumulative mode' is \*O, each process is listed with the \*(Pu
-+ time that it and its dead children have used.
-+ 
-+@@ -808,7 +808,7 @@
-+ effect, simply ask for help and view the window summary on the second line.
-+ 
-+ .TP 7
-+-\ \ \'\fBu\fR\' :\fIShow_Specific_User_Only\fR
-++\ \ \<\fBu\fR\> :\fIShow_Specific_User_Only\fR
-+ You will be prompted to enter the name of the user to display.
-+ Thereafter, in that \*(TW only matching User ID's will be shown, or possibly
-+ no tasks will be shown.
-+@@ -821,7 +821,7 @@
-+ .B SIZE\fR of \*(TW
-+ .PD 0
-+ .TP 7
-+-\ \ \'\fBi\fR\' :\fIIdle_Processes_toggle\fR
-++\ \ \<\fBi\fR\> :\fIIdle_Processes_toggle\fR
-+ Displays all tasks or just active tasks.
-+ When this toggle is \*F, idled or zombied processes will not be displayed.
-+ 
-+@@ -829,7 +829,7 @@
-+ affect the window's size, as all prior \*(TDs will have already been painted.
-+ 
-+ .TP 7
-+-\ \ \'\fBn\fR\' or \'#\' :\fISet_Maximum_Tasks\fR
-++\ \ \<\fBn\fR\> or \<\fB#\fR\> :\fISet_Maximum_Tasks\fR
-+ You will be prompted to enter the number of tasks to display.
-+ The lessor of your number and available screen rows will be used.
-+ 
-+@@ -868,12 +868,12 @@
-+ .in
-+ 
-+ .TP 7
-+-\ \ \'\fB<\fR\' :\fIMove_Sort_Field_Left\fR
-++\ \ \<\fB<\fR\> :\fIMove_Sort_Field_Left\fR
-+ Moves the sort column to the left unless the current sort field is
-+ the first field being displayed.
-+ 
-+ .TP 7
-+-\ \ \'\fB>\fR\' :\fIMove_Sort_Field_Right\fR
-++\ \ \<\fB>\fR\> :\fIMove_Sort_Field_Right\fR
-+ Moves the sort column to the right unless the current sort field is
-+ the last field being displayed.
-+ 
-+@@ -884,7 +884,7 @@
-+ .in
-+ 
-+ .TP 7
-+-\ \ \'\fBF\fR\' or \'\fBO\fR\' :\fISelect_Sort_Field\fR
-++\ \ \<\fBF\fR\> or \<\fBO\fR\> :\fISelect_Sort_Field\fR
-+ These keys display a separate screen where you can change which field
-+ is used as the sort column.
-+ 
-+@@ -897,7 +897,7 @@
-+ when running \*(Me with column highlighting turned \*F.
-+ 
-+ .TP 7
-+-\ \ \'\fBR\fR\' :\fIReverse/Normal_Sort_Field_toggle\fR
-++\ \ \<\fBR\fR\> :\fIReverse/Normal_Sort_Field_toggle\fR
-+ Using this \*(CI you can alternate between high-to-low and low-to-high sorts.
-+ 
-+ .PP
-+@@ -974,7 +974,7 @@
-+ .\" ......................................................................
-+ .SS 4b. COMMANDS for Windows
-+ .TP 7
-+-\ \ \'\fB-\fR\' and \'\fB_\fR\' :\fIShow/Hide_Window(s)_toggles\fR
-++\ \ \<\fB-\fR\> and \<\fB_\fR\> :\fIShow/Hide_Window(s)_toggles\fR
-+ The '-' key turns the \*(CW's \*(TD \*O and \*F.
-+ When \*O, that \*(TA will show a minimum of the columns header you've
-+ established with the 'f' and 'o' commands.
-+@@ -988,7 +988,7 @@
-+ as the only display element.
-+ 
-+ .TP 7
-+-*\ \'\fB=\fR\' and \'\fB+\fR\' :\fIEqualize_(re-balance)_Window(s)\fR
-++*\ \<\fB=\fR\> and \<\fB+\fR\> :\fIEqualize_(re-balance)_Window(s)\fR
-+ The '=' key forces the \*(CW's \*(TD to be visible.
-+ It also reverses any 'i' (idle tasks) and 'n' (max tasks) commands that might
-+ be active.
-+@@ -999,7 +999,7 @@
-+ except for the 'i' (idle tasks) and 'n' (max tasks) commands.
-+ 
-+ .TP 7
-+-*\ \'\fBA\fR\' :\fIAlternate_Display_Mode_toggle\fR
-++*\ \<\fBA\fR\> :\fIAlternate_Display_Mode_toggle\fR
-+ This command will switch between \*(FM and \*(AM.
-+ 
-+ The first time you issue this command, all four \*(TDs will be shown.
-+@@ -1007,7 +1007,7 @@
-+ chosen to make visible.
-+ 
-+ .TP 7
-+-*\ \'\fBa\fR\' and \'\fBw\fR\' :\fINext_Window_Forward/Backward\fR
-++*\ \<\fBa\fR\> and \<\fBw\fR\> :\fINext_Window_Forward/Backward\fR
-+ This will change the \*(CW, which in turn changes the window to which
-+ commands are directed.
-+ These keys act in a circular fashion so you can reach any desired \*(CW
-+@@ -1018,7 +1018,7 @@
-+ the \*(TD is \*F and many commands will be restricted.
-+ 
-+ .TP 7
-+-*\ \'\fBG\fR\' :\fIChoose_Another_Window/Field_Group\fR
-++*\ \<\fBG\fR\> :\fIChoose_Another_Window/Field_Group\fR
-+ You will be prompted to enter a number between 1 and 4 designating the
-+ window/field group which should be made the \*(CW.
-+ 
-+@@ -1027,15 +1027,15 @@
-+ commands.
-+ 
-+ .TP 7
-+-\ \ \'\fBg\fR\' :\fIChange_Window/Field_Group_Name\fR
-++\ \ \<\fBg\fR\> :\fIChange_Window/Field_Group_Name\fR
-+ You will be prompted for a new name to be applied to the \*(CW.
-+ It does not require that the window name be visible
-+ (the 'l' toggle to be \*O).
-+ 
-+ .IP "*" 3
-+ The \*(CIs shown with an \*(AS have use beyond \*(AM.
-+-    \'=', 'A', 'G'  are always available
-+-    \'a', 'w'       act the same when color mapping
-++    '=', 'A', 'G'  are always available
-++    'a', 'w'       act the same when color mapping
-+ 
-+
-+ .\" ----------------------------------------------------------------------
-+
-+
-+
-+
-+
-+
---- procps-3.1.15.orig/debian/patches/10_sysctl_quiet.dpatch
-+++ procps-3.1.15/debian/patches/10_sysctl_quiet.dpatch
-@@ -0,0 +1,119 @@
-+#! /bin/sh -e
-+## 10_sysctl_quiet by Simon Horman
-+##
-+## All lines beginning with `## DP:' are a description of the patch.
-+## DP: Adds quiet -q flag to sysctl
-+
-+[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts
-+patch_opts="${patch_opts:--f --no-backup-if-mismatch}"
-+
-+if [ $# -ne 1 ]; then
-+    echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
-+    exit 1
-+fi
-+case "$1" in
-+       -patch) patch $patch_opts -p1 < $0;;
-+       -unpatch) patch $patch_opts -p1 -R < $0;;
-+        *)
-+                echo >&2 "`basename $0`: script expects -patch|-unpatch as argum
-+ent"
-+                exit 1;;
-+esac
-+
-+exit 0
-+@DPATCH@
-+diff -ru procps-3.1.8/sysctl.8 procps-3.1.8.new/sysctl.8
-+--- procps-3.1.8/sysctl.8	2002-12-12 07:51:32.000000000 +0900
-++++ procps-3.1.8.new/sysctl.8	2003-04-15 20:30:46.000000000 +0900
-+@@ -12,9 +12,9 @@
-+ .SH SYNOPSIS
-+ .B "sysctl [-n] [-e] variable ..."
-+ .br
-+-.B "sysctl [-n] [-e] -w variable=value ..."
-++.B "sysctl [-n] [-e] [-q] -w variable=value ..."
-+ .br
-+-.B "sysctl [-n] [-e] -p <filename>"
-++.B "sysctl [-n] [-e] [-q] -p <filename>"
-+ .br
-+ .B "sysctl [-n] [-e] -a"
-+ .br
-+@@ -45,6 +45,9 @@
-+ .B "-e"
-+ Use this option to ignore errors about unknown keys.
-+ .TP
-++.B "-q"
-++Use this option to not display the values set to stdout.
-++.TP
-+ .B "-w"
-+ Use this option when you want to change a sysctl setting.
-+ .TP
-+diff -ru procps-3.1.8/sysctl.c procps-3.1.8.new/sysctl.c
-+--- procps-3.1.8/sysctl.c	2002-12-29 08:26:50.000000000 +0900
-++++ procps-3.1.8.new/sysctl.c	2003-04-15 20:35:08.000000000 +0900
-+@@ -15,6 +15,8 @@
-+  * Changelog:
-+  *            v1.01:
-+  *                   - added -p <preload> to preload values from a file
-++ *            Horms: 
-++ *                   - added -q to be quiet when modifying values
-+  *
-+  * Changes by Albert Cahalan, 2002.
-+  */
-+@@ -46,6 +48,7 @@
-+ static bool PrintName;
-+ static bool PrintNewline;
-+ static bool IgnoreError;
-++static bool Quiet;
-+ 
-+ /* error messages */
-+ static const char ERR_UNKNOWN_PARAMETER[] = "error: Unknown parameter '%s'\n";
-+@@ -80,9 +83,9 @@
-+  */
-+ static int Usage(const char *restrict const name) {
-+    printf("usage:  %s [-n] [-e] variable ... \n"
-+-          "        %s [-n] [-e] -w variable=value ... \n" 
-++          "        %s [-n] [-e] [-q] -w variable=value ... \n" 
-+           "        %s [-n] [-e] -a \n" 
-+-          "        %s [-n] [-e] -p <file>   (default /etc/sysctl.conf) \n"
-++          "        %s [-n] [-e] [-q] -p <file>   (default /etc/sysctl.conf) \n"
-+           "        %s [-n] [-e] -A\n", name, name, name, name, name);
-+    return -1;
-+ }
-+@@ -290,13 +293,14 @@
-+       fprintf(fp, "%s\n", value);
-+       fclose(fp);
-+ 
-+-      if (PrintName) {
-++      if(Quiet) {
-++	 ;
-++      } else if (PrintName) {
-+          fprintf(stdout, "%s = %s\n", outname, value);
-++      } else if (PrintNewline) {
-++         fprintf(stdout, "%s\n", value);
-+       } else {
-+-         if (PrintNewline)
-+-            fprintf(stdout, "%s\n", value);
-+-         else
-+-            fprintf(stdout, "%s", value);
-++         fprintf(stdout, "%s", value);
-+       }
-+    }
-+ 
-+@@ -377,6 +381,7 @@
-+    PrintName = true;
-+    PrintNewline = true;
-+    IgnoreError = false;
-++   Quiet = false;
-+ 
-+    if (argc < 2) {
-+        return Usage(me);
-+@@ -419,6 +424,9 @@
-+                  preloadfile = *argv;
-+               }
-+               return Preload(preloadfile);
-++	 case 'q':
-++	      Quiet = true;
-++	   break;
-+          case 'a': /* string and integer values (for Linux, all of them) */
-+          case 'A': /* the above, including "opaques" (would be unprintable) */
-+          case 'X': /* the above, with opaques completly printed in hex */
---- procps-3.1.15.orig/debian/patches/00list
-+++ procps-3.1.15/debian/patches/00list
-@@ -0,0 +1,5 @@
-+10_sysctl_quiet
-+20_procps-fix+attr
-+20_ps.1
-+20_top_manpage
-+30_remove_test_dir
---- procps-3.1.15.orig/debian/patches/30_remove_test_dir.dpatch
-+++ procps-3.1.15/debian/patches/30_remove_test_dir.dpatch
-@@ -0,0 +1,2911 @@
-+#! /bin/sh -e
-+## 30_remove_test-dir by Craif Small
-+##
-+## All lines beginning with `## DP:' are a description of the patch.
-+## DP: Removing test directory
-+[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts
-+patch_opts="${patch_opts:--f --no-backup-if-mismatch}"
-+
-+if [ $# -ne 1 ]; then
-+    echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
-+    exit 1
-+fi
-+case "$1" in
-+       -patch) patch $patch_opts -p1 < $0;;
-+       -unpatch) patch $patch_opts -p1 -R < $0;;
-+        *)
-+                echo >&2 "`basename $0`: script expects -patch|-unpatch as argum
-+ent"
-+                exit 1;;
-+esac
-+
-+exit 0
-+@DPATCH@
-+diff -ruN procps-3.1.15.old/test/clone-army.c procps-3.1.15/test/clone-army.c
-+--- procps-3.1.15.old/test/clone-army.c	2003-10-05 04:46:34.000000000 +1000
-++++ procps-3.1.15/test/clone-army.c	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,127 +0,0 @@
-+-// ps fTo sess,pgid,pid,tty,ppid,tpgid,args -C a.out
-+-
-+-#include <sys/types.h>
-+-#include <unistd.h>
-+-#include <signal.h>
-+-//#include <sys/stat.h>
-+-//#include <fcntl.h>
-+-//#include <stdlib.h>
-+-#include <stdio.h>
-+-#include <sched.h>
-+-
-+-#if 0
-+-#define CLONE_VM             0x00000100 // set if VM shared between processes
-+-#define CLONE_FS             0x00000200 // set if fs info shared between processes
-+-#define CLONE_FILES          0x00000400 // set if open files shared between processes
-+-#define CLONE_SIGHAND        0x00000800 // set if signal handlers and blocked signals shared
-+-#define CLONE_IDLETASK       0x00001000 // set if new pid should be 0 (kernel only)*/
-+-#define CLONE_PTRACE         0x00002000 // set if we want to let tracing continue on the child too
-+-#define CLONE_VFORK          0x00004000 // set if the parent wants the child to wake it up on mm_release
-+-#define CLONE_PARENT         0x00008000 // set if we want to have the same parent as the cloner
-+-#define CLONE_THREAD         0x00010000 // Same thread group?
-+-#define CLONE_NEWNS          0x00020000 // New namespace group?
-+-#define CLONE_SYSVSEM        0x00040000 // share system V SEM_UNDO semantics
-+-#define CLONE_SETTLS         0x00080000 // create a new TLS for the child
-+-#define CLONE_PARENT_SETTID  0x00100000 // set the TID in the parent
-+-#define CLONE_CHILD_CLEARTID 0x00200000 // clear the TID in the child
-+-#define CLONE_DETACHED       0x00400000 // parent wants no child-exit signal
-+-#define CLONE_UNTRACED       0x00800000 // set if the tracing process can't force CLONE_PTRACE on this clone
-+-#define CLONE_CHILD_SETTID   0x01000000 // set the TID in the child
-+-#define CLONE_STOPPED        0x02000000 // Start in stopped state
-+-#endif
-+-
-+-#ifndef CLONE_THREAD
-+-#define CLONE_THREAD         0x00010000
-+-#endif
-+-#ifndef CLONE_DETACHED
-+-#define CLONE_DETACHED       0x00400000
-+-#endif
-+-
-+-
-+-// interesting: VM FS FILES SIGHAND PARENT THREAD SYSVSEM DETACHED
-+-
-+-//#define FLAGS (CLONE_PARENT|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_VM|CLONE_THREAD|CLONE_SYSVSEM)
-+-#define FLAGS (CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_VM|CLONE_THREAD|CLONE_DETACHED)
-+-
-+-// Don't cause rejection: FS FILES SYSVSEM PARENT
-+-// Do cause rejection:
-+-
-+-static void printflags(int pass, unsigned flags){
-+-  printf(
-+-    "%s %08x %s %s %s %s\n",
-+-    pass?"pass":"FAIL",
-+-    flags,
-+-    (flags&CLONE_THREAD) ? "THREAD" : "______",
-+-    (flags&CLONE_DETACHED) ? "DETACHED" : "________",
-+-    (flags&CLONE_SIGHAND) ? "SIGHAND" : "_______",
-+-    (flags&CLONE_SIGHAND) ? "VM" : "__"
-+-  );
-+-}
-+-
-+-static unsigned genflags(unsigned flags){
-+-  return (
-+-    (flags&0x08) ? 0 : CLONE_THREAD
-+-    )|(
-+-    (flags&0x04) ? 0 : CLONE_DETACHED
-+-    )|(
-+-    (flags&0x02) ? 0 : CLONE_SIGHAND
-+-    )|(
-+-    (flags&0x01) ? 0 : CLONE_VM
-+-  );
-+-}
-+-
-+-//static pid_t one;
-+-
-+-//static void die(int signo){
-+-//  (void)signo;
-+-//  _exit(0);
-+-//}
-+-
-+-//static void sigchld_handler(int signo){
-+-//  (void)signo;
-+-//  kill(one,SIGHUP);          // kill parent
-+-//}
-+-
-+-static int clone_fn(void *vp){
-+-  for(;;) pause();
-+-}
-+-
-+-static long clone_stack_data[2048];
-+-#ifdef __hppa__
-+-static long *clone_stack = &clone_stack_data[0];
-+-#else
-+-static long *clone_stack = &clone_stack_data[2048];
-+-#endif
-+-
-+-int main(int argc, char *argv[]){
-+-  unsigned u;
-+-  pid_t minime;
-+-  (void)argc;
-+-  (void)argv;
-+-
-+-//  one = getpid();
-+-//  signal(SIGHUP,die);
-+-//  if(fork()) hang();    // parent later killed as readyness signal
-+-
-+-  u = 16;
-+-
-+-  while(u--){
-+-    unsigned f = genflags(u);
-+-    minime = clone(clone_fn, clone_stack, f, "arg");
-+-
-+-    printflags(minime!=-1, f);
-+-//    if(minime==-1){
-+-//      perror("no clone");
-+-//      _exit(8);
-+-//    }
-+-
-+-//    printf("%d begat %d\n",getpid(),minime);
-+-  }
-+-
-+-
-+-//  kill(one,SIGHUP); // let the shell know we're ready
-+-
-+-//  clone_fn();
-+-
-+-  return 0;
-+-}
-+diff -ruN procps-3.1.15.old/test/clone-once.c procps-3.1.15/test/clone-once.c
-+--- procps-3.1.15.old/test/clone-once.c	2003-10-20 10:56:12.000000000 +1000
-++++ procps-3.1.15/test/clone-once.c	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,97 +0,0 @@
-+-#include <sys/types.h>
-+-#include <unistd.h>
-+-#include <signal.h>
-+-//#include <sys/stat.h>
-+-//#include <fcntl.h>
-+-//#include <stdlib.h>
-+-#include <stdio.h>
-+-#include <sched.h>
-+-
-+-#if 0
-+-#define CLONE_VM             0x00000100 // set if VM shared between processes
-+-#define CLONE_FS             0x00000200 // set if fs info shared between processes
-+-#define CLONE_FILES          0x00000400 // set if open files shared between processes
-+-#define CLONE_SIGHAND        0x00000800 // set if signal handlers and blocked signals shared
-+-#define CLONE_IDLETASK       0x00001000 // set if new pid should be 0 (kernel only)*/
-+-#define CLONE_PTRACE         0x00002000 // set if we want to let tracing continue on the child too
-+-#define CLONE_VFORK          0x00004000 // set if the parent wants the child to wake it up on mm_release
-+-#define CLONE_PARENT         0x00008000 // set if we want to have the same parent as the cloner
-+-#define CLONE_THREAD         0x00010000 // Same thread group?
-+-#define CLONE_NEWNS          0x00020000 // New namespace group?
-+-#define CLONE_SYSVSEM        0x00040000 // share system V SEM_UNDO semantics
-+-#define CLONE_SETTLS         0x00080000 // create a new TLS for the child
-+-#define CLONE_PARENT_SETTID  0x00100000 // set the TID in the parent
-+-#define CLONE_CHILD_CLEARTID 0x00200000 // clear the TID in the child
-+-#define CLONE_DETACHED       0x00400000 // parent wants no child-exit signal
-+-#define CLONE_UNTRACED       0x00800000 // set if the tracing process can't force CLONE_PTRACE on this clone
-+-#define CLONE_CHILD_SETTID   0x01000000 // set the TID in the child
-+-#define CLONE_STOPPED        0x02000000 // Start in stopped state
-+-#endif
-+-
-+-#ifndef CLONE_THREAD
-+-#define CLONE_THREAD         0x00010000
-+-#endif
-+-#ifndef CLONE_DETACHED
-+-#define CLONE_DETACHED       0x00400000
-+-#endif
-+-
-+-//#define FLAGS (CLONE_PARENT|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_VM|CLONE_THREAD|CLONE_SYSVSEM)
-+-#define FLAGS (CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_VM|CLONE_THREAD|CLONE_DETACHED)
-+-
-+-static pid_t one;
-+-
-+-static void die(int signo){
-+-  (void)signo;
-+-  _exit(0);
-+-}
-+-
-+-//static void sigchld_handler(int signo){
-+-//  (void)signo;
-+-//  kill(one,SIGHUP);          // kill parent
-+-//}
-+-
-+-static void hang(void){
-+-  for(;;) pause();
-+-}
-+-
-+-static int clone_fn(void *vp){
-+-//  const char msg[] = "I think I'm a clone now!\n";
-+-  (void)vp;
-+-//  write(STDOUT_FILENO, msg, sizeof(msg)-1);
-+-  hang();
-+-  return 0; // keep gcc happy
-+-}
-+-
-+-static long clone_stack_data[2048];
-+-#ifdef __hppa__
-+-static long *clone_stack = &clone_stack_data[0];
-+-#else
-+-static long *clone_stack = &clone_stack_data[2048];
-+-#endif
-+-
-+-int main(int argc, char *argv[]){
-+-  pid_t minime;
-+-  (void)argc;
-+-  (void)argv;
-+-
-+-  one = getpid();
-+-  signal(SIGHUP,die);
-+-  if(fork()) hang();    // parent later killed as readyness signal
-+-
-+-
-+-  minime = clone(clone_fn, clone_stack, FLAGS, "arg");
-+-
-+-  if(minime==-1){
-+-    perror("no clone");
-+-    kill(one,SIGKILL);
-+-    _exit(8);
-+-  }
-+-
-+-//  printf("%d begat %d\n",getpid(),minime);
-+-
-+-  kill(one,SIGHUP); // let the shell know we're ready
-+-
-+-  hang();
-+-
-+-  return 0;
-+-}
-+diff -ruN procps-3.1.15.old/test/fork-you.c procps-3.1.15/test/fork-you.c
-+--- procps-3.1.15.old/test/fork-you.c	2003-09-05 14:18:30.000000000 +1000
-++++ procps-3.1.15/test/fork-you.c	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,27 +0,0 @@
-+-#include <sys/types.h>
-+-#include <unistd.h>
-+-#include <signal.h>
-+-
-+-static void die(int signo){
-+-  (void)signo;
-+-  _exit(0);
-+-}
-+-
-+-static void hang(void){
-+-  for(;;) pause();
-+-}
-+-
-+-int main(int argc, char *argv[]){
-+-  pid_t pid;
-+-
-+-  (void)argv;
-+-
-+-  pid = getpid();
-+-  signal(SIGHUP,die);
-+-  if(fork()) hang();    // parent later killed as readyness signal
-+-  kill(1,9);            // "kill" unkillable init to touch lib pages
-+-  while(argc--) if(!fork()) hang();
-+-  kill(pid,SIGHUP);          // kill parent
-+-  hang();
-+-  return 0;
-+-}
-+diff -ruN procps-3.1.15.old/test/funny-thing.c procps-3.1.15/test/funny-thing.c
-+--- procps-3.1.15.old/test/funny-thing.c	2003-09-08 13:55:57.000000000 +1000
-++++ procps-3.1.15/test/funny-thing.c	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,38 +0,0 @@
-+-#include <sys/types.h>
-+-#include <unistd.h>
-+-#include <signal.h>
-+-
-+-static pid_t one;
-+-
-+-static void die(int signo){
-+-  (void)signo;
-+-  _exit(0);
-+-}
-+-
-+-static void hang(void){
-+-  for(;;) pause();
-+-}
-+-
-+-int main(int argc, char *argv[]){
-+-  (void)argc;
-+-  (void)argv;
-+-
-+-  one = getpid();
-+-  signal(SIGHUP,die);
-+-  if(fork()) hang();    // parent later killed as readyness signal
-+-
-+-  // second one exits, to enable setsid(), and the resulting
-+-  // zombie will be reaped by init after 1st process killed
-+-  if(!fork()) _exit(0);
-+-
-+-  if(setsid()==-1){
-+-    kill(one,SIGKILL); // hopefully the shell will complain
-+-    _exit(42); // kind of tough to report errors
-+-  }
-+-
-+-  kill(one,SIGHUP); // let the shell know we're ready
-+-
-+-  hang();
-+-
-+-  return 0;
-+-}
-+diff -ruN procps-3.1.15.old/test/gigabyte.c procps-3.1.15/test/gigabyte.c
-+--- procps-3.1.15.old/test/gigabyte.c	2003-09-11 10:23:56.000000000 +1000
-++++ procps-3.1.15/test/gigabyte.c	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,74 +0,0 @@
-+-#include <sys/types.h>
-+-#include <unistd.h>
-+-#include <signal.h>
-+-//#include <sys/ioctl.h>
-+-//#include <sys/stat.h>
-+-//#include <fcntl.h>
-+-#include <stdio.h>
-+-#include <sys/mman.h>
-+-
-+-static void die(int signo){
-+-  (void)signo;
-+-  _exit(0);
-+-}
-+-
-+-static void hang(void){
-+-  for(;;) pause();
-+-}
-+-
-+-#ifndef MAP_NORESERVE
-+-#define MAP_NORESERVE 0
-+-#endif
-+-
-+-int main(int argc, char *argv[]){
-+-  void *vp;
-+-  pid_t pid;
-+-  size_t length = 1024*1024*1024;
-+-  unsigned maps;   // how many mappings to do
-+-
-+-  (void)argc;
-+-  (void)argv;
-+-
-+-  if(sizeof(void*)==8){
-+-    maps = 10;
-+-    puts("64bit");
-+-  }else{
-+-    maps = 1;
-+-    puts("32bit");
-+-  }
-+-  fflush(stdout);
-+-
-+-  pid = getpid();
-+-  signal(SIGHUP,die);
-+-  if(fork()) hang();    // parent later killed as readyness signal
-+-
-+-
-+-  while(maps){
-+-    vp = mmap(
-+-      0,   // start
-+-      length,
-+-      PROT_READ|PROT_WRITE,
-+-      MAP_PRIVATE|MAP_NORESERVE|MAP_ANONYMOUS,
-+-      0,   // fd
-+-      0    // offset
-+-    );
-+-    if(vp==MAP_FAILED){
-+-      // try a smaller size; maybe fragmentation stopped us
-+-      length /= 2;
-+-      maps *= 2;
-+-    }else{
-+-      maps--;
-+-    }
-+-    if(maps>200 || length<2*1024*1024){
-+-      kill(pid,SIGKILL); // hopefully the shell will complain
-+-      _exit(88);
-+-    }
-+-  }
-+-
-+-  close(0);
-+-  close(1);
-+-  close(2);
-+-  kill(pid,SIGHUP);          // kill parent
-+-  hang();
-+-  return 0;
-+-}
-+diff -ruN procps-3.1.15.old/test/got-no-tty.c procps-3.1.15/test/got-no-tty.c
-+--- procps-3.1.15.old/test/got-no-tty.c	2003-09-05 14:17:57.000000000 +1000
-++++ procps-3.1.15/test/got-no-tty.c	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,46 +0,0 @@
-+-#include <sys/types.h>
-+-#include <unistd.h>
-+-#include <signal.h>
-+-#include <sys/ioctl.h>
-+-#include <sys/stat.h>
-+-#include <fcntl.h>
-+-#include <stdio.h>
-+-
-+-static void die(int signo){
-+-  (void)signo;
-+-  _exit(0);
-+-}
-+-
-+-static void hang(void){
-+-  for(;;) pause();
-+-}
-+-
-+-int main(int argc, char *argv[]){
-+-  int fd;
-+-  pid_t pid;
-+-
-+-  (void)argc;
-+-  (void)argv;
-+-
-+-  pid = getpid();
-+-  signal(SIGHUP,die);
-+-  if(fork()) hang();    // parent later killed as readyness signal
-+-
-+-
-+-  // Use the TIOCNOTTY ioctl to detach from the tty
-+-  // and, supposedly, set the process group ID to zero.
-+-  // Reality: PGRP unchanged, TPGID becomes -1, TTY lost.
-+-  fd = open("/dev/tty", O_RDONLY);
-+-  if(!fd){
-+-    perror("open /dev/tty");
-+-    _exit(1);
-+-  }
-+-  if(ioctl(fd, TIOCNOTTY)==-1){
-+-    perror("open /dev/tty");
-+-    _exit(1);
-+-  }
-+-
-+-  kill(pid,SIGHUP);          // kill parent
-+-  hang();
-+-  return 0;
-+-}
-+diff -ruN procps-3.1.15.old/test/mini-me.c procps-3.1.15/test/mini-me.c
-+--- procps-3.1.15.old/test/mini-me.c	2003-09-22 05:50:38.000000000 +1000
-++++ procps-3.1.15/test/mini-me.c	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,97 +0,0 @@
-+-// ps fTo sess,pgid,pid,tty,ppid,tpgid,args -C a.out
-+-
-+-#include <sys/types.h>
-+-#include <unistd.h>
-+-#include <signal.h>
-+-//#include <sys/stat.h>
-+-//#include <fcntl.h>
-+-//#include <stdlib.h>
-+-#include <stdio.h>
-+-#include <sched.h>
-+-
-+-#if 0
-+-#define CLONE_VM             0x00000100 // set if VM shared between processes
-+-#define CLONE_FS             0x00000200 // set if fs info shared between processes
-+-#define CLONE_FILES          0x00000400 // set if open files shared between processes
-+-#define CLONE_SIGHAND        0x00000800 // set if signal handlers and blocked signals shared
-+-#define CLONE_IDLETASK       0x00001000 // set if new pid should be 0 (kernel only)*/
-+-#define CLONE_PTRACE         0x00002000 // set if we want to let tracing continue on the child too
-+-#define CLONE_VFORK          0x00004000 // set if the parent wants the child to wake it up on mm_release
-+-#define CLONE_PARENT         0x00008000 // set if we want to have the same parent as the cloner
-+-#define CLONE_THREAD         0x00010000 // Same thread group?
-+-#define CLONE_NEWNS          0x00020000 // New namespace group?
-+-#define CLONE_SYSVSEM        0x00040000 // share system V SEM_UNDO semantics
-+-#define CLONE_SETTLS         0x00080000 // create a new TLS for the child
-+-#define CLONE_PARENT_SETTID  0x00100000 // set the TID in the parent
-+-#define CLONE_CHILD_CLEARTID 0x00200000 // clear the TID in the child
-+-#define CLONE_DETACHED       0x00400000 // parent wants no child-exit signal
-+-#define CLONE_UNTRACED       0x00800000 // set if the tracing process can't force CLONE_PTRACE on this clone
-+-#define CLONE_CHILD_SETTID   0x01000000 // set the TID in the child
-+-#define CLONE_STOPPED        0x02000000 // Start in stopped state
-+-#endif
-+-
-+-#ifndef CLONE_THREAD
-+-#define CLONE_THREAD         0x00010000
-+-#endif
-+-#ifndef CLONE_DETACHED
-+-#define CLONE_DETACHED       0x00400000
-+-#endif
-+-
-+-//#define FLAGS (CLONE_PARENT|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_VM|CLONE_THREAD|CLONE_SYSVSEM)
-+-#define FLAGS (CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_VM|CLONE_THREAD|CLONE_DETACHED)
-+-
-+-//static pid_t one;
-+-
-+-//static void die(int signo){
-+-//  (void)signo;
-+-//  _exit(0);
-+-//}
-+-
-+-//static void sigchld_handler(int signo){
-+-//  (void)signo;
-+-//  kill(one,SIGHUP);          // kill parent
-+-//}
-+-
-+-static void hang(void){
-+-  for(;;) pause();
-+-}
-+-
-+-static int clone_fn(void *vp){
-+-  const char msg[] = "I think I'm a clone now!\n";
-+-  write(STDOUT_FILENO, msg, sizeof(msg)-1);
-+-  hang();
-+-}
-+-
-+-static long clone_stack_data[2048];
-+-#ifdef __hppa__
-+-static long *clone_stack = &clone_stack_data[0];
-+-#else
-+-static long *clone_stack = &clone_stack_data[2048];
-+-#endif
-+-
-+-int main(int argc, char *argv[]){
-+-  pid_t minime;
-+-  (void)argc;
-+-  (void)argv;
-+-
-+-//  one = getpid();
-+-//  signal(SIGHUP,die);
-+-//  if(fork()) hang();    // parent later killed as readyness signal
-+-
-+-
-+-  minime = clone(clone_fn, clone_stack, FLAGS, "arg");
-+-
-+-  if(minime==-1){
-+-//    kill(one,SIGKILL);
-+-    perror("no clone");
-+-    _exit(8);
-+-  }
-+-
-+-  printf("%d begat %d\n",getpid(),minime);
-+-
-+-//  kill(one,SIGHUP); // let the shell know we're ready
-+-
-+-  hang();
-+-
-+-  return 0;
-+-}
-+diff -ruN procps-3.1.15.old/test/module.mk procps-3.1.15/test/module.mk
-+--- procps-3.1.15.old/test/module.mk	2003-12-25 02:02:52.000000000 +1100
-++++ procps-3.1.15/test/module.mk	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,36 +0,0 @@
-+-# This file gets included into the main Makefile, in the top directory.
-+-
-+-#INSTALL += $(bin)test $(man1)test.1 -- some data dump thing maybe?
-+-
-+-# directories for cleaning
-+-DIRS += test/ $(wildcard test/*/*/)
-+-
-+-TEST_C    := fork-you the_living_dead got-no-tty sidious sid-breaks-ttys \
-+-             gigabyte mini-me funny-thing clone-army clone-once
-+-TESTNAMES := $(addprefix test/,$(TEST_C))
-+-TESTOBJ   := $(addsuffix .o,$(TESTNAMES))
-+-TESTSRC   := $(addsuffix .c,$(TESTNAMES)) test/th.c
-+-
-+-# files to create
-+-ALL += $(TESTNAMES)
-+-
-+-# files to remove
-+-TEST_JUNK := stderr stdout header stderr.test stderr.good
-+-CLEAN += $(addprefix test/,$(TEST_JUNK)) $(TESTNAMES) test/th $(wildcard test/*.tmp)
-+-
-+-TEST_X := module.mk script-child onetest runtests
-+-TARFILES += $(TESTSRC) $(addprefix test/,$(TEST_X)) $(wildcard test/*/*)
-+-
-+-$(TESTNAMES): %: %.o
-+-	$(CC) $(ALL_CFLAGS) $(ALL_LDFLAGS) -o $@ $^
-+-
-+-# add proc/$(SONAME) on the end later if needed
-+-$(TESTOBJ): %.o: %.c
-+-	$(CC) -c $(ALL_CPPFLAGS) $(ALL_CFLAGS) $< -o $@
-+-
-+-test/th: test/th.o
-+-	$(CC) $(ALL_CFLAGS) $(ALL_LDFLAGS) -o $@ $^ -lpthread
-+-
-+-test/th.o: test/th.c
-+-	$(CC) -c $(ALL_CPPFLAGS) $(ALL_CFLAGS) $< -o $@
-+-
-+diff -ruN procps-3.1.15.old/test/onetest procps-3.1.15/test/onetest
-+--- procps-3.1.15.old/test/onetest	2003-12-25 02:02:08.000000000 +1100
-++++ procps-3.1.15/test/onetest	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,70 +0,0 @@
-+-#!/bin/bash
-+-
-+-unset I_WANT_A_BROKEN_PS
-+-unset PS_PERSONALITY
-+-unset CMD_ENV
-+-unset PS_FORMAT
-+-
-+-export LANG=C
-+-export LC_ALL=C
-+-export TZ=GMT
-+-
-+-TESTNAME=$1
-+-
-+-# enlarge as needed in setup to avoid COMMAND becoming COMMA, etc.
-+-export COLUMNS=111
-+-
-+-: ${LD_LIBRARY_PATH:=../proc}
-+-: ${TESTME:=../ps/ps}
-+-export LD_LIBRARY_PATH
-+-export DYLD_LIBRARY_PATH=$LD_LIBRARY_PATH  # if ever a darwin port
-+-
-+-
-+-
-+-. $TESTNAME/setup
-+-$TESTME $ARGS > stdout 2> stderr
-+-RESULT=$?
-+-if [ x$KILLFN == x1 ] ; then
-+-  killfn
-+-fi
-+-
-+-
-+-
-+-if [ x$RESULT != x$GOOD ] ; then
-+-  echo FAIL $TESTNAME err-$RESULT
-+-  exit 1
-+-fi
-+-
-+-rm -f stderr.test ; touch stderr.test
-+-if [ -f stderr ] ; then
-+-  head -3 < stderr > stderr.test
-+-fi
-+-rm -f stderr.good ; touch stderr.good
-+-if [ -f $TESTNAME/stderr ] ; then
-+-  head -3 < $TESTNAME/stderr > stderr.good
-+-fi
-+-diff -Naurd stderr.test stderr.good >> /dev/null
-+-if [ x$? != x0 ] ; then
-+-  echo FAIL $TESTNAME wrong-stderr
-+-  exit 1
-+-fi
-+-
-+-if [ -f $TESTNAME/header ] ; then
-+-  (printf ' ' ; head -1 stdout) | tr -s ' ' > header
-+-  diff -Naurd header $TESTNAME/header >> /dev/null
-+-  if [ x$? != x0 ] ; then
-+-    echo FAIL $TESTNAME wrong-header
-+-    exit 1
-+-  fi
-+-fi
-+-
-+-if [ x$EVALFN == x1 ] ; then
-+-  evalfn
-+-  if [ x$? != x0 ] ; then
-+-    echo FAIL $TESTNAME eval-fn
-+-    exit 1
-+-  fi
-+-fi
-+-
-+-echo pass $TESTNAME a-ok
-+-exit 0
-+diff -ruN procps-3.1.15.old/test/ps/LT-mix/header procps-3.1.15/test/ps/LT-mix/header
-+--- procps-3.1.15.old/test/ps/LT-mix/header	2003-10-02 12:38:29.000000000 +1000
-++++ procps-3.1.15/test/ps/LT-mix/header	1970-01-01 10:00:00.000000000 +1000
-+@@ -1 +0,0 @@
-+- 
-+\ No newline at end of file
-+diff -ruN procps-3.1.15.old/test/ps/LT-mix/setup procps-3.1.15/test/ps/LT-mix/setup
-+--- procps-3.1.15.old/test/ps/LT-mix/setup	2003-10-02 12:39:40.000000000 +1000
-++++ procps-3.1.15/test/ps/LT-mix/setup	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,2 +0,0 @@
-+-ARGS="-L -T"
-+-GOOD=1
-+diff -ruN procps-3.1.15.old/test/ps/LT-mix/stderr procps-3.1.15/test/ps/LT-mix/stderr
-+--- procps-3.1.15.old/test/ps/LT-mix/stderr	2003-10-02 12:40:03.000000000 +1000
-++++ procps-3.1.15/test/ps/LT-mix/stderr	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,23 +0,0 @@
-+-ERROR: Thread flags conflict; can't use both -L and -T.
-+-********* simple selection *********  ********* selection by list *********
-+--A all processes                      -C by command name
-+--N negate selection                   -G by real group ID (supports names)
-+--a all w/ tty except session leaders  -U by real user ID (supports names)
-+--d all except session leaders         -g by session leader OR by group name
-+--e all processes                      -p by process ID
-+-T  all processes on this terminal     -s processes in the sessions given
-+-a  all w/ tty, including other users  -t by tty
-+-g  all, even group leaders!           -u by effective user ID (supports names)
-+-r  only running processes             U  processes for specified users
-+-x  processes w/o controlling ttys     t  by tty
-+-*********** output format **********  *********** long options ***********
-+--o,o user-defined  -f full            --Group --User --pid --cols --ppid
-+--j,j job control   s  signal          --group --user --sid --rows
-+--O,O preloaded -o  v  virtual memory  --cumulative --format --deselect
-+--l,l long          u  user-oriented   --sort --tty --forest --version
-+--F   extra full    X  registers       --heading --no-heading
-+-                    ********* misc options *********
-+--V,V show version       L  list format codes  f  ASCII art forest
-+--m,m show threads       S  children in sum    -y change -l format
-+--n,N set namelist file  c  true command name  n  numeric WCHAN,UID
-+--w,w wide output        e  show environment   -H process hierarchy
-+diff -ruN procps-3.1.15.old/test/ps/O-O/header procps-3.1.15/test/ps/O-O/header
-+--- procps-3.1.15.old/test/ps/O-O/header	2003-10-02 12:01:36.000000000 +1000
-++++ procps-3.1.15/test/ps/O-O/header	1970-01-01 10:00:00.000000000 +1000
-+@@ -1 +0,0 @@
-+- 
-+\ No newline at end of file
-+diff -ruN procps-3.1.15.old/test/ps/O-O/setup procps-3.1.15/test/ps/O-O/setup
-+--- procps-3.1.15.old/test/ps/O-O/setup	2003-10-02 12:02:01.000000000 +1000
-++++ procps-3.1.15/test/ps/O-O/setup	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,2 +0,0 @@
-+-ARGS="-O wchan -O sess"
-+-GOOD=1
-+diff -ruN procps-3.1.15.old/test/ps/O-O/stderr procps-3.1.15/test/ps/O-O/stderr
-+--- procps-3.1.15.old/test/ps/O-O/stderr	2003-10-02 12:05:19.000000000 +1000
-++++ procps-3.1.15/test/ps/O-O/stderr	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,23 +0,0 @@
-+-ERROR: option -O can not follow other format options.
-+-********* simple selection *********  ********* selection by list *********
-+--A all processes                      -C by command name
-+--N negate selection                   -G by real group ID (supports names)
-+--a all w/ tty except session leaders  -U by real user ID (supports names)
-+--d all except session leaders         -g by session leader OR by group name
-+--e all processes                      -p by process ID
-+-T  all processes on this terminal     -s processes in the sessions given
-+-a  all w/ tty, including other users  -t by tty
-+-g  all, even group leaders!           -u by effective user ID (supports names)
-+-r  only running processes             U  processes for specified users
-+-x  processes w/o controlling ttys     t  by tty
-+-*********** output format **********  *********** long options ***********
-+--o,o user-defined  -f full            --Group --User --pid --cols --ppid
-+--j,j job control   s  signal          --group --user --sid --rows
-+--O,O preloaded -o  v  virtual memory  --cumulative --format --deselect
-+--l,l long          u  user-oriented   --sort --tty --forest --version
-+--F   extra full    X  registers       --heading --no-heading
-+-                    ********* misc options *********
-+--V,V show version       L  list format codes  f  ASCII art forest
-+--m,m show threads       S  children in sum    -y change -l format
-+--n,N set namelist file  c  true command name  n  numeric WCHAN,UID
-+--w,w wide output        e  show environment   -H process hierarchy
-+diff -ruN procps-3.1.15.old/test/ps/O-o/header procps-3.1.15/test/ps/O-o/header
-+--- procps-3.1.15.old/test/ps/O-o/header	2003-10-02 12:06:18.000000000 +1000
-++++ procps-3.1.15/test/ps/O-o/header	1970-01-01 10:00:00.000000000 +1000
-+@@ -1 +0,0 @@
-+- PID WCHAN S TTY TIME COMMAND SESS
-+diff -ruN procps-3.1.15.old/test/ps/O-o/setup procps-3.1.15/test/ps/O-o/setup
-+--- procps-3.1.15.old/test/ps/O-o/setup	2003-10-02 12:05:41.000000000 +1000
-++++ procps-3.1.15/test/ps/O-o/setup	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,2 +0,0 @@
-+-ARGS="-O wchan -o sess"
-+-GOOD=0
-+diff -ruN procps-3.1.15.old/test/ps/aix-pcpu-header/header procps-3.1.15/test/ps/aix-pcpu-header/header
-+--- procps-3.1.15.old/test/ps/aix-pcpu-header/header	2003-09-03 07:26:05.000000000 +1000
-++++ procps-3.1.15/test/ps/aix-pcpu-header/header	1970-01-01 10:00:00.000000000 +1000
-+@@ -1 +0,0 @@
-+- %CPU
-+diff -ruN procps-3.1.15.old/test/ps/aix-pcpu-header/setup procps-3.1.15/test/ps/aix-pcpu-header/setup
-+--- procps-3.1.15.old/test/ps/aix-pcpu-header/setup	2003-09-03 07:24:28.000000000 +1000
-++++ procps-3.1.15/test/ps/aix-pcpu-header/setup	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,2 +0,0 @@
-+-ARGS="-o %cpu"
-+-GOOD=0
-+diff -ruN procps-3.1.15.old/test/ps/aix-pcpu-header2/header procps-3.1.15/test/ps/aix-pcpu-header2/header
-+--- procps-3.1.15.old/test/ps/aix-pcpu-header2/header	2003-09-03 07:26:30.000000000 +1000
-++++ procps-3.1.15/test/ps/aix-pcpu-header2/header	1970-01-01 10:00:00.000000000 +1000
-+@@ -1 +0,0 @@
-+- COMMAND px
-+diff -ruN procps-3.1.15.old/test/ps/aix-pcpu-header2/setup procps-3.1.15/test/ps/aix-pcpu-header2/setup
-+--- procps-3.1.15.old/test/ps/aix-pcpu-header2/setup	2003-09-03 07:25:22.000000000 +1000
-++++ procps-3.1.15/test/ps/aix-pcpu-header2/setup	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,2 +0,0 @@
-+-ARGS="-o %cpx"
-+-GOOD=0
-+diff -ruN procps-3.1.15.old/test/ps/bad-format-env/header procps-3.1.15/test/ps/bad-format-env/header
-+--- procps-3.1.15.old/test/ps/bad-format-env/header	2003-10-02 12:16:37.000000000 +1000
-++++ procps-3.1.15/test/ps/bad-format-env/header	1970-01-01 10:00:00.000000000 +1000
-+@@ -1 +0,0 @@
-+- PID TTY TIME CMD
-+diff -ruN procps-3.1.15.old/test/ps/bad-format-env/setup procps-3.1.15/test/ps/bad-format-env/setup
-+--- procps-3.1.15.old/test/ps/bad-format-env/setup	2003-10-02 12:16:22.000000000 +1000
-++++ procps-3.1.15/test/ps/bad-format-env/setup	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,3 +0,0 @@
-+-ARGS=
-+-GOOD=0
-+-export PS_FORMAT=booger
-+diff -ruN procps-3.1.15.old/test/ps/bad-format-env/stderr procps-3.1.15/test/ps/bad-format-env/stderr
-+--- procps-3.1.15.old/test/ps/bad-format-env/stderr	2003-10-02 12:16:13.000000000 +1000
-++++ procps-3.1.15/test/ps/bad-format-env/stderr	1970-01-01 10:00:00.000000000 +1000
-+@@ -1 +0,0 @@
-+-Warning: $PS_FORMAT ignored. (Unknown user-defined format specifier "booger".)
-+diff -ruN procps-3.1.15.old/test/ps/bogus-n-header/header procps-3.1.15/test/ps/bogus-n-header/header
-+--- procps-3.1.15.old/test/ps/bogus-n-header/header	2003-09-02 09:37:07.000000000 +1000
-++++ procps-3.1.15/test/ps/bogus-n-header/header	1970-01-01 10:00:00.000000000 +1000
-+@@ -1 +0,0 @@
-+- PID TTY STAT TIME COMMAND
-+diff -ruN procps-3.1.15.old/test/ps/bogus-n-header/setup procps-3.1.15/test/ps/bogus-n-header/setup
-+--- procps-3.1.15.old/test/ps/bogus-n-header/setup	2003-09-02 09:34:40.000000000 +1000
-++++ procps-3.1.15/test/ps/bogus-n-header/setup	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,2 +0,0 @@
-+-ARGS="-n"
-+-GOOD=0
-+diff -ruN procps-3.1.15.old/test/ps/bogus-n-header/stderr procps-3.1.15/test/ps/bogus-n-header/stderr
-+--- procps-3.1.15.old/test/ps/bogus-n-header/stderr	2003-09-02 09:35:37.000000000 +1000
-++++ procps-3.1.15/test/ps/bogus-n-header/stderr	1970-01-01 10:00:00.000000000 +1000
-+@@ -1 +0,0 @@
-+-Warning: bad syntax, perhaps a bogus '-'? See http://procps.sf.net/faq.html
-+diff -ruN procps-3.1.15.old/test/ps/bsd-T/header procps-3.1.15/test/ps/bsd-T/header
-+--- procps-3.1.15.old/test/ps/bsd-T/header	2003-09-02 11:54:41.000000000 +1000
-++++ procps-3.1.15/test/ps/bsd-T/header	1970-01-01 10:00:00.000000000 +1000
-+@@ -1 +0,0 @@
-+- PID TTY STAT TIME COMMAND
-+diff -ruN procps-3.1.15.old/test/ps/bsd-T/setup procps-3.1.15/test/ps/bsd-T/setup
-+--- procps-3.1.15.old/test/ps/bsd-T/setup	2003-09-02 11:53:24.000000000 +1000
-++++ procps-3.1.15/test/ps/bsd-T/setup	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,11 +0,0 @@
-+-ARGS=T
-+-GOOD=0
-+-EVALFN=1
-+-
-+-# default output is restricted to this tty
-+-MYTTY=`tty`
-+-
-+-evalfn () {
-+-  PSTTY=`awk '!/TTY/{print $2}' < stdout | uniq`
-+-  [ /dev/$PSTTY == $MYTTY ]
-+-}
-+diff -ruN procps-3.1.15.old/test/ps/bsd-j-header/header procps-3.1.15/test/ps/bsd-j-header/header
-+--- procps-3.1.15.old/test/ps/bsd-j-header/header	2003-09-02 22:33:49.000000000 +1000
-++++ procps-3.1.15/test/ps/bsd-j-header/header	1970-01-01 10:00:00.000000000 +1000
-+@@ -1 +0,0 @@
-+- PPID PID PGID SID TTY TPGID STAT UID TIME COMMAND
-+diff -ruN procps-3.1.15.old/test/ps/bsd-j-header/setup procps-3.1.15/test/ps/bsd-j-header/setup
-+--- procps-3.1.15.old/test/ps/bsd-j-header/setup	2003-09-02 22:32:53.000000000 +1000
-++++ procps-3.1.15/test/ps/bsd-j-header/setup	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,2 +0,0 @@
-+-ARGS="j"
-+-GOOD=0
-+diff -ruN procps-3.1.15.old/test/ps/bsd-j-header2/header procps-3.1.15/test/ps/bsd-j-header2/header
-+--- procps-3.1.15.old/test/ps/bsd-j-header2/header	2003-09-02 23:16:25.000000000 +1000
-++++ procps-3.1.15/test/ps/bsd-j-header2/header	1970-01-01 10:00:00.000000000 +1000
-+@@ -1 +0,0 @@
-+- USER PID PPID PGID SESS JOBC STAT TT TIME COMMAND
-+diff -ruN procps-3.1.15.old/test/ps/bsd-j-header2/setup procps-3.1.15/test/ps/bsd-j-header2/setup
-+--- procps-3.1.15.old/test/ps/bsd-j-header2/setup	2003-09-02 23:15:16.000000000 +1000
-++++ procps-3.1.15/test/ps/bsd-j-header2/setup	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,3 +0,0 @@
-+-export CMD_ENV=bsd
-+-ARGS="-j"
-+-GOOD=0
-+diff -ruN procps-3.1.15.old/test/ps/bsd-l-header/header procps-3.1.15/test/ps/bsd-l-header/header
-+--- procps-3.1.15.old/test/ps/bsd-l-header/header	2003-09-02 22:54:09.000000000 +1000
-++++ procps-3.1.15/test/ps/bsd-l-header/header	1970-01-01 10:00:00.000000000 +1000
-+@@ -1 +0,0 @@
-+- F UID PID PPID PRI NI VSZ RSS WCHAN STAT TTY TIME COMMAND
-+diff -ruN procps-3.1.15.old/test/ps/bsd-l-header/setup procps-3.1.15/test/ps/bsd-l-header/setup
-+--- procps-3.1.15.old/test/ps/bsd-l-header/setup	2003-09-02 22:53:45.000000000 +1000
-++++ procps-3.1.15/test/ps/bsd-l-header/setup	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,2 +0,0 @@
-+-ARGS="l"
-+-GOOD=0
-+diff -ruN procps-3.1.15.old/test/ps/bsd-l-header2/header procps-3.1.15/test/ps/bsd-l-header2/header
-+--- procps-3.1.15.old/test/ps/bsd-l-header2/header	2003-09-03 07:26:56.000000000 +1000
-++++ procps-3.1.15/test/ps/bsd-l-header2/header	1970-01-01 10:00:00.000000000 +1000
-+@@ -1 +0,0 @@
-+- UID PID PPID CPU PRI NI VSZ RSS WCHAN STAT TT TIME COMMAND
-+diff -ruN procps-3.1.15.old/test/ps/bsd-l-header2/setup procps-3.1.15/test/ps/bsd-l-header2/setup
-+--- procps-3.1.15.old/test/ps/bsd-l-header2/setup	2003-09-03 07:21:19.000000000 +1000
-++++ procps-3.1.15/test/ps/bsd-l-header2/setup	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,3 +0,0 @@
-+-export CMD_ENV=bsd
-+-ARGS="-l"
-+-GOOD=0
-+diff -ruN procps-3.1.15.old/test/ps/bsd-s-header/header procps-3.1.15/test/ps/bsd-s-header/header
-+--- procps-3.1.15.old/test/ps/bsd-s-header/header	2003-09-02 22:55:32.000000000 +1000
-++++ procps-3.1.15/test/ps/bsd-s-header/header	1970-01-01 10:00:00.000000000 +1000
-+@@ -1 +0,0 @@
-+- UID PID PENDING BLOCKED IGNORED CAUGHT STAT TTY TIME COMMAND
-+diff -ruN procps-3.1.15.old/test/ps/bsd-s-header/setup procps-3.1.15/test/ps/bsd-s-header/setup
-+--- procps-3.1.15.old/test/ps/bsd-s-header/setup	2003-09-02 22:55:06.000000000 +1000
-++++ procps-3.1.15/test/ps/bsd-s-header/setup	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,2 +0,0 @@
-+-ARGS="s"
-+-GOOD=0
-+diff -ruN procps-3.1.15.old/test/ps/bsd-s-header2/header procps-3.1.15/test/ps/bsd-s-header2/header
-+--- procps-3.1.15.old/test/ps/bsd-s-header2/header	2003-09-03 07:21:33.000000000 +1000
-++++ procps-3.1.15/test/ps/bsd-s-header2/header	1970-01-01 10:00:00.000000000 +1000
-+@@ -1 +0,0 @@
-+- UID PID PENDING BLOCKED IGNORED CAUGHT STAT TTY TIME COMMAND
-+diff -ruN procps-3.1.15.old/test/ps/bsd-s-header2/setup procps-3.1.15/test/ps/bsd-s-header2/setup
-+--- procps-3.1.15.old/test/ps/bsd-s-header2/setup	2003-09-03 07:21:40.000000000 +1000
-++++ procps-3.1.15/test/ps/bsd-s-header2/setup	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,3 +0,0 @@
-+-export CMD_ENV=bsd
-+-ARGS="-s"
-+-GOOD=0
-+diff -ruN procps-3.1.15.old/test/ps/bsd-selection/header procps-3.1.15/test/ps/bsd-selection/header
-+--- procps-3.1.15.old/test/ps/bsd-selection/header	2003-09-04 16:04:27.000000000 +1000
-++++ procps-3.1.15/test/ps/bsd-selection/header	1970-01-01 10:00:00.000000000 +1000
-+@@ -1 +0,0 @@
-+- PID TTY STAT TIME COMMAND
-+diff -ruN procps-3.1.15.old/test/ps/bsd-selection/setup procps-3.1.15/test/ps/bsd-selection/setup
-+--- procps-3.1.15.old/test/ps/bsd-selection/setup	2003-09-13 13:47:22.000000000 +1000
-++++ procps-3.1.15/test/ps/bsd-selection/setup	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,25 +0,0 @@
-+-ARGS="m"
-+-GOOD=0
-+-EVALFN=1
-+-KILLFN=1
-+-
-+-rm -f misc.tmp ready.tmp typescript.tmp
-+-
-+-./got-no-tty
-+-# this'll do but... WHERE ARE THE MAN PAGES FOR PTY STUFF???
-+-(SHELL=`pwd`/script-child script typescript.tmp &>/dev/null) &
-+-while [ ! -f ready.tmp ] ; do sleep 0.01 ; done
-+-. ready.tmp
-+-
-+-evalfn () {
-+-   THIS_TTY=`tty | colrm 1 5`
-+-   lines2=`awk '{print $2}' < stdout | sort -u | egrep "^($SHELL_TTY|$THIS_TTY)$"   | wc -l`
-+-   lines3=`awk '{print $2}' < stdout | sort -u | egrep "^($SHELL_TTY|$THIS_TTY|\?)$" | wc -l`
-+-   [ $lines2 == 2 ] && [ $lines3 == 2 ]
-+-}
-+-
-+-killfn () {
-+-  killall -9 got-no-tty
-+-  kill -9 $SHELL_PID  # the others should freely die
-+-  rm -f misc.tmp ready.tmp typescript.tmp
-+-}
-+diff -ruN procps-3.1.15.old/test/ps/bsd-t-1/header procps-3.1.15/test/ps/bsd-t-1/header
-+--- procps-3.1.15.old/test/ps/bsd-t-1/header	2003-09-02 11:55:23.000000000 +1000
-++++ procps-3.1.15/test/ps/bsd-t-1/header	1970-01-01 10:00:00.000000000 +1000
-+@@ -1 +0,0 @@
-+- PID TTY STAT TIME COMMAND
-+diff -ruN procps-3.1.15.old/test/ps/bsd-t-1/setup procps-3.1.15/test/ps/bsd-t-1/setup
-+--- procps-3.1.15.old/test/ps/bsd-t-1/setup	2003-09-02 11:56:11.000000000 +1000
-++++ procps-3.1.15/test/ps/bsd-t-1/setup	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,11 +0,0 @@
-+-# default output is restricted to this tty
-+-MYTTY=`tty`
-+-
-+-ARGS=t$MYTTY
-+-GOOD=0
-+-EVALFN=1
-+-
-+-evalfn () {
-+-  PSTTY=`awk '!/TTY/{print $2}' < stdout | uniq`
-+-  [ /dev/$PSTTY == $MYTTY ]
-+-}
-+diff -ruN procps-3.1.15.old/test/ps/bsd-t-2/header procps-3.1.15/test/ps/bsd-t-2/header
-+--- procps-3.1.15.old/test/ps/bsd-t-2/header	2003-09-02 11:55:26.000000000 +1000
-++++ procps-3.1.15/test/ps/bsd-t-2/header	1970-01-01 10:00:00.000000000 +1000
-+@@ -1 +0,0 @@
-+- PID TTY STAT TIME COMMAND
-+diff -ruN procps-3.1.15.old/test/ps/bsd-t-2/setup procps-3.1.15/test/ps/bsd-t-2/setup
-+--- procps-3.1.15.old/test/ps/bsd-t-2/setup	2003-09-02 11:56:54.000000000 +1000
-++++ procps-3.1.15/test/ps/bsd-t-2/setup	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,12 +0,0 @@
-+-# Ancient usage: t w/o arg is current tty
-+-ARGS=t
-+-GOOD=0
-+-EVALFN=1
-+-
-+-# default output is restricted to this tty
-+-MYTTY=`tty`
-+-
-+-evalfn () {
-+-  PSTTY=`awk '!/TTY/{print $2}' < stdout | uniq`
-+-  [ /dev/$PSTTY == $MYTTY ]
-+-}
-+diff -ruN procps-3.1.15.old/test/ps/bsd-t-3/header procps-3.1.15/test/ps/bsd-t-3/header
-+--- procps-3.1.15.old/test/ps/bsd-t-3/header	2003-09-02 11:55:27.000000000 +1000
-++++ procps-3.1.15/test/ps/bsd-t-3/header	1970-01-01 10:00:00.000000000 +1000
-+@@ -1 +0,0 @@
-+- PID TTY STAT TIME COMMAND
-+diff -ruN procps-3.1.15.old/test/ps/bsd-t-3/setup procps-3.1.15/test/ps/bsd-t-3/setup
-+--- procps-3.1.15.old/test/ps/bsd-t-3/setup	2003-09-02 12:25:44.000000000 +1000
-++++ procps-3.1.15/test/ps/bsd-t-3/setup	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,19 +0,0 @@
-+-MYTTY=`tty`
-+-
-+-# two ways to interpret "ps t 42"
-+-#
-+-# 1. as "ps t" with "ps 42"  (PID 42)
-+-# 2. as "ps t42" (tty /dev/tty42)
-+-#
-+-# The command doesn't seem to be legal BSD syntax, but we try...
-+-# We use interpretation #2, since BSD isn't known for ORing.
-+-# We'll assume PID 1 is "init" and not on /dev/tty1, and that
-+-# nothing on tty1 is named "init".
-+-
-+-ARGS="t 1"
-+-GOOD=0
-+-EVALFN=1
-+-
-+-evalfn () {
-+-  ! egrep ' init' stdout >> /dev/null
-+-}
-+diff -ruN procps-3.1.15.old/test/ps/bsd-t-4/header procps-3.1.15/test/ps/bsd-t-4/header
-+--- procps-3.1.15.old/test/ps/bsd-t-4/header	2003-09-02 11:55:29.000000000 +1000
-++++ procps-3.1.15/test/ps/bsd-t-4/header	1970-01-01 10:00:00.000000000 +1000
-+@@ -1 +0,0 @@
-+- PID TTY STAT TIME COMMAND
-+diff -ruN procps-3.1.15.old/test/ps/bsd-t-4/setup procps-3.1.15/test/ps/bsd-t-4/setup
-+--- procps-3.1.15.old/test/ps/bsd-t-4/setup	2003-09-02 12:15:34.000000000 +1000
-++++ procps-3.1.15/test/ps/bsd-t-4/setup	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,10 +0,0 @@
-+-ARGS=t-
-+-GOOD=0
-+-EVALFN=1
-+-
-+-# Use 'Y' to avoid shell wildcard problems.
-+-
-+-evalfn () {
-+-  PSTTY=`awk '!/TTY/{print $2}' < stdout | uniq | tr '?' 'Y'`
-+-  [ $PSTTY == 'Y' ]
-+-}
-+diff -ruN procps-3.1.15.old/test/ps/bsd-u-header/header procps-3.1.15/test/ps/bsd-u-header/header
-+--- procps-3.1.15.old/test/ps/bsd-u-header/header	2003-09-02 22:57:35.000000000 +1000
-++++ procps-3.1.15/test/ps/bsd-u-header/header	1970-01-01 10:00:00.000000000 +1000
-+@@ -1 +0,0 @@
-+- USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
-+diff -ruN procps-3.1.15.old/test/ps/bsd-u-header/setup procps-3.1.15/test/ps/bsd-u-header/setup
-+--- procps-3.1.15.old/test/ps/bsd-u-header/setup	2003-09-02 22:57:20.000000000 +1000
-++++ procps-3.1.15/test/ps/bsd-u-header/setup	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,2 +0,0 @@
-+-ARGS="u"
-+-GOOD=0
-+diff -ruN procps-3.1.15.old/test/ps/bsd-u-header2/header procps-3.1.15/test/ps/bsd-u-header2/header
-+--- procps-3.1.15.old/test/ps/bsd-u-header2/header	2003-09-03 07:27:09.000000000 +1000
-++++ procps-3.1.15/test/ps/bsd-u-header2/header	1970-01-01 10:00:00.000000000 +1000
-+@@ -1 +0,0 @@
-+- USER PID %CPU %MEM VSZ RSS TT STAT STARTED TIME COMMAND
-+diff -ruN procps-3.1.15.old/test/ps/bsd-u-header2/setup procps-3.1.15/test/ps/bsd-u-header2/setup
-+--- procps-3.1.15.old/test/ps/bsd-u-header2/setup	2003-09-03 07:22:00.000000000 +1000
-++++ procps-3.1.15/test/ps/bsd-u-header2/setup	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,3 +0,0 @@
-+-export CMD_ENV=bsd
-+-ARGS="-u"
-+-GOOD=0
-+diff -ruN procps-3.1.15.old/test/ps/bsd-v-header/header procps-3.1.15/test/ps/bsd-v-header/header
-+--- procps-3.1.15.old/test/ps/bsd-v-header/header	2003-09-02 22:56:43.000000000 +1000
-++++ procps-3.1.15/test/ps/bsd-v-header/header	1970-01-01 10:00:00.000000000 +1000
-+@@ -1 +0,0 @@
-+- PID TTY STAT TIME MAJFL TRS DRS RSS %MEM COMMAND
-+diff -ruN procps-3.1.15.old/test/ps/bsd-v-header/setup procps-3.1.15/test/ps/bsd-v-header/setup
-+--- procps-3.1.15.old/test/ps/bsd-v-header/setup	2003-09-02 22:56:10.000000000 +1000
-++++ procps-3.1.15/test/ps/bsd-v-header/setup	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,2 +0,0 @@
-+-ARGS="v"
-+-GOOD=0
-+diff -ruN procps-3.1.15.old/test/ps/bsd-v-header2/header procps-3.1.15/test/ps/bsd-v-header2/header
-+--- procps-3.1.15.old/test/ps/bsd-v-header2/header	2003-09-03 07:27:16.000000000 +1000
-++++ procps-3.1.15/test/ps/bsd-v-header2/header	1970-01-01 10:00:00.000000000 +1000
-+@@ -1 +0,0 @@
-+- PID STAT TIME SL RE PAGEIN VSZ RSS LIM TSIZ %CPU %MEM COMMAND
-+diff -ruN procps-3.1.15.old/test/ps/bsd-v-header2/setup procps-3.1.15/test/ps/bsd-v-header2/setup
-+--- procps-3.1.15.old/test/ps/bsd-v-header2/setup	2003-09-03 07:22:17.000000000 +1000
-++++ procps-3.1.15/test/ps/bsd-v-header2/setup	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,3 +0,0 @@
-+-export CMD_ENV=bsd
-+-ARGS="-v"
-+-GOOD=0
-+diff -ruN procps-3.1.15.old/test/ps/dynix-F-header/header procps-3.1.15/test/ps/dynix-F-header/header
-+--- procps-3.1.15.old/test/ps/dynix-F-header/header	2003-09-02 22:31:23.000000000 +1000
-++++ procps-3.1.15/test/ps/dynix-F-header/header	1970-01-01 10:00:00.000000000 +1000
-+@@ -1 +0,0 @@
-+- UID PID PPID C SZ RSS PSR STIME TTY TIME CMD
-+diff -ruN procps-3.1.15.old/test/ps/dynix-F-header/setup procps-3.1.15/test/ps/dynix-F-header/setup
-+--- procps-3.1.15.old/test/ps/dynix-F-header/setup	2003-09-02 22:30:43.000000000 +1000
-++++ procps-3.1.15/test/ps/dynix-F-header/setup	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,2 +0,0 @@
-+-ARGS="-F"
-+-GOOD=0
-+diff -ruN procps-3.1.15.old/test/ps/fail-aix-Q/header procps-3.1.15/test/ps/fail-aix-Q/header
-+--- procps-3.1.15.old/test/ps/fail-aix-Q/header	2003-10-02 11:31:34.000000000 +1000
-++++ procps-3.1.15/test/ps/fail-aix-Q/header	1970-01-01 10:00:00.000000000 +1000
-+@@ -1 +0,0 @@
-+- 
-+\ No newline at end of file
-+diff -ruN procps-3.1.15.old/test/ps/fail-aix-Q/setup procps-3.1.15/test/ps/fail-aix-Q/setup
-+--- procps-3.1.15.old/test/ps/fail-aix-Q/setup	2003-10-02 11:32:11.000000000 +1000
-++++ procps-3.1.15/test/ps/fail-aix-Q/setup	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,2 +0,0 @@
-+-ARGS="-o %Q"
-+-GOOD=1
-+diff -ruN procps-3.1.15.old/test/ps/fail-aix-Q/stderr procps-3.1.15/test/ps/fail-aix-Q/stderr
-+--- procps-3.1.15.old/test/ps/fail-aix-Q/stderr	2003-10-02 11:33:07.000000000 +1000
-++++ procps-3.1.15/test/ps/fail-aix-Q/stderr	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,23 +0,0 @@
-+-ERROR: Unknown AIX field descriptor.
-+-********* simple selection *********  ********* selection by list *********
-+--A all processes                      -C by command name
-+--N negate selection                   -G by real group ID (supports names)
-+--a all w/ tty except session leaders  -U by real user ID (supports names)
-+--d all except session leaders         -g by session leader OR by group name
-+--e all processes                      -p by process ID
-+-T  all processes on this terminal     -s processes in the sessions given
-+-a  all w/ tty, including other users  -t by tty
-+-g  all, even group leaders!           -u by effective user ID (supports names)
-+-r  only running processes             U  processes for specified users
-+-x  processes w/o controlling ttys     t  by tty
-+-*********** output format **********  *********** long options ***********
-+--o,o user-defined  -f full            --Group --User --pid --cols --ppid
-+--j,j job control   s  signal          --group --user --sid --rows
-+--O,O preloaded -o  v  virtual memory  --cumulative --format --deselect
-+--l,l long          u  user-oriented   --sort --tty --forest --version
-+--F   extra full    X  registers       --heading --no-heading
-+-                    ********* misc options *********
-+--V,V show version       L  list format codes  f  ASCII art forest
-+--m,m show threads       S  children in sum    -y change -l format
-+--n,N set namelist file  c  true command name  n  numeric WCHAN,UID
-+--w,w wide output        e  show environment   -H process hierarchy
-+diff -ruN procps-3.1.15.old/test/ps/fail-aix-improper/header procps-3.1.15/test/ps/fail-aix-improper/header
-+--- procps-3.1.15.old/test/ps/fail-aix-improper/header	2003-10-02 11:34:09.000000000 +1000
-++++ procps-3.1.15/test/ps/fail-aix-improper/header	1970-01-01 10:00:00.000000000 +1000
-+@@ -1 +0,0 @@
-+- 
-+\ No newline at end of file
-+diff -ruN procps-3.1.15.old/test/ps/fail-aix-improper/setup procps-3.1.15/test/ps/fail-aix-improper/setup
-+--- procps-3.1.15.old/test/ps/fail-aix-improper/setup	2003-10-02 11:34:22.000000000 +1000
-++++ procps-3.1.15/test/ps/fail-aix-improper/setup	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,2 +0,0 @@
-+-ARGS="-o %"
-+-GOOD=1
-+diff -ruN procps-3.1.15.old/test/ps/fail-aix-improper/stderr procps-3.1.15/test/ps/fail-aix-improper/stderr
-+--- procps-3.1.15.old/test/ps/fail-aix-improper/stderr	2003-10-02 11:34:40.000000000 +1000
-++++ procps-3.1.15/test/ps/fail-aix-improper/stderr	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,23 +0,0 @@
-+-ERROR: Improper AIX field descriptor.
-+-********* simple selection *********  ********* selection by list *********
-+--A all processes                      -C by command name
-+--N negate selection                   -G by real group ID (supports names)
-+--a all w/ tty except session leaders  -U by real user ID (supports names)
-+--d all except session leaders         -g by session leader OR by group name
-+--e all processes                      -p by process ID
-+-T  all processes on this terminal     -s processes in the sessions given
-+-a  all w/ tty, including other users  -t by tty
-+-g  all, even group leaders!           -u by effective user ID (supports names)
-+-r  only running processes             U  processes for specified users
-+-x  processes w/o controlling ttys     t  by tty
-+-*********** output format **********  *********** long options ***********
-+--o,o user-defined  -f full            --Group --User --pid --cols --ppid
-+--j,j job control   s  signal          --group --user --sid --rows
-+--O,O preloaded -o  v  virtual memory  --cumulative --format --deselect
-+--l,l long          u  user-oriented   --sort --tty --forest --version
-+--F   extra full    X  registers       --heading --no-heading
-+-                    ********* misc options *********
-+--V,V show version       L  list format codes  f  ASCII art forest
-+--m,m show threads       S  children in sum    -y change -l format
-+--n,N set namelist file  c  true command name  n  numeric WCHAN,UID
-+--w,w wide output        e  show environment   -H process hierarchy
-+diff -ruN procps-3.1.15.old/test/ps/fail-improper-sort/header procps-3.1.15/test/ps/fail-improper-sort/header
-+--- procps-3.1.15.old/test/ps/fail-improper-sort/header	2003-10-02 11:47:57.000000000 +1000
-++++ procps-3.1.15/test/ps/fail-improper-sort/header	1970-01-01 10:00:00.000000000 +1000
-+@@ -1 +0,0 @@
-+- 
-+\ No newline at end of file
-+diff -ruN procps-3.1.15.old/test/ps/fail-improper-sort/setup procps-3.1.15/test/ps/fail-improper-sort/setup
-+--- procps-3.1.15.old/test/ps/fail-improper-sort/setup	2003-10-02 11:48:15.000000000 +1000
-++++ procps-3.1.15/test/ps/fail-improper-sort/setup	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,2 +0,0 @@
-+-ARGS="--sort ,,"
-+-GOOD=1
-+diff -ruN procps-3.1.15.old/test/ps/fail-improper-sort/stderr procps-3.1.15/test/ps/fail-improper-sort/stderr
-+--- procps-3.1.15.old/test/ps/fail-improper-sort/stderr	2003-10-02 12:22:31.000000000 +1000
-++++ procps-3.1.15/test/ps/fail-improper-sort/stderr	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,23 +0,0 @@
-+-ERROR: Improper sort list
-+-********* simple selection *********  ********* selection by list *********
-+--A all processes                      -C by command name
-+--N negate selection                   -G by real group ID (supports names)
-+--a all w/ tty except session leaders  -U by real user ID (supports names)
-+--d all except session leaders         -g by session leader OR by group name
-+--e all processes                      -p by process ID
-+-T  all processes on this terminal     -s processes in the sessions given
-+-a  all w/ tty, including other users  -t by tty
-+-g  all, even group leaders!           -u by effective user ID (supports names)
-+-r  only running processes             U  processes for specified users
-+-x  processes w/o controlling ttys     t  by tty
-+-*********** output format **********  *********** long options ***********
-+--o,o user-defined  -f full            --Group --User --pid --cols --ppid
-+--j,j job control   s  signal          --group --user --sid --rows
-+--O,O preloaded -o  v  virtual memory  --cumulative --format --deselect
-+--l,l long          u  user-oriented   --sort --tty --forest --version
-+--F   extra full    X  registers       --heading --no-heading
-+-                    ********* misc options *********
-+--V,V show version       L  list format codes  f  ASCII art forest
-+--m,m show threads       S  children in sum    -y change -l format
-+--n,N set namelist file  c  true command name  n  numeric WCHAN,UID
-+--w,w wide output        e  show environment   -H process hierarchy
-+diff -ruN procps-3.1.15.old/test/ps/fail-improper-spec/header procps-3.1.15/test/ps/fail-improper-spec/header
-+--- procps-3.1.15.old/test/ps/fail-improper-spec/header	2003-10-02 11:37:17.000000000 +1000
-++++ procps-3.1.15/test/ps/fail-improper-spec/header	1970-01-01 10:00:00.000000000 +1000
-+@@ -1 +0,0 @@
-+- 
-+\ No newline at end of file
-+diff -ruN procps-3.1.15.old/test/ps/fail-improper-spec/setup procps-3.1.15/test/ps/fail-improper-spec/setup
-+--- procps-3.1.15.old/test/ps/fail-improper-spec/setup	2003-10-02 11:37:34.000000000 +1000
-++++ procps-3.1.15/test/ps/fail-improper-spec/setup	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,2 +0,0 @@
-+-ARGS="-o ,"
-+-GOOD=1
-+diff -ruN procps-3.1.15.old/test/ps/fail-improper-spec/stderr procps-3.1.15/test/ps/fail-improper-spec/stderr
-+--- procps-3.1.15.old/test/ps/fail-improper-spec/stderr	2003-10-02 11:37:52.000000000 +1000
-++++ procps-3.1.15/test/ps/fail-improper-spec/stderr	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,23 +0,0 @@
-+-ERROR: Improper format list.
-+-********* simple selection *********  ********* selection by list *********
-+--A all processes                      -C by command name
-+--N negate selection                   -G by real group ID (supports names)
-+--a all w/ tty except session leaders  -U by real user ID (supports names)
-+--d all except session leaders         -g by session leader OR by group name
-+--e all processes                      -p by process ID
-+-T  all processes on this terminal     -s processes in the sessions given
-+-a  all w/ tty, including other users  -t by tty
-+-g  all, even group leaders!           -u by effective user ID (supports names)
-+-r  only running processes             U  processes for specified users
-+-x  processes w/o controlling ttys     t  by tty
-+-*********** output format **********  *********** long options ***********
-+--o,o user-defined  -f full            --Group --User --pid --cols --ppid
-+--j,j job control   s  signal          --group --user --sid --rows
-+--O,O preloaded -o  v  virtual memory  --cumulative --format --deselect
-+--l,l long          u  user-oriented   --sort --tty --forest --version
-+--F   extra full    X  registers       --heading --no-heading
-+-                    ********* misc options *********
-+--V,V show version       L  list format codes  f  ASCII art forest
-+--m,m show threads       S  children in sum    -y change -l format
-+--n,N set namelist file  c  true command name  n  numeric WCHAN,UID
-+--w,w wide output        e  show environment   -H process hierarchy
-+diff -ruN procps-3.1.15.old/test/ps/fail-macro-width/header procps-3.1.15/test/ps/fail-macro-width/header
-+--- procps-3.1.15.old/test/ps/fail-macro-width/header	2003-10-02 11:42:15.000000000 +1000
-++++ procps-3.1.15/test/ps/fail-macro-width/header	1970-01-01 10:00:00.000000000 +1000
-+@@ -1 +0,0 @@
-+- 
-+\ No newline at end of file
-+diff -ruN procps-3.1.15.old/test/ps/fail-macro-width/setup procps-3.1.15/test/ps/fail-macro-width/setup
-+--- procps-3.1.15.old/test/ps/fail-macro-width/setup	2003-10-02 11:42:30.000000000 +1000
-++++ procps-3.1.15/test/ps/fail-macro-width/setup	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,2 +0,0 @@
-+-ARGS="-o DefBSD:6"
-+-GOOD=1
-+diff -ruN procps-3.1.15.old/test/ps/fail-macro-width/stderr procps-3.1.15/test/ps/fail-macro-width/stderr
-+--- procps-3.1.15.old/test/ps/fail-macro-width/stderr	2003-10-02 11:42:46.000000000 +1000
-++++ procps-3.1.15/test/ps/fail-macro-width/stderr	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,23 +0,0 @@
-+-ERROR: Can't set width for a macro (multi-column) format specifier.
-+-********* simple selection *********  ********* selection by list *********
-+--A all processes                      -C by command name
-+--N negate selection                   -G by real group ID (supports names)
-+--a all w/ tty except session leaders  -U by real user ID (supports names)
-+--d all except session leaders         -g by session leader OR by group name
-+--e all processes                      -p by process ID
-+-T  all processes on this terminal     -s processes in the sessions given
-+-a  all w/ tty, including other users  -t by tty
-+-g  all, even group leaders!           -u by effective user ID (supports names)
-+-r  only running processes             U  processes for specified users
-+-x  processes w/o controlling ttys     t  by tty
-+-*********** output format **********  *********** long options ***********
-+--o,o user-defined  -f full            --Group --User --pid --cols --ppid
-+--j,j job control   s  signal          --group --user --sid --rows
-+--O,O preloaded -o  v  virtual memory  --cumulative --format --deselect
-+--l,l long          u  user-oriented   --sort --tty --forest --version
-+--F   extra full    X  registers       --heading --no-heading
-+-                    ********* misc options *********
-+--V,V show version       L  list format codes  f  ASCII art forest
-+--m,m show threads       S  children in sum    -y change -l format
-+--n,N set namelist file  c  true command name  n  numeric WCHAN,UID
-+--w,w wide output        e  show environment   -H process hierarchy
-+diff -ruN procps-3.1.15.old/test/ps/fail-no-sort-key/header procps-3.1.15/test/ps/fail-no-sort-key/header
-+--- procps-3.1.15.old/test/ps/fail-no-sort-key/header	2003-10-02 11:50:26.000000000 +1000
-++++ procps-3.1.15/test/ps/fail-no-sort-key/header	1970-01-01 10:00:00.000000000 +1000
-+@@ -1 +0,0 @@
-+- 
-+\ No newline at end of file
-+diff -ruN procps-3.1.15.old/test/ps/fail-no-sort-key/setup procps-3.1.15/test/ps/fail-no-sort-key/setup
-+--- procps-3.1.15.old/test/ps/fail-no-sort-key/setup	2003-10-02 11:50:39.000000000 +1000
-++++ procps-3.1.15/test/ps/fail-no-sort-key/setup	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,2 +0,0 @@
-+-ARGS="--sort"
-+-GOOD=1
-+diff -ruN procps-3.1.15.old/test/ps/fail-no-sort-key/stderr procps-3.1.15/test/ps/fail-no-sort-key/stderr
-+--- procps-3.1.15.old/test/ps/fail-no-sort-key/stderr	2003-10-02 11:51:05.000000000 +1000
-++++ procps-3.1.15/test/ps/fail-no-sort-key/stderr	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,23 +0,0 @@
-+-ERROR: Long sort specification must follow --sort.
-+-********* simple selection *********  ********* selection by list *********
-+--A all processes                      -C by command name
-+--N negate selection                   -G by real group ID (supports names)
-+--a all w/ tty except session leaders  -U by real user ID (supports names)
-+--d all except session leaders         -g by session leader OR by group name
-+--e all processes                      -p by process ID
-+-T  all processes on this terminal     -s processes in the sessions given
-+-a  all w/ tty, including other users  -t by tty
-+-g  all, even group leaders!           -u by effective user ID (supports names)
-+-r  only running processes             U  processes for specified users
-+-x  processes w/o controlling ttys     t  by tty
-+-*********** output format **********  *********** long options ***********
-+--o,o user-defined  -f full            --Group --User --pid --cols --ppid
-+--j,j job control   s  signal          --group --user --sid --rows
-+--O,O preloaded -o  v  virtual memory  --cumulative --format --deselect
-+--l,l long          u  user-oriented   --sort --tty --forest --version
-+--F   extra full    X  registers       --heading --no-heading
-+-                    ********* misc options *********
-+--V,V show version       L  list format codes  f  ASCII art forest
-+--m,m show threads       S  children in sum    -y change -l format
-+--n,N set namelist file  c  true command name  n  numeric WCHAN,UID
-+--w,w wide output        e  show environment   -H process hierarchy
-+diff -ruN procps-3.1.15.old/test/ps/fail-no-width/header procps-3.1.15/test/ps/fail-no-width/header
-+--- procps-3.1.15.old/test/ps/fail-no-width/header	2003-10-02 11:40:56.000000000 +1000
-++++ procps-3.1.15/test/ps/fail-no-width/header	1970-01-01 10:00:00.000000000 +1000
-+@@ -1 +0,0 @@
-+- 
-+\ No newline at end of file
-+diff -ruN procps-3.1.15.old/test/ps/fail-no-width/setup procps-3.1.15/test/ps/fail-no-width/setup
-+--- procps-3.1.15.old/test/ps/fail-no-width/setup	2003-10-02 11:41:22.000000000 +1000
-++++ procps-3.1.15/test/ps/fail-no-width/setup	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,2 +0,0 @@
-+-ARGS="-o pid:,f,comm"
-+-GOOD=1
-+diff -ruN procps-3.1.15.old/test/ps/fail-no-width/stderr procps-3.1.15/test/ps/fail-no-width/stderr
-+--- procps-3.1.15.old/test/ps/fail-no-width/stderr	2003-10-02 11:40:56.000000000 +1000
-++++ procps-3.1.15/test/ps/fail-no-width/stderr	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,23 +0,0 @@
-+-ERROR: Column widths must be unsigned decimal numbers.
-+-********* simple selection *********  ********* selection by list *********
-+--A all processes                      -C by command name
-+--N negate selection                   -G by real group ID (supports names)
-+--a all w/ tty except session leaders  -U by real user ID (supports names)
-+--d all except session leaders         -g by session leader OR by group name
-+--e all processes                      -p by process ID
-+-T  all processes on this terminal     -s processes in the sessions given
-+-a  all w/ tty, including other users  -t by tty
-+-g  all, even group leaders!           -u by effective user ID (supports names)
-+-r  only running processes             U  processes for specified users
-+-x  processes w/o controlling ttys     t  by tty
-+-*********** output format **********  *********** long options ***********
-+--o,o user-defined  -f full            --Group --User --pid --cols --ppid
-+--j,j job control   s  signal          --group --user --sid --rows
-+--O,O preloaded -o  v  virtual memory  --cumulative --format --deselect
-+--l,l long          u  user-oriented   --sort --tty --forest --version
-+--F   extra full    X  registers       --heading --no-heading
-+-                    ********* misc options *********
-+--V,V show version       L  list format codes  f  ASCII art forest
-+--m,m show threads       S  children in sum    -y change -l format
-+--n,N set namelist file  c  true command name  n  numeric WCHAN,UID
-+--w,w wide output        e  show environment   -H process hierarchy
-+diff -ruN procps-3.1.15.old/test/ps/fail-nondecimal/header procps-3.1.15/test/ps/fail-nondecimal/header
-+--- procps-3.1.15.old/test/ps/fail-nondecimal/header	2003-10-02 11:39:38.000000000 +1000
-++++ procps-3.1.15/test/ps/fail-nondecimal/header	1970-01-01 10:00:00.000000000 +1000
-+@@ -1 +0,0 @@
-+- 
-+\ No newline at end of file
-+diff -ruN procps-3.1.15.old/test/ps/fail-nondecimal/setup procps-3.1.15/test/ps/fail-nondecimal/setup
-+--- procps-3.1.15.old/test/ps/fail-nondecimal/setup	2003-10-02 11:40:07.000000000 +1000
-++++ procps-3.1.15/test/ps/fail-nondecimal/setup	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,2 +0,0 @@
-+-ARGS="-o pid:f,comm"
-+-GOOD=1
-+diff -ruN procps-3.1.15.old/test/ps/fail-nondecimal/stderr procps-3.1.15/test/ps/fail-nondecimal/stderr
-+--- procps-3.1.15.old/test/ps/fail-nondecimal/stderr	2003-10-02 11:40:30.000000000 +1000
-++++ procps-3.1.15/test/ps/fail-nondecimal/stderr	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,23 +0,0 @@
-+-ERROR: Column widths must be unsigned decimal numbers.
-+-********* simple selection *********  ********* selection by list *********
-+--A all processes                      -C by command name
-+--N negate selection                   -G by real group ID (supports names)
-+--a all w/ tty except session leaders  -U by real user ID (supports names)
-+--d all except session leaders         -g by session leader OR by group name
-+--e all processes                      -p by process ID
-+-T  all processes on this terminal     -s processes in the sessions given
-+-a  all w/ tty, including other users  -t by tty
-+-g  all, even group leaders!           -u by effective user ID (supports names)
-+-r  only running processes             U  processes for specified users
-+-x  processes w/o controlling ttys     t  by tty
-+-*********** output format **********  *********** long options ***********
-+--o,o user-defined  -f full            --Group --User --pid --cols --ppid
-+--j,j job control   s  signal          --group --user --sid --rows
-+--O,O preloaded -o  v  virtual memory  --cumulative --format --deselect
-+--l,l long          u  user-oriented   --sort --tty --forest --version
-+--F   extra full    X  registers       --heading --no-heading
-+-                    ********* misc options *********
-+--V,V show version       L  list format codes  f  ASCII art forest
-+--m,m show threads       S  children in sum    -y change -l format
-+--n,N set namelist file  c  true command name  n  numeric WCHAN,UID
-+--w,w wide output        e  show environment   -H process hierarchy
-+diff -ruN procps-3.1.15.old/test/ps/fail-oj/header procps-3.1.15/test/ps/fail-oj/header
-+--- procps-3.1.15.old/test/ps/fail-oj/header	2003-09-02 13:47:18.000000000 +1000
-++++ procps-3.1.15/test/ps/fail-oj/header	1970-01-01 10:00:00.000000000 +1000
-+@@ -1 +0,0 @@
-+- 
-+\ No newline at end of file
-+diff -ruN procps-3.1.15.old/test/ps/fail-oj/setup procps-3.1.15/test/ps/fail-oj/setup
-+--- procps-3.1.15.old/test/ps/fail-oj/setup	2003-09-02 13:47:54.000000000 +1000
-++++ procps-3.1.15/test/ps/fail-oj/setup	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,2 +0,0 @@
-+-ARGS="-o pid -j"
-+-GOOD=1
-+diff -ruN procps-3.1.15.old/test/ps/fail-oj/stderr procps-3.1.15/test/ps/fail-oj/stderr
-+--- procps-3.1.15.old/test/ps/fail-oj/stderr	2003-09-02 13:49:02.000000000 +1000
-++++ procps-3.1.15/test/ps/fail-oj/stderr	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,23 +0,0 @@
-+-ERROR: Can't use output modifiers with user-defined output
-+-********* simple selection *********  ********* selection by list *********
-+--A all processes                      -C by command name
-+--N negate selection                   -G by real group ID (supports names)
-+--a all w/ tty except session leaders  -U by real user ID (supports names)
-+--d all except session leaders         -g by session leader OR by group name
-+--e all processes                      -p by process ID
-+-T  all processes on this terminal     -s processes in the sessions given
-+-a  all w/ tty, including other users  -t by tty
-+-g  all, even group leaders!           -u by effective user ID (supports names)
-+-r  only running processes             U  processes for specified users
-+-x  processes w/o controlling ttys     t  by tty
-+-*********** output format **********  *********** long options ***********
-+--o,o user-defined  -f full            --Group --User --pid --cols --ppid
-+--j,j job control   s  signal          --group --user --sid --rows
-+--O,O preloaded -o  v  virtual memory  --cumulative --format --deselect
-+--l,l long          u  user-oriented   --sort --tty --forest --version
-+--F   extra full    X  registers       --heading --no-heading
-+-                    ********* misc options *********
-+--V,V show version       L  list format codes  f  ASCII art forest
-+--m,m show threads       S  children in sum    -y change -l format
-+--n,N set namelist file  c  true command name  n  numeric WCHAN,UID
-+--w,w wide output        e  show environment   -H process hierarchy
-+diff -ruN procps-3.1.15.old/test/ps/fail-unknown-sort/header procps-3.1.15/test/ps/fail-unknown-sort/header
-+--- procps-3.1.15.old/test/ps/fail-unknown-sort/header	2003-10-02 11:49:27.000000000 +1000
-++++ procps-3.1.15/test/ps/fail-unknown-sort/header	1970-01-01 10:00:00.000000000 +1000
-+@@ -1 +0,0 @@
-+- 
-+\ No newline at end of file
-+diff -ruN procps-3.1.15.old/test/ps/fail-unknown-sort/setup procps-3.1.15/test/ps/fail-unknown-sort/setup
-+--- procps-3.1.15.old/test/ps/fail-unknown-sort/setup	2003-10-02 11:49:41.000000000 +1000
-++++ procps-3.1.15/test/ps/fail-unknown-sort/setup	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,2 +0,0 @@
-+-ARGS="--sort booger"
-+-GOOD=1
-+diff -ruN procps-3.1.15.old/test/ps/fail-unknown-sort/stderr procps-3.1.15/test/ps/fail-unknown-sort/stderr
-+--- procps-3.1.15.old/test/ps/fail-unknown-sort/stderr	2003-10-02 11:50:09.000000000 +1000
-++++ procps-3.1.15/test/ps/fail-unknown-sort/stderr	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,23 +0,0 @@
-+-ERROR: Unknown sort specifier.
-+-********* simple selection *********  ********* selection by list *********
-+--A all processes                      -C by command name
-+--N negate selection                   -G by real group ID (supports names)
-+--a all w/ tty except session leaders  -U by real user ID (supports names)
-+--d all except session leaders         -g by session leader OR by group name
-+--e all processes                      -p by process ID
-+-T  all processes on this terminal     -s processes in the sessions given
-+-a  all w/ tty, including other users  -t by tty
-+-g  all, even group leaders!           -u by effective user ID (supports names)
-+-r  only running processes             U  processes for specified users
-+-x  processes w/o controlling ttys     t  by tty
-+-*********** output format **********  *********** long options ***********
-+--o,o user-defined  -f full            --Group --User --pid --cols --ppid
-+--j,j job control   s  signal          --group --user --sid --rows
-+--O,O preloaded -o  v  virtual memory  --cumulative --format --deselect
-+--l,l long          u  user-oriented   --sort --tty --forest --version
-+--F   extra full    X  registers       --heading --no-heading
-+-                    ********* misc options *********
-+--V,V show version       L  list format codes  f  ASCII art forest
-+--m,m show threads       S  children in sum    -y change -l format
-+--n,N set namelist file  c  true command name  n  numeric WCHAN,UID
-+--w,w wide output        e  show environment   -H process hierarchy
-+diff -ruN procps-3.1.15.old/test/ps/fail-unknown-spec/header procps-3.1.15/test/ps/fail-unknown-spec/header
-+--- procps-3.1.15.old/test/ps/fail-unknown-spec/header	2003-10-02 11:35:33.000000000 +1000
-++++ procps-3.1.15/test/ps/fail-unknown-spec/header	1970-01-01 10:00:00.000000000 +1000
-+@@ -1 +0,0 @@
-+- 
-+\ No newline at end of file
-+diff -ruN procps-3.1.15.old/test/ps/fail-unknown-spec/setup procps-3.1.15/test/ps/fail-unknown-spec/setup
-+--- procps-3.1.15.old/test/ps/fail-unknown-spec/setup	2003-10-02 11:35:52.000000000 +1000
-++++ procps-3.1.15/test/ps/fail-unknown-spec/setup	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,2 +0,0 @@
-+-ARGS="-o boogers"
-+-GOOD=1
-+diff -ruN procps-3.1.15.old/test/ps/fail-unknown-spec/stderr procps-3.1.15/test/ps/fail-unknown-spec/stderr
-+--- procps-3.1.15.old/test/ps/fail-unknown-spec/stderr	2003-10-02 11:36:05.000000000 +1000
-++++ procps-3.1.15/test/ps/fail-unknown-spec/stderr	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,23 +0,0 @@
-+-ERROR: Unknown user-defined format specifier "boogers".
-+-********* simple selection *********  ********* selection by list *********
-+--A all processes                      -C by command name
-+--N negate selection                   -G by real group ID (supports names)
-+--a all w/ tty except session leaders  -U by real user ID (supports names)
-+--d all except session leaders         -g by session leader OR by group name
-+--e all processes                      -p by process ID
-+-T  all processes on this terminal     -s processes in the sessions given
-+-a  all w/ tty, including other users  -t by tty
-+-g  all, even group leaders!           -u by effective user ID (supports names)
-+-r  only running processes             U  processes for specified users
-+-x  processes w/o controlling ttys     t  by tty
-+-*********** output format **********  *********** long options ***********
-+--o,o user-defined  -f full            --Group --User --pid --cols --ppid
-+--j,j job control   s  signal          --group --user --sid --rows
-+--O,O preloaded -o  v  virtual memory  --cumulative --format --deselect
-+--l,l long          u  user-oriented   --sort --tty --forest --version
-+--F   extra full    X  registers       --heading --no-heading
-+-                    ********* misc options *********
-+--V,V show version       L  list format codes  f  ASCII art forest
-+--m,m show threads       S  children in sum    -y change -l format
-+--n,N set namelist file  c  true command name  n  numeric WCHAN,UID
-+--w,w wide output        e  show environment   -H process hierarchy
-+diff -ruN procps-3.1.15.old/test/ps/fail-xx/header procps-3.1.15/test/ps/fail-xx/header
-+--- procps-3.1.15.old/test/ps/fail-xx/header	2003-09-02 09:43:13.000000000 +1000
-++++ procps-3.1.15/test/ps/fail-xx/header	1970-01-01 10:00:00.000000000 +1000
-+@@ -1 +0,0 @@
-+- 
-+\ No newline at end of file
-+diff -ruN procps-3.1.15.old/test/ps/fail-xx/setup procps-3.1.15/test/ps/fail-xx/setup
-+--- procps-3.1.15.old/test/ps/fail-xx/setup	2003-09-02 09:41:38.000000000 +1000
-++++ procps-3.1.15/test/ps/fail-xx/setup	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,2 +0,0 @@
-+-ARGS="x -x"
-+-GOOD=1
-+diff -ruN procps-3.1.15.old/test/ps/fail-xx/stderr procps-3.1.15/test/ps/fail-xx/stderr
-+--- procps-3.1.15.old/test/ps/fail-xx/stderr	2003-09-02 09:42:04.000000000 +1000
-++++ procps-3.1.15/test/ps/fail-xx/stderr	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,23 +0,0 @@
-+-ERROR: Unsupported SysV option.
-+-********* simple selection *********  ********* selection by list *********
-+--A all processes                      -C by command name
-+--N negate selection                   -G by real group ID (supports names)
-+--a all w/ tty except session leaders  -U by real user ID (supports names)
-+--d all except session leaders         -g by session leader OR by group name
-+--e all processes                      -p by process ID
-+-T  all processes on this terminal     -s processes in the sessions given
-+-a  all w/ tty, including other users  -t by tty
-+-g  all, even group leaders!           -u by effective user ID (supports names)
-+-r  only running processes             U  processes for specified users
-+-x  processes w/o controlling ttys     t  by tty
-+-*********** output format **********  *********** long options ***********
-+--o,o user-defined  -f full            --Group --User --pid --cols --ppid
-+--j,j job control   s  signal          --group --user --sid --rows
-+--O,O preloaded -o  v  virtual memory  --cumulative --format --deselect
-+--l,l long          u  user-oriented   --sort --tty --forest --version
-+--F   extra full    X  registers       --heading --no-heading
-+-                    ********* misc options *********
-+--V,V show version       L  list format codes  f  ASCII art forest
-+--m,m show threads       S  children in sum    -y change -l format
-+--n,N set namelist file  c  true command name  n  numeric WCHAN,UID
-+--w,w wide output        e  show environment   -H process hierarchy
-+diff -ruN procps-3.1.15.old/test/ps/hpux-H-simple/setup procps-3.1.15/test/ps/hpux-H-simple/setup
-+--- procps-3.1.15.old/test/ps/hpux-H-simple/setup	2003-09-03 10:15:28.000000000 +1000
-++++ procps-3.1.15/test/ps/hpux-H-simple/setup	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,14 +0,0 @@
-+-ARGS="-HC fork-you -o comm="
-+-GOOD=0
-+-EVALFN=1
-+-KILLFN=1
-+-
-+-./fork-you 3 4 5 6 7 8 9
-+-
-+-evalfn () {
-+-  diff -Naurd stdout $TESTNAME/stdout >> /dev/null
-+-}
-+-
-+-killfn () {
-+-  killall -9 fork-you
-+-}
-+diff -ruN procps-3.1.15.old/test/ps/hpux-H-simple/stdout procps-3.1.15/test/ps/hpux-H-simple/stdout
-+--- procps-3.1.15.old/test/ps/hpux-H-simple/stdout	2003-09-03 09:51:00.000000000 +1000
-++++ procps-3.1.15/test/ps/hpux-H-simple/stdout	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,9 +0,0 @@
-+-fork-you
-+-  fork-you
-+-  fork-you
-+-  fork-you
-+-  fork-you
-+-  fork-you
-+-  fork-you
-+-  fork-you
-+-  fork-you
-+diff -ruN procps-3.1.15.old/test/ps/jyclf-header/header procps-3.1.15/test/ps/jyclf-header/header
-+--- procps-3.1.15.old/test/ps/jyclf-header/header	2003-09-02 13:57:34.000000000 +1000
-++++ procps-3.1.15/test/ps/jyclf-header/header	1970-01-01 10:00:00.000000000 +1000
-+@@ -1 +0,0 @@
-+- S UID PID PPID PGID SID CLS PRI RSS SZ WCHAN STIME TTY TIME CMD
-+diff -ruN procps-3.1.15.old/test/ps/jyclf-header/setup procps-3.1.15/test/ps/jyclf-header/setup
-+--- procps-3.1.15.old/test/ps/jyclf-header/setup	2003-09-02 13:55:34.000000000 +1000
-++++ procps-3.1.15/test/ps/jyclf-header/setup	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,2 +0,0 @@
-+-ARGS="-jyclf"
-+-GOOD=0
-+diff -ruN procps-3.1.15.old/test/ps/linux-lf-header/header procps-3.1.15/test/ps/linux-lf-header/header
-+--- procps-3.1.15.old/test/ps/linux-lf-header/header	2003-09-02 14:03:14.000000000 +1000
-++++ procps-3.1.15/test/ps/linux-lf-header/header	1970-01-01 10:00:00.000000000 +1000
-+@@ -1 +0,0 @@
-+- F S USER PID PPID C PRI NI P SZ WCHAN STIME TTY TIME CMD
-+diff -ruN procps-3.1.15.old/test/ps/linux-lf-header/setup procps-3.1.15/test/ps/linux-lf-header/setup
-+--- procps-3.1.15.old/test/ps/linux-lf-header/setup	2003-09-02 14:04:14.000000000 +1000
-++++ procps-3.1.15/test/ps/linux-lf-header/setup	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,3 +0,0 @@
-+-export CMD_ENV=linux
-+-ARGS="-lf"
-+-GOOD=0
-+diff -ruN procps-3.1.15.old/test/ps/mH-mix/header procps-3.1.15/test/ps/mH-mix/header
-+--- procps-3.1.15.old/test/ps/mH-mix/header	2003-10-02 12:38:52.000000000 +1000
-++++ procps-3.1.15/test/ps/mH-mix/header	1970-01-01 10:00:00.000000000 +1000
-+@@ -1 +0,0 @@
-+- 
-+\ No newline at end of file
-+diff -ruN procps-3.1.15.old/test/ps/mH-mix/setup procps-3.1.15/test/ps/mH-mix/setup
-+--- procps-3.1.15.old/test/ps/mH-mix/setup	2003-10-02 12:39:25.000000000 +1000
-++++ procps-3.1.15/test/ps/mH-mix/setup	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,2 +0,0 @@
-+-ARGS="mH"
-+-GOOD=1
-+diff -ruN procps-3.1.15.old/test/ps/mH-mix/stderr procps-3.1.15/test/ps/mH-mix/stderr
-+--- procps-3.1.15.old/test/ps/mH-mix/stderr	2003-10-02 12:40:18.000000000 +1000
-++++ procps-3.1.15/test/ps/mH-mix/stderr	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,23 +0,0 @@
-+-ERROR: Thread flags conflict; can't use H with m or -m.
-+-********* simple selection *********  ********* selection by list *********
-+--A all processes                      -C by command name
-+--N negate selection                   -G by real group ID (supports names)
-+--a all w/ tty except session leaders  -U by real user ID (supports names)
-+--d all except session leaders         -g by session leader OR by group name
-+--e all processes                      -p by process ID
-+-T  all processes on this terminal     -s processes in the sessions given
-+-a  all w/ tty, including other users  -t by tty
-+-g  all, even group leaders!           -u by effective user ID (supports names)
-+-r  only running processes             U  processes for specified users
-+-x  processes w/o controlling ttys     t  by tty
-+-*********** output format **********  *********** long options ***********
-+--o,o user-defined  -f full            --Group --User --pid --cols --ppid
-+--j,j job control   s  signal          --group --user --sid --rows
-+--O,O preloaded -o  v  virtual memory  --cumulative --format --deselect
-+--l,l long          u  user-oriented   --sort --tty --forest --version
-+--F   extra full    X  registers       --heading --no-heading
-+-                    ********* misc options *********
-+--V,V show version       L  list format codes  f  ASCII art forest
-+--m,m show threads       S  children in sum    -y change -l format
-+--n,N set namelist file  c  true command name  n  numeric WCHAN,UID
-+--w,w wide output        e  show environment   -H process hierarchy
-+diff -ruN procps-3.1.15.old/test/ps/mH-mix2/header procps-3.1.15/test/ps/mH-mix2/header
-+--- procps-3.1.15.old/test/ps/mH-mix2/header	2003-10-02 12:38:58.000000000 +1000
-++++ procps-3.1.15/test/ps/mH-mix2/header	1970-01-01 10:00:00.000000000 +1000
-+@@ -1 +0,0 @@
-+- 
-+\ No newline at end of file
-+diff -ruN procps-3.1.15.old/test/ps/mH-mix2/setup procps-3.1.15/test/ps/mH-mix2/setup
-+--- procps-3.1.15.old/test/ps/mH-mix2/setup	2003-10-02 12:39:15.000000000 +1000
-++++ procps-3.1.15/test/ps/mH-mix2/setup	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,2 +0,0 @@
-+-ARGS="-m H"
-+-GOOD=1
-+diff -ruN procps-3.1.15.old/test/ps/mH-mix2/stderr procps-3.1.15/test/ps/mH-mix2/stderr
-+--- procps-3.1.15.old/test/ps/mH-mix2/stderr	2003-10-02 12:40:20.000000000 +1000
-++++ procps-3.1.15/test/ps/mH-mix2/stderr	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,23 +0,0 @@
-+-ERROR: Thread flags conflict; can't use H with m or -m.
-+-********* simple selection *********  ********* selection by list *********
-+--A all processes                      -C by command name
-+--N negate selection                   -G by real group ID (supports names)
-+--a all w/ tty except session leaders  -U by real user ID (supports names)
-+--d all except session leaders         -g by session leader OR by group name
-+--e all processes                      -p by process ID
-+-T  all processes on this terminal     -s processes in the sessions given
-+-a  all w/ tty, including other users  -t by tty
-+-g  all, even group leaders!           -u by effective user ID (supports names)
-+-r  only running processes             U  processes for specified users
-+-x  processes w/o controlling ttys     t  by tty
-+-*********** output format **********  *********** long options ***********
-+--o,o user-defined  -f full            --Group --User --pid --cols --ppid
-+--j,j job control   s  signal          --group --user --sid --rows
-+--O,O preloaded -o  v  virtual memory  --cumulative --format --deselect
-+--l,l long          u  user-oriented   --sort --tty --forest --version
-+--F   extra full    X  registers       --heading --no-heading
-+-                    ********* misc options *********
-+--V,V show version       L  list format codes  f  ASCII art forest
-+--m,m show threads       S  children in sum    -y change -l format
-+--n,N set namelist file  c  true command name  n  numeric WCHAN,UID
-+--w,w wide output        e  show environment   -H process hierarchy
-+diff -ruN procps-3.1.15.old/test/ps/mm-mix/header procps-3.1.15/test/ps/mm-mix/header
-+--- procps-3.1.15.old/test/ps/mm-mix/header	2003-10-02 12:37:41.000000000 +1000
-++++ procps-3.1.15/test/ps/mm-mix/header	1970-01-01 10:00:00.000000000 +1000
-+@@ -1 +0,0 @@
-+- 
-+\ No newline at end of file
-+diff -ruN procps-3.1.15.old/test/ps/mm-mix/setup procps-3.1.15/test/ps/mm-mix/setup
-+--- procps-3.1.15.old/test/ps/mm-mix/setup	2003-10-02 12:37:57.000000000 +1000
-++++ procps-3.1.15/test/ps/mm-mix/setup	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,2 +0,0 @@
-+-ARGS="-m m"
-+-GOOD=1
-+diff -ruN procps-3.1.15.old/test/ps/mm-mix/stderr procps-3.1.15/test/ps/mm-mix/stderr
-+--- procps-3.1.15.old/test/ps/mm-mix/stderr	2003-10-02 12:38:11.000000000 +1000
-++++ procps-3.1.15/test/ps/mm-mix/stderr	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,23 +0,0 @@
-+-ERROR: Thread flags conflict; can't use both m and -m.
-+-********* simple selection *********  ********* selection by list *********
-+--A all processes                      -C by command name
-+--N negate selection                   -G by real group ID (supports names)
-+--a all w/ tty except session leaders  -U by real user ID (supports names)
-+--d all except session leaders         -g by session leader OR by group name
-+--e all processes                      -p by process ID
-+-T  all processes on this terminal     -s processes in the sessions given
-+-a  all w/ tty, including other users  -t by tty
-+-g  all, even group leaders!           -u by effective user ID (supports names)
-+-r  only running processes             U  processes for specified users
-+-x  processes w/o controlling ttys     t  by tty
-+-*********** output format **********  *********** long options ***********
-+--o,o user-defined  -f full            --Group --User --pid --cols --ppid
-+--j,j job control   s  signal          --group --user --sid --rows
-+--O,O preloaded -o  v  virtual memory  --cumulative --format --deselect
-+--l,l long          u  user-oriented   --sort --tty --forest --version
-+--F   extra full    X  registers       --heading --no-heading
-+-                    ********* misc options *********
-+--V,V show version       L  list format codes  f  ASCII art forest
-+--m,m show threads       S  children in sum    -y change -l format
-+--n,N set namelist file  c  true command name  n  numeric WCHAN,UID
-+--w,w wide output        e  show environment   -H process hierarchy
-+diff -ruN procps-3.1.15.old/test/ps/multi-sort/header procps-3.1.15/test/ps/multi-sort/header
-+--- procps-3.1.15.old/test/ps/multi-sort/header	2003-10-02 12:08:50.000000000 +1000
-++++ procps-3.1.15/test/ps/multi-sort/header	1970-01-01 10:00:00.000000000 +1000
-+@@ -1 +0,0 @@
-+- 
-+\ No newline at end of file
-+diff -ruN procps-3.1.15.old/test/ps/multi-sort/setup procps-3.1.15/test/ps/multi-sort/setup
-+--- procps-3.1.15.old/test/ps/multi-sort/setup	2003-10-02 12:09:10.000000000 +1000
-++++ procps-3.1.15/test/ps/multi-sort/setup	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,2 +0,0 @@
-+-ARGS="--sort wchan --sort sess"
-+-GOOD=1
-+diff -ruN procps-3.1.15.old/test/ps/multi-sort/stderr procps-3.1.15/test/ps/multi-sort/stderr
-+--- procps-3.1.15.old/test/ps/multi-sort/stderr	2003-10-02 12:09:23.000000000 +1000
-++++ procps-3.1.15/test/ps/multi-sort/stderr	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,23 +0,0 @@
-+-ERROR: Multiple sort options.
-+-********* simple selection *********  ********* selection by list *********
-+--A all processes                      -C by command name
-+--N negate selection                   -G by real group ID (supports names)
-+--a all w/ tty except session leaders  -U by real user ID (supports names)
-+--d all except session leaders         -g by session leader OR by group name
-+--e all processes                      -p by process ID
-+-T  all processes on this terminal     -s processes in the sessions given
-+-a  all w/ tty, including other users  -t by tty
-+-g  all, even group leaders!           -u by effective user ID (supports names)
-+-r  only running processes             U  processes for specified users
-+-x  processes w/o controlling ttys     t  by tty
-+-*********** output format **********  *********** long options ***********
-+--o,o user-defined  -f full            --Group --User --pid --cols --ppid
-+--j,j job control   s  signal          --group --user --sid --rows
-+--O,O preloaded -o  v  virtual memory  --cumulative --format --deselect
-+--l,l long          u  user-oriented   --sort --tty --forest --version
-+--F   extra full    X  registers       --heading --no-heading
-+-                    ********* misc options *********
-+--V,V show version       L  list format codes  f  ASCII art forest
-+--m,m show threads       S  children in sum    -y change -l format
-+--n,N set namelist file  c  true command name  n  numeric WCHAN,UID
-+--w,w wide output        e  show environment   -H process hierarchy
-+diff -ruN procps-3.1.15.old/test/ps/o-O/header procps-3.1.15/test/ps/o-O/header
-+--- procps-3.1.15.old/test/ps/o-O/header	2003-10-02 12:03:27.000000000 +1000
-++++ procps-3.1.15/test/ps/o-O/header	1970-01-01 10:00:00.000000000 +1000
-+@@ -1 +0,0 @@
-+- 
-+\ No newline at end of file
-+diff -ruN procps-3.1.15.old/test/ps/o-O/setup procps-3.1.15/test/ps/o-O/setup
-+--- procps-3.1.15.old/test/ps/o-O/setup	2003-10-02 12:04:40.000000000 +1000
-++++ procps-3.1.15/test/ps/o-O/setup	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,2 +0,0 @@
-+-ARGS="-o wchan -O sess"
-+-GOOD=1
-+diff -ruN procps-3.1.15.old/test/ps/o-O/stderr procps-3.1.15/test/ps/o-O/stderr
-+--- procps-3.1.15.old/test/ps/o-O/stderr	2003-10-02 12:06:35.000000000 +1000
-++++ procps-3.1.15/test/ps/o-O/stderr	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,23 +0,0 @@
-+-ERROR: option -O can not follow other format options.
-+-********* simple selection *********  ********* selection by list *********
-+--A all processes                      -C by command name
-+--N negate selection                   -G by real group ID (supports names)
-+--a all w/ tty except session leaders  -U by real user ID (supports names)
-+--d all except session leaders         -g by session leader OR by group name
-+--e all processes                      -p by process ID
-+-T  all processes on this terminal     -s processes in the sessions given
-+-a  all w/ tty, including other users  -t by tty
-+-g  all, even group leaders!           -u by effective user ID (supports names)
-+-r  only running processes             U  processes for specified users
-+-x  processes w/o controlling ttys     t  by tty
-+-*********** output format **********  *********** long options ***********
-+--o,o user-defined  -f full            --Group --User --pid --cols --ppid
-+--j,j job control   s  signal          --group --user --sid --rows
-+--O,O preloaded -o  v  virtual memory  --cumulative --format --deselect
-+--l,l long          u  user-oriented   --sort --tty --forest --version
-+--F   extra full    X  registers       --heading --no-heading
-+-                    ********* misc options *********
-+--V,V show version       L  list format codes  f  ASCII art forest
-+--m,m show threads       S  children in sum    -y change -l format
-+--n,N set namelist file  c  true command name  n  numeric WCHAN,UID
-+--w,w wide output        e  show environment   -H process hierarchy
-+diff -ruN procps-3.1.15.old/test/ps/o-o/header procps-3.1.15/test/ps/o-o/header
-+--- procps-3.1.15.old/test/ps/o-o/header	2003-10-02 12:07:18.000000000 +1000
-++++ procps-3.1.15/test/ps/o-o/header	1970-01-01 10:00:00.000000000 +1000
-+@@ -1 +0,0 @@
-+- WCHAN SESS
-+diff -ruN procps-3.1.15.old/test/ps/o-o/setup procps-3.1.15/test/ps/o-o/setup
-+--- procps-3.1.15.old/test/ps/o-o/setup	2003-10-02 12:07:08.000000000 +1000
-++++ procps-3.1.15/test/ps/o-o/setup	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,2 +0,0 @@
-+-ARGS="-o wchan -o sess"
-+-GOOD=0
-+diff -ruN procps-3.1.15.old/test/ps/old-m-1/header procps-3.1.15/test/ps/old-m-1/header
-+--- procps-3.1.15.old/test/ps/old-m-1/header	2003-09-02 09:46:21.000000000 +1000
-++++ procps-3.1.15/test/ps/old-m-1/header	1970-01-01 10:00:00.000000000 +1000
-+@@ -1 +0,0 @@
-+- PID TTY MAJFLT MINFLT TRS DRS SIZE SWAP RSS SHRD LIB DT COMMAND
-+diff -ruN procps-3.1.15.old/test/ps/old-m-1/setup procps-3.1.15/test/ps/old-m-1/setup
-+--- procps-3.1.15.old/test/ps/old-m-1/setup	2003-09-02 09:46:06.000000000 +1000
-++++ procps-3.1.15/test/ps/old-m-1/setup	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,3 +0,0 @@
-+-export CMD_ENV=old
-+-ARGS="-m"
-+-GOOD=0
-+diff -ruN procps-3.1.15.old/test/ps/old-m-2/header procps-3.1.15/test/ps/old-m-2/header
-+--- procps-3.1.15.old/test/ps/old-m-2/header	2003-09-02 09:47:13.000000000 +1000
-++++ procps-3.1.15/test/ps/old-m-2/header	1970-01-01 10:00:00.000000000 +1000
-+@@ -1 +0,0 @@
-+- PID TTY MAJFLT MINFLT TRS DRS SIZE SWAP RSS SHRD LIB DT COMMAND
-+diff -ruN procps-3.1.15.old/test/ps/old-m-2/setup procps-3.1.15/test/ps/old-m-2/setup
-+--- procps-3.1.15.old/test/ps/old-m-2/setup	2003-09-02 09:47:47.000000000 +1000
-++++ procps-3.1.15/test/ps/old-m-2/setup	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,4 +0,0 @@
-+-export CMD_ENV=unix
-+-export PS_PERSONALITY=old
-+-ARGS="-m"
-+-GOOD=0
-+diff -ruN procps-3.1.15.old/test/ps/old-m-3/header procps-3.1.15/test/ps/old-m-3/header
-+--- procps-3.1.15.old/test/ps/old-m-3/header	2003-09-02 09:47:15.000000000 +1000
-++++ procps-3.1.15/test/ps/old-m-3/header	1970-01-01 10:00:00.000000000 +1000
-+@@ -1 +0,0 @@
-+- PID TTY MAJFLT MINFLT TRS DRS SIZE SWAP RSS SHRD LIB DT COMMAND
-+diff -ruN procps-3.1.15.old/test/ps/old-m-3/setup procps-3.1.15/test/ps/old-m-3/setup
-+--- procps-3.1.15.old/test/ps/old-m-3/setup	2003-09-02 09:47:58.000000000 +1000
-++++ procps-3.1.15/test/ps/old-m-3/setup	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,3 +0,0 @@
-+-export CMD_ENV=old
-+-ARGS="m"
-+-GOOD=0
-+diff -ruN procps-3.1.15.old/test/ps/old-m-4/header procps-3.1.15/test/ps/old-m-4/header
-+--- procps-3.1.15.old/test/ps/old-m-4/header	2003-09-02 09:47:16.000000000 +1000
-++++ procps-3.1.15/test/ps/old-m-4/header	1970-01-01 10:00:00.000000000 +1000
-+@@ -1 +0,0 @@
-+- PID TTY MAJFLT MINFLT TRS DRS SIZE SWAP RSS SHRD LIB DT COMMAND
-+diff -ruN procps-3.1.15.old/test/ps/old-m-4/setup procps-3.1.15/test/ps/old-m-4/setup
-+--- procps-3.1.15.old/test/ps/old-m-4/setup	2003-09-02 09:50:11.000000000 +1000
-++++ procps-3.1.15/test/ps/old-m-4/setup	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,3 +0,0 @@
-+-export I_WANT_A_BROKEN_PS=
-+-ARGS="-m"
-+-GOOD=0
-+diff -ruN procps-3.1.15.old/test/ps/pcpu-sort-threaded/setup procps-3.1.15/test/ps/pcpu-sort-threaded/setup
-+--- procps-3.1.15.old/test/ps/pcpu-sort-threaded/setup	2003-10-19 13:48:43.000000000 +1000
-++++ procps-3.1.15/test/ps/pcpu-sort-threaded/setup	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,8 +0,0 @@
-+-ARGS="-e --sort=pcpu -o cp="
-+-GOOD=0
-+-EVALFN=1
-+-
-+-evalfn () {
-+-  sort -n < stdout > sorted.tmp
-+-  diff -Naurd stdout sorted.tmp >> /dev/null
-+-}
-+diff -ruN procps-3.1.15.old/test/ps/suv-conflicts/header procps-3.1.15/test/ps/suv-conflicts/header
-+--- procps-3.1.15.old/test/ps/suv-conflicts/header	2003-10-02 12:12:30.000000000 +1000
-++++ procps-3.1.15/test/ps/suv-conflicts/header	1970-01-01 10:00:00.000000000 +1000
-+@@ -1 +0,0 @@
-+- 
-+\ No newline at end of file
-+diff -ruN procps-3.1.15.old/test/ps/suv-conflicts/setup procps-3.1.15/test/ps/suv-conflicts/setup
-+--- procps-3.1.15.old/test/ps/suv-conflicts/setup	2003-10-02 12:13:26.000000000 +1000
-++++ procps-3.1.15/test/ps/suv-conflicts/setup	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,2 +0,0 @@
-+-ARGS="suv"
-+-GOOD=1
-+diff -ruN procps-3.1.15.old/test/ps/suv-conflicts/stderr procps-3.1.15/test/ps/suv-conflicts/stderr
-+--- procps-3.1.15.old/test/ps/suv-conflicts/stderr	2003-10-02 12:13:41.000000000 +1000
-++++ procps-3.1.15/test/ps/suv-conflicts/stderr	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,23 +0,0 @@
-+-ERROR: Conflicting format options.
-+-********* simple selection *********  ********* selection by list *********
-+--A all processes                      -C by command name
-+--N negate selection                   -G by real group ID (supports names)
-+--a all w/ tty except session leaders  -U by real user ID (supports names)
-+--d all except session leaders         -g by session leader OR by group name
-+--e all processes                      -p by process ID
-+-T  all processes on this terminal     -s processes in the sessions given
-+-a  all w/ tty, including other users  -t by tty
-+-g  all, even group leaders!           -u by effective user ID (supports names)
-+-r  only running processes             U  processes for specified users
-+-x  processes w/o controlling ttys     t  by tty
-+-*********** output format **********  *********** long options ***********
-+--o,o user-defined  -f full            --Group --User --pid --cols --ppid
-+--j,j job control   s  signal          --group --user --sid --rows
-+--O,O preloaded -o  v  virtual memory  --cumulative --format --deselect
-+--l,l long          u  user-oriented   --sort --tty --forest --version
-+--F   extra full    X  registers       --heading --no-heading
-+-                    ********* misc options *********
-+--V,V show version       L  list format codes  f  ASCII art forest
-+--m,m show threads       S  children in sum    -y change -l format
-+--n,N set namelist file  c  true command name  n  numeric WCHAN,UID
-+--w,w wide output        e  show environment   -H process hierarchy
-+diff -ruN procps-3.1.15.old/test/ps/sysv-selection/header procps-3.1.15/test/ps/sysv-selection/header
-+--- procps-3.1.15.old/test/ps/sysv-selection/header	2003-09-04 16:13:34.000000000 +1000
-++++ procps-3.1.15/test/ps/sysv-selection/header	1970-01-01 10:00:00.000000000 +1000
-+@@ -1 +0,0 @@
-+- PID TTY TIME CMD
-+diff -ruN procps-3.1.15.old/test/ps/sysv-selection/setup procps-3.1.15/test/ps/sysv-selection/setup
-+--- procps-3.1.15.old/test/ps/sysv-selection/setup	2003-09-13 13:59:04.000000000 +1000
-++++ procps-3.1.15/test/ps/sysv-selection/setup	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,25 +0,0 @@
-+-ARGS="-m"
-+-GOOD=0
-+-EVALFN=1
-+-KILLFN=1
-+-
-+-rm -f misc.tmp ready.tmp typescript.tmp
-+-
-+-./got-no-tty
-+-# this'll do but... WHERE ARE THE MAN PAGES FOR PTY STUFF???
-+-(SHELL=`pwd`/script-child script typescript.tmp &>/dev/null) &
-+-while [ ! -f ready.tmp ] ; do sleep 0.01 ; done
-+-. ready.tmp
-+-
-+-evalfn () {
-+-   THIS_TTY=`tty | colrm 1 5`
-+-   lines1=`awk '{print $2}' < stdout | sort -u | egrep "^($THIS_TTY)$"               | wc -l`
-+-   lines3=`awk '{print $2}' < stdout | sort -u | egrep "^($SHELL_TTY|$THIS_TTY|\?)$" | wc -l`
-+-   [ $lines1 == 1 ] && [ $lines3 == 1 ]
-+-}
-+-
-+-killfn () {
-+-  killall -9 got-no-tty
-+-  kill -9 $SHELL_PID  # the others should freely die
-+-  rm -f misc.tmp ready.tmp typescript.tmp
-+-}
-+diff -ruN procps-3.1.15.old/test/ps/thread-nosort-H/header procps-3.1.15/test/ps/thread-nosort-H/header
-+--- procps-3.1.15.old/test/ps/thread-nosort-H/header	2003-10-20 10:57:52.000000000 +1000
-++++ procps-3.1.15/test/ps/thread-nosort-H/header	1970-01-01 10:00:00.000000000 +1000
-+@@ -1 +0,0 @@
-+- PID TTY STAT TIME COMMAND
-+diff -ruN procps-3.1.15.old/test/ps/thread-nosort-H/setup procps-3.1.15/test/ps/thread-nosort-H/setup
-+--- procps-3.1.15.old/test/ps/thread-nosort-H/setup	2003-10-20 10:50:16.000000000 +1000
-++++ procps-3.1.15/test/ps/thread-nosort-H/setup	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,14 +0,0 @@
-+-ARGS="-C clone-once H"
-+-GOOD=0
-+-EVALFN=1
-+-KILLFN=1
-+-
-+-./clone-once
-+-
-+-evalfn () {
-+-   [ `wc -l < stdout` == 3 ]
-+-}
-+-
-+-killfn () {
-+-  killall -9 clone-once
-+-}
-+diff -ruN procps-3.1.15.old/test/ps/thread-nosort-HL/header procps-3.1.15/test/ps/thread-nosort-HL/header
-+--- procps-3.1.15.old/test/ps/thread-nosort-HL/header	2003-10-20 10:57:52.000000000 +1000
-++++ procps-3.1.15/test/ps/thread-nosort-HL/header	1970-01-01 10:00:00.000000000 +1000
-+@@ -1 +0,0 @@
-+- PID LWP TTY STAT TIME COMMAND
-+diff -ruN procps-3.1.15.old/test/ps/thread-nosort-HL/setup procps-3.1.15/test/ps/thread-nosort-HL/setup
-+--- procps-3.1.15.old/test/ps/thread-nosort-HL/setup	2003-10-20 10:50:16.000000000 +1000
-++++ procps-3.1.15/test/ps/thread-nosort-HL/setup	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,14 +0,0 @@
-+-ARGS="-C clone-once H -L"
-+-GOOD=0
-+-EVALFN=1
-+-KILLFN=1
-+-
-+-./clone-once
-+-
-+-evalfn () {
-+-   [ `wc -l < stdout` == 3 ]
-+-}
-+-
-+-killfn () {
-+-  killall -9 clone-once
-+-}
-+diff -ruN procps-3.1.15.old/test/ps/thread-nosort-Hm/setup procps-3.1.15/test/ps/thread-nosort-Hm/setup
-+--- procps-3.1.15.old/test/ps/thread-nosort-Hm/setup	2003-10-20 10:50:16.000000000 +1000
-++++ procps-3.1.15/test/ps/thread-nosort-Hm/setup	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,2 +0,0 @@
-+-ARGS="-C clone-once Hm"
-+-GOOD=1
-+diff -ruN procps-3.1.15.old/test/ps/thread-nosort-Hm/stderr procps-3.1.15/test/ps/thread-nosort-Hm/stderr
-+--- procps-3.1.15.old/test/ps/thread-nosort-Hm/stderr	2003-10-20 10:58:35.000000000 +1000
-++++ procps-3.1.15/test/ps/thread-nosort-Hm/stderr	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,23 +0,0 @@
-+-ERROR: Thread flags conflict; can't use H with m or -m.
-+-********* simple selection *********  ********* selection by list *********
-+--A all processes                      -C by command name
-+--N negate selection                   -G by real group ID (supports names)
-+--a all w/ tty except session leaders  -U by real user ID (supports names)
-+--d all except session leaders         -g by session leader OR by group name
-+--e all processes                      -p by process ID
-+-T  all processes on this terminal     -s processes in the sessions given
-+-a  all w/ tty, including other users  -t by tty
-+-g  all, even group leaders!           -u by effective user ID (supports names)
-+-r  only running processes             U  processes for specified users
-+-x  processes w/o controlling ttys     t  by tty
-+-*********** output format **********  *********** long options ***********
-+--o,o user-defined  -f full            --Group --User --pid --cols --ppid
-+--j,j job control   s  signal          --group --user --sid --rows
-+--O,O preloaded -o  v  virtual memory  --cumulative --format --deselect
-+--l,l long          u  user-oriented   --sort --tty --forest --version
-+--F   extra full    X  registers       --heading --no-heading
-+-                    ********* misc options *********
-+--V,V show version       L  list format codes  f  ASCII art forest
-+--m,m show threads       S  children in sum    -y change -l format
-+--n,N set namelist file  c  true command name  n  numeric WCHAN,UID
-+--w,w wide output        e  show environment   -H process hierarchy
-+diff -ruN procps-3.1.15.old/test/ps/thread-nosort-L/header procps-3.1.15/test/ps/thread-nosort-L/header
-+--- procps-3.1.15.old/test/ps/thread-nosort-L/header	2003-10-20 10:57:52.000000000 +1000
-++++ procps-3.1.15/test/ps/thread-nosort-L/header	1970-01-01 10:00:00.000000000 +1000
-+@@ -1 +0,0 @@
-+- PID LWP TTY TIME CMD
-+diff -ruN procps-3.1.15.old/test/ps/thread-nosort-L/setup procps-3.1.15/test/ps/thread-nosort-L/setup
-+--- procps-3.1.15.old/test/ps/thread-nosort-L/setup	2003-10-20 10:50:16.000000000 +1000
-++++ procps-3.1.15/test/ps/thread-nosort-L/setup	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,14 +0,0 @@
-+-ARGS="-C clone-once -L"
-+-GOOD=0
-+-EVALFN=1
-+-KILLFN=1
-+-
-+-./clone-once
-+-
-+-evalfn () {
-+-   [ `wc -l < stdout` == 3 ]
-+-}
-+-
-+-killfn () {
-+-  killall -9 clone-once
-+-}
-+diff -ruN procps-3.1.15.old/test/ps/thread-nosort-default/header procps-3.1.15/test/ps/thread-nosort-default/header
-+--- procps-3.1.15.old/test/ps/thread-nosort-default/header	2003-10-20 10:57:53.000000000 +1000
-++++ procps-3.1.15/test/ps/thread-nosort-default/header	1970-01-01 10:00:00.000000000 +1000
-+@@ -1 +0,0 @@
-+- PID TTY TIME CMD
-+diff -ruN procps-3.1.15.old/test/ps/thread-nosort-default/setup procps-3.1.15/test/ps/thread-nosort-default/setup
-+--- procps-3.1.15.old/test/ps/thread-nosort-default/setup	2003-10-20 10:50:16.000000000 +1000
-++++ procps-3.1.15/test/ps/thread-nosort-default/setup	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,14 +0,0 @@
-+-ARGS="-C clone-once"
-+-GOOD=0
-+-EVALFN=1
-+-KILLFN=1
-+-
-+-./clone-once
-+-
-+-evalfn () {
-+-   [ `wc -l < stdout` == 2 ]
-+-}
-+-
-+-killfn () {
-+-  killall -9 clone-once
-+-}
-+diff -ruN procps-3.1.15.old/test/ps/thread-nosort-m/header procps-3.1.15/test/ps/thread-nosort-m/header
-+--- procps-3.1.15.old/test/ps/thread-nosort-m/header	2003-10-20 10:57:53.000000000 +1000
-++++ procps-3.1.15/test/ps/thread-nosort-m/header	1970-01-01 10:00:00.000000000 +1000
-+@@ -1 +0,0 @@
-+- PID TTY STAT TIME COMMAND
-+diff -ruN procps-3.1.15.old/test/ps/thread-nosort-m/setup procps-3.1.15/test/ps/thread-nosort-m/setup
-+--- procps-3.1.15.old/test/ps/thread-nosort-m/setup	2003-10-20 10:50:16.000000000 +1000
-++++ procps-3.1.15/test/ps/thread-nosort-m/setup	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,14 +0,0 @@
-+-ARGS="-C clone-once m"
-+-GOOD=0
-+-EVALFN=1
-+-KILLFN=1
-+-
-+-./clone-once
-+-
-+-evalfn () {
-+-   [ `wc -l < stdout` == 4 ]
-+-}
-+-
-+-killfn () {
-+-  killall -9 clone-once
-+-}
-+diff -ruN procps-3.1.15.old/test/ps/thread-nosort-mL/header procps-3.1.15/test/ps/thread-nosort-mL/header
-+--- procps-3.1.15.old/test/ps/thread-nosort-mL/header	2003-10-20 10:57:53.000000000 +1000
-++++ procps-3.1.15/test/ps/thread-nosort-mL/header	1970-01-01 10:00:00.000000000 +1000
-+@@ -1 +0,0 @@
-+- PID LWP TTY TIME CMD
-+diff -ruN procps-3.1.15.old/test/ps/thread-nosort-mL/setup procps-3.1.15/test/ps/thread-nosort-mL/setup
-+--- procps-3.1.15.old/test/ps/thread-nosort-mL/setup	2003-10-20 10:50:16.000000000 +1000
-++++ procps-3.1.15/test/ps/thread-nosort-mL/setup	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,14 +0,0 @@
-+-ARGS="-C clone-once -mL"
-+-GOOD=0
-+-EVALFN=1
-+-KILLFN=1
-+-
-+-./clone-once
-+-
-+-evalfn () {
-+-   [ `wc -l < stdout` == 4 ]
-+-}
-+-
-+-killfn () {
-+-  killall -9 clone-once
-+-}
-+diff -ruN procps-3.1.15.old/test/ps/thread-sorted-H/header procps-3.1.15/test/ps/thread-sorted-H/header
-+--- procps-3.1.15.old/test/ps/thread-sorted-H/header	2003-10-20 10:57:53.000000000 +1000
-++++ procps-3.1.15/test/ps/thread-sorted-H/header	1970-01-01 10:00:00.000000000 +1000
-+@@ -1 +0,0 @@
-+- PID TTY STAT TIME COMMAND
-+diff -ruN procps-3.1.15.old/test/ps/thread-sorted-H/setup procps-3.1.15/test/ps/thread-sorted-H/setup
-+--- procps-3.1.15.old/test/ps/thread-sorted-H/setup	2003-10-20 10:45:59.000000000 +1000
-++++ procps-3.1.15/test/ps/thread-sorted-H/setup	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,14 +0,0 @@
-+-ARGS="-C clone-once --sort=pid H"
-+-GOOD=0
-+-EVALFN=1
-+-KILLFN=1
-+-
-+-./clone-once
-+-
-+-evalfn () {
-+-   [ `wc -l < stdout` == 3 ]
-+-}
-+-
-+-killfn () {
-+-  killall -9 clone-once
-+-}
-+diff -ruN procps-3.1.15.old/test/ps/thread-sorted-HL/header procps-3.1.15/test/ps/thread-sorted-HL/header
-+--- procps-3.1.15.old/test/ps/thread-sorted-HL/header	2003-10-20 10:57:53.000000000 +1000
-++++ procps-3.1.15/test/ps/thread-sorted-HL/header	1970-01-01 10:00:00.000000000 +1000
-+@@ -1 +0,0 @@
-+- PID LWP TTY STAT TIME COMMAND
-+diff -ruN procps-3.1.15.old/test/ps/thread-sorted-HL/setup procps-3.1.15/test/ps/thread-sorted-HL/setup
-+--- procps-3.1.15.old/test/ps/thread-sorted-HL/setup	2003-10-20 10:45:16.000000000 +1000
-++++ procps-3.1.15/test/ps/thread-sorted-HL/setup	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,14 +0,0 @@
-+-ARGS="-C clone-once --sort=pid H -L"
-+-GOOD=0
-+-EVALFN=1
-+-KILLFN=1
-+-
-+-./clone-once
-+-
-+-evalfn () {
-+-   [ `wc -l < stdout` == 3 ]
-+-}
-+-
-+-killfn () {
-+-  killall -9 clone-once
-+-}
-+diff -ruN procps-3.1.15.old/test/ps/thread-sorted-Hm/setup procps-3.1.15/test/ps/thread-sorted-Hm/setup
-+--- procps-3.1.15.old/test/ps/thread-sorted-Hm/setup	2003-10-20 10:47:00.000000000 +1000
-++++ procps-3.1.15/test/ps/thread-sorted-Hm/setup	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,2 +0,0 @@
-+-ARGS="-C clone-once --sort=pid Hm"
-+-GOOD=1
-+diff -ruN procps-3.1.15.old/test/ps/thread-sorted-Hm/stderr procps-3.1.15/test/ps/thread-sorted-Hm/stderr
-+--- procps-3.1.15.old/test/ps/thread-sorted-Hm/stderr	2003-10-20 10:58:47.000000000 +1000
-++++ procps-3.1.15/test/ps/thread-sorted-Hm/stderr	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,23 +0,0 @@
-+-ERROR: Thread flags conflict; can't use H with m or -m.
-+-********* simple selection *********  ********* selection by list *********
-+--A all processes                      -C by command name
-+--N negate selection                   -G by real group ID (supports names)
-+--a all w/ tty except session leaders  -U by real user ID (supports names)
-+--d all except session leaders         -g by session leader OR by group name
-+--e all processes                      -p by process ID
-+-T  all processes on this terminal     -s processes in the sessions given
-+-a  all w/ tty, including other users  -t by tty
-+-g  all, even group leaders!           -u by effective user ID (supports names)
-+-r  only running processes             U  processes for specified users
-+-x  processes w/o controlling ttys     t  by tty
-+-*********** output format **********  *********** long options ***********
-+--o,o user-defined  -f full            --Group --User --pid --cols --ppid
-+--j,j job control   s  signal          --group --user --sid --rows
-+--O,O preloaded -o  v  virtual memory  --cumulative --format --deselect
-+--l,l long          u  user-oriented   --sort --tty --forest --version
-+--F   extra full    X  registers       --heading --no-heading
-+-                    ********* misc options *********
-+--V,V show version       L  list format codes  f  ASCII art forest
-+--m,m show threads       S  children in sum    -y change -l format
-+--n,N set namelist file  c  true command name  n  numeric WCHAN,UID
-+--w,w wide output        e  show environment   -H process hierarchy
-+diff -ruN procps-3.1.15.old/test/ps/thread-sorted-L/header procps-3.1.15/test/ps/thread-sorted-L/header
-+--- procps-3.1.15.old/test/ps/thread-sorted-L/header	2003-10-20 10:57:53.000000000 +1000
-++++ procps-3.1.15/test/ps/thread-sorted-L/header	1970-01-01 10:00:00.000000000 +1000
-+@@ -1 +0,0 @@
-+- PID LWP TTY TIME CMD
-+diff -ruN procps-3.1.15.old/test/ps/thread-sorted-L/setup procps-3.1.15/test/ps/thread-sorted-L/setup
-+--- procps-3.1.15.old/test/ps/thread-sorted-L/setup	2003-10-20 10:45:35.000000000 +1000
-++++ procps-3.1.15/test/ps/thread-sorted-L/setup	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,14 +0,0 @@
-+-ARGS="-C clone-once --sort=pid -L"
-+-GOOD=0
-+-EVALFN=1
-+-KILLFN=1
-+-
-+-./clone-once
-+-
-+-evalfn () {
-+-   [ `wc -l < stdout` == 3 ]
-+-}
-+-
-+-killfn () {
-+-  killall -9 clone-once
-+-}
-+diff -ruN procps-3.1.15.old/test/ps/thread-sorted-default/header procps-3.1.15/test/ps/thread-sorted-default/header
-+--- procps-3.1.15.old/test/ps/thread-sorted-default/header	2003-10-20 10:57:53.000000000 +1000
-++++ procps-3.1.15/test/ps/thread-sorted-default/header	1970-01-01 10:00:00.000000000 +1000
-+@@ -1 +0,0 @@
-+- PID TTY TIME CMD
-+diff -ruN procps-3.1.15.old/test/ps/thread-sorted-default/setup procps-3.1.15/test/ps/thread-sorted-default/setup
-+--- procps-3.1.15.old/test/ps/thread-sorted-default/setup	2003-10-20 10:47:53.000000000 +1000
-++++ procps-3.1.15/test/ps/thread-sorted-default/setup	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,14 +0,0 @@
-+-ARGS="-C clone-once --sort=pid"
-+-GOOD=0
-+-EVALFN=1
-+-KILLFN=1
-+-
-+-./clone-once
-+-
-+-evalfn () {
-+-   [ `wc -l < stdout` == 2 ]
-+-}
-+-
-+-killfn () {
-+-  killall -9 clone-once
-+-}
-+diff -ruN procps-3.1.15.old/test/ps/thread-sorted-m/header procps-3.1.15/test/ps/thread-sorted-m/header
-+--- procps-3.1.15.old/test/ps/thread-sorted-m/header	2003-10-20 10:57:53.000000000 +1000
-++++ procps-3.1.15/test/ps/thread-sorted-m/header	1970-01-01 10:00:00.000000000 +1000
-+@@ -1 +0,0 @@
-+- PID TTY STAT TIME COMMAND
-+diff -ruN procps-3.1.15.old/test/ps/thread-sorted-m/setup procps-3.1.15/test/ps/thread-sorted-m/setup
-+--- procps-3.1.15.old/test/ps/thread-sorted-m/setup	2003-10-20 10:42:59.000000000 +1000
-++++ procps-3.1.15/test/ps/thread-sorted-m/setup	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,14 +0,0 @@
-+-ARGS="-C clone-once --sort=pid m"
-+-GOOD=0
-+-EVALFN=1
-+-KILLFN=1
-+-
-+-./clone-once
-+-
-+-evalfn () {
-+-   [ `wc -l < stdout` == 4 ]
-+-}
-+-
-+-killfn () {
-+-  killall -9 clone-once
-+-}
-+diff -ruN procps-3.1.15.old/test/ps/thread-sorted-mL/header procps-3.1.15/test/ps/thread-sorted-mL/header
-+--- procps-3.1.15.old/test/ps/thread-sorted-mL/header	2003-10-20 10:57:54.000000000 +1000
-++++ procps-3.1.15/test/ps/thread-sorted-mL/header	1970-01-01 10:00:00.000000000 +1000
-+@@ -1 +0,0 @@
-+- PID LWP TTY TIME CMD
-+diff -ruN procps-3.1.15.old/test/ps/thread-sorted-mL/setup procps-3.1.15/test/ps/thread-sorted-mL/setup
-+--- procps-3.1.15.old/test/ps/thread-sorted-mL/setup	2003-10-20 10:44:46.000000000 +1000
-++++ procps-3.1.15/test/ps/thread-sorted-mL/setup	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,14 +0,0 @@
-+-ARGS="-C clone-once --sort=pid -mL"
-+-GOOD=0
-+-EVALFN=1
-+-KILLFN=1
-+-
-+-./clone-once
-+-
-+-evalfn () {
-+-   [ `wc -l < stdout` == 4 ]
-+-}
-+-
-+-killfn () {
-+-  killall -9 clone-once
-+-}
-+diff -ruN procps-3.1.15.old/test/ps/unix-comm/setup procps-3.1.15/test/ps/unix-comm/setup
-+--- procps-3.1.15.old/test/ps/unix-comm/setup	2003-09-02 10:33:46.000000000 +1000
-++++ procps-3.1.15/test/ps/unix-comm/setup	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,7 +0,0 @@
-+-ARGS=
-+-GOOD=0
-+-EVALFN=1
-+-
-+-evalfn () {
-+-  grep "ps$" stdout >> /dev/null
-+-}
-+diff -ruN procps-3.1.15.old/test/ps/unix-doc/setup procps-3.1.15/test/ps/unix-doc/setup
-+--- procps-3.1.15.old/test/ps/unix-doc/setup	2003-09-03 13:38:37.000000000 +1000
-++++ procps-3.1.15/test/ps/unix-doc/setup	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,37 +0,0 @@
-+-# The UNIX+POSIX standard requires that, except for "args" and "comm",
-+-# the documentation must warn about any implementation-defined
-+-# format specifiers that may contain blanks.
-+-#
-+-# Using "ps L" to grab the list isn't proper, but it's needed.
-+-#
-+-# This is our list for the man page:
-+-#
-+-#args         COMMAND 
-+-#cmd          CMD     
-+-#comm         COMMAND 
-+-#command      COMMAND 
-+-#fname        COMMAND 
-+-#ucmd         CMD     
-+-#ucomm        COMMAND 
-+-#lstart       STARTED 
-+-#bsdstart     START   
-+-#start        STARTED 
-+-
-+-# It gets to 819 last I checked
-+-export COLUMNS=1111
-+-
-+-biglist=`$TESTME L \
-+-  | egrep -v '^(comm|args|cmd|comm|command|fname|ucmd|ucomm|lstart|bsdstart|start) ' \
-+-  | awk '{printf("%s,",$1);}'`
-+-numcols=`echo $biglist | tr -dc , | wc -c`
-+-
-+-ARGS=-eo$biglist
-+-GOOD=0
-+-EVALFN=1
-+-
-+-evalfn () {
-+-  while read -a myarray; do
-+-    [ ${#myarray[*]} == $numcols ] || return 1
-+-  done < stdout
-+-  return 0
-+-}
-+diff -ruN procps-3.1.15.old/test/ps/unix-f-args/setup procps-3.1.15/test/ps/unix-f-args/setup
-+--- procps-3.1.15.old/test/ps/unix-f-args/setup	2003-09-02 10:33:18.000000000 +1000
-++++ procps-3.1.15/test/ps/unix-f-args/setup	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,7 +0,0 @@
-+-ARGS="-f"
-+-GOOD=0
-+-EVALFN=1
-+-
-+-evalfn () {
-+-  grep "ps -f$" stdout >> /dev/null
-+-}
-+diff -ruN procps-3.1.15.old/test/ps/unix-f-header/header procps-3.1.15/test/ps/unix-f-header/header
-+--- procps-3.1.15.old/test/ps/unix-f-header/header	2003-09-02 08:40:35.000000000 +1000
-++++ procps-3.1.15/test/ps/unix-f-header/header	1970-01-01 10:00:00.000000000 +1000
-+@@ -1 +0,0 @@
-+- UID PID PPID C STIME TTY TIME CMD
-+diff -ruN procps-3.1.15.old/test/ps/unix-f-header/setup procps-3.1.15/test/ps/unix-f-header/setup
-+--- procps-3.1.15.old/test/ps/unix-f-header/setup	2003-09-02 08:37:18.000000000 +1000
-++++ procps-3.1.15/test/ps/unix-f-header/setup	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,2 +0,0 @@
-+-ARGS="-f"
-+-GOOD=0
-+diff -ruN procps-3.1.15.old/test/ps/unix-fl-header/header procps-3.1.15/test/ps/unix-fl-header/header
-+--- procps-3.1.15.old/test/ps/unix-fl-header/header	2003-09-02 08:53:56.000000000 +1000
-++++ procps-3.1.15/test/ps/unix-fl-header/header	1970-01-01 10:00:00.000000000 +1000
-+@@ -1 +0,0 @@
-+- F S UID PID PPID C PRI NI ADDR SZ WCHAN STIME TTY TIME CMD
-+diff -ruN procps-3.1.15.old/test/ps/unix-fl-header/setup procps-3.1.15/test/ps/unix-fl-header/setup
-+--- procps-3.1.15.old/test/ps/unix-fl-header/setup	2003-09-02 08:55:32.000000000 +1000
-++++ procps-3.1.15/test/ps/unix-fl-header/setup	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,2 +0,0 @@
-+-ARGS="-fl"
-+-GOOD=0
-+diff -ruN procps-3.1.15.old/test/ps/unix-header/header procps-3.1.15/test/ps/unix-header/header
-+--- procps-3.1.15.old/test/ps/unix-header/header	2003-09-02 08:53:56.000000000 +1000
-++++ procps-3.1.15/test/ps/unix-header/header	1970-01-01 10:00:00.000000000 +1000
-+@@ -1 +0,0 @@
-+- PID TTY TIME CMD
-+diff -ruN procps-3.1.15.old/test/ps/unix-header/setup procps-3.1.15/test/ps/unix-header/setup
-+--- procps-3.1.15.old/test/ps/unix-header/setup	2003-09-02 08:55:09.000000000 +1000
-++++ procps-3.1.15/test/ps/unix-header/setup	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,2 +0,0 @@
-+-ARGS=
-+-GOOD=0
-+diff -ruN procps-3.1.15.old/test/ps/unix-l-header/header procps-3.1.15/test/ps/unix-l-header/header
-+--- procps-3.1.15.old/test/ps/unix-l-header/header	2003-09-02 08:53:56.000000000 +1000
-++++ procps-3.1.15/test/ps/unix-l-header/header	1970-01-01 10:00:00.000000000 +1000
-+@@ -1 +0,0 @@
-+- F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
-+diff -ruN procps-3.1.15.old/test/ps/unix-l-header/setup procps-3.1.15/test/ps/unix-l-header/setup
-+--- procps-3.1.15.old/test/ps/unix-l-header/setup	2003-09-02 08:55:49.000000000 +1000
-++++ procps-3.1.15/test/ps/unix-l-header/setup	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,2 +0,0 @@
-+-ARGS="-l"
-+-GOOD=0
-+diff -ruN procps-3.1.15.old/test/ps/unix-lf-header/header procps-3.1.15/test/ps/unix-lf-header/header
-+--- procps-3.1.15.old/test/ps/unix-lf-header/header	2003-09-02 08:53:56.000000000 +1000
-++++ procps-3.1.15/test/ps/unix-lf-header/header	1970-01-01 10:00:00.000000000 +1000
-+@@ -1 +0,0 @@
-+- F S UID PID PPID C PRI NI ADDR SZ WCHAN STIME TTY TIME CMD
-+diff -ruN procps-3.1.15.old/test/ps/unix-lf-header/setup procps-3.1.15/test/ps/unix-lf-header/setup
-+--- procps-3.1.15.old/test/ps/unix-lf-header/setup	2003-09-02 08:55:39.000000000 +1000
-++++ procps-3.1.15/test/ps/unix-lf-header/setup	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,2 +0,0 @@
-+-ARGS="-lf"
-+-GOOD=0
-+diff -ruN procps-3.1.15.old/test/ps/unix-o-header-all/header procps-3.1.15/test/ps/unix-o-header-all/header
-+--- procps-3.1.15.old/test/ps/unix-o-header-all/header	2003-09-02 09:23:24.000000000 +1000
-++++ procps-3.1.15/test/ps/unix-o-header-all/header	1970-01-01 10:00:00.000000000 +1000
-+@@ -1 +0,0 @@
-+- COMMAND COMMAND ELAPSED GROUP NI %CPU PGID PID PPID RGROUP RUSER TIME TT USER VSZ
-+diff -ruN procps-3.1.15.old/test/ps/unix-o-header-all/setup procps-3.1.15/test/ps/unix-o-header-all/setup
-+--- procps-3.1.15.old/test/ps/unix-o-header-all/setup	2003-09-02 09:23:11.000000000 +1000
-++++ procps-3.1.15/test/ps/unix-o-header-all/setup	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,2 +0,0 @@
-+-ARGS="-o args,comm,etime,group,nice,pcpu,pgid,pid,ppid,rgroup,ruser,time,tty,user,vsz"
-+-GOOD=0
-+diff -ruN procps-3.1.15.old/test/ps/unix-o-header-dup/header procps-3.1.15/test/ps/unix-o-header-dup/header
-+--- procps-3.1.15.old/test/ps/unix-o-header-dup/header	2003-09-02 09:16:50.000000000 +1000
-++++ procps-3.1.15/test/ps/unix-o-header-dup/header	1970-01-01 10:00:00.000000000 +1000
-+@@ -1 +0,0 @@
-+- PID TT PID PPID
-+diff -ruN procps-3.1.15.old/test/ps/unix-o-header-dup/setup procps-3.1.15/test/ps/unix-o-header-dup/setup
-+--- procps-3.1.15.old/test/ps/unix-o-header-dup/setup	2003-09-02 09:16:22.000000000 +1000
-++++ procps-3.1.15/test/ps/unix-o-header-dup/setup	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,2 +0,0 @@
-+-ARGS="-o pid,tty -o pid,ppid"
-+-GOOD=0
-+diff -ruN procps-3.1.15.old/test/ps/unix-o-header-evil/header procps-3.1.15/test/ps/unix-o-header-evil/header
-+--- procps-3.1.15.old/test/ps/unix-o-header-evil/header	2003-09-02 12:39:36.000000000 +1000
-++++ procps-3.1.15/test/ps/unix-o-header-evil/header	1970-01-01 10:00:00.000000000 +1000
-+@@ -1 +0,0 @@
-+- PPID PID FOO,tty PPID
-+diff -ruN procps-3.1.15.old/test/ps/unix-o-header-evil/setup procps-3.1.15/test/ps/unix-o-header-evil/setup
-+--- procps-3.1.15.old/test/ps/unix-o-header-evil/setup	2003-09-02 12:39:19.000000000 +1000
-++++ procps-3.1.15/test/ps/unix-o-header-evil/setup	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,2 +0,0 @@
-+-ARGS="-o ppid -o pid,ppid=FOO,tty -o ppid"
-+-GOOD=0
-+diff -ruN procps-3.1.15.old/test/ps/unix-o-header-nil/setup procps-3.1.15/test/ps/unix-o-header-nil/setup
-+--- procps-3.1.15.old/test/ps/unix-o-header-nil/setup	2003-09-02 10:08:33.000000000 +1000
-++++ procps-3.1.15/test/ps/unix-o-header-nil/setup	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,7 +0,0 @@
-+-ARGS="-o pid="
-+-GOOD=0
-+-EVALFN=1
-+-
-+-evalfn () {
-+-  ! grep PID stdout >> /dev/null
-+-}
-+diff -ruN procps-3.1.15.old/test/ps/unix-selection/header procps-3.1.15/test/ps/unix-selection/header
-+--- procps-3.1.15.old/test/ps/unix-selection/header	2003-09-04 16:13:48.000000000 +1000
-++++ procps-3.1.15/test/ps/unix-selection/header	1970-01-01 10:00:00.000000000 +1000
-+@@ -1 +0,0 @@
-+- PID TTY TIME CMD
-+diff -ruN procps-3.1.15.old/test/ps/unix-selection/setup procps-3.1.15/test/ps/unix-selection/setup
-+--- procps-3.1.15.old/test/ps/unix-selection/setup	2003-09-13 14:00:48.000000000 +1000
-++++ procps-3.1.15/test/ps/unix-selection/setup	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,25 +0,0 @@
-+-ARGS=
-+-GOOD=0
-+-EVALFN=1
-+-KILLFN=1
-+-
-+-rm -f misc.tmp ready.tmp typescript.tmp
-+-
-+-./got-no-tty
-+-# this'll do but... WHERE ARE THE MAN PAGES FOR PTY STUFF???
-+-(SHELL=`pwd`/script-child script typescript.tmp &>/dev/null) &
-+-while [ ! -f ready.tmp ] ; do sleep 0.01 ; done
-+-. ready.tmp
-+-
-+-evalfn () {
-+-   THIS_TTY=`tty | colrm 1 5`
-+-   lines1=`awk '{print $2}' < stdout | sort -u | egrep "^($THIS_TTY)$"               | wc -l`
-+-   lines3=`awk '{print $2}' < stdout | sort -u | egrep "^($SHELL_TTY|$THIS_TTY|\?)$" | wc -l`
-+-   [ $lines1 == 1 ] && [ $lines3 == 1 ]
-+-}
-+-
-+-killfn () {
-+-  killall -9 got-no-tty
-+-  kill -9 $SHELL_PID  # the others should freely die
-+-  rm -f misc.tmp ready.tmp typescript.tmp
-+-}
-+diff -ruN procps-3.1.15.old/test/ps/unix-tty-default/setup procps-3.1.15/test/ps/unix-tty-default/setup
-+--- procps-3.1.15.old/test/ps/unix-tty-default/setup	2003-09-02 11:36:37.000000000 +1000
-++++ procps-3.1.15/test/ps/unix-tty-default/setup	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,14 +0,0 @@
-+-ARGS=
-+-GOOD=0
-+-EVALFN=1
-+-
-+-# default output is restricted to this tty
-+-MYTTY=`tty`
-+-
-+-evalfn () {
-+-  PSTTY=`awk '!/TTY/{print $2}' < stdout | uniq`
-+-  if [ /dev/$PSTTY != $MYTTY ] ; then
-+-    return 1
-+-  fi
-+-  return 0
-+-}
-+diff -ruN procps-3.1.15.old/test/ps/unix-tty-name/setup procps-3.1.15/test/ps/unix-tty-name/setup
-+--- procps-3.1.15.old/test/ps/unix-tty-name/setup	2003-09-02 10:42:55.000000000 +1000
-++++ procps-3.1.15/test/ps/unix-tty-name/setup	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,9 +0,0 @@
-+-ARGS="-otty= -p$$"
-+-GOOD=0
-+-EVALFN=1
-+-
-+-evalfn () {
-+-  MYTTY=`tty`
-+-  PSTTY=`printf /dev/ ; cat stdout`
-+-  [ $MYTTY == $PSTTY ]
-+-}
-+diff -ruN procps-3.1.15.old/test/ps/unix-tty-names/setup procps-3.1.15/test/ps/unix-tty-names/setup
-+--- procps-3.1.15.old/test/ps/unix-tty-names/setup	2003-09-02 11:17:09.000000000 +1000
-++++ procps-3.1.15/test/ps/unix-tty-names/setup	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,26 +0,0 @@
-+-ARGS="-eotty="
-+-GOOD=0
-+-EVALFN=1
-+-
-+-# the UNIX spec allows:
-+-#
-+-# /dev/ttyS0   as ttyS0
-+-# /dev/ttyS0   as S0          (OK to chop a leading "tty")
-+-# /dev/console as console
-+-# /foo/bar     as bar or /foo/bar  (poorly unspecified)
-+-# -nothing-    as ? or -           (poorly unspecified, we use '?')
-+-#
-+-# Also, the format must agree with what "who" uses.
-+-# Linux "who" doesn't strip "tty" off of /dev/ttyS0, etc.,
-+-# so that's illegal in a Linux environment.
-+-#
-+-# junk the '?' to avoid shell wildcard expansion
-+-
-+-evalfn () {
-+-  for i in `tr -d '?' < stdout | sort -u` ; do
-+-    if [ ! -c /dev/$i -a ! -c /$i ] ; then
-+-      return 1
-+-    fi
-+-  done
-+-  return 0
-+-}
-+diff -ruN procps-3.1.15.old/test/ps/unix-vsz/setup procps-3.1.15/test/ps/unix-vsz/setup
-+--- procps-3.1.15.old/test/ps/unix-vsz/setup	2003-09-11 10:24:38.000000000 +1000
-++++ procps-3.1.15/test/ps/unix-vsz/setup	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,27 +0,0 @@
-+-# The standard describes the "vsz" format as:
-+-#        The size of the process in (virtual) memory
-+-#        in 1024 byte units as a decimal integer.
-+-#
-+-# It's hard to tell 1000-byte from 1024-byte units,
-+-# but easy to tell 1024-byte from 512-byte or 2 kB.
-+-# On a 64-bit system, watch for 4 GB troubles as well.
-+-
-+-# throw in the PID to ensure whitespace on the left
-+-ARGS="-C gigabyte -o pid= -o vsz="
-+-GOOD=0
-+-EVALFN=1
-+-KILLFN=1
-+-
-+-BITSIZE=`./gigabyte`
-+-
-+-evalfn () {
-+-  if [ $BITSIZE == 32bit ] ; then
-+-    egrep ' 1......$' stdout >> /dev/null
-+-  else
-+-    egrep ' 1.......$' stdout >> /dev/null
-+-  fi
-+-}
-+-
-+-killfn () {
-+-  killall -9 gigabyte
-+-}
-+diff -ruN procps-3.1.15.old/test/ps/unix-wchan/setup procps-3.1.15/test/ps/unix-wchan/setup
-+--- procps-3.1.15.old/test/ps/unix-wchan/setup	2003-09-02 12:25:15.000000000 +1000
-++++ procps-3.1.15/test/ps/unix-wchan/setup	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,11 +0,0 @@
-+-ARGS="-eowchan="
-+-GOOD=0
-+-EVALFN=1
-+-
-+-# Make sure we're getting back real wchan data,
-+-# not just "WCHAN", "-", "0", "*", and hex digits.
-+-# Assumes usage of letters [g-z].
-+-
-+-evalfn () {
-+-  egrep '[g-z]' stdout >> /dev/null
-+-}
-+diff -ruN procps-3.1.15.old/test/ps/y-needs-l/header procps-3.1.15/test/ps/y-needs-l/header
-+--- procps-3.1.15.old/test/ps/y-needs-l/header	2003-10-02 12:10:34.000000000 +1000
-++++ procps-3.1.15/test/ps/y-needs-l/header	1970-01-01 10:00:00.000000000 +1000
-+@@ -1 +0,0 @@
-+- 
-+\ No newline at end of file
-+diff -ruN procps-3.1.15.old/test/ps/y-needs-l/setup procps-3.1.15/test/ps/y-needs-l/setup
-+--- procps-3.1.15.old/test/ps/y-needs-l/setup	2003-10-02 12:10:45.000000000 +1000
-++++ procps-3.1.15/test/ps/y-needs-l/setup	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,2 +0,0 @@
-+-ARGS="-y"
-+-GOOD=1
-+diff -ruN procps-3.1.15.old/test/ps/y-needs-l/stderr procps-3.1.15/test/ps/y-needs-l/stderr
-+--- procps-3.1.15.old/test/ps/y-needs-l/stderr	2003-10-02 12:10:56.000000000 +1000
-++++ procps-3.1.15/test/ps/y-needs-l/stderr	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,23 +0,0 @@
-+-ERROR: Modifier -y without format -l makes no sense.
-+-********* simple selection *********  ********* selection by list *********
-+--A all processes                      -C by command name
-+--N negate selection                   -G by real group ID (supports names)
-+--a all w/ tty except session leaders  -U by real user ID (supports names)
-+--d all except session leaders         -g by session leader OR by group name
-+--e all processes                      -p by process ID
-+-T  all processes on this terminal     -s processes in the sessions given
-+-a  all w/ tty, including other users  -t by tty
-+-g  all, even group leaders!           -u by effective user ID (supports names)
-+-r  only running processes             U  processes for specified users
-+-x  processes w/o controlling ttys     t  by tty
-+-*********** output format **********  *********** long options ***********
-+--o,o user-defined  -f full            --Group --User --pid --cols --ppid
-+--j,j job control   s  signal          --group --user --sid --rows
-+--O,O preloaded -o  v  virtual memory  --cumulative --format --deselect
-+--l,l long          u  user-oriented   --sort --tty --forest --version
-+--F   extra full    X  registers       --heading --no-heading
-+-                    ********* misc options *********
-+--V,V show version       L  list format codes  f  ASCII art forest
-+--m,m show threads       S  children in sum    -y change -l format
-+--n,N set namelist file  c  true command name  n  numeric WCHAN,UID
-+--w,w wide output        e  show environment   -H process hierarchy
-+diff -ruN procps-3.1.15.old/test/ps/zombie-args/setup procps-3.1.15/test/ps/zombie-args/setup
-+--- procps-3.1.15.old/test/ps/zombie-args/setup	2003-09-04 13:43:31.000000000 +1000
-++++ procps-3.1.15/test/ps/zombie-args/setup	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,18 +0,0 @@
-+-ARGS="-H -C the_living_dead -o args"
-+-GOOD=0
-+-EVALFN=1
-+-KILLFN=1
-+-
-+-# the -H is just to ensure predictable output ordering
-+-
-+-# assumes that the processes won't get swapped out before ps runs
-+-
-+-./the_living_dead
-+-
-+-evalfn () {
-+-  diff -Naurd stdout $TESTNAME/stdout >> /dev/null
-+-}
-+-
-+-killfn () {
-+-  killall -9 the_living_dead
-+-}
-+diff -ruN procps-3.1.15.old/test/ps/zombie-args/stdout procps-3.1.15/test/ps/zombie-args/stdout
-+--- procps-3.1.15.old/test/ps/zombie-args/stdout	2003-09-04 13:44:01.000000000 +1000
-++++ procps-3.1.15/test/ps/zombie-args/stdout	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,3 +0,0 @@
-+-COMMAND
-+-./the_living_dead
-+-  [the_living_dead] <defunct>
-+diff -ruN procps-3.1.15.old/test/ps/zombie-comm/setup procps-3.1.15/test/ps/zombie-comm/setup
-+--- procps-3.1.15.old/test/ps/zombie-comm/setup	2003-09-04 13:43:44.000000000 +1000
-++++ procps-3.1.15/test/ps/zombie-comm/setup	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,16 +0,0 @@
-+-ARGS="-H -C the_living_dead -o comm"
-+-GOOD=0
-+-EVALFN=1
-+-KILLFN=1
-+-
-+-# the -H is just to ensure predictable output ordering
-+-
-+-./the_living_dead
-+-
-+-evalfn () {
-+-  diff -Naurd stdout $TESTNAME/stdout >> /dev/null
-+-}
-+-
-+-killfn () {
-+-  killall -9 the_living_dead
-+-}
-+diff -ruN procps-3.1.15.old/test/ps/zombie-comm/stdout procps-3.1.15/test/ps/zombie-comm/stdout
-+--- procps-3.1.15.old/test/ps/zombie-comm/stdout	2003-09-04 13:44:12.000000000 +1000
-++++ procps-3.1.15/test/ps/zombie-comm/stdout	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,3 +0,0 @@
-+-COMMAND
-+-the_living_dead
-+-  the_living_dead <defunct>
-+diff -ruN procps-3.1.15.old/test/ps/zombie-wchan/setup procps-3.1.15/test/ps/zombie-wchan/setup
-+--- procps-3.1.15.old/test/ps/zombie-wchan/setup	2003-09-04 13:52:41.000000000 +1000
-++++ procps-3.1.15/test/ps/zombie-wchan/setup	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,14 +0,0 @@
-+-ARGS="-C the_living_dead -o wchan,stat,comm"
-+-GOOD=0
-+-EVALFN=1
-+-KILLFN=1
-+-
-+-./the_living_dead
-+-
-+-evalfn () {
-+-  egrep 'exit.*Z.*defunct' stdout >> /dev/null
-+-}
-+-
-+-killfn () {
-+-  killall -9 the_living_dead
-+-}
-+diff -ruN procps-3.1.15.old/test/runtests procps-3.1.15/test/runtests
-+--- procps-3.1.15.old/test/runtests	2003-09-03 12:09:08.000000000 +1000
-++++ procps-3.1.15/test/runtests	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,4 +0,0 @@
-+-#!/bin/bash
-+-
-+-export TESTME=${PSPROG:-../ps/ps}
-+-for i in ps/*-* ; do ./onetest $i ; done
-+diff -ruN procps-3.1.15.old/test/script-child procps-3.1.15/test/script-child
-+--- procps-3.1.15.old/test/script-child	2003-09-04 14:43:28.000000000 +1000
-++++ procps-3.1.15/test/script-child	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,10 +0,0 @@
-+-#!/bin/bash
-+-#
-+-# usage:
-+-# SHELL=/path/to/this/script script trashfile
-+-
-+-echo SCRIPT_PID=$PPID > misc.tmp
-+-echo SHELL_PID=$$ >> misc.tmp
-+-echo SHELL_TTY=`/usr/bin/tty | colrm 1 5` >> misc.tmp
-+-mv misc.tmp ready.tmp   # atomic op
-+-while /bin/true ; do sleep 42 ; done
-+diff -ruN procps-3.1.15.old/test/sid-breaks-ttys.c procps-3.1.15/test/sid-breaks-ttys.c
-+--- procps-3.1.15.old/test/sid-breaks-ttys.c	2003-09-08 13:28:24.000000000 +1000
-++++ procps-3.1.15/test/sid-breaks-ttys.c	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,38 +0,0 @@
-+-#include <sys/types.h>
-+-#include <unistd.h>
-+-#include <signal.h>
-+-
-+-static pid_t one;
-+-
-+-static void die(int signo){
-+-  (void)signo;
-+-  _exit(0);
-+-}
-+-
-+-static void hang(void){
-+-  for(;;) pause();
-+-}
-+-
-+-int main(int argc, char *argv[]){
-+-  (void)argc;
-+-  (void)argv;
-+-
-+-  one = getpid();
-+-  signal(SIGHUP,die);
-+-  if(fork()) hang();    // parent later killed as readyness signal
-+-
-+-  // second one exits, to enable setsid(), and the resulting
-+-  // zombie will be reaped by init after 1st process killed
-+-  if(fork()) _exit(0);
-+-
-+-  if(setsid()==-1){
-+-    kill(one,SIGKILL); // hopefully the shell will complain
-+-    _exit(42); // kind of tough to report errors
-+-  }
-+-
-+-  kill(one,SIGHUP); // let the shell know we're ready
-+-
-+-  hang();
-+-
-+-  return 0;
-+-}
-+diff -ruN procps-3.1.15.old/test/sidious.c procps-3.1.15/test/sidious.c
-+--- procps-3.1.15.old/test/sidious.c	2003-09-08 13:58:20.000000000 +1000
-++++ procps-3.1.15/test/sidious.c	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,77 +0,0 @@
-+-// ps fTo sess,pgid,pid,tty,ppid,tpgid,args -C a.out
-+-
-+-#include <sys/types.h>
-+-#include <unistd.h>
-+-#include <signal.h>
-+-#include <sys/stat.h>
-+-#include <fcntl.h>
-+-#include <stdlib.h> // undocumented grantpt,unlockpt,ptsname,openpt,posix_openpt
-+-//#include <pty.h>    // undocumented openpty,forkpty
-+-
-+-static pid_t one;
-+-
-+-static void die(int signo){
-+-  (void)signo;
-+-  _exit(0);
-+-}
-+-
-+-//static void sigchld_handler(int signo){
-+-//  (void)signo;
-+-//  kill(one,SIGHUP);          // kill parent
-+-//}
-+-
-+-static void hang(void){
-+-  for(;;) pause();
-+-}
-+-
-+-int main(int argc, char *argv[]){
-+-  int master;
-+-  int slave;
-+-
-+-  (void)argc;
-+-  (void)argv;
-+-
-+-  one = getpid();
-+-  signal(SIGHUP,die);
-+-  if(fork()) hang();    // parent later killed as readyness signal
-+-
-+-  // second one exits, to enable setsid(), and the resulting
-+-  // zombie will be reaped by init after 1st process killed
-+-  if(fork()) _exit(0);
-+-
-+-
-+-  master = open("/dev/ptmx", O_RDWR|O_NOCTTY);
-+-
-+-  // could fork, but don't bother
-+-  // (won't be doing anything with the master side)
-+-
-+-  // could change child's UID, but don't bother
-+-  // (would make the tests require running as root)
-+-
-+-  // not in the man pages!!!
-+-  grantpt(master);
-+-  unlockpt(master);
-+-
-+-  if(setsid()==-1){
-+-    kill(one,SIGKILL); // hopefully the shell will complain
-+-    _exit(42); // kind of tough to report errors
-+-  }
-+-
-+-  slave = open(ptsname(master), O_RDWR);
-+-#ifdef I_PUSH
-+-  // push STREAMS tty stuff, just to have an example of it
-+-  ioctl(slave, I_PUSH, "ptem");
-+-  ioctl(slave, I_PUSH, "ldterm");
-+-#endif
-+-#ifdef TIOCSCTTY
-+-  // On SysV, slave open got us a TTY. On BSD, we must do this:
-+-  ioctl(fd, TIOCSCTTY, NULL);
-+-#endif
-+-
-+-
-+-  kill(one,SIGHUP); // let the shell know we're ready
-+-
-+-  hang();
-+-
-+-  return 0;
-+-}
-+diff -ruN procps-3.1.15.old/test/th.c procps-3.1.15/test/th.c
-+--- procps-3.1.15.old/test/th.c	2003-09-14 01:35:42.000000000 +1000
-++++ procps-3.1.15/test/th.c	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,16 +0,0 @@
-+-#include <unistd.h>
-+-#include <pthread.h>
-+-
-+-void *hanger(void *vp){
-+-  (void)vp;
-+-  for(;;) pause();
-+-}
-+-
-+-int main(int argc, char *argv[]){
-+-  pthread_t thread;
-+-  (void)argc;
-+-  (void)argv;
-+-  pthread_create(&thread, NULL, hanger, NULL);
-+-  hanger(NULL);
-+-  return 0; // keep gcc happy
-+-}
-+diff -ruN procps-3.1.15.old/test/the_living_dead.c procps-3.1.15/test/the_living_dead.c
-+--- procps-3.1.15.old/test/the_living_dead.c	2003-09-04 13:36:54.000000000 +1000
-++++ procps-3.1.15/test/the_living_dead.c	1970-01-01 10:00:00.000000000 +1000
-+@@ -1,39 +0,0 @@
-+-#include <sys/types.h>
-+-#include <unistd.h>
-+-#include <signal.h>
-+-
-+-static pid_t one;
-+-
-+-static void die(int signo){
-+-  (void)signo;
-+-  _exit(0);
-+-}
-+-
-+-static void sigchld_handler(int signo){
-+-  (void)signo;
-+-  kill(one,SIGHUP);          // kill parent
-+-}
-+-
-+-static void hang(void){
-+-  for(;;) pause();
-+-}
-+-
-+-int main(int argc, char *argv[]){
-+-  pid_t three;
-+-
-+-  (void)argc;
-+-  (void)argv;
-+-
-+-  one = getpid();
-+-  signal(SIGHUP,die);
-+-  if(fork()) hang();    // parent later killed as readyness signal
-+-
-+-  three = fork();
-+-  if(three){
-+-    signal(SIGCHLD,sigchld_handler);
-+-    kill(three,SIGHUP);   // create the zombie
-+-  }
-+-
-+-  hang();
-+-  return 0;
-+-}
---- procps-3.1.15.orig/debian/control
-+++ procps-3.1.15/debian/control
-@@ -0,0 +1,31 @@
-+Source: procps
-+Section: base
-+Priority: required
-+Maintainer: Craig Small <csmall@debian.org>
-+Build-Depends: debhelper (>> 4.1.1), libncurses5-dev, make (>= 3.78.1-8), dpatch
-+Standards-Version: 3.6.0
-+
-+Package: procps
-+Architecture: any
-+Provides: watch
-+Depends: ${shlibs:Depends}
-+Conflicts: watch, libproc-dev (<< 1:1.2.6-2), w-bassman (<< 1.0-3), procps-nonfree, pgrep (<< 3.3-5)
-+Replaces: watch, bsdutils (<< 2.9x-1)
-+Recommends: psmisc
-+Description: The /proc file system utilities
-+ These are utilities to browse the /proc filesystem, which is not a real file
-+ system but a way for the kernel to provide information about the status of
-+ entries in its process table. (e.g. running, stopped or "zombie")
-+ Both command line and full screen utilities are provided. Ncurses is needed
-+ for the full screen utilities.  More information can be found at procps
-+ website http://procps.sf.net/
-+
-+Package: libproc-dev
-+Architecture: any
-+Section: libdevel
-+Priority: optional
-+Depends: libc6-dev, procps (= ${Source-Version})
-+Description: library for accessing process information from /proc
-+ These are the header files for libproc. Some packages using libproc
-+ to access process information from /proc need these to compile.
-+
---- procps-3.1.15.orig/debian/rules
-+++ procps-3.1.15/debian/rules
-@@ -0,0 +1,99 @@
-+#!/usr/bin/make -f
-+# Sample debian/rules that uses debhelper.
-+# GNU copyright 1997 to 1999 by Joey Hess.
-+
-+# Uncomment this to turn on verbose mode.
-+#export DH_VERBOSE=1
-+
-+# Include dpatch stuff
-+include /usr/share/dpatch/dpatch.make
-+
-+PACKAGE="procps"
-+
-+ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS)))
-+	INSTALL_PROGRAM += -s
-+endif
-+
-+
-+build: build-stamp
-+
-+build-stamp: patch-stamp
-+	dh_testdir
-+
-+	# Add here commands to compile the package.
-+	mkdir static
-+	SHARED=0 $(MAKE) proc/libproc.a
-+	mv proc/libproc.a static
-+	$(MAKE) clean
-+	$(MAKE) W_SHOWFROM=\-DW_SHOWFROM
-+
-+	touch build-stamp
-+
-+clean: clean1 unpatch
-+clean1:
-+	dh_testdir
-+	dh_testroot
-+	rm -f build-stamp 
-+
-+	# Add here commands to clean up after the build process.
-+	-$(MAKE) clean
-+	-rm -rf static
-+
-+	dh_clean
-+
-+install: build
-+	dh_testdir
-+	dh_testroot
-+	dh_clean -k
-+	dh_installdirs
-+
-+	# Add here commands to install the package into debian/procps.
-+	$(MAKE) ln_f="ln -sf" ldconfig=echo DESTDIR=$(CURDIR)/debian/procps install
-+	install --mode 644 -o root -g root debian/sysctl.conf $(CURDIR)/debian/procps/etc
-+	# Rename w as there are two of them
-+	(cd $(CURDIR)/debian/procps/usr/bin && mv w w.procps )
-+	(cd $(CURDIR)/debian/procps/usr/share/man/man1 && mv w.1 w.procps.1 )
-+
-+	# Work-around until proc includes fixed
-+	(cp proc/*.h $(CURDIR)/debian/procps/usr/include/proc)
-+	cp static/libproc.a $(CURDIR)/debian/libproc-dev/usr/lib
-+
-+	dh_movefiles --sourcedir=debian/procps
-+	rmdir $(CURDIR)/debian/procps/usr/include/proc
-+
-+# Build architecture-independent files here.
-+binary-indep: build install
-+# We have nothing to do by default.
-+
-+# Build architecture-dependent files here.
-+binary-arch: build install
-+	dh_testdir
-+	dh_testroot
-+#	dh_installdebconf	
-+	dh_installdocs
-+	dh_installexamples
-+	dh_installmenu
-+#	dh_installlogrotate
-+#	dh_installemacsen
-+#	dh_installpam
-+#	dh_installmime
-+	dh_installinit --update-rcd-params='start 30 S .' --init-script='procps.sh'
-+#	dh_installcron
-+	dh_installman
-+	dh_installinfo
-+#	dh_undocumented
-+	dh_installchangelogs NEWS
-+	dh_link
-+	dh_strip
-+	dh_compress
-+	dh_fixperms
-+	dh_makeshlibs -V "procps (>= 3.1.14), procps (<< 3.1.15)"
-+	dh_installdeb
-+#	dh_perl
-+	dh_shlibdeps -Lprocps -ldebian/procps/lib
-+	dh_gencontrol
-+	dh_md5sums
-+	dh_builddeb
-+
-+binary: binary-indep binary-arch
-+.PHONY: build clean binary-indep binary-arch binary install patch unpatch clean1
---- procps-3.1.15.orig/debian/changelog
-+++ procps-3.1.15/debian/changelog
-@@ -0,0 +1,743 @@
-+procps (1:3.1.15-2) unstable; urgency=low
-+
-+  * Removed offending test directory Closes: #227933
-+
-+ -- Craig Small <csmall@debian.org>  Tue, 20 Jan 2004 10:20:44 +1100
-+
-+procps (1:3.1.15-1) unstable; urgency=low
-+
-+  * Now uses dpatch to handle the various patches
-+  * New upstream release
-+    - Supports SELINUX flags for kernel v2.6 Closes: #193648
-+    - Hide kernel PID bug Closes: #217278, #219730, #217525, #224470
-+    - Fixed top auto-margins problem Closes: #217559
-+  * Fix top manual page Closes: #225089
-+  * Patch so SELINUX flags work in v2.4 kernels
-+  * Extra +s in ps.1 removed Closes: #218220
-+  * Added patch so sysctl has quiet -q flag Closes: #189100
-+
-+ -- Craig Small <csmall@debian.org>  Fri, 26 Dec 2003 18:02:59 +1100
-+
-+procps (1:3.1.14-1) unstable; urgency=low
-+
-+  * New upstream release
-+
-+ -- Craig Small <csmall@debian.org>  Wed, 22 Oct 2003 11:59:53 +1000
-+
-+procps (1:3.1.13-1) unstable; urgency=low
-+
-+  * New upstream release
-+
-+ -- Craig Small <csmall@debian.org>  Wed, 24 Sep 2003 16:10:42 +1000
-+
-+procps (1:3.1.12-1) unstable; urgency=low
-+
-+  * New upstream release
-+    ps: $PS_FORMAT works properly Closes: #201575
-+    man page: /var/run/utmp, not /etc/utmp Closes: #206583
-+    required flags moved out of CFLAGS Closes: #205429
-+    
-+
-+ -- Craig Small <csmall@debian.org>  Sat, 13 Sep 2003 21:11:09 +1000
-+
-+procps (1:3.1.11-2) unstable; urgency=low
-+
-+  * Made shlibs have a specific version Closes: #199118
-+  * libproc.a is back in libproc-dev, use it
-+  * Added README to libproc-dev for people who use the library
-+
-+ -- Craig Small <csmall@debian.org>  Wed, 20 Aug 2003 15:31:59 +1000
-+
-+procps (1:3.1.11-1) unstable; urgency=low
-+
-+  * 3.1.11 New upstream version
-+    - handle GPLONLY_ symbols Closes: #143549, #188374
-+  * freeproc now defined Closes: #189047
-+  * warning in readproc.c fixed Closes: #197346
-+  * Removed optarg and optind defines Closes: #197343
-+  * Fixed saved_start_time warning Closes: #197342
-+
-+ -- Craig Small <csmall@debian.org>  Thu, 24 Jul 2003 17:02:36 +1000
-+
-+procps (1:3.1.9-1) unstable; urgency=low
-+
-+  * New upstream source
-+  * memory sizes fixed for 64-bit w/ gcc 3.x Closes: #194376, #191933
-+  * Doesn't segfault if /proc not mounted Closes: #172735
-+  * No warning in top about memory key Closes: #188271
-+  * More info in kill man page Closes: #182414
-+  * Document the different oO options Closes: #169301
-+  * Updated stabndards version to 3.5.9
-+  * Changed disk to backing storage Closes: #175925
-+
-+ -- Craig Small <csmall@debian.org>  Mon,  2 Jun 2003 02:31:03 +1000
-+
-+procps (1:3.1.8-1) unstable; urgency=low
-+
-+  * New upstream release
-+    watch man page fixed, Closes #182246
-+  * Changed section for libproc-dev
-+
-+ -- Craig Small <csmall@debian.org>  Tue,  1 Apr 2003 10:19:05 +1000
-+
-+procps (1:3.1.6-1) unstable; urgency=low
-+
-+  * New upstream release
-+    - watch has --no-title option Closes: #179862
-+    - ps -C can compare very long names Closes: #178127
-+  * Fixed descriptions in manual pages Closes: #179046
-+  * w wont crash if /proc unreadable Closes: #169398
-+
-+ -- Craig Small <csmall@debian.org>  Sat, 22 Feb 2003 21:33:45 +1100
-+
-+procps (1:3.1.5-1) unstable; urgency=low
-+
-+  * New upstream version
-+    - watch don't drop empty lines Closes: #171005 
-+    - top has old sort keys Closes: #167249
-+    - now count Inact_laundry as needed Closes: #172163
-+
-+ -- Craig Small <csmall@debian.org>  Mon,  6 Jan 2003 13:49:32 +1100
-+
-+procps (1:3.1.3-1) unstable; urgency=low
-+
-+  * New upstream source
-+
-+ -- Craig Small <csmall@debian.org>  Fri, 13 Dec 2002 16:16:36 +1100
-+
-+procps (1:3.1.1-1) unstable; urgency=low
-+
-+  * New upstream source
-+    - vmstats reports memort counts Closes: #169774
-+
-+ -- Craig Small <csmall@debian.org>  Wed,  4 Dec 2002 15:57:13 +1100
-+
-+procps (1:3.1.0-1) unstable; urgency=low
-+
-+  * New upstream version
-+    - vmstat displays IO-wait time instead of bogus "w"
-+    - when IO-wait hidden, count as idle, not as sys
-+    - pmap command added (like Sun has)
-+  * Manual pages cleaned up Closes: #165970, #164481
-+
-+ -- Craig Small <csmall@debian.org>  Mon, 11 Nov 2002 12:03:46 +1100
-+
-+procps (1:3.0.5-1) unstable; urgency=low
-+
-+  * New upstream version
-+    - top tolerates super-wide displays Closes: #165497
-+    - ELF note warning gone for some kernels Closes: #165900
-+    - Fix ps and top man pages a bit, dropped bugs severity.
-+
-+ -- Craig Small <csmall@debian.org>  Tue, 29 Oct 2002 22:04:36 +1100
-+
-+procps (1:3.0.4-1) unstable; urgency=low
-+
-+  * New upstream version
-+    - ELF note warning removed Closes: #165093, #165343
-+    - top works for most TERM= settings Closes: #164864, #164956
-+  * w has FROM column again by default Closes: #165252
-+  * debhelper dependency version fixed Closes: #165083
-+  * ps.1 looks a bit better now Closes: #16448
-+
-+ -- Craig Small <csmall@debian.org>  Mon, 21 Oct 2002 08:30:04 +1000
-+
-+procps (1:3.0.3-1) unstable; urgency=low
-+
-+  * New upstream version
-+    - w works with KOI8 locale Closes: #153043
-+    - fix top for non-SMP 2.2.xx and 2.0.xx Closes: #164231
-+    - negative idle time fixed Closes: #126260
-+    - sysctl handles new vlan interface Closes: #140386
-+    - vmstat documentation update Closes: #157935, #155684
-+    - "skill -n blah blah blah" lets you test options Closes: #158630
-+    - fixed ps --sort crash Closes: #164226
-+    - vmstat compiles with latest gcc-3.x Closes: #164348
-+    - bad (int*) cast in top removed Closes: #164468
-+    - Support new/improved statistics interfaces in 2.5 /proc Closes: #164013
-+    - top defaults to old layout and sort by pid Closes: #164277
-+    - rant moved out of top.1 man page Closes: #164520
-+    - top runs much faster Closes: #87779
-+
-+ -- Craig Small <csmall@debian.org>  Sat, 12 Oct 2002 21:44:23 +1000
-+
-+procps (1:3.0.0-2) unstable; urgency=low
-+
-+  * Fixed pkill and skill, auto* is so broken. Closes: #163940, #163944
-+  * Moved libproc.so.3 into /lib as it's needed early Closes: #163981,#163899
-+
-+ -- Craig Small <csmall@debian.org>  Thu, 10 Oct 2002 07:19:45 +1000
-+
-+procps (1:3.0.0-1) unstable; urgency=low
-+
-+  * New upstream source Closes: #163698
-+    - top has SMP Closes: #162316, #62282, #94896, #98277, #117040, #117735
-+    - SELINUX support Closes: #142892
-+    - top defaults to signal 15 to kill pids with Closes: #72158
-+    - 64-bit time reduces the overflow problem  Closes: #82382, #155908
-+    - "w" program better at determining what a user is doing 
-+      Closes: #88758, 115529
-+    - oldps is gone Closes: #101917
-+    - Handles /proc/tty/drivers Closes: #108654, #154046
-+    - Supports scanf where locale uses , for decimal point Closes: #126873
-+    - uptime --help now calls itself uptime Closes: #128880
-+    - ps faster Closes: #147731
-+    - top calculates screen better Closes: #162296
-+    - top allows sorts by pid or  swapped memory Closes: #79868, #159446
-+    - support for s/390 Closes: #126295
-+    - statm buffer size increased Closes: #145085
-+    - new top has no typos Closes: #148918
-+    - new top can handle lots of tasks Closes: #70900
-+  * Fixed init.d file so it follows policy Closes: #121945
-+
-+ -- Craig Small <csmall@debian.org>  Tue,  8 Oct 2002 12:29:45 +1000
-+
-+procps (1:2.0.7-10) unstable; urgency=low
-+
-+  * Fixes ps crash when system.map is exact multiple of 1024
-+    Thankyou Colin for the patch! Closes: #109237, #142292
-+
-+ -- Craig Small <csmall@eye-net.com.au>  Fri, 12 Apr 2002 21:02:04 +1000
-+
-+procps (1:2.0.7-9) unstable; urgency=low
-+
-+  * Sanity checking for Number of CPU Closes: #127561, #122617
-+    This will keep the m68k and ARM boys happy.
-+  * uptime usage fixed Closes: #138351
-+  * kill man page NAME updated Closes: #119400
-+  * Better explanation for load average in uptime(1) Closes: #140902
-+  * utmp in correct location in w(1) Closes: #115725
-+
-+ -- Craig Small <csmall@eye-net.com.au>  Mon,  8 Apr 2002 14:18:20 +1000
-+
-+procps (1:2.0.7-8) unstable; urgency=low
-+
-+  * Removed -ggdb Closes: #117203
-+
-+ -- Craig Small <csmall@eye-net.com.au>  Sat, 27 Oct 2001 07:02:38 +1000
-+
-+procps (1:2.0.7-7) unstable; urgency=low
-+
-+  * Added os/390 patches Closes: #113494
-+  * w manpage now gives correct location for utmp Closes: #110723
-+  * watch wrap-around problem fixed Closes: #111759
-+  * Programs are compilied -O2 Closes: #108652
-+
-+ -- Craig Small <csmall@eye-net.com.au>  Wed, 26 Sep 2001 08:08:43 +1000
-+
-+procps (1:2.0.7-6) unstable; urgency=low
-+
-+  * Re-fixed command line interpretation Closes: #103101
-+
-+ -- Craig Small <csmall@eye-net.com.au>  Tue, 10 Jul 2001 17:32:02 +1000
-+
-+procps (1:2.0.7-5) unstable; urgency=low
-+
-+  * watch now copys strings better. Closes: #95404, #97948, #99780
-+  * skill.1 loads tbl Closes: #92242, #67899
-+  * long usernames are shown Closes: #86205, #94957
-+  * Remove /etc/rcS.d/S30procps with good ole rm Closes: #92184
-+  * /etc/init.d/procps.sh calls itself that Closes: #93302
-+  * Cannot write config in secure mode Closes: #93948
-+
-+ -- Craig Small <csmall@debian.org>  Sun, 29 Apr 2001 14:55:20 +1000
-+
-+procps (1:2.0.7-4) unstable; urgency=low
-+
-+  * watch doesnt crash with long command lines Closes: #88592, #87693
-+  * bumped up a buffer in a proc read Closes: #85775
-+  * Now we use 24 hour time Closes: #85640
-+  * pgrep calls itself pgrep Closes: #86630
-+  * Corrected symlink in libproc-dev Closes: #87865
-+
-+ -- Craig Small <csmall@debian.org>  Mon, 19 Mar 2001 10:13:27 +1100
-+
-+procps (1:2.0.7-3) unstable; urgency=low
-+
-+  * Conflicts with pgrep, so no more conflicts Closes: #82835
-+  * Minor fixes to ps.1 manpage Closes: #81921
-+  * watch highlighs correctly Closes: #77737
-+  * top wont die with evil HOMEs, Closes: #81452
-+  * removed reference to suidregister
-+  * Remore -L reference in kill.1 Closes: #85913
-+
-+ -- Craig Small <csmall@debian.org>  Thu,  8 Feb 2001 12:44:58 +1100
-+
-+procps (1:2.0.7-2) unstable; urgency=medium
-+
-+  * Moved kill back again, dammit why is the makefile so broken
-+    Closes: #82747
-+  * Watch uses locale Closes: #82739
-+  * top's scanf is protected from evil locale problems Closes: #82671, #69128
-+    (Big thankyou to Guillaume for lending a test account)
-+
-+ -- Craig Small <csmall@debian.org>  Fri, 19 Jan 2001 09:15:36 +1100
-+
-+procps (1:2.0.7-1) unstable; urgency=medium
-+
-+  * New upstream version (010114)
-+    - Merges 2.0.7 code from RedHat Closes: #80832
-+    - Made note that Shared memory report will be junk due to kernel
-+      Closes: #77818
-+    - Remove html and null stuff from man page Closes: #81920
-+    - vsize is kB in man page Closes: #82210
-+    - man pages look better Closes: #70055, #70941
-+    - vmstat increase Closes: #77886
-+    - w tries harder to find things Closes: #24531
-+    - 15 char user names Closes: #71211
-+  * No HOME overflow in top Closes: 81452
-+  * Added menu Hints Closes: #80051, #82324
-+
-+
-+ -- Craig Small <csmall@debian.org>  Wed, 17 Jan 2001 08:57:24 +1100
-+
-+procps (1:2.0.6-9) unstable; urgency=medium
-+
-+  * added libncurses5-dev to build-depends, Closes: #67533
-+  * Put kill back into /bin Closes #67580, #67582
-+  * Put 2.0.6-7 ps.1 back in Closes: #67451
-+
-+ -- Craig Small <csmall@debian.org>  Tue, 25 Jul 2000 08:13:21 +1000
-+
-+procps (1:2.0.6-8) unstable; urgency=low
-+
-+  * New upstream source:
-+  *  - sysctl EOF bug fixed Closes: #62877
-+  *  - stop crashes with unmounted /proc Closes: #63512, #55177
-+  *  - Versions checking tolerates RH /proc/ksyms Closes: #59798
-+  *  - Top works better with SMP Closes: #34734, #56547, #59703
-+
-+ -- Craig Small <csmall@debian.org>  Fri, 14 Jul 2000 22:33:44 +1000
-+
-+procps (1:2.0.6-7) unstable; urgency=low
-+
-+  * Fixed missing version Closes: #62207, #62484, #59112
-+  * Stop crashes with umounted /proc Closes: #63512, #55177
-+  * Nicer man pages Closes: #63495, #59406
-+  * Fixed sysctl eof bug Closes: #62877
-+  * watch wraps properly Closes: #60913
-+  * watch handles tabs Closes: #46213
-+  * watch honors locale settings Closes: #63762
-+  * now versioned replaces line for bsdutils
-+
-+ -- Craig Small <csmall@debian.org>  Mon, 29 May 2000 13:31:54 +1000
-+
-+procps (1:2.0.6-6) unstable; urgency=low
-+
-+  * New patchlevel (000221)
-+  * ps 'f' ASCII art forest fixed. Closes: #57134, #58644
-+  * let insane people run ps setuid. Closes: #56701
-+  * note that kernel 2.3 is now faster. Closes: #49130
-+  * top with WCHAN was leaking memory. Closes: #58172, #52257, #56889
-+  * can show current CPU. Closes: #37023
-+  * w looks better now. Closes: #55952
-+  * init.d/procps removed if exists. Closes: #55137, #55852
-+  * Fixed skill/snice man page (thanks man-db maint!) Closes: #53736, #46743
-+  * Fixed ps man page Closes: #58365
-+
-+ -- Craig Small <csmall@debian.org>  Wed, 23 Feb 2000 10:31:37 +1100
-+
-+procps (1:2.0.6-5) unstable; urgency=low
-+
-+  * New upstream source
-+  * kill "_R(smp_|smp2gig_|2gig_)?[0-9a-fA-F]{8,}"  Closes: #54394, #53208
-+  * added type 'S' and scan past machine types  Closes: #54396
-+  * Fixed w(1) manpage Closes: #54709
-+  * top now agrees with ps for RSS Closes: #52679
-+
-+ -- Craig Small <csmall@debian.org>  Tue, 11 Jan 2000 08:23:56 +1100
-+
-+procps (1:2.0.6-4) unstable; urgency=low
-+
-+  * procps init.d script quietly dies if not /etc/default/rcS Closes:
-+    #52839
-+  * Put the NEWS changelog back in Closes: #52678
-+  * Fixed that damn Rsmp annoying message bug Closes: #48686
-+  * Remove /etc/init.d/procps Closes: #53818
-+
-+ -- Craig Small <csmall@debian.org>  Mon, 20 Dec 1999 11:14:53 +1100
-+
-+procps (1:2.0.6-3) unstable; urgency=low
-+
-+  * Patched ps so it complains if you chmod 711 /proc Closes: #52481
-+  * Did the same for top.
-+  * Ditto for oldps.
-+  * Changed and int to a char* Closes: #52482
-+  * sysctl.conf file references sysctl.conf (5) not 8 Closes: #52385
-+  * props init.d script changed to procps.sh Closes: #52228
-+
-+ -- Craig Small <csmall@debian.org>  Mon, 13 Dec 1999 11:57:01 +1100
-+
-+procps (1:2.0.6-2) unstable; urgency=low
-+
-+  * Changed psmisc from reccomends to suggests
-+  * %MEM now works, Closes: #50010 #50055 #50148 #50356
-+  * top doesn't crash with > 204 processes Closes: #50055
-+  * Another libproc fd leak fixed Closes: #45398
-+  * ps silently ignores m and -m for future compatibility Closes: #48308
-+  * Added a sysctl.conf and other files as suggested Closes: #51098
-+  * Fix start field instability
-+  * ps.1 fixed Closes: #35137
-+
-+ -- Craig Small <csmall@debian.org>  Tue,  7 Dec 1999 14:42:51 +1100
-+
-+procps (1:2.0.6-1) unstable; urgency=low
-+
-+  * New upstream
-+  * sysctl crash fixed, Closes: #49015
-+  * libproc file descriptor leak fixed, Closes: #45398
-+  * False positive System.map mismatches killed, Closes: #49047
-+  * Supports 64 Hz for StrongARM/Shark Closes: #47461
-+  * pr_time fixed, Closes: #46223
-+  * libc num cpu workaround back in, Closes: #49039
-+  * Fixed kill manpage, Closes: #47018
-+  * This version definitely, absolutely has kill, Closes: #46762
-+
-+
-+ -- Craig Small <csmall@debian.org>  Fri,  5 Nov 1999 12:46:05 +1100
-+
-+procps (1:2.0.3-5) unstable; urgency=low
-+
-+  * Changed conflicts with replaces
-+
-+ -- Craig Small <csmall@debian.org>  Wed,  6 Oct 1999 14:36:48 +1000
-+
-+procps (1:2.0.3-4) unstable; urgency=low
-+
-+  * support SMP systems with versioned kernel modules Closes: #45621, #46465
-+  * Added kill to this (it is removed from bsdutils).
-+  * We now need kill manpage, Closes: #46004
-+
-+ -- Craig Small <csmall@debian.org>  Tue,  5 Oct 1999 10:28:01 +1000
-+
-+procps (1:2.0.3-3) unstable; urgency=low
-+
-+  * System.map support for non-i386 Closes: #45592, #45250
-+  * Do not require /proc/ksyms Closes: #45128, #45132, #45619
-+  * Alternative w.1 points to the right spot, Closes: #45331
-+  * Copyright for skill and snice and ps fixed, Closes: #45119
-+
-+ -- Craig Small <csmall@debian.org>  Tue, 21 Sep 1999 16:31:59 +1000
-+
-+procps (1:2.0.3-2) unstable; urgency=medium
-+
-+  * Now with top! Closes: #45106
-+
-+ -- Craig Small <csmall@debian.org>  Wed, 15 Sep 1999 11:12:34 +1000
-+
-+procps (1:2.0.3-1) unstable; urgency=low
-+
-+  * New upstream source
-+  * Debian personality does m flag Closes: #44832
-+  * Corrected typo in top.1 Closes: #44836
-+  * New improved watch Closes: #29970
-+
-+ -- Craig Small <csmall@debian.org>  Mon, 13 Sep 1999 16:59:16 +1000
-+
-+procps (1:2.0.2-4) unstable; urgency=high
-+
-+  * Fixed the nasty ps formatting problem (Bug #40859 #40856 #40839 )
-+
-+ -- Craig Small <csmall@debian.org>  Wed,  7 Jul 1999 08:41:54 +1000
-+
-+procps (1:2.0.2-3) unstable; urgency=low
-+
-+  * New upstream patches/source
-+  * SMB Hz wierdness fixed (Bug #33023 #33284)
-+  * non-tty output does not get chopped at 80 columns (bug #36688)
-+  * BSD personalities set the default selection and output format (bug #36698)
-+  * Fixed collumn spacing problem (Bug #35309)
-+  * Work around for borken libs that return 0 processors (Bug #36902)
-+  * skill now uses process name not command line (Bug #19208)
-+
-+ -- Craig Small <csmall@debian.org>  Mon,  5 Jul 1999 07:29:47 +1000
-+
-+procps (1:2.0.2-2) unstable; urgency=low
-+
-+  * Removed kill and manual page (Bug #36421 #36551 #36375)
-+  * Put in patch for bogus sysconf return (Bug #36494 #36532 #36581)
-+
-+ -- Craig Small <csmall@debian.org>  Wed, 28 Apr 1999 09:04:59 +1000
-+
-+procps (1:2.0.2-1) unstable; urgency=low
-+
-+  * New upstream version (Bug #34394 #27291 #34250 #34956 #35240 #35247
-+    #35520 #35756 #34580 )
-+
-+ -- Craig Small <csmall@debian.org>  Mon, 19 Apr 1999 13:26:48 +1000
-+
-+procps (1:2.0.0-1) unstable; urgency=low
-+
-+  * New upstream version (Bug #33083 23347 33462 10556 33266 33371 )
-+   
-+
-+ -- Craig Small <csmall@debian.org>  Mon, 15 Mar 1999 14:21:57 +1100
-+
-+procps (1:1.9.0-2) unstable; urgency=low
-+
-+  * top now resumes (Bug #32106 )
-+  * debhelper text problem fixed in postinst (Bug #32963 #33122 #33003 33117 )
-+  * oldps and ps now use alternatives (Bug #33083 )
-+  * ps s format now not ugly (Bug #28266 )
-+  * watch command line help and man page correct (Bug #31702 )
-+  * sessreg removed from package (Bug #32294 )
-+  * ps doesn't display extra spaces (Bug #27799 )
-+  * top has spaces in command lines again (Bug #33060 )
-+  * ps now has personality (Bug #22923 #18429 )
-+  * moved non-free skill and snice to non-free package.
-+
-+ -- Craig Small <csmall@debian.org>  Tue,  9 Feb 1999 15:10:58 +1100
-+
-+procps (1:1.9.0-1) unstable; urgency=low
-+
-+  * New Upstream source
-+
-+ -- Craig Small <csmall@debian.org>  Thu,  4 Feb 1999 14:48:37 +1100
-+
-+procps (1:1.2.9-3) unstable; urgency=low
-+
-+  * Linked to ncurses4
-+
-+ -- Craig Small <csmall@debian.org>  Fri, 30 Oct 1998 14:13:02 +1100
-+
-+procps (1:1.2.9-2) unstable; urgency=low
-+
-+  * top now has spaces in between command lines (Bug #28178 )
-+  * --version or -V now shows proper version.
-+
-+ -- Craig Small <csmall@debian.org>  Mon, 26 Oct 1998 08:55:59 +1100
-+
-+procps (1:1.2.9-1) unstable; urgency=low
-+
-+  * New upstream version (Bug #27573 )
-+  * Menu entry changed from System to Menu/System (Bug #27438 )
-+  * Char variables changed to int for powerpc (Bug #26624 )
-+  * libproc now nulls allocated structure (Bug #26225 )
-+  * No longer uses psdevtab (yay!) (Bug #25388 )
-+  * ps doesn't double space command line parameters (Bug #25306 #24293 )
-+  * ps now silently ignores g flag for those BSD heads (Bug #24075 )  
-+
-+ -- Craig Small <csmall@debian.org>  Fri,  9 Oct 1998 09:15:11 +1000
-+
-+procps (1:1.2.7-2) unstable; urgency=low
-+
-+  * Top can suspend twice (or three times even) (Bug #22997 )
-+  * Libraries properly built (Bug #20010 )
-+
-+ -- Craig Small <csmall@debian.org>  Mon,  1 Jun 1998 09:16:09 +1000
-+
-+procps (1:1.2.7-1) frozen unstable; urgency=high
-+
-+  * New upstream source, fixes security bug (Bug #21475)
-+
-+ -- Craig Small <csmall@debian.org>  Thu, 23 Apr 1998 08:04:54 +1000
-+
-+procps (1:1.2.6-2) unstable; urgency=low
-+
-+  * Fixed Shared library dependencies (bugs #18388 #18394 18392 )
-+  * Conflicts with earlier versions of w-bassman (bug #18389 )
-+
-+ -- Craig Small <csmall@debian.org>  Mon, 23 Feb 1998 09:05:54 +1100
-+
-+procps (1:1.2.6-1) unstable; urgency=low
-+
-+  * New upstream source.
-+  * xload is undiverted (Bug #17102 )
-+  * ps_fields.7.gz removed (Bug #18090 )
-+  * Colour patches removed, color-related bugs gone (Bug #18008 #17217 #18090 )
-+  * POSIX patches removed, cmd line bugs gone (Bug #15537 )
-+  * w is now an alternative w.procps (Bug #17960 )
-+  * skill now works with process names (Bug #17087 )
-+  * ps and top man pages have their field descriptions (Bug #17360 )
-+  * ps u fixed (Bug #17313 )
-+  * Source code is no longer FUBAR (Bug #17892 )
-+  * top now redraws screen after config screen (Bug #11896 )
-+  * Circular dependency removed (Bug #16966 )
-+  * top does mess up screens with wrong cmd line (Bug #17230 )
-+  * top suspends with ctrl-Z  (Bug #16703 )
-+
-+ -- Craig Small <csmall@debian.org>  Tue, 17 Feb 1998 08:31:21 +1100
-+
-+procps (1:1.2.5-2) unstable; urgency=low
-+
-+  * Moved /bin into /bin/ps (Bug #17001 )
-+
-+ -- Craig Small <csmall@debian.org>  Tue, 13 Jan 1998 07:50:43 +1100
-+
-+procps (1:1.2.5-1) unstable; urgency=low
-+
-+  * TTY selection works ( #16724 ) 
-+  * top and ps now accept --colour and *_COLOURS
-+  * xproc copyright file not compressed ( #14491 )
-+  * All #include <proc/*.h> now #include "proc/*.h" ( #13482 ) 
-+  * Copyright doesn't mention psmisc now ( #16704 ) 
-+  * Moved ps back into /bin ( #16737  #16705 )
-+  * New upstream source ( #16795 )
-+
-+ -- Craig Small <csmall@debian.org>  Mon, 12 Jan 1998 08:35:10 +1100
-+
-+procps (1:1.2.2-1) unstable; urgency=low
-+
-+  * New maintainer
-+  * Updated upstream source to 1.2.2 (instead of 1.2)
-+  * Merged Helmut's color/command line patches into upstream.
-+  * Copyright file is not compressed ( #14493 #14415 )
-+  * psdatabase refreshed when installing ( #10693 )
-+  * Fixed +/- line in free ( #10785 #10870 #11566 #12027 #12245 #12374 )
-+  * w collumns corrected ( #10898 #13117 )
-+  * top saves sort type ( #11553 )
-+  * Linked to libc6 ( #11725 )
-+  * top doesn't coredump with S option ( #11855 )
-+  * skill works with given patch ( #12023 )
-+  * libproc-dev has proper sym link ( #12697 )
-+  * top -h doesn't change terminal settings ( #13513 )
-+  * ps -s has "CAUGHT" not "CATCHED" ( #14342 )
-+  * ps_colors.7 and ps_fields.7 reformatted ( #14109 #14544 #14545 )
-+  * ps checks for tty before using colors ( #14596 )
-+  * top sets stop signal handler later, stopping race ( #14769 )
-+  * When using POSIX personality, processes show up ( #14780 )
-+  * top checks for valid term type ( #15807 )
-+  * xproc now Depends on procps-1.2.*-* ( #10762 #13347 )
-+  * xproc dependencies fixed ( #12698 )
-+
-+ -- Craig Small <csmall@debian.org>  Tue, 30 Dec 1997 11:33:54 +1100
-+
-+procps (1.12.2.1) unstable; urgency=low
-+
-+  * Non-maintainer release, built for libc6.
-+  * Added in free.c from new procps version 1.2.3 (from sunsite), seems to
-+    fix all the problems with free reporting bogus valus.
-+
-+ -- Joey Hess <joeyh@master.debian.org>  Fri, 24 Oct 1997 13:34:35 -0400
-+
-+procps (1.12.2) stable unstable; urgency=low
-+
-+  * fixed meminfo handling again, as the fix wouldn't work on pre-2.1.x
-+    kernels. 
-+  * fixed free to use the meminfo routines from libproc.
-+
-+ -- Helmut Geyer <Helmut.Geyer@iwr.uni-heidelberg.de>  Fri, 13 Jun 1997 22:42:14 +0200
-+
-+procps (1.12.1) stable unstable; urgency=low
-+
-+  * fixed several bugs
-+  * replaced utmp handling to support wrappers.
-+  * added /proc/meminfo support for 2.1.x kernels.
-+
-+ -- Helmut Geyer <Helmut.Geyer@iwr.uni-heidelberg.de>  Tue, 10 Jun 1997 23:59:41 +0200
-+
-+procps (1.11.6) frozen unstable; urgency=medium
-+
-+  * psmisc 1.14 : new upstream version (mainly bugfixes)
-+  * added a lot of new serial device major numbers to the device lookup
-+    code. Somehow it seems there are new serial devices every other week.
-+  * fixed a bug in top: broken .toprc may cause a segmentation fault.
-+
-+ -- Helmut Geyer <Helmut.Geyer@iwr.uni-heidelberg.de>  Sun, 4 May 1997 09:50:30 +0200
-+
-+procps (1.11.5) frozen unstable; urgency=medium
-+
-+  * minor changes to make it compile with libc6
-+  * fix top behaviour on machines having nonstandard NR_TASKS up to 4k
-+    tasks 
-+
-+ -- Helmut Geyer <Helmut.Geyer@iwr.uni-heidelberg.de>  Fri, 18 Apr 1997 02:07:46 +0200
-+
-+procps (1.11.4) unstable; urgency=medium
-+
-+  * strip libproc.so from unneeded symbols (Bug# 8311)
-+  * fixed watch.1 example (Bug# 8169)
-+  * partly fixed fuser sigsegv core dump (Bug# 8004)
-+  * menu entries for xproc and procps (Bug# 8325)
-+  * divertions for xmem and xload. (Bug# 7565)
-+  
-+ -- Helmut Geyer <Helmut.Geyer@iwr.uni-heidelberg.de>  Sun, 13 Apr 1997 20:55:05 +0200
-+
-+procps (1.11.3) unstable; urgency=low
-+
-+  * fixed uptime again, minor Makefile changes
-+
-+ -- Helmut Geyer <Helmut.Geyer@iwr.uni-heidelberg.de>  Fri, 21 Feb 1997 16:22:04 +0100
-+
-+procps (1.11.2) unstable; urgency=medium
-+
-+  * fixed typo in ps_fields.7 (Bug#5457)
-+  * fixed typo in debian/rules (Bug #5585)
-+  * fixed bug in w introduced in 1.11.1 (Bugs #5489, #5694, #5695, #5705).
-+  * added support for non-standard serial devices (long overdue - Bug
-+    #5771). 
-+  * fixed uptime option handling (Bug #6099).
-+  * fixed top problems with missing/corrupted utmp (Bug #5819).
-+  * fixed manpage problems (Bug #5936).
-+
-+ -- Helmut Geyer <Helmut.Geyer@iwr.uni-heidelberg.de>  Wed, 19 Feb 1997 18:49:26 +0100
-+
-+procps (1.11.1) unstable; urgency=low
-+
-+  * fixed bug in w <username>
-+  * automatic resize if field length is exceeded. This changed the shared
-+    library, so popping the major number.
-+  * fixed numeric WCHAN output on Alphas and stupid bug in ps (again,
-+    thanks to H. Koenig). 
-+  * fixed top memory statistics for systems with more than 100M memory or 
-+    swap. 
-+  
-+ -- Helmut Geyer <Helmut.Geyer@iwr.uni-heidelberg.de>  Tue, 12 Nov 1996 02:57:18 +0100
-+
-+procps (1.10.1) unstable; urgency=low
-+
-+  * merged in ALPHA & Sparc patches
-+    (from ftp.azstarnet.com:/pub/linux/axp/glibc)
-+  * fixed ps --deselect/-N for pid lists    
-+  * use shared libs from now on, install shlibs again
-+  * manpages for libproc
-+  * static lib compiled without -fPIC
-+  * added libproc package for development installing libproc headers,
-+    manpages and static library. 
-+  * fixed PROC_REAL bug when PROC_FILLSTATUS isn't set.
-+  * fixed color bug in ps --forest
-+  * added xproc package for xload, xmem, xidle, xcpustate
-+    (XConsole left out as we use xconsole & klogd on debian)
-+  * adapted xload manpage for xidle and xmem
-+  * fixed xmem to cope with newer kernels (where shared pages are counted
-+    once for each additional reference)
-+  * fixed top change_fields bug (a field needs 24, not 21 spaces)
-+  * fixed several Alpha bugs (thanks to Harald Koenig)
-+  * due to popular demand, the old format for time intervals is back.
-+    for all program using this, a toggle command line option has been
-+    provided. The default behaviour depends on the compile time option
-+    NEW_TIME_DEFAULT (see main Makefile)
-+
-+ -- Helmut Geyer <Helmut.Geyer@iwr.uni-heidelberg.de>  Wed, 23 Oct 1996 21:30:54 +0200
-+
-+procps (1.09.2) unstable; urgency=low
-+
-+  * fixed cpu nice % in summary
-+  * fixed topsetup initialisation in top.h I messed up in last revision
-+  * fixed pipe output bug
-+  * fixed --deselect bug in SVR4/POSIX mode
-+
-+ -- Helmut Geyer <Helmut.Geyer@iwr.uni-heidelberg.de>  Sun, 20 Oct 1996 13:57:11 +0200
-+
-+procps (1.09.1) unstable; urgency=low
-+
-+  * fixed ps -w bug displaying too many empty lines
-+  * fixed SIGSEGV bug in ps -www
-+  * fixed bug in top not calculating length of the command/args/env fields
-+    at the field selection screen in some circumstances.
-+  * fixed SIGSEGV bug when using environ field
-+
-+ -- Helmut Geyer <Helmut.Geyer@iwr.uni-heidelberg.de>  Sat, 12 Oct 1996 07:59:29 +0200
-+
-+procps (1.09) experimental; urgency=low
-+
-+  * This is an experimental release of the procps suite. A lot of features have
-+    been added since the 1.01(a) release:
-+     - support for both BSD and POSIX (SVR4) style command line options.
-+     - completely configurable display of information.
-+     - colour markup of processes exceeding limits or belonging to a user.
-+    Please take a look at /usr/doc/procps/NEWS and the manpages for a concise
-+    list. This is how the next upstream release of procps may look
-+    (i.e. it will  look like this if there is not too much resistance).  
-+
-+ -- Helmut Geyer <Helmut.Geyer@iwr.uni-heidelberg.de>  Sat, 5 Oct 1996 14:26:57 +0200
---- procps-3.1.15.orig/kill.1
-+++ procps-3.1.15/kill.1
-@@ -10,16 +10,11 @@
- kill \- send a signal to a process
- 
- .SH SYNOPSIS
--.TS
--l l.
--kill pid ...	Send SIGTERM to every process listed.
--kill -signal pid ...	Send a signal to every process listed.
--kill -s signal pid ...	Send a signal to every process listed.
--kill -l	List all signal names.
--kill -L	List all signal names in a nice table.
--kill -l signal	Convert a signal number into a name.
--kill -V,--version	Show version of program
--.TE
-+\fBkill\fR [ -\fBsignal\fR | -s \fBsignal\fR ] \fBpid\fR ...
-+.br
-+\fBkill\fR [ -L | -V, --version ]
-+.br
-+\fBkill\fR -l  [ \fBsignal\fR ]
- 
- .SH DESCRIPTION
- The default signal for kill is TERM. Use -l or -L to list available signals.
-@@ -105,7 +100,7 @@
- .fi
- .PP
- .SH "SEE ALSO"
--pkill(1) skill(1) kill(2) renice(1) nice(1) signal(7) killall(1)
-+.BR pkill (1), skill (1), kill (2), renice (1), nice (1), signal (7), killall (1).
- 
- .SH STANDARDS
- This command meets appropriate standards. The -L flag is Linux-specific.
---- procps-3.1.15.orig/tload.c
-+++ procps-3.1.15/tload.c
-@@ -30,9 +30,6 @@
- static int dly=5;
- static jmp_buf jb;
- 
--extern int optind;
--extern char *optarg;
--
- static void alrm(int signo)
- {
-     (void)signo;
---- procps-3.1.15.orig/pgrep.c
-+++ procps-3.1.15/pgrep.c
-@@ -367,7 +367,8 @@
- 	preg = do_regcomp ();
- 
- 	if (opt_newest) saved_start_time =  0ULL;
--	if (opt_oldest) saved_start_time = ~0ULL;
-+    else
-+	    saved_start_time = ~0ULL;
- 	if (opt_newest) saved_pid = 0;
- 	if (opt_oldest) saved_pid = INT_MAX;
- 	
---- procps-3.1.15.orig/top.1
-+++ procps-3.1.15/top.1
-@@ -430,8 +430,8 @@
- The number of\fB major\fR page faults that have occurred for a task.
- A page fault occurs when a process attempts to read from or write to a virtual
- page that is not currently present in its address space.
--A major page fault is when disk access is involved in making that
--page available.
-+A major page fault is when backing storage access (such as a disk) is involved
-+in making that page available.
- 
- .TP 3
- v:\fB nDRT\fR \*(EM Dirty Pages count
diff --git a/recipes/procps/procps-3.2.1/install.patch b/recipes/procps/procps-3.2.1/install.patch
deleted file mode 100644
index 2d16c26..0000000
--- a/recipes/procps/procps-3.2.1/install.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-
-#
-# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
-#
-
---- procps-3.1.15/Makefile~install	2003-12-24 03:01:55.000000000 +0100
-+++ procps-3.1.15/Makefile	2004-02-11 00:45:59.000000000 +0100
-@@ -147,7 +147,7 @@
- ###### install
- 
- $(BINFILES) : all
--	$(install) --mode a=rx --strip $(notdir $@) $@
-+	$(install) --mode a=rx $(notdir $@) $@
- 
- $(MANFILES) : all
- 	$(install) --mode a=r $(notdir $@) $@
diff --git a/recipes/procps/procps-3.2.5/pagesz-not-constant.patch b/recipes/procps/procps-3.2.5/pagesz-not-constant.patch
deleted file mode 100644
index 8e9e1eb..0000000
--- a/recipes/procps/procps-3.2.5/pagesz-not-constant.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-Index: procps-3.2.1/proc/devname.c
-===================================================================
---- procps-3.2.1.orig/proc/devname.c	2004-03-18 05:43:50.000000000 +1100
-+++ procps-3.2.1/proc/devname.c	2005-04-02 10:40:17.462138000 +1000
-@@ -227,7 +227,7 @@
- 
- /* number --> name */
- unsigned dev_to_tty(char *restrict ret, unsigned chop, dev_t dev_t_dev, int pid, unsigned int flags) {
--  static char buf[PAGE_SIZE];
-+  static char buf[4096];
-   char *restrict tmp = buf;
-   unsigned dev = dev_t_dev;
-   unsigned i = 0;
-@@ -249,7 +249,7 @@
-   if((flags&ABBREV_TTY) && !strncmp(tmp,"tty",  3) && tmp[3]) tmp += 3;
-   if((flags&ABBREV_PTS) && !strncmp(tmp,"pts/", 4) && tmp[4]) tmp += 4;
-   /* gotta check before we chop or we may chop someone else's memory */
--  if(chop + (unsigned long)(tmp-buf) <= sizeof buf)
-+  if(chop + (unsigned long)(tmp-buf) < sizeof buf)
-     tmp[chop] = '\0';
-   /* replace non-ASCII characters with '?' and return the number of chars */
-   for(;;){
diff --git a/recipes/procps/procps-3.2.7/install.patch b/recipes/procps/procps-3.2.7/install.patch
deleted file mode 100644
index 9f1ef69..0000000
--- a/recipes/procps/procps-3.2.7/install.patch
+++ /dev/null
@@ -1,27 +0,0 @@
---- procps-3.2.5.virgin/Makefile	2005-01-26 05:55:26.000000000 +0100
-+++ procps-3.2.5/Makefile	2005-08-03 04:55:26.346984488 +0200
-@@ -30,7 +30,10 @@
- install  := install -D --owner 0 --group 0
- 
- # Lame x86-64 /lib64 and /usr/lib64 abomination:
--lib64    := lib$(shell [ -d /lib64 ] && echo 64)
-+# lib64    := lib$(shell [ -d /lib64 ] && echo 64)
-+
-+# Equally lame hack to work around makefile lameness when the host arch is 64bit, but the target is not.
-+lib64      := lib
- 
- usr/bin                  := $(DESTDIR)/usr/bin/
- bin                      := $(DESTDIR)/bin/
-@@ -211,10 +214,10 @@
- ###### install
- 
- $(BINFILES) : all
--	$(install) --mode a=rx $(notdir $@) $@
-+	$(install) -m 555 $(notdir $@) $@
- 
- $(MANFILES) : all
--	$(install) --mode a=r $(notdir $@) $@
-+	$(install) -m 444 $(notdir $@) $@
- 
- install: $(filter-out $(SKIP) $(addprefix $(DESTDIR),$(SKIP)),$(INSTALL))
- 	cd $(usr/bin) && $(ln_f) skill snice
diff --git a/recipes/procps/procps-3.2.7/pagesz-not-constant.patch b/recipes/procps/procps-3.2.7/pagesz-not-constant.patch
deleted file mode 100644
index 8e9e1eb..0000000
--- a/recipes/procps/procps-3.2.7/pagesz-not-constant.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-Index: procps-3.2.1/proc/devname.c
-===================================================================
---- procps-3.2.1.orig/proc/devname.c	2004-03-18 05:43:50.000000000 +1100
-+++ procps-3.2.1/proc/devname.c	2005-04-02 10:40:17.462138000 +1000
-@@ -227,7 +227,7 @@
- 
- /* number --> name */
- unsigned dev_to_tty(char *restrict ret, unsigned chop, dev_t dev_t_dev, int pid, unsigned int flags) {
--  static char buf[PAGE_SIZE];
-+  static char buf[4096];
-   char *restrict tmp = buf;
-   unsigned dev = dev_t_dev;
-   unsigned i = 0;
-@@ -249,7 +249,7 @@
-   if((flags&ABBREV_TTY) && !strncmp(tmp,"tty",  3) && tmp[3]) tmp += 3;
-   if((flags&ABBREV_PTS) && !strncmp(tmp,"pts/", 4) && tmp[4]) tmp += 4;
-   /* gotta check before we chop or we may chop someone else's memory */
--  if(chop + (unsigned long)(tmp-buf) <= sizeof buf)
-+  if(chop + (unsigned long)(tmp-buf) < sizeof buf)
-     tmp[chop] = '\0';
-   /* replace non-ASCII characters with '?' and return the number of chars */
-   for(;;){
diff --git a/recipes/procps/procps-3.2.7/procmodule.patch b/recipes/procps/procps-3.2.7/procmodule.patch
deleted file mode 100644
index fabfaba..0000000
--- a/recipes/procps/procps-3.2.7/procmodule.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-*** procps-3.2.5/proc/module.mk.orig	Sun Jul 24 11:53:49 2005
---- procps-3.2.5/proc/module.mk	Sun Jul 24 11:54:32 2005
-***************
-*** 96,102 ****
-  #################### install rules ###########################
-  
-  $(lib)$(SOFILE) : proc/$(SONAME)
-! 	$(install) --mode a=rx $< $@
-  
-  ifneq ($(SOLINK),$(SOFILE))
-  .PHONY: $(lib)$(SOLINK)
---- 96,102 ----
-  #################### install rules ###########################
-  
-  $(lib)$(SOFILE) : proc/$(SONAME)
-! 	$(install) -m 555 $< $@
-  
-  ifneq ($(SOLINK),$(SOFILE))
-  .PHONY: $(lib)$(SOLINK)
-***************
-*** 115,121 ****
-  	$(ldconfig)
-  
-  $(usr/lib)$(ANAME) : proc/$(ANAME)
-! 	$(install) --mode a=r $< $@
-  
-  # Junk anyway... supposed to go in /usr/include/$(NAME)
-  #INSTALL += $(addprefix $(include),$(HDRFILES))
---- 115,121 ----
-  	$(ldconfig)
-  
-  $(usr/lib)$(ANAME) : proc/$(ANAME)
-! 	$(install) -m 444 $< $@
-  
-  # Junk anyway... supposed to go in /usr/include/$(NAME)
-  #INSTALL += $(addprefix $(include),$(HDRFILES))
diff --git a/recipes/procps/procps-3.2.7/psmodule.patch b/recipes/procps/procps-3.2.7/psmodule.patch
deleted file mode 100644
index f298c1c..0000000
--- a/recipes/procps/procps-3.2.7/psmodule.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-*** procps-3.2.5/ps/module.mk.orig	Sun Jul 24 11:54:40 2005
---- procps-3.2.5/ps/module.mk	Sun Jul 24 11:55:02 2005
-***************
-*** 33,40 ****
-  
-  
-  $(bin)ps: ps/ps
-! 	$(install) --mode a=rx $< $@
-  
-  $(man1)ps.1 : ps/ps.1
-! 	$(install) --mode a=r $< $@
-  	-rm -f $(DESTDIR)/var/catman/cat1/ps.1.gz $(DESTDIR)/var/man/cat1/ps.1.gz
---- 33,40 ----
-  
-  
-  $(bin)ps: ps/ps
-! 	$(install) -m 555 $< $@
-  
-  $(man1)ps.1 : ps/ps.1
-! 	$(install) -m 444 $< $@
-  	-rm -f $(DESTDIR)/var/catman/cat1/ps.1.gz $(DESTDIR)/var/man/cat1/ps.1.gz
diff --git a/recipes/procps/procps-3.2.5/install.patch b/recipes/procps/procps-3.2.8/install.patch
similarity index 100%
rename from recipes/procps/procps-3.2.5/install.patch
rename to recipes/procps/procps-3.2.8/install.patch
diff --git a/recipes/procps/procps-3.2.7/linux-limits.patch b/recipes/procps/procps-3.2.8/linux-limits.patch
similarity index 100%
rename from recipes/procps/procps-3.2.7/linux-limits.patch
rename to recipes/procps/procps-3.2.8/linux-limits.patch
diff --git a/recipes/procps/procps-3.2.1/pagesz-not-constant.patch b/recipes/procps/procps-3.2.8/pagesz-not-constant.patch
similarity index 100%
rename from recipes/procps/procps-3.2.1/pagesz-not-constant.patch
rename to recipes/procps/procps-3.2.8/pagesz-not-constant.patch
diff --git a/recipes/procps/procps-3.2.5/procmodule.patch b/recipes/procps/procps-3.2.8/procmodule.patch
similarity index 100%
rename from recipes/procps/procps-3.2.5/procmodule.patch
rename to recipes/procps/procps-3.2.8/procmodule.patch
diff --git a/recipes/procps/procps-3.2.7/procps.init b/recipes/procps/procps-3.2.8/procps.init
similarity index 100%
rename from recipes/procps/procps-3.2.7/procps.init
rename to recipes/procps/procps-3.2.8/procps.init
diff --git a/recipes/procps/procps-3.2.5/psmodule.patch b/recipes/procps/procps-3.2.8/psmodule.patch
similarity index 100%
rename from recipes/procps/procps-3.2.5/psmodule.patch
rename to recipes/procps/procps-3.2.8/psmodule.patch
diff --git a/recipes/procps/procps-3.2.7/sysctl.conf b/recipes/procps/procps-3.2.8/sysctl.conf
similarity index 100%
rename from recipes/procps/procps-3.2.7/sysctl.conf
rename to recipes/procps/procps-3.2.8/sysctl.conf
diff --git a/recipes/procps/procps.inc b/recipes/procps/procps.inc
index 2de32d2..1db030d 100644
--- a/recipes/procps/procps.inc
+++ b/recipes/procps/procps.inc
@@ -8,9 +8,64 @@ PRIORITY = "optional"
 LICENSE = "GPL"
 DEPENDS = "ncurses"
 
-FILES_${PN} += "${base_libdir}/libproc-*.so"
+INC_PR = "r9"
 
-SRC_URI = "http://procps.sourceforge.net/procps-${PV}.tar.gz \
+SRC_URI = "http://procps.sourceforge.net/procps-${PV}.tar.gz;name=tarball \
+	   file://sysctl.conf \
+	   file://procps.init \
            file://install.patch;patch=1"
 
-inherit autotools
+inherit autotools update-rc.d
+
+INITSCRIPT_NAME = "procps.sh"
+INITSCRIPT_PARAMS = "start 30 S ."
+
+FILES_${PN} += "${base_libdir}/libproc-*.so"
+
+FILES = "${bindir}/top.${PN} ${base_bindir}/ps.${PN} ${bindir}/uptime.${PN} ${base_bindir}/kill.${PN} \
+	 ${bindir}/free.${PN} ${bindir}/w ${bindir}/watch ${bindir}/pgrep ${bindir}/pmap ${bindir}/pwdx \
+	 ${bindir}/snice ${bindir}/vmstat ${bindir}/slabtop ${bindir}/pkill ${bindir}/skill ${bindir}/tload \
+	 ${base_sbindir}/sysctl.${PN}"
+
+CONFFILES_${PN} = "${sysconfdir}/sysctl.conf"
+
+EXTRA_OEMAKE = "CFLAGS=-I${STAGING_INCDIR} \
+                CPPFLAGS=-I${STAGING_INCDIR} \
+                LDFLAGS="${LDFLAGS}" \
+                CURSES=-lncurses \
+                install='install -D' \
+                ldconfig=echo"
+
+do_install_append () {
+	install -d ${D}${sysconfdir}/init.d
+	install -m 0644 ${WORKDIR}/sysctl.conf ${D}${sysconfdir}/sysctl.conf
+	install -m 0755 ${WORKDIR}/procps.init ${D}${sysconfdir}/init.d/procps.sh
+
+	mv ${D}${bindir}/uptime ${D}${bindir}/uptime.${PN}
+	mv ${D}${bindir}/top ${D}${bindir}/top.${PN}
+	mv ${D}${base_bindir}/kill ${D}${base_bindir}/kill.${PN}
+	mv ${D}${base_bindir}/ps ${D}${base_bindir}/ps.${PN}
+	mv ${D}${bindir}/free ${D}${bindir}/free.${PN}
+	mv ${D}${base_sbindir}/sysctl ${D}${base_sbindir}/sysctl.${PN}
+	mv ${D}${bindir}/pkill ${D}${bindir}/pkill.${PN}
+}
+
+pkg_postinst() {
+	update-alternatives --install ${bindir}/top top top.${PN} 90
+	update-alternatives --install ${bindir}/uptime uptime uptime.${PN} 90
+	update-alternatives --install ${base_bindir}/ps ps ps.${PN} 90
+	update-alternatives --install ${base_bindir}/kill kill kill.${PN} 90
+	update-alternatives --install ${bindir}/free free free.${PN} 90
+	update-alternatives --install ${base_sbindir}/sysctl sysctl sysctl.${PN} 90
+	update-alternatives --install ${bindir}/pkill pkill pkill.${PN} 90
+}
+
+pkg_postrm() {
+	update-alternatives --remove top top.${PN}
+	update-alternatives --remove ps ps.${PN}
+	update-alternatives --remove uptime uptime.${PN}
+	update-alternatives --remove kill kill.${PN}
+	update-alternatives --remove free free.${PN}
+	update-alternatives --remove sysctl sysctl.${PN}
+	update-alternatives --remove pkill pkill.${PN}
+}
diff --git a/recipes/procps/procps_3.1.15.bb b/recipes/procps/procps_3.1.15.bb
deleted file mode 100644
index 01114e8..0000000
--- a/recipes/procps/procps_3.1.15.bb
+++ /dev/null
@@ -1,9 +0,0 @@
-require procps.inc
-
-SRC_URI += "file://procps_${PV}-2.diff;patch=1"
-
-EXTRA_OEMAKE = "CFLAGS=-I${STAGING_INCDIR} \
-                LDFLAGS=-L${STAGING_LIBDIR} -Wl,--rpath-link,${STAGING_LIBDIR} \
-                CURSES=-lncurses \
-                install='install -D' \
-                ldconfig=echo"
diff --git a/recipes/procps/procps_3.2.1.bb b/recipes/procps/procps_3.2.1.bb
deleted file mode 100644
index 33df399..0000000
--- a/recipes/procps/procps_3.2.1.bb
+++ /dev/null
@@ -1,11 +0,0 @@
-require procps.inc
-
-PR = "r1"
-
-SRC_URI += "file://pagesz-not-constant.patch;patch=1"
-
-EXTRA_OEMAKE = "CFLAGS=-I${STAGING_INCDIR} \
-                LDFLAGS=-L${STAGING_LIBDIR} -Wl,--rpath-link,${STAGING_LIBDIR} \
-                CURSES=-lncurses \
-                install='install -D' \
-                ldconfig=echo"
diff --git a/recipes/procps/procps_3.2.5.bb b/recipes/procps/procps_3.2.5.bb
deleted file mode 100644
index de7524b..0000000
--- a/recipes/procps/procps_3.2.5.bb
+++ /dev/null
@@ -1,45 +0,0 @@
-require procps.inc
-
-PR = "r5"
-
-SRC_URI += "file://procmodule.patch;patch=1 \
-            file://psmodule.patch;patch=1"
-
-FILES = "${bindir}/top.${PN} ${base_bindir}/ps.${PN} ${bindir}/uptime.${PN} ${base_bindir}/kill.${PN} \
-	 ${bindir}/free.${PN} ${bindir}/w ${bindir}/watch ${bindir}/pgrep ${bindir}/pmap ${bindir}/pwdx \
-	 ${bindir}/snice ${bindir}/vmstat ${bindir}/slabtop ${bindir}/pkill ${bindir}/skill ${bindir}/tload \
-	 ${base_sbindir}/sysctl.${PN}"
-
-EXTRA_OEMAKE = "CFLAGS=-I${STAGING_INCDIR} \
-		CPPFLAGS=-I${STAGING_INCDIR} \
-                LDFLAGS=-L${STAGING_LIBDIR} -Wl,--rpath-link,${STAGING_LIBDIR} \
-                CURSES=-lncurses \
-                install='install -D' \
-                ldconfig=echo"
-
-do_install_append () {
-	mv ${D}${bindir}/uptime ${D}${bindir}/uptime.${PN}
-	mv ${D}${bindir}/top ${D}${bindir}/top.${PN}
-	mv ${D}${base_bindir}/kill ${D}${base_bindir}/kill.${PN}
-	mv ${D}${base_bindir}/ps ${D}${base_bindir}/ps.${PN}
-	mv ${D}${bindir}/free ${D}${bindir}/free.${PN}
-	mv ${D}${base_sbindir}/sysctl ${D}${base_sbindir}/sysctl.${PN}
-}
-
-pkg_postinst() {
-	update-alternatives --install ${bindir}/top top top.${PN} 90
-	update-alternatives --install ${bindir}/uptime uptime uptime.${PN} 90
-	update-alternatives --install ${base_bindir}/ps ps ps.${PN} 90
-	update-alternatives --install ${base_bindir}/kill kill kill.${PN} 90
-	update-alternatives --install ${bindir}/free free free.${PN} 90
-	update-alternatives --install ${base_sbindir}/sysctl sysctl sysctl.${PN} 90
-}
-
-pkg_postrm() {
-	update-alternatives --remove top top.${PN}
-	update-alternatives --remove ps ps.${PN}
-	update-alternatives --remove uptime uptime.${PN}
-	update-alternatives --remove kill kill.${PN}
-	update-alternatives --remove free free.${PN}
-	update-alternatives --remove sysctl sysctl.${PN}
-}
diff --git a/recipes/procps/procps_3.2.7.bb b/recipes/procps/procps_3.2.7.bb
deleted file mode 100644
index b31b683..0000000
--- a/recipes/procps/procps_3.2.7.bb
+++ /dev/null
@@ -1,67 +0,0 @@
-require procps.inc
-
-PR = "r9"
-
-inherit update-rc.d
-
-INITSCRIPT_NAME = "procps.sh"
-INITSCRIPT_PARAMS = "start 30 S ."
-
-SRC_URI += "file://procmodule.patch;patch=1 \
-            file://psmodule.patch;patch=1 \
-	    file://linux-limits.patch;patch=1 \
-	    file://sysctl.conf \
-	    file://procps.init \
-	    "
-
-FILES = "${bindir}/top.${PN} ${base_bindir}/ps.${PN} ${bindir}/uptime.${PN} ${base_bindir}/kill.${PN} \
-	 ${bindir}/free.${PN} ${bindir}/w ${bindir}/watch ${bindir}/pgrep ${bindir}/pmap ${bindir}/pwdx \
-	 ${bindir}/snice ${bindir}/vmstat ${bindir}/slabtop ${bindir}/pkill ${bindir}/skill ${bindir}/tload \
-	 ${base_sbindir}/sysctl.${PN}"
-
-CONFFILES_${PN} = "${sysconfdir}/sysctl.conf"
-
-EXTRA_OEMAKE = "CFLAGS=-I${STAGING_INCDIR} \
-                CPPFLAGS=-I${STAGING_INCDIR} \
-		usr/bin=${D}${bindir}/ \
-		bin=${D}${base_bindir}/ \
-		usr/proc/bin=${D}${bindir}/ \
-                LDFLAGS="${LDFLAGS}" \
-                CURSES=-lncurses \
-                install='install -D' \
-                ldconfig=echo"
-
-do_install_append () {
-	install -d ${D}${sysconfdir}
-	install -m 0644 ${WORKDIR}/sysctl.conf ${D}${sysconfdir}/sysctl.conf
-	install -d ${D}${sysconfdir}/init.d
-	install -m 0755 ${WORKDIR}/procps.init ${D}${sysconfdir}/init.d/procps.sh
-
-	mv ${D}${bindir}/uptime ${D}${bindir}/uptime.${PN}
-	mv ${D}${bindir}/top ${D}${bindir}/top.${PN}
-	mv ${D}${base_bindir}/kill ${D}${base_bindir}/kill.${PN}
-	mv ${D}${base_bindir}/ps ${D}${base_bindir}/ps.${PN}
-	mv ${D}${bindir}/free ${D}${bindir}/free.${PN}
-	mv ${D}${base_sbindir}/sysctl ${D}${base_sbindir}/sysctl.${PN}
-	mv ${D}${bindir}/pkill ${D}${bindir}/pkill.${PN}
-}
-
-pkg_postinst() {
-	update-alternatives --install ${bindir}/top top top.${PN} 90
-	update-alternatives --install ${bindir}/uptime uptime uptime.${PN} 90
-	update-alternatives --install ${base_bindir}/ps ps ps.${PN} 90
-	update-alternatives --install ${base_bindir}/kill kill kill.${PN} 90
-	update-alternatives --install ${bindir}/free free free.${PN} 90
-	update-alternatives --install ${base_sbindir}/sysctl sysctl sysctl.${PN} 90
-	update-alternatives --install ${bindir}/pkill pkill pkill.${PN} 90
-}
-
-pkg_postrm() {
-	update-alternatives --remove top top.${PN}
-	update-alternatives --remove ps ps.${PN}
-	update-alternatives --remove uptime uptime.${PN}
-	update-alternatives --remove kill kill.${PN}
-	update-alternatives --remove free free.${PN}
-	update-alternatives --remove sysctl sysctl.${PN}
-	update-alternatives --remove pkill pkill.${PN}
-}
diff --git a/recipes/procps/procps_3.2.8.bb b/recipes/procps/procps_3.2.8.bb
new file mode 100644
index 0000000..22f54c3
--- /dev/null
+++ b/recipes/procps/procps_3.2.8.bb
@@ -0,0 +1,11 @@
+require procps.inc
+
+PR = "${INC_PR}.0"
+
+SRC_URI += "file://procmodule.patch;patch=1 \
+            file://psmodule.patch;patch=1 \
+	    file://linux-limits.patch;patch=1 \
+	    "
+
+SRC_URI[tarball.md5sum] = "9532714b6846013ca9898984ba4cd7e0"
+SRC_URI[tarball.sha256sum] = "11ed68d8a4433b91cd833deb714a3aa849c02aea738c42e6b4557982419c1535"
-- 
1.7.0.2






^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH][STABLE] procps: apply patch from Ubuntu to finally get rid of 'Unknown Hz value'
  2010-03-22 11:05 [STABLE] procps update Marcin Juszkiewicz
                   ` (2 preceding siblings ...)
  2010-03-22 11:05 ` [PATCH][STABLE] procps: added 3.2.8 and dropped older Marcin Juszkiewicz
@ 2010-03-22 11:05 ` Marcin Juszkiewicz
  2010-03-22 12:34   ` Koen Kooi
  2010-03-23  1:59   ` Philip Balister
  3 siblings, 2 replies; 13+ messages in thread
From: Marcin Juszkiewicz @ 2010-03-22 11:05 UTC (permalink / raw)
  To: openembedded-devel

Signed-off-by: Marcin Juszkiewicz <marcin@juszkiewicz.com.pl>
---
 .../procps-3.2.8/60_linux_version_init.dpatch      |   61 ++++++++++++++++++++
 recipes/procps/procps_3.2.8.bb                     |    3 +-
 2 files changed, 63 insertions(+), 1 deletions(-)
 create mode 100644 recipes/procps/procps-3.2.8/60_linux_version_init.dpatch

diff --git a/recipes/procps/procps-3.2.8/60_linux_version_init.dpatch b/recipes/procps/procps-3.2.8/60_linux_version_init.dpatch
new file mode 100644
index 0000000..d99456a
--- /dev/null
+++ b/recipes/procps/procps-3.2.8/60_linux_version_init.dpatch
@@ -0,0 +1,61 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 60_linux_init.dpatch by  <david.sugar@canonical.com>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Fix Linux version detection which relied on elf loader side-effect.
+## DP: This patch also depends on 40_gnu-kbsd-version, which modified
+## DP: init_Linux_version().
+
+@DPATCH@
+---
+ proc/sysinfo.c |    1 +
+ proc/version.c |    5 +++--
+ proc/version.h |    1 +
+ 3 files changed, 5 insertions(+), 2 deletions(-)
+
+--- procps-3.2.8.orig/proc/sysinfo.c
++++ procps-3.2.8/proc/sysinfo.c
+@@ -210,10 +210,11 @@ static int check_for_privs(void){
+ }
+ 
+ static void init_libproc(void) __attribute__((constructor));
+ static void init_libproc(void){
+   have_privs = check_for_privs();
++  init_Linux_version(); // make sure we have version before continuing...
+   // ought to count CPUs in /proc/stat instead of relying
+   // on glibc, which foolishly tries to parse /proc/cpuinfo
+   //
+   // SourceForge has an old Alpha running Linux 2.2.20 that
+   // appears to have a non-SMP kernel on a 2-way SMP box.
+--- procps-3.2.8.orig/proc/version.c
++++ procps-3.2.8/proc/version.c
+@@ -31,12 +31,13 @@ void display_version(void) {
+ 
+ #define LINUX_VERSION(x,y,z)   (0x10000*(x) + 0x100*(y) + z)
+ 
+ int linux_version_code;
+ 
+-static void init_Linux_version(void) __attribute__((constructor));
+-static void init_Linux_version(void) {
++// cannot depend on this auto-running before libproc init...
++//static void init_Linux_version(void) __attribute__((constructor));
++void init_Linux_version(void) {
+     static struct utsname uts;
+     int x = 0, y = 0, z = 0;	/* cleared in case sscanf() < 3 */
+     
+     if (uname(&uts) == -1)	/* failure implies impending death */
+ 	exit(1);
+--- procps-3.2.8.orig/proc/version.h
++++ procps-3.2.8/proc/version.h
+@@ -12,10 +12,11 @@
+  * Copyright 2002 Albert Cahalan
+  */
+ 
+ EXTERN_C_BEGIN
+ 
++extern void init_Linux_version(void);	/* initialize linux version */
+ extern void display_version(void);	/* display suite version */
+ extern const char procps_version[];		/* global buf for suite version */
+ 
+ extern int linux_version_code;		/* runtime version of LINUX_VERSION_CODE
+ 					   in /usr/include/linux/version.h */
diff --git a/recipes/procps/procps_3.2.8.bb b/recipes/procps/procps_3.2.8.bb
index 22f54c3..f98b849 100644
--- a/recipes/procps/procps_3.2.8.bb
+++ b/recipes/procps/procps_3.2.8.bb
@@ -1,10 +1,11 @@
 require procps.inc
 
-PR = "${INC_PR}.0"
+PR = "${INC_PR}.1"
 
 SRC_URI += "file://procmodule.patch;patch=1 \
             file://psmodule.patch;patch=1 \
 	    file://linux-limits.patch;patch=1 \
+	    file://60_linux_version_init.dpatch;patch=1 \
 	    "
 
 SRC_URI[tarball.md5sum] = "9532714b6846013ca9898984ba4cd7e0"
-- 
1.7.0.2






^ permalink raw reply related	[flat|nested] 13+ messages in thread

* Re: [PATCH][STABLE] procps: adjust FILES so that libproc-*.so lands in ${PN}
  2010-03-22 11:05 ` [PATCH][STABLE] procps: adjust FILES so that libproc-*.so lands in ${PN} Marcin Juszkiewicz
@ 2010-03-22 12:33   ` Koen Kooi
  2010-03-23  1:58   ` Philip Balister
  1 sibling, 0 replies; 13+ messages in thread
From: Koen Kooi @ 2010-03-22 12:33 UTC (permalink / raw)
  To: openembedded-devel

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Acked-by: Koen Kooi <koen@openembedded.org>

On 22-03-10 12:05, Marcin Juszkiewicz wrote:
> From: Phil Blundell <philb@gnu.org>
> 
> ---
>  recipes/procps/procps.inc |    2 ++
>  1 files changed, 2 insertions(+), 0 deletions(-)
> 
> diff --git a/recipes/procps/procps.inc b/recipes/procps/procps.inc
> index ddc8030..2de32d2 100644
> --- a/recipes/procps/procps.inc
> +++ b/recipes/procps/procps.inc
> @@ -8,6 +8,8 @@ PRIORITY = "optional"
>  LICENSE = "GPL"
>  DEPENDS = "ncurses"
>  
> +FILES_${PN} += "${base_libdir}/libproc-*.so"
> +
>  SRC_URI = "http://procps.sourceforge.net/procps-${PV}.tar.gz \
>             file://install.patch;patch=1"
>  

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (Darwin)

iD8DBQFLp2OlMkyGM64RGpERAiRTAJ95iLgnvggk59onsoOVmobjt22HdACffhzR
HmHzHRBX9bsrInioMohGHso=
=ZYm+
-----END PGP SIGNATURE-----




^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH][STABLE] procps_3.2.7.bb: Fix compilation when usr/bin is same as /bin
  2010-03-22 11:05 ` [PATCH][STABLE] procps_3.2.7.bb: Fix compilation when usr/bin is same as /bin Marcin Juszkiewicz
@ 2010-03-22 12:33   ` Koen Kooi
  2010-03-23  1:58   ` Philip Balister
  1 sibling, 0 replies; 13+ messages in thread
From: Koen Kooi @ 2010-03-22 12:33 UTC (permalink / raw)
  To: openembedded-devel

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Acked-by: Koen Kooi <koen@openembedded.org>

On 22-03-10 12:05, Marcin Juszkiewicz wrote:
> From: Khem Raj <raj.khem@gmail.com>
> 
> * On DISTROs like micro where bindir and base_bindir are
>   same, procps does not compile because it wants to install
>   binaries in both places. We have to pass the variable to
>   make file since it does not use autotools.
> 
> Signed-off-by: Khem Raj <raj.khem@gmail.com>
> ---
>  recipes/procps/procps_3.2.7.bb |    5 ++++-
>  1 files changed, 4 insertions(+), 1 deletions(-)
> 
> diff --git a/recipes/procps/procps_3.2.7.bb b/recipes/procps/procps_3.2.7.bb
> index 6da975a..b31b683 100644
> --- a/recipes/procps/procps_3.2.7.bb
> +++ b/recipes/procps/procps_3.2.7.bb
> @@ -1,6 +1,6 @@
>  require procps.inc
>  
> -PR = "r8"
> +PR = "r9"
>  
>  inherit update-rc.d
>  
> @@ -23,6 +23,9 @@ CONFFILES_${PN} = "${sysconfdir}/sysctl.conf"
>  
>  EXTRA_OEMAKE = "CFLAGS=-I${STAGING_INCDIR} \
>                  CPPFLAGS=-I${STAGING_INCDIR} \
> +		usr/bin=${D}${bindir}/ \
> +		bin=${D}${base_bindir}/ \
> +		usr/proc/bin=${D}${bindir}/ \
>                  LDFLAGS="${LDFLAGS}" \
>                  CURSES=-lncurses \
>                  install='install -D' \

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (Darwin)

iD8DBQFLp2OuMkyGM64RGpERArDhAJ9VL4hiSYnMVZNdQ7uIY4uXlGBuLgCcC/lp
DEhNIWHzpVzpyR1CGEdfHPU=
=7o67
-----END PGP SIGNATURE-----




^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH][STABLE] procps: added 3.2.8 and dropped older
  2010-03-22 11:05 ` [PATCH][STABLE] procps: added 3.2.8 and dropped older Marcin Juszkiewicz
@ 2010-03-22 12:34   ` Koen Kooi
  2010-03-23  1:59   ` Philip Balister
  1 sibling, 0 replies; 13+ messages in thread
From: Koen Kooi @ 2010-03-22 12:34 UTC (permalink / raw)
  To: openembedded-devel

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Acked-by: Koen Kooi <koen@openembedded.org>

On 22-03-10 12:05, Marcin Juszkiewicz wrote:
> This version no longer complain about unknown Hz value during boot.
> 
> Signed-off-by: Marcin Juszkiewicz <marcin@juszkiewicz.com.pl>
> ---
>  recipes/procps/procps-3.1.15/install.patch         |   16 -
>  recipes/procps/procps-3.1.15/procps_3.1.15-2.diff  | 5133 --------------------
>  recipes/procps/procps-3.2.1/install.patch          |   16 -
>  .../procps/procps-3.2.5/pagesz-not-constant.patch  |   22 -
>  recipes/procps/procps-3.2.7/install.patch          |   27 -
>  .../procps/procps-3.2.7/pagesz-not-constant.patch  |   22 -
>  recipes/procps/procps-3.2.7/procmodule.patch       |   36 -
>  recipes/procps/procps-3.2.7/psmodule.patch         |   21 -
>  .../{procps-3.2.5 => procps-3.2.8}/install.patch   |    0
>  .../linux-limits.patch                             |    0
>  .../pagesz-not-constant.patch                      |    0
>  .../procmodule.patch                               |    0
>  .../{procps-3.2.7 => procps-3.2.8}/procps.init     |    0
>  .../{procps-3.2.5 => procps-3.2.8}/psmodule.patch  |    0
>  .../{procps-3.2.7 => procps-3.2.8}/sysctl.conf     |    0
>  recipes/procps/procps.inc                          |   61 +-
>  recipes/procps/procps_3.1.15.bb                    |    9 -
>  recipes/procps/procps_3.2.1.bb                     |   11 -
>  recipes/procps/procps_3.2.5.bb                     |   45 -
>  recipes/procps/procps_3.2.7.bb                     |   67 -
>  recipes/procps/procps_3.2.8.bb                     |   11 +
>  21 files changed, 69 insertions(+), 5428 deletions(-)
>  delete mode 100644 recipes/procps/procps-3.1.15/install.patch
>  delete mode 100644 recipes/procps/procps-3.1.15/procps_3.1.15-2.diff
>  delete mode 100644 recipes/procps/procps-3.2.1/install.patch
>  delete mode 100644 recipes/procps/procps-3.2.5/pagesz-not-constant.patch
>  delete mode 100644 recipes/procps/procps-3.2.7/install.patch
>  delete mode 100644 recipes/procps/procps-3.2.7/pagesz-not-constant.patch
>  delete mode 100644 recipes/procps/procps-3.2.7/procmodule.patch
>  delete mode 100644 recipes/procps/procps-3.2.7/psmodule.patch
>  rename recipes/procps/{procps-3.2.5 => procps-3.2.8}/install.patch (100%)
>  rename recipes/procps/{procps-3.2.7 => procps-3.2.8}/linux-limits.patch (100%)
>  rename recipes/procps/{procps-3.2.1 => procps-3.2.8}/pagesz-not-constant.patch (100%)
>  rename recipes/procps/{procps-3.2.5 => procps-3.2.8}/procmodule.patch (100%)
>  rename recipes/procps/{procps-3.2.7 => procps-3.2.8}/procps.init (100%)
>  rename recipes/procps/{procps-3.2.5 => procps-3.2.8}/psmodule.patch (100%)
>  rename recipes/procps/{procps-3.2.7 => procps-3.2.8}/sysctl.conf (100%)
>  delete mode 100644 recipes/procps/procps_3.1.15.bb
>  delete mode 100644 recipes/procps/procps_3.2.1.bb
>  delete mode 100644 recipes/procps/procps_3.2.5.bb
>  delete mode 100644 recipes/procps/procps_3.2.7.bb
>  create mode 100644 recipes/procps/procps_3.2.8.bb
> 
> diff --git a/recipes/procps/procps-3.1.15/install.patch b/recipes/procps/procps-3.1.15/install.patch
> deleted file mode 100644
> index 2d16c26..0000000
> --- a/recipes/procps/procps-3.1.15/install.patch
> +++ /dev/null
> @@ -1,16 +0,0 @@
> -
> -#
> -# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
> -#
> -
> ---- procps-3.1.15/Makefile~install	2003-12-24 03:01:55.000000000 +0100
> -+++ procps-3.1.15/Makefile	2004-02-11 00:45:59.000000000 +0100
> -@@ -147,7 +147,7 @@
> - ###### install
> - 
> - $(BINFILES) : all
> --	$(install) --mode a=rx --strip $(notdir $@) $@
> -+	$(install) --mode a=rx $(notdir $@) $@
> - 
> - $(MANFILES) : all
> - 	$(install) --mode a=r $(notdir $@) $@
> diff --git a/recipes/procps/procps-3.1.15/procps_3.1.15-2.diff b/recipes/procps/procps-3.1.15/procps_3.1.15-2.diff
> deleted file mode 100644
> index 438fd0f..0000000
> --- a/recipes/procps/procps-3.1.15/procps_3.1.15-2.diff
> +++ /dev/null
> @@ -1,5133 +0,0 @@
> ---- procps-3.1.15.orig/proc/library.map
> -+++ procps-3.1.15/proc/library.map
> -@@ -4,7 +4,7 @@
> - 
> -   readproc; readtask; readproctab; readproctab2; look_up_our_self; escape_command;
> -   escape_str; escape_strlist;
> --  openproc; closeproc;
> -+  openproc; closeproc; freeproc;
> -   tty_to_dev; dev_to_tty; open_psdb_message; open_psdb; wchan;
> -   display_version; procps_version; linux_version_code;
> -   Hertz; smp_num_cpus;
> ---- procps-3.1.15.orig/proc/readproc.c
> -+++ procps-3.1.15/proc/readproc.c
> -@@ -162,7 +162,7 @@
> -         // examine a field name (hash and compare)
> -     base:
> -         if(unlikely(!*S)) break;
> --        entry = table[63 & (asso[S[3]] + asso[S[2]] + asso[S[0]])];
> -+        entry = table[63 & (asso[(int)S[3]] + asso[(int)S[2]] + asso[(int)S[0]])];
> -         colon = strchr(S, ':');
> -         if(unlikely(!colon)) break;
> -         if(unlikely(colon[1]!='\t')) break;
> -@@ -888,6 +888,8 @@
> -     else
> - 	PT = openproc(flags);
> -     va_end(ap);
> -+    if (!PT)
> -+      return 0;
> -     do {					/* read table: */
> - 	tab = xrealloc(tab, (n+1)*sizeof(proc_t*));/* realloc as we go, using */
> - 	tab[n] = readproc_direct(PT, NULL);     /* final null to terminate */
> ---- procps-3.1.15.orig/proc/module.mk
> -+++ procps-3.1.15/proc/module.mk
> -@@ -3,7 +3,7 @@
> - # for lib$(NAME).so and /usr/include/($NAME) and such
> - NAME      :=  proc
> - 
> --SHARED := 1
> -+SHARED ?= 1
> - 
> - SONAME    :=  lib$(NAME).so.$(LIBVERSION)
> - 
> ---- procps-3.1.15.orig/debian/README.Debian
> -+++ procps-3.1.15/debian/README.Debian
> -@@ -0,0 +1,22 @@
> -+README for Debian package of procps
> -+===================================
> -+
> -+XConsole gone
> -+-------------
> -+ XConsole and other X-based programs have been finally removed.  Look in
> -+ the x packages for their equivalents.
> -+
> -+pgrep
> -+-----
> -+pgrep is a new program, using the Unix standard name for something that
> -+greps for processes.  If you are looking for Perl compatible regular
> -+expression grep, it is called pcregrep.
> -+
> -+forks
> -+-----
> -+Procps upstream is forked.  This one comes from procps.sf.net  I'm really
> -+not interested when the others have new versions so please don't bug me about
> -+it.  However if you see something neat in the others and would like it in
> -+the Debian one, report a *wishlist* level bug about it.
> -+
> -+ Craig Small <csmall@debian.org>
> ---- procps-3.1.15.orig/debian/copyright
> -+++ procps-3.1.15/debian/copyright
> -@@ -0,0 +1,27 @@
> -+This is the Debian Linux prepackaged version of the /proc file
> -+system utilities.
> -+
> -+This package was downloaded from:
> -+  http://procps.sourceforge.net/
> -+
> -+
> -+Upstream Authors:
> -+Werner Almesberger <almesber@di.epfl.ch>, Roger Binns, Charles
> -+Blake <cblake@ucsd.edu>, Brian Edmonds, David Engel <david@ods.com>,
> -+Larry Greenfield <greenfie@gauss.rutgers.edu>, Michael K. Johnson
> -+<johnsonm@sunsite.unc.edu>, Branko Lankester <lankeste@fwi.uva.nl>,
> -+Robert Nation <nation@rocket.sanders.lockheed.com>, Michael Shields
> -+<mjshield@nyx.cs.du.edu>, Henry Ware <al172@yfn.ysu.edu>, Matt
> -+Welsh <mdw@sunsite.unc.edu>, Albert D. Cahalan and Jim C. Warner
> -+<warnerjc@worldnet.att.net>
> -+
> -+All programs except ps, skill and snice are copyright by their
> -+authors and redistributable under the terms of the GNU General
> -+Public License. On Debian Linux systems, the complete text of
> -+the GNU General Public License can be found in
> -+`/usr/share/common-licenses/GPL'.
> -+
> -+ps, skill and snice are copyright by their authors and redistributable under 
> -+the terms of the GNU Library General Public License. On Debian Linux 
> -+systems, the complete text of the GNU Library General Public License can 
> -+be found in `/usr/share/common/licenses/LGPL'.
> ---- procps-3.1.15.orig/debian/dirs
> -+++ procps-3.1.15/debian/dirs
> -@@ -0,0 +1,12 @@
> -+etc
> -+lib
> -+sbin
> -+bin
> -+usr/bin
> -+usr/sbin
> -+usr/lib
> -+usr/include/proc
> -+usr/share/man/man1
> -+usr/share/man/man5
> -+usr/share/man/man8
> -+
> ---- procps-3.1.15.orig/debian/docs
> -+++ procps-3.1.15/debian/docs
> -@@ -0,0 +1,4 @@
> -+BUGS
> -+TODO
> -+README.top
> -+
> ---- procps-3.1.15.orig/debian/examples
> -+++ procps-3.1.15/debian/examples
> -@@ -0,0 +1,2 @@
> -+debian/sysctl.conf
> -+
> ---- procps-3.1.15.orig/debian/libproc-dev.dirs
> -+++ procps-3.1.15/debian/libproc-dev.dirs
> -@@ -0,0 +1,2 @@
> -+usr/lib
> -+usr/include/proc
> ---- procps-3.1.15.orig/debian/menu
> -+++ procps-3.1.15/debian/menu
> -@@ -0,0 +1 @@
> -+?package(procps):needs=text section="Apps/System" title="Top" command="/usr/bin/top" hints="Monitoring"
> ---- procps-3.1.15.orig/debian/postinst
> -+++ procps-3.1.15/debian/postinst
> -@@ -0,0 +1,74 @@
> -+#!/bin/sh
> -+# postinst script for procps
> -+#
> -+# see: dh_installdeb(1)
> -+
> -+set -e
> -+
> -+# summary of how this script can be called:
> -+#        * <postinst> `configure' <most-recently-configured-version>
> -+#        * <old-postinst> `abort-upgrade' <new version>
> -+#        * <conflictor's-postinst> `abort-remove' `in-favour' <package>
> -+#          <new-version>
> -+#        * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
> -+#          <failed-install-package> <version> `removing'
> -+#          <conflicting-package> <version>
> -+# for details, see http://www.debian.org/doc/debian-policy/ or
> -+# the debian-policy package
> -+#
> -+# quoting from the policy:
> -+#     Any necessary prompting should almost always be confined to the
> -+#     post-installation script, and should be protected with a conditional
> -+#     so that unnecessary prompting doesn't happen if a package's
> -+#     installation fails and the `postinst' is called with `abort-upgrade',
> -+#     `abort-remove' or `abort-deconfigure'.
> -+
> -+case "$1" in
> -+    configure)
> -+		if [ -e /etc/psdevtab ] ; then
> -+			rm -f /etc/psdevtab
> -+		fi
> -+		if [ -e /etc/psdatabase ] 
> -+		then
> -+			rm -f /etc/psdatabase
> -+		fi
> -+		# Remove old /etc/init.d/procps file, Bug #53818
> -+		if [ -e /etc/init.d/procps ]
> -+		then
> -+			rm -f /etc/init.d/procps
> -+		fi
> -+		# Remove old procps init.d script, if it exists Closes: #55137
> -+		if [ -e /etc/rcS.d/S30procps ]
> -+		then
> -+			update-rc.d procps remove >/dev/null
> -+		fi
> -+		# and if that didn't work Closes: #92184
> -+		if [ -e /etc/rcS.d/S30procps ]
> -+		then
> -+			rm -f /etc/rcS.d/S30procps
> -+		fi
> -+		#
> -+		# Now to do the alternatives for w and ps
> -+		update-alternatives --install /usr/bin/w w /usr/bin/w.procps 50 \
> -+			--slave /usr/share/man/man1/w.1.gz w.1.gz /usr/share/man/man1/w.procps.1.gz
> -+		
> -+    ;;
> -+
> -+    abort-upgrade|abort-remove|abort-deconfigure)
> -+
> -+    ;;
> -+
> -+    *)
> -+        echo "postinst called with unknown argument \`$1'" >&2
> -+        exit 1
> -+    ;;
> -+esac
> -+
> -+# dh_installdeb will replace this with shell code automatically
> -+# generated by other debhelper scripts.
> -+
> -+#DEBHELPER#
> -+
> -+exit 0
> -+
> -+
> ---- procps-3.1.15.orig/debian/prerm
> -+++ procps-3.1.15/debian/prerm
> -@@ -0,0 +1,11 @@
> -+#!/bin/sh
> -+
> -+if [ "$1" != "upgrade" ]
> -+then
> -+	update-alternatives --remove w /usr/bin/w.procps
> -+fi
> -+
> -+#DEBHELPER#
> -+
> -+exit 0
> -+
> ---- procps-3.1.15.orig/debian/sysctl.conf
> -+++ procps-3.1.15/debian/sysctl.conf
> -@@ -0,0 +1,6 @@
> -+#
> -+# /etc/sysctl.conf - Configuration file for setting system variables
> -+# See sysctl.conf (5) for information.
> -+#
> -+#kernel.domainname = example.com
> -+#net/ipv4/icmp_echo_ignore_broadcasts=1
> ---- procps-3.1.15.orig/debian/watch
> -+++ procps-3.1.15/debian/watch
> -@@ -0,0 +1,6 @@
> -+# Example watch control file for uscan
> -+# Rename this file to "watch" and then you can run the "uscan" command
> -+# to check for upstream updates and more.
> -+# Site		Directory		Pattern			Version	Script
> -+sunsite.unc.edu	/pub/Linux/Incoming	procps-*.tar.gz	debian	uupdate
> -+
> ---- procps-3.1.15.orig/debian/procps.sh
> -+++ procps-3.1.15/debian/procps.sh
> -@@ -0,0 +1,40 @@
> -+#! /bin/sh
> -+# /etc/init.d/procps: Set kernel variables from /etc/sysctl.conf
> -+#
> -+# written by Elrond <Elrond@Wunder-Nett.org>
> -+
> -+# Check for existance of the default file and exit if not there,
> -+# Closes #52839 for the boot-floppy people
> -+[ -r /etc/default/rcS ] || exit 0
> -+. /etc/default/rcS
> -+
> -+[ -x /sbin/sysctl ] || exit 0
> -+
> -+
> -+case "$1" in
> -+       start|reload|restart|force-reload)
> -+               if [ ! -r /etc/sysctl.conf ]
> -+               then
> -+                       exit 0
> -+               fi
> -+               if [ "$VERBOSE" = "no" ]
> -+               then
> -+                       n="-n"
> -+                       redir=">/dev/null"
> -+               else
> -+                       echo -n "Setting kernel variables."
> -+                       n=""
> -+                       redir=""
> -+               fi
> -+               eval "/sbin/sysctl $n -p $redir"
> -+			   echo "."
> -+               ;;
> -+       stop|show)
> -+               ;;
> -+       *)
> -+               echo "Usage: /etc/init.d/procps.sh {start|stop|reload|restart}" >&2
> -+               exit 1
> -+               ;;
> -+esac
> -+
> -+
> ---- procps-3.1.15.orig/debian/procps.manpages
> -+++ procps-3.1.15/debian/procps.manpages
> -@@ -0,0 +1 @@
> -+ps/ps.1
> ---- procps-3.1.15.orig/debian/compat
> -+++ procps-3.1.15/debian/compat
> -@@ -0,0 +1 @@
> -+4
> ---- procps-3.1.15.orig/debian/libproc-dev.files
> -+++ procps-3.1.15/debian/libproc-dev.files
> -@@ -0,0 +1,2 @@
> -+usr/include/proc/*.h
> -+lib/libproc.so
> ---- procps-3.1.15.orig/debian/libproc-dev.README
> -+++ procps-3.1.15/debian/libproc-dev.README
> -@@ -0,0 +1,12 @@
> -+README for libproc-dev
> -+======================
> -+
> -+This README is for people who want to use the libraries for their own
> -+programs.  If you just want to use procps tools you don't need to use this
> -+and you can probably remove libproc-dev too.
> -+
> -+It is generally a bad idea to dynamically link to libproc.  The API changes
> -+a fair bit and I cannot guarantee that it will stay the same between minor
> -+versions (though it will stay the same between Debian versions).  I've now
> -+re-included the libproc.a file so use that.
> -+
> ---- procps-3.1.15.orig/debian/patches/20_procps-fix+attr.dpatch
> -+++ procps-3.1.15/debian/patches/20_procps-fix+attr.dpatch
> -@@ -0,0 +1,55 @@
> -+#! /bin/sh -e
> -+## 20_procps-fix++attr by someone
> -+##
> -+## All lines beginning with `## DP:' are a description of the patch.
> -+## DP: SELINUX Attr value in /proc
> -+
> -+[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts
> -+patch_opts="${patch_opts:--f --no-backup-if-mismatch}"
> -+
> -+if [ $# -ne 1 ]; then
> -+    echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
> -+    exit 1
> -+fi
> -+case "$1" in
> -+       -patch) patch $patch_opts -p1 < $0;;
> -+       -unpatch) patch $patch_opts -p1 -R < $0;;
> -+        *)
> -+                echo >&2 "`basename $0`: script expects -patch|-unpatch as argum
> -+ent"
> -+                exit 1;;
> -+esac
> -+
> -+exit 0
> -+@DPATCH@
> -+diff -urN procps-3.1.15/ps/output.c procps-3.1.15.new/ps/output.c
> -+--- procps-3.1.15/ps/output.c	2003-12-23 19:46:32.000000000 -0600
> -++++ procps-3.1.15.new/ps/output.c	2003-12-24 13:31:16.000000000 -0600
> -+@@ -944,7 +944,7 @@
> -+ 
> -+ // wchan file is suitable for testing
> -+ //snprintf(filename, sizeof filename, "/proc/%d/task/%d/wchan", pp->tgid, pp->tid);
> -+-  snprintf(filename, sizeof filename, "/proc/%d/task/%d/attr/current", pp->tgid, pp->tid);
> -++  snprintf(filename, sizeof filename, "/proc/%d/attr/current", pp->tgid);
> -+ 
> -+   fd = open(filename, O_RDONLY, 0);
> -+   if(likely(fd==-1)) goto fail;
> -+diff -urN procps-3.1.15/ps/parser.c procps-3.1.15.new/ps/parser.c
> -+--- procps-3.1.15/ps/parser.c	2003-12-23 17:58:06.000000000 -0600
> -++++ procps-3.1.15.new/ps/parser.c	2003-12-24 13:45:08.000000000 -0600
> -+@@ -315,12 +315,10 @@
> -+       exclusive("-V");
> -+       display_version();
> -+       exit(0);
> -+-#if 0
> -+-    case 'Z':     /* full Mandatory Access Control level info */
> -+-      trace("-Z shows full MAC info\n");
> -+-      return "Don't understand MAC on Linux.";
> -++    case 'Z':
> -++      trace("-Z shows SELinux contexts\n");
> -++      format_flags |= FF_Fc;
> -+       break;
> -+-#endif
> -+     case 'a':
> -+       trace("-a select all with a tty, but omit session leaders.\n");
> -+       simple_select |= SS_U_a;
> ---- procps-3.1.15.orig/debian/patches/20_ps.1.dpatch
> -+++ procps-3.1.15/debian/patches/20_ps.1.dpatch
> -@@ -0,0 +1,376 @@
> -+#! /bin/sh -e
> -+## 20_ps.1.dpatch by Craig Small <csmall@debian.org>
> -+##
> -+## All lines beginning with `## DP:' are a description of the patch.
> -+## DP: Fix ps manual page
> -+
> -+[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts
> -+patch_opts="${patch_opts:--f --no-backup-if-mismatch}"
> -+
> -+if [ $# -ne 1 ]; then
> -+    echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
> -+    exit 1
> -+fi
> -+case "$1" in
> -+       -patch) patch $patch_opts -p1 < $0;;
> -+       -unpatch) patch $patch_opts -p1 -R < $0;;
> -+        *)
> -+                echo >&2 "`basename $0`: script expects -patch|-unpatch as argum
> -+ent"
> -+                exit 1;;
> -+esac
> -+
> -+exit 0
> -+@DPATCH@
> -+--- procps-3.1.15/ps/ps.1	2003-12-24 12:59:47.000000000 +1100
> -++++ procps-3.1.15.newps/ps.1	2003-12-26 18:05:01.000000000 +1100
> -+@@ -1,3 +1,5 @@
> -++'\" t
> -++.\" (The preceding line is a note to broken versions of man to tell
> -+ .\" Man page for ps.
> -+ .\" Quick hack conversion by Albert Cahalan, 1998.
> -+ .\" Licensed under version 2 of the Gnu General Public License.
> -+@@ -10,8 +12,8 @@
> -+ .\" invented this crap in 1973. Oh yeah, they did. Sorry.
> -+ .\"
> -+ .TH PS 1 "July 5, 1998" "Linux" "Linux User's Manual"
> -+-.SH \fRNAME\fR
> -+-ps \- report process status
> -++.SH NAME
> -++ps \- report a snapshot of the current processes.
> -+ .ad r
> -+ .na
> -+ .ss 12 0
> -+@@ -19,17 +21,17 @@
> -+ .nh
> -+ .nf
> -+ 
> -+-SYNOPSIS
> -++.SH SYNOPSIS
> -+ ps [options]
> -+ 
> -+ 
> -+-DESCRIPTION
> -++.SH DESCRIPTION
> -+ ps gives a snapshot of the current processes. If you want
> -+ a repetitive update of this status, use top. This man
> -+ page documents the /proc-based version of ps, or tries to.
> -+ 
> -+ 
> -+-COMMAND-LINE OPTIONS
> -++.SH "COMMAND-LINE OPTIONS"
> -+ 
> -+ This version of ps accepts several kinds of options.
> -+ 
> -+@@ -43,7 +45,9 @@
> -+ when options are preceeded by a dash. The PS_PERSONALITY environment
> -+ variable (described below) provides more detailed control of ps behavior.
> -+ 
> -+-SIMPLE PROCESS SELECTION
> -++.SH "SIMPLE PROCESS SELECTION"
> -++.TS
> -++l l.
> -+ -A           select all processes
> -+ -N           negate selection
> -+ -a           select all with a tty except session leaders
> -+@@ -55,8 +59,11 @@
> -+ r            restrict output to running processes
> -+ x            select processes without controlling ttys
> -+ --deselect   negate selection
> -++.TE
> -+ 
> -+-PROCESS SELECTION BY LIST
> -++.SH "PROCESS SELECTION BY LIST"
> -++.TS
> -++l l.
> -+ -C           select by command name
> -+ -G           select by RGID (supports names)
> -+ -U           select by RUID (supports names)
> -+@@ -78,8 +85,10 @@
> -+ --user       select by effective user name or ID
> -+ -123         implied --sid
> -+ 123          implied --pid
> -+-
> -+-OUTPUT FORMAT CONTROL
> -++.TE
> -++.SH "OUTPUT FORMAT CONTROL"
> -++.TS
> -++l l.
> -+ -O           is preloaded "-o"
> -+ -F           extra full format
> -+ -c           different scheduler info for -l option
> -+@@ -98,8 +107,10 @@
> -+ v            display virtual memory format
> -+ --format     user-defined format
> -+ --context    display security context format (NSA SELinux, etc.)
> -+-
> -+-OUTPUT MODIFIERS
> -++.TE
> -++.SH "OUTPUT MODIFIERS"
> -++.TS
> -++l l.
> -+ -H           show process hierarchy (forest)
> -+ -n           set namelist file
> -+ -w           wide output
> -+@@ -123,31 +134,40 @@
> -+ --rows       set screen height
> -+ --sort       specify sorting order
> -+ --width      set screen width
> -+-
> -+-THREAD DISPLAY
> -++.TE
> -++.SH "THREAD DISPLAY"
> -++.TS
> -++l l.
> -+ -L           show threads, possibly with LWP and NLWP columns
> -+ -T           show threads, possibly with SPID column
> -+ -m           show threads after processes
> -+ H            show threads as if they were processes
> -+ m            show threads after processes
> -++.TE
> -+ 
> -+-INFORMATION
> -++.SH INFORMATION
> -++
> -++.TS
> -++l l.
> -+ -V          print version
> -+ L           list all format specifiers
> -+ V           show version info
> -+ --help      print help message
> -+ --info      print debugging info
> -+ --version   print version
> -++.TE
> -++
> -++.SH OBSOLETE
> -+ 
> -+-OBSOLETE
> -++.TS
> -++l l.
> -+ A           increases the argument space (DecUnix)
> -+ M           use alternate core (try -n or N instead)
> -+ W           get swap info from ... not /dev/drum (try -n or N instead)
> -+ k           use /vmcore as c-dumpfile (try -n or N instead)
> -+-
> -+-
> -+-
> -+-NOTES
> -++.TE
> -++  
> -++.SH NOTES
> -+ 
> -+ User-defined format options ("o", "-o", "O", and "-O") offer
> -+ a way to specify individual output columns. Headers may be
> -+@@ -249,14 +269,17 @@
> -+ will be destroyed by init(8) if the parent process exits.
> -+ 
> -+ 
> -+-PROCESS FLAGS
> -+-
> -++.SH "PROCESS FLAGS"
> -++.TS
> -++l l l.
> -+ FORKNOEXEC   1    forked but didn't exec
> -+ SUPERPRIV    4    used super-user privileges
> -++.TE
> -+ 
> -++.SH "PROCESS STATE CODES"
> -+ 
> -+-PROCESS STATE CODES
> -+-
> -++.TS
> -++l l.
> -+ D uninterruptible sleep (usually IO)
> -+ R runnable (on run queue)
> -+ S sleeping
> -+@@ -264,23 +287,30 @@
> -+ W paging
> -+ X dead
> -+ Z a defunct ("zombie") process
> -++.TE
> -+ 
> -+ For BSD formats and when the "stat" keyword is used, additional
> -+ letters may be displayed:
> -+ 
> -+-W has no resident pages
> -+-< high-priority process
> -+-N low-priority task
> -+-L has pages locked into memory (for real-time and custom IO)
> -++.IP W
> -++has no resident pages
> -++.IP <
> -++high-priority process
> -++.IP N
> -++low-priority task
> -++.IP L
> -++has pages locked into memory (for real-time and custom IO)
> -+ 
> -+ 
> -+-SORT KEYS
> -++.SH "SORT KEYS"
> -+ 
> -+ Note that the values used in sorting are the internal values ps uses and not
> -+ the `cooked' values used in some of the output format fields. Pipe ps
> -+ output into the sort(1) command if you want to sort the cooked values.
> -+ 
> -+-KEY LONG       DESCRIPTION
> -++.TS
> -++l l l.
> -++\fBKEY LONG       DESCRIPTION\fR
> -+ c   cmd        simple name of executable
> -+ C   cmdline    full command line
> -+ f   flags      flags as in long format F field
> -+@@ -307,14 +337,15 @@
> -+ u   user       user name
> -+ v   vsize      total VM size in kB
> -+ y   priority   kernel scheduling priority
> -++.TE
> -+ 
> -+-
> -+-AIX FORMAT DESCRIPTORS
> -++.SH "AIX FORMAT DESCRIPTORS"
> -+ 
> -+ This ps supports AIX format descriptors, which work somewhat like the
> -+ formatting codes of printf(1) and printf(3). For example, the normal
> -+ default output can be produced with this:   ps -eo "%p %y %x %c"
> -+-
> -++.TS
> -++l l l.
> -+ CODE  NORMAL    HEADER
> -+ %C    pcpu      %CPU
> -+ %G    group     GROUP
> -+@@ -331,14 +362,16 @@
> -+ %x    time      TIME
> -+ %y    tty       TTY
> -+ %z    vsz       VSZ
> -++.TE
> -+ 
> -+-
> -+-STANDARD FORMAT SPECIFIERS
> -++.SH "STANDARD FORMAT SPECIFIERS"
> -+ 
> -+ These may be used to control both output format and sorting.
> -+ For example:  ps -eo pid,user,args --sort user
> -+ 
> -+-CODE         HEADER
> -++.TS
> -++l l.
> -++\fBCODE         HEADER\fR
> -+ %cpu         %CPU    
> -+ %mem         %MEM    
> -+ alarm        ALARM   
> -+@@ -459,25 +492,51 @@
> -+ vsize        VSZ     
> -+ vsz          VSZ     
> -+ wchan        WCHAN   
> -++.TE
> -+ 
> -++.SH "ENVIRONMENT VARIABLES"
> -+ 
> -+-
> -+-
> -+-ENVIRONMENT VARIABLES
> -+ The following environment variables could affect ps:
> -+-    COLUMNS             Override default display width.
> -+-    LINES               Override default display height.
> -+-    PS_PERSONALITY      Set to one of posix,old,linux,bsd,sun,digital...
> -+-    CMD_ENV             Set to one of posix,old,linux,bsd,sun,digital...
> -+-    I_WANT_A_BROKEN_PS  Force obsolete command line interpretation.
> -+-    LC_TIME             Date format.
> -+-    PS_COLORS           Not currently supported.
> -+-    PS_FORMAT           Default output format override.
> -+-    PS_SYSMAP           Default namelist (System.map) location.
> -+-    PS_SYSTEM_MAP       Default namelist (System.map) location.
> -+-    POSIXLY_CORRECT     Don't find excuses to ignore bad "features".
> -+-    UNIX95              Don't find excuses to ignore bad "features".
> -+-    _XPG                Cancel CMD_ENV=irix non-standard behavior.
> -++
> -++.TP 
> -++.B COLUMNS
> -++Override default display width.
> -++.TP
> -++.B LINES
> -++Override default display height.
> -++.TP
> -++.B PS_PERSONALITY
> -++Set to one of posix,old,linux,bsd,sun,digital...
> -++.TP
> -++.B CMD_ENV
> -++Set to one of posix,old,linux,bsd,sun,digital...
> -++.TP
> -++.B I_WANT_A_BROKEN_PS
> -++Force obsolete command line interpretation.
> -++.TP
> -++.B LC_TIME
> -++Date format.
> -++.TP
> -++.B PS_COLORS
> -++Not currently supported.
> -++.TP
> -++.B PS_FORMAT
> -++Default output format override.
> -++.TP
> -++.B PS_SYSMAP
> -++Default namelist (System.map) location.
> -++.TP
> -++.B PS_SYSTEM_MAP
> -++Default namelist (System.map) location.
> -++.TP
> -++.B POSIXLY_CORRECT
> -++Don't find excuses to ignore bad "features".
> -++.TP
> -++.B UNIX95
> -++Don't find excuses to ignore bad "features".
> -++.TP
> -++.B _XPG
> -++Cancel CMD_ENV=irix non-standard behavior.
> -+ 
> -+ In general, it is a bad idea to set these variables. The one exception
> -+ is CMD_ENV or PS_PERSONALITY, which could be set to Linux for normal
> -+@@ -485,7 +544,9 @@
> -+ of the Unix98 standard.
> -+ 
> -+ 
> -+-PERSONALITY
> -++.SH "PERSONALITY"
> -++.TS
> -++l l.
> -+     390      like the S/390 OpenEdition ps
> -+     aix      like AIX ps
> -+     bsd      like FreeBSD ps (totally non-standard)
> -+@@ -507,9 +568,9 @@
> -+     unix     standard
> -+     unix95   standard
> -+     unix98   standard
> -++.TE
> -+ 
> -+-
> -+-EXAMPLES
> -++.SH "EXAMPLES"
> -+ To see every process on the system using standard syntax:
> -+     ps -e
> -+ To see every process on the system using BSD syntax:
> -+@@ -523,13 +584,13 @@
> -+ Print only the process IDs of syslogd:
> -+     ps -C syslogd -o pid=
> -+ 
> -+-SEE ALSO
> -+-top(1) pgrep(1) pstree(1) proc(5)
> -++.SH "SEE ALSO"
> -++.BR top (1), pgrep (1), pstree (1),  proc (5).
> -+ 
> -+-STANDARDS
> -++.SH STANDARDS
> -+ This ps conforms to version 2 of the Single Unix Specification.
> -+ 
> -+-AUTHOR
> -++.SH AUTHOR
> -+ ps was originally written by Branko Lankester <lankeste@fwi.uva.nl>. Michael
> -+ K. Johnson <johnsonm@redhat.com> re-wrote it significantly to use the proc
> -+ filesystem, changing a few things in the process. Michael Shields
> -+@@ -541,4 +602,4 @@
> -+ <acahalan@cs.uml.edu> rewrote ps for full Unix98 and BSD support, along with
> -+ some ugly hacks for obsolete and foreign syntax.
> -+ 
> -+-Please send bug reports to <acahalan@cs.uml.edu>
> -++Please send bug reports to <procps-feedback@lists.sf.net>.
> ---- procps-3.1.15.orig/debian/patches/20_top_manpage.dpatch
> -+++ procps-3.1.15/debian/patches/20_top_manpage.dpatch
> -@@ -0,0 +1,384 @@
> -+#! /bin/sh -e
> -+## 20_top_manpage by Randy Hron
> -+##
> -+## All lines beginning with `## DP:' are a description of the patch.
> -+## DP: Fix bold in top manual page
> -+
> -+[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts
> -+patch_opts="${patch_opts:--f --no-backup-if-mismatch}"
> -+
> -+if [ $# -ne 1 ]; then
> -+    echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
> -+    exit 1
> -+fi
> -+case "$1" in
> -+       -patch) patch $patch_opts -p1 < $0;;
> -+       -unpatch) patch $patch_opts -p1 -R < $0;;
> -+        *)
> -+                echo >&2 "`basename $0`: script expects -patch|-unpatch as argum
> -+ent"
> -+                exit 1;;
> -+esac
> -+
> -+exit 0
> -+@DPATCH@
> -+--- procps/top.1.orig	2003-12-24 15:51:35.000000000 -0500
> -++++ procps/top.1	2003-12-24 18:57:14.564156176 -0500
> -+@@ -52,7 +52,7 @@
> -+ .ds CF configuration file
> -+ .ds CI interactive command
> -+ .ds CO command\-line option
> -+-.ds CW \'current' window
> -++.ds CW 'current' window
> -+ .ds FM full\-screen mode
> -+ .ds MP \fBphysical\fR memory
> -+ .ds MS \fBshared\fR memory
> -+@@ -370,7 +370,7 @@
> -+ The task's share of the elapsed \*(PU time since the last screen update, expressed
> -+ as a percentage of total \*(PU time.
> -+ In a true SMP environment, if 'Irix mode' is \*F, \*(Me will operate in
> -+-\'Solaris mode' where a task's \*(Pu usage will be divided by the total
> -++'Solaris mode' where a task's \*(Pu usage will be divided by the total
> -+ number of \*(PUs.
> -+ You toggle 'Irix/Solaris' modes with the 'I' \*(CI.
> -+ 
> -+@@ -498,7 +498,7 @@
> -+ .\" ......................................................................
> -+ .SS 2b. SELECTING and ORDERING Columns
> -+ .\" ----------------------------------------------------------------------
> -+-After pressing the \*(CIs 'f' (Fields select) or \'o' (Order fields) you will
> -++After pressing the \*(CIs 'f' (Fields select) or 'o' (Order fields) you will
> -+ be shown a screen containing the current \fBfields string\fR followed by names
> -+ and descriptions for all fields.
> -+ 
> -+@@ -574,7 +574,7 @@
> -+ see current status,
> -+ 
> -+ .TP 7
> -+-\ \ \'\fB?\fR\' or \'\fBh\fR\' :\fIHelp\fR
> -++\ \ \<\fB?\fR\> or \<\fBh\fR\> :\fIHelp\fR
> -+ There are two help levels available.
> -+ The first will provide a reminder of all the basic \*(CIs.
> -+ If \*(Me is\fI secured\fR, that screen will be abbreviated.
> -+@@ -583,7 +583,7 @@
> -+ applicable to \*(AM.
> -+ 
> -+ .TP 7
> -+-\ \ \'\fB=\fR\' :\fIExit_Task_Limits\fR
> -++\ \ \<\fB=\fR\> :\fIExit_Task_Limits\fR
> -+ Removes restrictions on which tasks are shown.
> -+ This command will reverse any 'i' (idle tasks) and 'n' (max tasks) commands
> -+ that might be active.
> -+@@ -593,13 +593,13 @@
> -+ When operating in \*(AM this command has a slightly broader meaning.
> -+ 
> -+ .TP 7
> -+-\ \ \'\fBA\fR\' :\fIAlternate_Display_Mode_toggle\fR
> -++\ \ \<\fBA\fR\> :\fIAlternate_Display_Mode_toggle\fR
> -+ This command will switch between \*(FM and \*(AM.
> -+-\*(XT 4. ALTERNATE\-DISPLAY Mode and the 'G' \*(CI for insight into
> -+-\*(CWs and field groups.
> -++\*(XT 4. ALTERNATE\-DISPLAY Mode and the 'G' \*(CI for insight
> -++into \*(CWs and field groups.
> -+ 
> -+ .TP 7
> -+-\ \ \'\fBB\fR\' :\fIBold_Disable/Enable_toggle\fR
> -++\ \ \<\fBB\fR\> :\fIBold_Disable/Enable_toggle\fR
> -+ This command will influence use of the 'bold' terminfo capability and
> -+ alters\fB both\fR the \*(SA and \*(TA for the \*(CW.
> -+ While it is intended primarily for use with dumb terminals, it can be
> -+@@ -611,7 +611,7 @@
> -+ there will be no visual confirmation that they are even on.
> -+ 
> -+ .TP 7
> -+-*\ \'\fBd\fR\' or \'\fBs\fR\' :\fIChange_Delay_Time_interval\fR
> -++*\ \<\fBd\fR\> or \<\fBs\fR\> :\fIChange_Delay_Time_interval\fR
> -+ You will be prompted to enter the delay time, in seconds, between
> -+ display updates.
> -+ 
> -+@@ -625,32 +625,32 @@
> -+ and view the system summary on the second line.
> -+ 
> -+ .TP 7
> -+-\ \ \'\fBG\fR\' :\fIChoose_Another_Window/Field_Group\fR
> -++\ \ \<\fBG\fR\> :\fIChoose_Another_Window/Field_Group\fR
> -+ You will be prompted to enter a number between 1 and 4 designating the
> -+ window/field group which should be made the \*(CW.
> -+ You will soon grow comfortable with these 4 windows, especially after
> -+ experimenting with \*(AM.
> -+ 
> -+ .TP 7
> -+-\ \ \'\fBI\fR\' :\fIIrix/Solaris_Mode_toggle\fR
> -++\ \ \<\fBI\fR\> :\fIIrix/Solaris_Mode_toggle\fR
> -+ When operating in 'Solaris mode' ('I' toggled \*F), a task's \*(Pu usage
> -+ will be divided by the total number of \*(PUs.
> -+ After issuing this command, you'll be informed of the new state of this toggle.
> -+ 
> -+ .TP 7
> -+-\ \ \'\fBu\fR\' :\fIselect a user\fR
> -++\ \ \<\fBu\fR\> :\fIselect a user\fR
> -+ You will be prompted for a UID or username. Only processes
> -+ belonging to the selected user will be displayed. This option
> -+ matches on the effective UID.
> -+ 
> -+ .TP 7
> -+-\ \ \'\fBU\fR\' :\fIselect a user\fR
> -++\ \ \<\fBU\fR\> :\fIselect a user\fR
> -+ You will be prompted for a UID or username. Only processes
> -+ belonging to the selected user will be displayed. This option
> -+ matches on the real, effective, saved, and filesystem UID.
> -+ 
> -+ .TP 7
> -+-*\ \'\fBk\fR\' :\fIKill_a_task\fR
> -++*\ \<\fBk\fR\> :\fIKill_a_task\fR
> -+ You will be prompted for a PID and then the signal to send.
> -+ The default signal, as reflected in the prompt, is SIGTERM.
> -+ However, you can send any signal, via number or name.
> -+@@ -661,24 +661,24 @@
> -+    2) at the signal prompt, type 0
> -+ 
> -+ .TP 7
> -+-\ \ \'\fBq\fR\' :\fIQuit\fR
> -++\ \ \<\fBq\fR\> :\fIQuit\fR
> -+ 
> -+ .TP 7
> -+-*\ \'\fBr\fR\' :\fIRenice_a_Task\fR
> -++*\ \<\fBr\fR\> :\fIRenice_a_Task\fR
> -+ You will be prompted for a PID and then the value to nice it to.
> -+ Entering a positive value will cause a process to lose priority.
> -+ Conversely, a negative value will cause a process to be viewed more
> -+ favorably by the kernel.
> -+ 
> -+ .TP 7
> -+-\ \ \'\fBW\fR\' :\fIWrite_the_Configuration_File\fR
> -++\ \ \<\fBW\fR\> :\fIWrite_the_Configuration_File\fR
> -+ This will save all of your options and toggles plus the current
> -+ display mode and delay time.
> -+ By issuing this command just before quitting \*(Me, you will be able restart
> -+ later in exactly that same state.
> -+ 
> -+ .TP 7
> -+-\ \ \'\fBZ\fR\' :\fIChange_Color_Mapping
> -++\ \ \<\fBZ\fR\> :\fIChange_Color_Mapping
> -+ This key will take you to a separate screen where you can change the
> -+ colors for the \*(CW, or for all windows.
> -+ For details regarding this \*(CI \*(Xt 3d. COLOR Mapping.
> -+@@ -694,25 +694,25 @@
> -+ of messages and prompts.
> -+ 
> -+ These commands always impact just the \*(CW/field group.
> -+-\*(XT 4. ALTERNATE\-DISPLAY Mode and the 'G' \*(CI for insight into
> -+-\*(CWs and field groups.
> -++\*(XT 4. ALTERNATE\-DISPLAY Mode and the 'G' \*(CI for insight
> -++into \*(CWs and field groups.
> -+ 
> -+ .TP 7
> -+-\ \ \'\fBl\fR\' :\fIToggle_Load_Average/Uptime\fR \*(EM On/Off
> -++\ \ \<\fBl\fR\> :\fIToggle_Load_Average/Uptime\fR \*(EM On/Off
> -+ This is also the line containing the program name (possibly an alias) when
> -+ operating in \*(FM or the \*(CW name when operating in \*(AM.
> -+ 
> -+ .TP 7
> -+-\ \ \'\fBm\fR\' :\fIToggle_Memory/Swap_Usage\fR \*(EM On/Off
> -++\ \ \<\fBm\fR\> :\fIToggle_Memory/Swap_Usage\fR \*(EM On/Off
> -+ This command affects two \*(SA lines.
> -+ 
> -+ .TP 7
> -+-\ \ \'\fBt\fR\' :\fIToggle_Task/Cpu_States\fR \*(EM On/Off
> -++\ \ \<\fBt\fR\> :\fIToggle_Task/Cpu_States\fR \*(EM On/Off
> -+ This command affects from 2 to many \*(SA lines, depending on the state
> -+ of the '1' toggle and whether or not \*(Me is running under true SMP.
> -+ 
> -+ .TP 7
> -+-\ \ \'\fB1\fR\' :\fIToggle_Single/Separate_Cpu_States\fR \*(EM On/Off
> -++\ \ \<\fB1\fR\> :\fIToggle_Single/Separate_Cpu_States\fR \*(EM On/Off
> -+ This command affects how the 't' command's Cpu States portion is shown.
> -+ Although this toggle exists primarily to serve massively-parallel SMP machines,
> -+ it is not restricted to solely SMP environments.
> -+@@ -744,12 +744,12 @@
> -+ .in
> -+ 
> -+ .TP 7
> -+-\ \ \'\fBb\fR\' :\fIBold/Reverse_toggle\fR
> -++\ \ \<\fBb\fR\> :\fIBold/Reverse_toggle\fR
> -+ This command will impact how the 'x' and 'y' toggles are displayed.
> -+ Further, it will only be available when at least one of those toggles is \*O.
> -+ 
> -+ .TP 7
> -+-\ \ \'\fBx\fR\' :\fIColumn_Highlight_toggle\fR
> -++\ \ \<\fBx\fR\> :\fIColumn_Highlight_toggle\fR
> -+ Changes highlighting for the current sort field.
> -+ You probably don't need a constant visual reminder of the sort field and
> -+ \*(Me hopes that you always run with 'column highlight' \*F, due to the cost
> -+@@ -759,7 +759,7 @@
> -+ visual reminder.
> -+ 
> -+ .TP 7
> -+-\ \ \'\fBy\fR\' :\fIRow_Highlight_toggle\fR
> -++\ \ \<\fBy\fR\> :\fIRow_Highlight_toggle\fR
> -+ Changes highlighting for "running" tasks.
> -+ For additional insight into this task state, \*(Xt 2a. DESCRIPTIONS of Fields,
> -+ Process Status.
> -+@@ -768,7 +768,7 @@
> -+ The only costs will be a few additional tty escape sequences.
> -+ 
> -+ .TP 7
> -+-\ \ \'\fBz\fR\' :\fIColor/Monochrome_toggle\fR
> -++\ \ \<\fBz\fR\> :\fIColor/Monochrome_toggle\fR
> -+ Switches the \*(CW between your last used color scheme and the older form
> -+ of black-on-white or white-on-black.
> -+ This command will alter\fB both\fR the \*(SA and \*(TA but does not affect the
> -+@@ -779,20 +779,20 @@
> -+ .B CONTENT\fR of \*(TW
> -+ .PD 0
> -+ .TP 7
> -+-\ \ \'\fBc\fR\' :\fICommand_Line/Program_Name_toggle\fR
> -++\ \ \<\fBc\fR\> :\fICommand_Line/Program_Name_toggle\fR
> -+ This command will be honored whether or not the 'Command' column
> -+ is currently visible.
> -+ Later, should that field come into view, the change you applied will be seen.
> -+ 
> -+ .TP 7
> -+-\ \ \'\fBf\fR\' and \'\fBo\fR\' :\fIFields_select\fR or \fIOrder_fields\fR
> -++\ \ \<\fBf\fR\> and \<\fBo\fR\> :\fIFields_select\fR or \fIOrder_fields\fR
> -+ These keys display separate screens where you can change which
> -+ fields are displayed and their order.
> -+ For additional information on these \*(CIs
> -+ \*(Xt 2b. SELECTING and ORDERING Columns.
> -+ 
> -+ .TP 7
> -+-\ \ \'\fBS\fR\' :\fICumulative_Time_Mode_toggle\fR
> -++\ \ \<\fBS\fR\> :\fICumulative_Time_Mode_toggle\fR
> -+ When 'Cumulative mode' is \*O, each process is listed with the \*(Pu
> -+ time that it and its dead children have used.
> -+ 
> -+@@ -808,7 +808,7 @@
> -+ effect, simply ask for help and view the window summary on the second line.
> -+ 
> -+ .TP 7
> -+-\ \ \'\fBu\fR\' :\fIShow_Specific_User_Only\fR
> -++\ \ \<\fBu\fR\> :\fIShow_Specific_User_Only\fR
> -+ You will be prompted to enter the name of the user to display.
> -+ Thereafter, in that \*(TW only matching User ID's will be shown, or possibly
> -+ no tasks will be shown.
> -+@@ -821,7 +821,7 @@
> -+ .B SIZE\fR of \*(TW
> -+ .PD 0
> -+ .TP 7
> -+-\ \ \'\fBi\fR\' :\fIIdle_Processes_toggle\fR
> -++\ \ \<\fBi\fR\> :\fIIdle_Processes_toggle\fR
> -+ Displays all tasks or just active tasks.
> -+ When this toggle is \*F, idled or zombied processes will not be displayed.
> -+ 
> -+@@ -829,7 +829,7 @@
> -+ affect the window's size, as all prior \*(TDs will have already been painted.
> -+ 
> -+ .TP 7
> -+-\ \ \'\fBn\fR\' or \'#\' :\fISet_Maximum_Tasks\fR
> -++\ \ \<\fBn\fR\> or \<\fB#\fR\> :\fISet_Maximum_Tasks\fR
> -+ You will be prompted to enter the number of tasks to display.
> -+ The lessor of your number and available screen rows will be used.
> -+ 
> -+@@ -868,12 +868,12 @@
> -+ .in
> -+ 
> -+ .TP 7
> -+-\ \ \'\fB<\fR\' :\fIMove_Sort_Field_Left\fR
> -++\ \ \<\fB<\fR\> :\fIMove_Sort_Field_Left\fR
> -+ Moves the sort column to the left unless the current sort field is
> -+ the first field being displayed.
> -+ 
> -+ .TP 7
> -+-\ \ \'\fB>\fR\' :\fIMove_Sort_Field_Right\fR
> -++\ \ \<\fB>\fR\> :\fIMove_Sort_Field_Right\fR
> -+ Moves the sort column to the right unless the current sort field is
> -+ the last field being displayed.
> -+ 
> -+@@ -884,7 +884,7 @@
> -+ .in
> -+ 
> -+ .TP 7
> -+-\ \ \'\fBF\fR\' or \'\fBO\fR\' :\fISelect_Sort_Field\fR
> -++\ \ \<\fBF\fR\> or \<\fBO\fR\> :\fISelect_Sort_Field\fR
> -+ These keys display a separate screen where you can change which field
> -+ is used as the sort column.
> -+ 
> -+@@ -897,7 +897,7 @@
> -+ when running \*(Me with column highlighting turned \*F.
> -+ 
> -+ .TP 7
> -+-\ \ \'\fBR\fR\' :\fIReverse/Normal_Sort_Field_toggle\fR
> -++\ \ \<\fBR\fR\> :\fIReverse/Normal_Sort_Field_toggle\fR
> -+ Using this \*(CI you can alternate between high-to-low and low-to-high sorts.
> -+ 
> -+ .PP
> -+@@ -974,7 +974,7 @@
> -+ .\" ......................................................................
> -+ .SS 4b. COMMANDS for Windows
> -+ .TP 7
> -+-\ \ \'\fB-\fR\' and \'\fB_\fR\' :\fIShow/Hide_Window(s)_toggles\fR
> -++\ \ \<\fB-\fR\> and \<\fB_\fR\> :\fIShow/Hide_Window(s)_toggles\fR
> -+ The '-' key turns the \*(CW's \*(TD \*O and \*F.
> -+ When \*O, that \*(TA will show a minimum of the columns header you've
> -+ established with the 'f' and 'o' commands.
> -+@@ -988,7 +988,7 @@
> -+ as the only display element.
> -+ 
> -+ .TP 7
> -+-*\ \'\fB=\fR\' and \'\fB+\fR\' :\fIEqualize_(re-balance)_Window(s)\fR
> -++*\ \<\fB=\fR\> and \<\fB+\fR\> :\fIEqualize_(re-balance)_Window(s)\fR
> -+ The '=' key forces the \*(CW's \*(TD to be visible.
> -+ It also reverses any 'i' (idle tasks) and 'n' (max tasks) commands that might
> -+ be active.
> -+@@ -999,7 +999,7 @@
> -+ except for the 'i' (idle tasks) and 'n' (max tasks) commands.
> -+ 
> -+ .TP 7
> -+-*\ \'\fBA\fR\' :\fIAlternate_Display_Mode_toggle\fR
> -++*\ \<\fBA\fR\> :\fIAlternate_Display_Mode_toggle\fR
> -+ This command will switch between \*(FM and \*(AM.
> -+ 
> -+ The first time you issue this command, all four \*(TDs will be shown.
> -+@@ -1007,7 +1007,7 @@
> -+ chosen to make visible.
> -+ 
> -+ .TP 7
> -+-*\ \'\fBa\fR\' and \'\fBw\fR\' :\fINext_Window_Forward/Backward\fR
> -++*\ \<\fBa\fR\> and \<\fBw\fR\> :\fINext_Window_Forward/Backward\fR
> -+ This will change the \*(CW, which in turn changes the window to which
> -+ commands are directed.
> -+ These keys act in a circular fashion so you can reach any desired \*(CW
> -+@@ -1018,7 +1018,7 @@
> -+ the \*(TD is \*F and many commands will be restricted.
> -+ 
> -+ .TP 7
> -+-*\ \'\fBG\fR\' :\fIChoose_Another_Window/Field_Group\fR
> -++*\ \<\fBG\fR\> :\fIChoose_Another_Window/Field_Group\fR
> -+ You will be prompted to enter a number between 1 and 4 designating the
> -+ window/field group which should be made the \*(CW.
> -+ 
> -+@@ -1027,15 +1027,15 @@
> -+ commands.
> -+ 
> -+ .TP 7
> -+-\ \ \'\fBg\fR\' :\fIChange_Window/Field_Group_Name\fR
> -++\ \ \<\fBg\fR\> :\fIChange_Window/Field_Group_Name\fR
> -+ You will be prompted for a new name to be applied to the \*(CW.
> -+ It does not require that the window name be visible
> -+ (the 'l' toggle to be \*O).
> -+ 
> -+ .IP "*" 3
> -+ The \*(CIs shown with an \*(AS have use beyond \*(AM.
> -+-    \'=', 'A', 'G'  are always available
> -+-    \'a', 'w'       act the same when color mapping
> -++    '=', 'A', 'G'  are always available
> -++    'a', 'w'       act the same when color mapping
> -+ 
> -+
> -+ .\" ----------------------------------------------------------------------
> -+
> -+
> -+
> -+
> -+
> -+
> ---- procps-3.1.15.orig/debian/patches/10_sysctl_quiet.dpatch
> -+++ procps-3.1.15/debian/patches/10_sysctl_quiet.dpatch
> -@@ -0,0 +1,119 @@
> -+#! /bin/sh -e
> -+## 10_sysctl_quiet by Simon Horman
> -+##
> -+## All lines beginning with `## DP:' are a description of the patch.
> -+## DP: Adds quiet -q flag to sysctl
> -+
> -+[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts
> -+patch_opts="${patch_opts:--f --no-backup-if-mismatch}"
> -+
> -+if [ $# -ne 1 ]; then
> -+    echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
> -+    exit 1
> -+fi
> -+case "$1" in
> -+       -patch) patch $patch_opts -p1 < $0;;
> -+       -unpatch) patch $patch_opts -p1 -R < $0;;
> -+        *)
> -+                echo >&2 "`basename $0`: script expects -patch|-unpatch as argum
> -+ent"
> -+                exit 1;;
> -+esac
> -+
> -+exit 0
> -+@DPATCH@
> -+diff -ru procps-3.1.8/sysctl.8 procps-3.1.8.new/sysctl.8
> -+--- procps-3.1.8/sysctl.8	2002-12-12 07:51:32.000000000 +0900
> -++++ procps-3.1.8.new/sysctl.8	2003-04-15 20:30:46.000000000 +0900
> -+@@ -12,9 +12,9 @@
> -+ .SH SYNOPSIS
> -+ .B "sysctl [-n] [-e] variable ..."
> -+ .br
> -+-.B "sysctl [-n] [-e] -w variable=value ..."
> -++.B "sysctl [-n] [-e] [-q] -w variable=value ..."
> -+ .br
> -+-.B "sysctl [-n] [-e] -p <filename>"
> -++.B "sysctl [-n] [-e] [-q] -p <filename>"
> -+ .br
> -+ .B "sysctl [-n] [-e] -a"
> -+ .br
> -+@@ -45,6 +45,9 @@
> -+ .B "-e"
> -+ Use this option to ignore errors about unknown keys.
> -+ .TP
> -++.B "-q"
> -++Use this option to not display the values set to stdout.
> -++.TP
> -+ .B "-w"
> -+ Use this option when you want to change a sysctl setting.
> -+ .TP
> -+diff -ru procps-3.1.8/sysctl.c procps-3.1.8.new/sysctl.c
> -+--- procps-3.1.8/sysctl.c	2002-12-29 08:26:50.000000000 +0900
> -++++ procps-3.1.8.new/sysctl.c	2003-04-15 20:35:08.000000000 +0900
> -+@@ -15,6 +15,8 @@
> -+  * Changelog:
> -+  *            v1.01:
> -+  *                   - added -p <preload> to preload values from a file
> -++ *            Horms: 
> -++ *                   - added -q to be quiet when modifying values
> -+  *
> -+  * Changes by Albert Cahalan, 2002.
> -+  */
> -+@@ -46,6 +48,7 @@
> -+ static bool PrintName;
> -+ static bool PrintNewline;
> -+ static bool IgnoreError;
> -++static bool Quiet;
> -+ 
> -+ /* error messages */
> -+ static const char ERR_UNKNOWN_PARAMETER[] = "error: Unknown parameter '%s'\n";
> -+@@ -80,9 +83,9 @@
> -+  */
> -+ static int Usage(const char *restrict const name) {
> -+    printf("usage:  %s [-n] [-e] variable ... \n"
> -+-          "        %s [-n] [-e] -w variable=value ... \n" 
> -++          "        %s [-n] [-e] [-q] -w variable=value ... \n" 
> -+           "        %s [-n] [-e] -a \n" 
> -+-          "        %s [-n] [-e] -p <file>   (default /etc/sysctl.conf) \n"
> -++          "        %s [-n] [-e] [-q] -p <file>   (default /etc/sysctl.conf) \n"
> -+           "        %s [-n] [-e] -A\n", name, name, name, name, name);
> -+    return -1;
> -+ }
> -+@@ -290,13 +293,14 @@
> -+       fprintf(fp, "%s\n", value);
> -+       fclose(fp);
> -+ 
> -+-      if (PrintName) {
> -++      if(Quiet) {
> -++	 ;
> -++      } else if (PrintName) {
> -+          fprintf(stdout, "%s = %s\n", outname, value);
> -++      } else if (PrintNewline) {
> -++         fprintf(stdout, "%s\n", value);
> -+       } else {
> -+-         if (PrintNewline)
> -+-            fprintf(stdout, "%s\n", value);
> -+-         else
> -+-            fprintf(stdout, "%s", value);
> -++         fprintf(stdout, "%s", value);
> -+       }
> -+    }
> -+ 
> -+@@ -377,6 +381,7 @@
> -+    PrintName = true;
> -+    PrintNewline = true;
> -+    IgnoreError = false;
> -++   Quiet = false;
> -+ 
> -+    if (argc < 2) {
> -+        return Usage(me);
> -+@@ -419,6 +424,9 @@
> -+                  preloadfile = *argv;
> -+               }
> -+               return Preload(preloadfile);
> -++	 case 'q':
> -++	      Quiet = true;
> -++	   break;
> -+          case 'a': /* string and integer values (for Linux, all of them) */
> -+          case 'A': /* the above, including "opaques" (would be unprintable) */
> -+          case 'X': /* the above, with opaques completly printed in hex */
> ---- procps-3.1.15.orig/debian/patches/00list
> -+++ procps-3.1.15/debian/patches/00list
> -@@ -0,0 +1,5 @@
> -+10_sysctl_quiet
> -+20_procps-fix+attr
> -+20_ps.1
> -+20_top_manpage
> -+30_remove_test_dir
> ---- procps-3.1.15.orig/debian/patches/30_remove_test_dir.dpatch
> -+++ procps-3.1.15/debian/patches/30_remove_test_dir.dpatch
> -@@ -0,0 +1,2911 @@
> -+#! /bin/sh -e
> -+## 30_remove_test-dir by Craif Small
> -+##
> -+## All lines beginning with `## DP:' are a description of the patch.
> -+## DP: Removing test directory
> -+[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts
> -+patch_opts="${patch_opts:--f --no-backup-if-mismatch}"
> -+
> -+if [ $# -ne 1 ]; then
> -+    echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
> -+    exit 1
> -+fi
> -+case "$1" in
> -+       -patch) patch $patch_opts -p1 < $0;;
> -+       -unpatch) patch $patch_opts -p1 -R < $0;;
> -+        *)
> -+                echo >&2 "`basename $0`: script expects -patch|-unpatch as argum
> -+ent"
> -+                exit 1;;
> -+esac
> -+
> -+exit 0
> -+@DPATCH@
> -+diff -ruN procps-3.1.15.old/test/clone-army.c procps-3.1.15/test/clone-army.c
> -+--- procps-3.1.15.old/test/clone-army.c	2003-10-05 04:46:34.000000000 +1000
> -++++ procps-3.1.15/test/clone-army.c	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,127 +0,0 @@
> -+-// ps fTo sess,pgid,pid,tty,ppid,tpgid,args -C a.out
> -+-
> -+-#include <sys/types.h>
> -+-#include <unistd.h>
> -+-#include <signal.h>
> -+-//#include <sys/stat.h>
> -+-//#include <fcntl.h>
> -+-//#include <stdlib.h>
> -+-#include <stdio.h>
> -+-#include <sched.h>
> -+-
> -+-#if 0
> -+-#define CLONE_VM             0x00000100 // set if VM shared between processes
> -+-#define CLONE_FS             0x00000200 // set if fs info shared between processes
> -+-#define CLONE_FILES          0x00000400 // set if open files shared between processes
> -+-#define CLONE_SIGHAND        0x00000800 // set if signal handlers and blocked signals shared
> -+-#define CLONE_IDLETASK       0x00001000 // set if new pid should be 0 (kernel only)*/
> -+-#define CLONE_PTRACE         0x00002000 // set if we want to let tracing continue on the child too
> -+-#define CLONE_VFORK          0x00004000 // set if the parent wants the child to wake it up on mm_release
> -+-#define CLONE_PARENT         0x00008000 // set if we want to have the same parent as the cloner
> -+-#define CLONE_THREAD         0x00010000 // Same thread group?
> -+-#define CLONE_NEWNS          0x00020000 // New namespace group?
> -+-#define CLONE_SYSVSEM        0x00040000 // share system V SEM_UNDO semantics
> -+-#define CLONE_SETTLS         0x00080000 // create a new TLS for the child
> -+-#define CLONE_PARENT_SETTID  0x00100000 // set the TID in the parent
> -+-#define CLONE_CHILD_CLEARTID 0x00200000 // clear the TID in the child
> -+-#define CLONE_DETACHED       0x00400000 // parent wants no child-exit signal
> -+-#define CLONE_UNTRACED       0x00800000 // set if the tracing process can't force CLONE_PTRACE on this clone
> -+-#define CLONE_CHILD_SETTID   0x01000000 // set the TID in the child
> -+-#define CLONE_STOPPED        0x02000000 // Start in stopped state
> -+-#endif
> -+-
> -+-#ifndef CLONE_THREAD
> -+-#define CLONE_THREAD         0x00010000
> -+-#endif
> -+-#ifndef CLONE_DETACHED
> -+-#define CLONE_DETACHED       0x00400000
> -+-#endif
> -+-
> -+-
> -+-// interesting: VM FS FILES SIGHAND PARENT THREAD SYSVSEM DETACHED
> -+-
> -+-//#define FLAGS (CLONE_PARENT|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_VM|CLONE_THREAD|CLONE_SYSVSEM)
> -+-#define FLAGS (CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_VM|CLONE_THREAD|CLONE_DETACHED)
> -+-
> -+-// Don't cause rejection: FS FILES SYSVSEM PARENT
> -+-// Do cause rejection:
> -+-
> -+-static void printflags(int pass, unsigned flags){
> -+-  printf(
> -+-    "%s %08x %s %s %s %s\n",
> -+-    pass?"pass":"FAIL",
> -+-    flags,
> -+-    (flags&CLONE_THREAD) ? "THREAD" : "______",
> -+-    (flags&CLONE_DETACHED) ? "DETACHED" : "________",
> -+-    (flags&CLONE_SIGHAND) ? "SIGHAND" : "_______",
> -+-    (flags&CLONE_SIGHAND) ? "VM" : "__"
> -+-  );
> -+-}
> -+-
> -+-static unsigned genflags(unsigned flags){
> -+-  return (
> -+-    (flags&0x08) ? 0 : CLONE_THREAD
> -+-    )|(
> -+-    (flags&0x04) ? 0 : CLONE_DETACHED
> -+-    )|(
> -+-    (flags&0x02) ? 0 : CLONE_SIGHAND
> -+-    )|(
> -+-    (flags&0x01) ? 0 : CLONE_VM
> -+-  );
> -+-}
> -+-
> -+-//static pid_t one;
> -+-
> -+-//static void die(int signo){
> -+-//  (void)signo;
> -+-//  _exit(0);
> -+-//}
> -+-
> -+-//static void sigchld_handler(int signo){
> -+-//  (void)signo;
> -+-//  kill(one,SIGHUP);          // kill parent
> -+-//}
> -+-
> -+-static int clone_fn(void *vp){
> -+-  for(;;) pause();
> -+-}
> -+-
> -+-static long clone_stack_data[2048];
> -+-#ifdef __hppa__
> -+-static long *clone_stack = &clone_stack_data[0];
> -+-#else
> -+-static long *clone_stack = &clone_stack_data[2048];
> -+-#endif
> -+-
> -+-int main(int argc, char *argv[]){
> -+-  unsigned u;
> -+-  pid_t minime;
> -+-  (void)argc;
> -+-  (void)argv;
> -+-
> -+-//  one = getpid();
> -+-//  signal(SIGHUP,die);
> -+-//  if(fork()) hang();    // parent later killed as readyness signal
> -+-
> -+-  u = 16;
> -+-
> -+-  while(u--){
> -+-    unsigned f = genflags(u);
> -+-    minime = clone(clone_fn, clone_stack, f, "arg");
> -+-
> -+-    printflags(minime!=-1, f);
> -+-//    if(minime==-1){
> -+-//      perror("no clone");
> -+-//      _exit(8);
> -+-//    }
> -+-
> -+-//    printf("%d begat %d\n",getpid(),minime);
> -+-  }
> -+-
> -+-
> -+-//  kill(one,SIGHUP); // let the shell know we're ready
> -+-
> -+-//  clone_fn();
> -+-
> -+-  return 0;
> -+-}
> -+diff -ruN procps-3.1.15.old/test/clone-once.c procps-3.1.15/test/clone-once.c
> -+--- procps-3.1.15.old/test/clone-once.c	2003-10-20 10:56:12.000000000 +1000
> -++++ procps-3.1.15/test/clone-once.c	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,97 +0,0 @@
> -+-#include <sys/types.h>
> -+-#include <unistd.h>
> -+-#include <signal.h>
> -+-//#include <sys/stat.h>
> -+-//#include <fcntl.h>
> -+-//#include <stdlib.h>
> -+-#include <stdio.h>
> -+-#include <sched.h>
> -+-
> -+-#if 0
> -+-#define CLONE_VM             0x00000100 // set if VM shared between processes
> -+-#define CLONE_FS             0x00000200 // set if fs info shared between processes
> -+-#define CLONE_FILES          0x00000400 // set if open files shared between processes
> -+-#define CLONE_SIGHAND        0x00000800 // set if signal handlers and blocked signals shared
> -+-#define CLONE_IDLETASK       0x00001000 // set if new pid should be 0 (kernel only)*/
> -+-#define CLONE_PTRACE         0x00002000 // set if we want to let tracing continue on the child too
> -+-#define CLONE_VFORK          0x00004000 // set if the parent wants the child to wake it up on mm_release
> -+-#define CLONE_PARENT         0x00008000 // set if we want to have the same parent as the cloner
> -+-#define CLONE_THREAD         0x00010000 // Same thread group?
> -+-#define CLONE_NEWNS          0x00020000 // New namespace group?
> -+-#define CLONE_SYSVSEM        0x00040000 // share system V SEM_UNDO semantics
> -+-#define CLONE_SETTLS         0x00080000 // create a new TLS for the child
> -+-#define CLONE_PARENT_SETTID  0x00100000 // set the TID in the parent
> -+-#define CLONE_CHILD_CLEARTID 0x00200000 // clear the TID in the child
> -+-#define CLONE_DETACHED       0x00400000 // parent wants no child-exit signal
> -+-#define CLONE_UNTRACED       0x00800000 // set if the tracing process can't force CLONE_PTRACE on this clone
> -+-#define CLONE_CHILD_SETTID   0x01000000 // set the TID in the child
> -+-#define CLONE_STOPPED        0x02000000 // Start in stopped state
> -+-#endif
> -+-
> -+-#ifndef CLONE_THREAD
> -+-#define CLONE_THREAD         0x00010000
> -+-#endif
> -+-#ifndef CLONE_DETACHED
> -+-#define CLONE_DETACHED       0x00400000
> -+-#endif
> -+-
> -+-//#define FLAGS (CLONE_PARENT|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_VM|CLONE_THREAD|CLONE_SYSVSEM)
> -+-#define FLAGS (CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_VM|CLONE_THREAD|CLONE_DETACHED)
> -+-
> -+-static pid_t one;
> -+-
> -+-static void die(int signo){
> -+-  (void)signo;
> -+-  _exit(0);
> -+-}
> -+-
> -+-//static void sigchld_handler(int signo){
> -+-//  (void)signo;
> -+-//  kill(one,SIGHUP);          // kill parent
> -+-//}
> -+-
> -+-static void hang(void){
> -+-  for(;;) pause();
> -+-}
> -+-
> -+-static int clone_fn(void *vp){
> -+-//  const char msg[] = "I think I'm a clone now!\n";
> -+-  (void)vp;
> -+-//  write(STDOUT_FILENO, msg, sizeof(msg)-1);
> -+-  hang();
> -+-  return 0; // keep gcc happy
> -+-}
> -+-
> -+-static long clone_stack_data[2048];
> -+-#ifdef __hppa__
> -+-static long *clone_stack = &clone_stack_data[0];
> -+-#else
> -+-static long *clone_stack = &clone_stack_data[2048];
> -+-#endif
> -+-
> -+-int main(int argc, char *argv[]){
> -+-  pid_t minime;
> -+-  (void)argc;
> -+-  (void)argv;
> -+-
> -+-  one = getpid();
> -+-  signal(SIGHUP,die);
> -+-  if(fork()) hang();    // parent later killed as readyness signal
> -+-
> -+-
> -+-  minime = clone(clone_fn, clone_stack, FLAGS, "arg");
> -+-
> -+-  if(minime==-1){
> -+-    perror("no clone");
> -+-    kill(one,SIGKILL);
> -+-    _exit(8);
> -+-  }
> -+-
> -+-//  printf("%d begat %d\n",getpid(),minime);
> -+-
> -+-  kill(one,SIGHUP); // let the shell know we're ready
> -+-
> -+-  hang();
> -+-
> -+-  return 0;
> -+-}
> -+diff -ruN procps-3.1.15.old/test/fork-you.c procps-3.1.15/test/fork-you.c
> -+--- procps-3.1.15.old/test/fork-you.c	2003-09-05 14:18:30.000000000 +1000
> -++++ procps-3.1.15/test/fork-you.c	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,27 +0,0 @@
> -+-#include <sys/types.h>
> -+-#include <unistd.h>
> -+-#include <signal.h>
> -+-
> -+-static void die(int signo){
> -+-  (void)signo;
> -+-  _exit(0);
> -+-}
> -+-
> -+-static void hang(void){
> -+-  for(;;) pause();
> -+-}
> -+-
> -+-int main(int argc, char *argv[]){
> -+-  pid_t pid;
> -+-
> -+-  (void)argv;
> -+-
> -+-  pid = getpid();
> -+-  signal(SIGHUP,die);
> -+-  if(fork()) hang();    // parent later killed as readyness signal
> -+-  kill(1,9);            // "kill" unkillable init to touch lib pages
> -+-  while(argc--) if(!fork()) hang();
> -+-  kill(pid,SIGHUP);          // kill parent
> -+-  hang();
> -+-  return 0;
> -+-}
> -+diff -ruN procps-3.1.15.old/test/funny-thing.c procps-3.1.15/test/funny-thing.c
> -+--- procps-3.1.15.old/test/funny-thing.c	2003-09-08 13:55:57.000000000 +1000
> -++++ procps-3.1.15/test/funny-thing.c	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,38 +0,0 @@
> -+-#include <sys/types.h>
> -+-#include <unistd.h>
> -+-#include <signal.h>
> -+-
> -+-static pid_t one;
> -+-
> -+-static void die(int signo){
> -+-  (void)signo;
> -+-  _exit(0);
> -+-}
> -+-
> -+-static void hang(void){
> -+-  for(;;) pause();
> -+-}
> -+-
> -+-int main(int argc, char *argv[]){
> -+-  (void)argc;
> -+-  (void)argv;
> -+-
> -+-  one = getpid();
> -+-  signal(SIGHUP,die);
> -+-  if(fork()) hang();    // parent later killed as readyness signal
> -+-
> -+-  // second one exits, to enable setsid(), and the resulting
> -+-  // zombie will be reaped by init after 1st process killed
> -+-  if(!fork()) _exit(0);
> -+-
> -+-  if(setsid()==-1){
> -+-    kill(one,SIGKILL); // hopefully the shell will complain
> -+-    _exit(42); // kind of tough to report errors
> -+-  }
> -+-
> -+-  kill(one,SIGHUP); // let the shell know we're ready
> -+-
> -+-  hang();
> -+-
> -+-  return 0;
> -+-}
> -+diff -ruN procps-3.1.15.old/test/gigabyte.c procps-3.1.15/test/gigabyte.c
> -+--- procps-3.1.15.old/test/gigabyte.c	2003-09-11 10:23:56.000000000 +1000
> -++++ procps-3.1.15/test/gigabyte.c	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,74 +0,0 @@
> -+-#include <sys/types.h>
> -+-#include <unistd.h>
> -+-#include <signal.h>
> -+-//#include <sys/ioctl.h>
> -+-//#include <sys/stat.h>
> -+-//#include <fcntl.h>
> -+-#include <stdio.h>
> -+-#include <sys/mman.h>
> -+-
> -+-static void die(int signo){
> -+-  (void)signo;
> -+-  _exit(0);
> -+-}
> -+-
> -+-static void hang(void){
> -+-  for(;;) pause();
> -+-}
> -+-
> -+-#ifndef MAP_NORESERVE
> -+-#define MAP_NORESERVE 0
> -+-#endif
> -+-
> -+-int main(int argc, char *argv[]){
> -+-  void *vp;
> -+-  pid_t pid;
> -+-  size_t length = 1024*1024*1024;
> -+-  unsigned maps;   // how many mappings to do
> -+-
> -+-  (void)argc;
> -+-  (void)argv;
> -+-
> -+-  if(sizeof(void*)==8){
> -+-    maps = 10;
> -+-    puts("64bit");
> -+-  }else{
> -+-    maps = 1;
> -+-    puts("32bit");
> -+-  }
> -+-  fflush(stdout);
> -+-
> -+-  pid = getpid();
> -+-  signal(SIGHUP,die);
> -+-  if(fork()) hang();    // parent later killed as readyness signal
> -+-
> -+-
> -+-  while(maps){
> -+-    vp = mmap(
> -+-      0,   // start
> -+-      length,
> -+-      PROT_READ|PROT_WRITE,
> -+-      MAP_PRIVATE|MAP_NORESERVE|MAP_ANONYMOUS,
> -+-      0,   // fd
> -+-      0    // offset
> -+-    );
> -+-    if(vp==MAP_FAILED){
> -+-      // try a smaller size; maybe fragmentation stopped us
> -+-      length /= 2;
> -+-      maps *= 2;
> -+-    }else{
> -+-      maps--;
> -+-    }
> -+-    if(maps>200 || length<2*1024*1024){
> -+-      kill(pid,SIGKILL); // hopefully the shell will complain
> -+-      _exit(88);
> -+-    }
> -+-  }
> -+-
> -+-  close(0);
> -+-  close(1);
> -+-  close(2);
> -+-  kill(pid,SIGHUP);          // kill parent
> -+-  hang();
> -+-  return 0;
> -+-}
> -+diff -ruN procps-3.1.15.old/test/got-no-tty.c procps-3.1.15/test/got-no-tty.c
> -+--- procps-3.1.15.old/test/got-no-tty.c	2003-09-05 14:17:57.000000000 +1000
> -++++ procps-3.1.15/test/got-no-tty.c	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,46 +0,0 @@
> -+-#include <sys/types.h>
> -+-#include <unistd.h>
> -+-#include <signal.h>
> -+-#include <sys/ioctl.h>
> -+-#include <sys/stat.h>
> -+-#include <fcntl.h>
> -+-#include <stdio.h>
> -+-
> -+-static void die(int signo){
> -+-  (void)signo;
> -+-  _exit(0);
> -+-}
> -+-
> -+-static void hang(void){
> -+-  for(;;) pause();
> -+-}
> -+-
> -+-int main(int argc, char *argv[]){
> -+-  int fd;
> -+-  pid_t pid;
> -+-
> -+-  (void)argc;
> -+-  (void)argv;
> -+-
> -+-  pid = getpid();
> -+-  signal(SIGHUP,die);
> -+-  if(fork()) hang();    // parent later killed as readyness signal
> -+-
> -+-
> -+-  // Use the TIOCNOTTY ioctl to detach from the tty
> -+-  // and, supposedly, set the process group ID to zero.
> -+-  // Reality: PGRP unchanged, TPGID becomes -1, TTY lost.
> -+-  fd = open("/dev/tty", O_RDONLY);
> -+-  if(!fd){
> -+-    perror("open /dev/tty");
> -+-    _exit(1);
> -+-  }
> -+-  if(ioctl(fd, TIOCNOTTY)==-1){
> -+-    perror("open /dev/tty");
> -+-    _exit(1);
> -+-  }
> -+-
> -+-  kill(pid,SIGHUP);          // kill parent
> -+-  hang();
> -+-  return 0;
> -+-}
> -+diff -ruN procps-3.1.15.old/test/mini-me.c procps-3.1.15/test/mini-me.c
> -+--- procps-3.1.15.old/test/mini-me.c	2003-09-22 05:50:38.000000000 +1000
> -++++ procps-3.1.15/test/mini-me.c	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,97 +0,0 @@
> -+-// ps fTo sess,pgid,pid,tty,ppid,tpgid,args -C a.out
> -+-
> -+-#include <sys/types.h>
> -+-#include <unistd.h>
> -+-#include <signal.h>
> -+-//#include <sys/stat.h>
> -+-//#include <fcntl.h>
> -+-//#include <stdlib.h>
> -+-#include <stdio.h>
> -+-#include <sched.h>
> -+-
> -+-#if 0
> -+-#define CLONE_VM             0x00000100 // set if VM shared between processes
> -+-#define CLONE_FS             0x00000200 // set if fs info shared between processes
> -+-#define CLONE_FILES          0x00000400 // set if open files shared between processes
> -+-#define CLONE_SIGHAND        0x00000800 // set if signal handlers and blocked signals shared
> -+-#define CLONE_IDLETASK       0x00001000 // set if new pid should be 0 (kernel only)*/
> -+-#define CLONE_PTRACE         0x00002000 // set if we want to let tracing continue on the child too
> -+-#define CLONE_VFORK          0x00004000 // set if the parent wants the child to wake it up on mm_release
> -+-#define CLONE_PARENT         0x00008000 // set if we want to have the same parent as the cloner
> -+-#define CLONE_THREAD         0x00010000 // Same thread group?
> -+-#define CLONE_NEWNS          0x00020000 // New namespace group?
> -+-#define CLONE_SYSVSEM        0x00040000 // share system V SEM_UNDO semantics
> -+-#define CLONE_SETTLS         0x00080000 // create a new TLS for the child
> -+-#define CLONE_PARENT_SETTID  0x00100000 // set the TID in the parent
> -+-#define CLONE_CHILD_CLEARTID 0x00200000 // clear the TID in the child
> -+-#define CLONE_DETACHED       0x00400000 // parent wants no child-exit signal
> -+-#define CLONE_UNTRACED       0x00800000 // set if the tracing process can't force CLONE_PTRACE on this clone
> -+-#define CLONE_CHILD_SETTID   0x01000000 // set the TID in the child
> -+-#define CLONE_STOPPED        0x02000000 // Start in stopped state
> -+-#endif
> -+-
> -+-#ifndef CLONE_THREAD
> -+-#define CLONE_THREAD         0x00010000
> -+-#endif
> -+-#ifndef CLONE_DETACHED
> -+-#define CLONE_DETACHED       0x00400000
> -+-#endif
> -+-
> -+-//#define FLAGS (CLONE_PARENT|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_VM|CLONE_THREAD|CLONE_SYSVSEM)
> -+-#define FLAGS (CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_VM|CLONE_THREAD|CLONE_DETACHED)
> -+-
> -+-//static pid_t one;
> -+-
> -+-//static void die(int signo){
> -+-//  (void)signo;
> -+-//  _exit(0);
> -+-//}
> -+-
> -+-//static void sigchld_handler(int signo){
> -+-//  (void)signo;
> -+-//  kill(one,SIGHUP);          // kill parent
> -+-//}
> -+-
> -+-static void hang(void){
> -+-  for(;;) pause();
> -+-}
> -+-
> -+-static int clone_fn(void *vp){
> -+-  const char msg[] = "I think I'm a clone now!\n";
> -+-  write(STDOUT_FILENO, msg, sizeof(msg)-1);
> -+-  hang();
> -+-}
> -+-
> -+-static long clone_stack_data[2048];
> -+-#ifdef __hppa__
> -+-static long *clone_stack = &clone_stack_data[0];
> -+-#else
> -+-static long *clone_stack = &clone_stack_data[2048];
> -+-#endif
> -+-
> -+-int main(int argc, char *argv[]){
> -+-  pid_t minime;
> -+-  (void)argc;
> -+-  (void)argv;
> -+-
> -+-//  one = getpid();
> -+-//  signal(SIGHUP,die);
> -+-//  if(fork()) hang();    // parent later killed as readyness signal
> -+-
> -+-
> -+-  minime = clone(clone_fn, clone_stack, FLAGS, "arg");
> -+-
> -+-  if(minime==-1){
> -+-//    kill(one,SIGKILL);
> -+-    perror("no clone");
> -+-    _exit(8);
> -+-  }
> -+-
> -+-  printf("%d begat %d\n",getpid(),minime);
> -+-
> -+-//  kill(one,SIGHUP); // let the shell know we're ready
> -+-
> -+-  hang();
> -+-
> -+-  return 0;
> -+-}
> -+diff -ruN procps-3.1.15.old/test/module.mk procps-3.1.15/test/module.mk
> -+--- procps-3.1.15.old/test/module.mk	2003-12-25 02:02:52.000000000 +1100
> -++++ procps-3.1.15/test/module.mk	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,36 +0,0 @@
> -+-# This file gets included into the main Makefile, in the top directory.
> -+-
> -+-#INSTALL += $(bin)test $(man1)test.1 -- some data dump thing maybe?
> -+-
> -+-# directories for cleaning
> -+-DIRS += test/ $(wildcard test/*/*/)
> -+-
> -+-TEST_C    := fork-you the_living_dead got-no-tty sidious sid-breaks-ttys \
> -+-             gigabyte mini-me funny-thing clone-army clone-once
> -+-TESTNAMES := $(addprefix test/,$(TEST_C))
> -+-TESTOBJ   := $(addsuffix .o,$(TESTNAMES))
> -+-TESTSRC   := $(addsuffix .c,$(TESTNAMES)) test/th.c
> -+-
> -+-# files to create
> -+-ALL += $(TESTNAMES)
> -+-
> -+-# files to remove
> -+-TEST_JUNK := stderr stdout header stderr.test stderr.good
> -+-CLEAN += $(addprefix test/,$(TEST_JUNK)) $(TESTNAMES) test/th $(wildcard test/*.tmp)
> -+-
> -+-TEST_X := module.mk script-child onetest runtests
> -+-TARFILES += $(TESTSRC) $(addprefix test/,$(TEST_X)) $(wildcard test/*/*)
> -+-
> -+-$(TESTNAMES): %: %.o
> -+-	$(CC) $(ALL_CFLAGS) $(ALL_LDFLAGS) -o $@ $^
> -+-
> -+-# add proc/$(SONAME) on the end later if needed
> -+-$(TESTOBJ): %.o: %.c
> -+-	$(CC) -c $(ALL_CPPFLAGS) $(ALL_CFLAGS) $< -o $@
> -+-
> -+-test/th: test/th.o
> -+-	$(CC) $(ALL_CFLAGS) $(ALL_LDFLAGS) -o $@ $^ -lpthread
> -+-
> -+-test/th.o: test/th.c
> -+-	$(CC) -c $(ALL_CPPFLAGS) $(ALL_CFLAGS) $< -o $@
> -+-
> -+diff -ruN procps-3.1.15.old/test/onetest procps-3.1.15/test/onetest
> -+--- procps-3.1.15.old/test/onetest	2003-12-25 02:02:08.000000000 +1100
> -++++ procps-3.1.15/test/onetest	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,70 +0,0 @@
> -+-#!/bin/bash
> -+-
> -+-unset I_WANT_A_BROKEN_PS
> -+-unset PS_PERSONALITY
> -+-unset CMD_ENV
> -+-unset PS_FORMAT
> -+-
> -+-export LANG=C
> -+-export LC_ALL=C
> -+-export TZ=GMT
> -+-
> -+-TESTNAME=$1
> -+-
> -+-# enlarge as needed in setup to avoid COMMAND becoming COMMA, etc.
> -+-export COLUMNS=111
> -+-
> -+-: ${LD_LIBRARY_PATH:=../proc}
> -+-: ${TESTME:=../ps/ps}
> -+-export LD_LIBRARY_PATH
> -+-export DYLD_LIBRARY_PATH=$LD_LIBRARY_PATH  # if ever a darwin port
> -+-
> -+-
> -+-
> -+-. $TESTNAME/setup
> -+-$TESTME $ARGS > stdout 2> stderr
> -+-RESULT=$?
> -+-if [ x$KILLFN == x1 ] ; then
> -+-  killfn
> -+-fi
> -+-
> -+-
> -+-
> -+-if [ x$RESULT != x$GOOD ] ; then
> -+-  echo FAIL $TESTNAME err-$RESULT
> -+-  exit 1
> -+-fi
> -+-
> -+-rm -f stderr.test ; touch stderr.test
> -+-if [ -f stderr ] ; then
> -+-  head -3 < stderr > stderr.test
> -+-fi
> -+-rm -f stderr.good ; touch stderr.good
> -+-if [ -f $TESTNAME/stderr ] ; then
> -+-  head -3 < $TESTNAME/stderr > stderr.good
> -+-fi
> -+-diff -Naurd stderr.test stderr.good >> /dev/null
> -+-if [ x$? != x0 ] ; then
> -+-  echo FAIL $TESTNAME wrong-stderr
> -+-  exit 1
> -+-fi
> -+-
> -+-if [ -f $TESTNAME/header ] ; then
> -+-  (printf ' ' ; head -1 stdout) | tr -s ' ' > header
> -+-  diff -Naurd header $TESTNAME/header >> /dev/null
> -+-  if [ x$? != x0 ] ; then
> -+-    echo FAIL $TESTNAME wrong-header
> -+-    exit 1
> -+-  fi
> -+-fi
> -+-
> -+-if [ x$EVALFN == x1 ] ; then
> -+-  evalfn
> -+-  if [ x$? != x0 ] ; then
> -+-    echo FAIL $TESTNAME eval-fn
> -+-    exit 1
> -+-  fi
> -+-fi
> -+-
> -+-echo pass $TESTNAME a-ok
> -+-exit 0
> -+diff -ruN procps-3.1.15.old/test/ps/LT-mix/header procps-3.1.15/test/ps/LT-mix/header
> -+--- procps-3.1.15.old/test/ps/LT-mix/header	2003-10-02 12:38:29.000000000 +1000
> -++++ procps-3.1.15/test/ps/LT-mix/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- 
> -+\ No newline at end of file
> -+diff -ruN procps-3.1.15.old/test/ps/LT-mix/setup procps-3.1.15/test/ps/LT-mix/setup
> -+--- procps-3.1.15.old/test/ps/LT-mix/setup	2003-10-02 12:39:40.000000000 +1000
> -++++ procps-3.1.15/test/ps/LT-mix/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,2 +0,0 @@
> -+-ARGS="-L -T"
> -+-GOOD=1
> -+diff -ruN procps-3.1.15.old/test/ps/LT-mix/stderr procps-3.1.15/test/ps/LT-mix/stderr
> -+--- procps-3.1.15.old/test/ps/LT-mix/stderr	2003-10-02 12:40:03.000000000 +1000
> -++++ procps-3.1.15/test/ps/LT-mix/stderr	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,23 +0,0 @@
> -+-ERROR: Thread flags conflict; can't use both -L and -T.
> -+-********* simple selection *********  ********* selection by list *********
> -+--A all processes                      -C by command name
> -+--N negate selection                   -G by real group ID (supports names)
> -+--a all w/ tty except session leaders  -U by real user ID (supports names)
> -+--d all except session leaders         -g by session leader OR by group name
> -+--e all processes                      -p by process ID
> -+-T  all processes on this terminal     -s processes in the sessions given
> -+-a  all w/ tty, including other users  -t by tty
> -+-g  all, even group leaders!           -u by effective user ID (supports names)
> -+-r  only running processes             U  processes for specified users
> -+-x  processes w/o controlling ttys     t  by tty
> -+-*********** output format **********  *********** long options ***********
> -+--o,o user-defined  -f full            --Group --User --pid --cols --ppid
> -+--j,j job control   s  signal          --group --user --sid --rows
> -+--O,O preloaded -o  v  virtual memory  --cumulative --format --deselect
> -+--l,l long          u  user-oriented   --sort --tty --forest --version
> -+--F   extra full    X  registers       --heading --no-heading
> -+-                    ********* misc options *********
> -+--V,V show version       L  list format codes  f  ASCII art forest
> -+--m,m show threads       S  children in sum    -y change -l format
> -+--n,N set namelist file  c  true command name  n  numeric WCHAN,UID
> -+--w,w wide output        e  show environment   -H process hierarchy
> -+diff -ruN procps-3.1.15.old/test/ps/O-O/header procps-3.1.15/test/ps/O-O/header
> -+--- procps-3.1.15.old/test/ps/O-O/header	2003-10-02 12:01:36.000000000 +1000
> -++++ procps-3.1.15/test/ps/O-O/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- 
> -+\ No newline at end of file
> -+diff -ruN procps-3.1.15.old/test/ps/O-O/setup procps-3.1.15/test/ps/O-O/setup
> -+--- procps-3.1.15.old/test/ps/O-O/setup	2003-10-02 12:02:01.000000000 +1000
> -++++ procps-3.1.15/test/ps/O-O/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,2 +0,0 @@
> -+-ARGS="-O wchan -O sess"
> -+-GOOD=1
> -+diff -ruN procps-3.1.15.old/test/ps/O-O/stderr procps-3.1.15/test/ps/O-O/stderr
> -+--- procps-3.1.15.old/test/ps/O-O/stderr	2003-10-02 12:05:19.000000000 +1000
> -++++ procps-3.1.15/test/ps/O-O/stderr	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,23 +0,0 @@
> -+-ERROR: option -O can not follow other format options.
> -+-********* simple selection *********  ********* selection by list *********
> -+--A all processes                      -C by command name
> -+--N negate selection                   -G by real group ID (supports names)
> -+--a all w/ tty except session leaders  -U by real user ID (supports names)
> -+--d all except session leaders         -g by session leader OR by group name
> -+--e all processes                      -p by process ID
> -+-T  all processes on this terminal     -s processes in the sessions given
> -+-a  all w/ tty, including other users  -t by tty
> -+-g  all, even group leaders!           -u by effective user ID (supports names)
> -+-r  only running processes             U  processes for specified users
> -+-x  processes w/o controlling ttys     t  by tty
> -+-*********** output format **********  *********** long options ***********
> -+--o,o user-defined  -f full            --Group --User --pid --cols --ppid
> -+--j,j job control   s  signal          --group --user --sid --rows
> -+--O,O preloaded -o  v  virtual memory  --cumulative --format --deselect
> -+--l,l long          u  user-oriented   --sort --tty --forest --version
> -+--F   extra full    X  registers       --heading --no-heading
> -+-                    ********* misc options *********
> -+--V,V show version       L  list format codes  f  ASCII art forest
> -+--m,m show threads       S  children in sum    -y change -l format
> -+--n,N set namelist file  c  true command name  n  numeric WCHAN,UID
> -+--w,w wide output        e  show environment   -H process hierarchy
> -+diff -ruN procps-3.1.15.old/test/ps/O-o/header procps-3.1.15/test/ps/O-o/header
> -+--- procps-3.1.15.old/test/ps/O-o/header	2003-10-02 12:06:18.000000000 +1000
> -++++ procps-3.1.15/test/ps/O-o/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- PID WCHAN S TTY TIME COMMAND SESS
> -+diff -ruN procps-3.1.15.old/test/ps/O-o/setup procps-3.1.15/test/ps/O-o/setup
> -+--- procps-3.1.15.old/test/ps/O-o/setup	2003-10-02 12:05:41.000000000 +1000
> -++++ procps-3.1.15/test/ps/O-o/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,2 +0,0 @@
> -+-ARGS="-O wchan -o sess"
> -+-GOOD=0
> -+diff -ruN procps-3.1.15.old/test/ps/aix-pcpu-header/header procps-3.1.15/test/ps/aix-pcpu-header/header
> -+--- procps-3.1.15.old/test/ps/aix-pcpu-header/header	2003-09-03 07:26:05.000000000 +1000
> -++++ procps-3.1.15/test/ps/aix-pcpu-header/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- %CPU
> -+diff -ruN procps-3.1.15.old/test/ps/aix-pcpu-header/setup procps-3.1.15/test/ps/aix-pcpu-header/setup
> -+--- procps-3.1.15.old/test/ps/aix-pcpu-header/setup	2003-09-03 07:24:28.000000000 +1000
> -++++ procps-3.1.15/test/ps/aix-pcpu-header/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,2 +0,0 @@
> -+-ARGS="-o %cpu"
> -+-GOOD=0
> -+diff -ruN procps-3.1.15.old/test/ps/aix-pcpu-header2/header procps-3.1.15/test/ps/aix-pcpu-header2/header
> -+--- procps-3.1.15.old/test/ps/aix-pcpu-header2/header	2003-09-03 07:26:30.000000000 +1000
> -++++ procps-3.1.15/test/ps/aix-pcpu-header2/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- COMMAND px
> -+diff -ruN procps-3.1.15.old/test/ps/aix-pcpu-header2/setup procps-3.1.15/test/ps/aix-pcpu-header2/setup
> -+--- procps-3.1.15.old/test/ps/aix-pcpu-header2/setup	2003-09-03 07:25:22.000000000 +1000
> -++++ procps-3.1.15/test/ps/aix-pcpu-header2/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,2 +0,0 @@
> -+-ARGS="-o %cpx"
> -+-GOOD=0
> -+diff -ruN procps-3.1.15.old/test/ps/bad-format-env/header procps-3.1.15/test/ps/bad-format-env/header
> -+--- procps-3.1.15.old/test/ps/bad-format-env/header	2003-10-02 12:16:37.000000000 +1000
> -++++ procps-3.1.15/test/ps/bad-format-env/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- PID TTY TIME CMD
> -+diff -ruN procps-3.1.15.old/test/ps/bad-format-env/setup procps-3.1.15/test/ps/bad-format-env/setup
> -+--- procps-3.1.15.old/test/ps/bad-format-env/setup	2003-10-02 12:16:22.000000000 +1000
> -++++ procps-3.1.15/test/ps/bad-format-env/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,3 +0,0 @@
> -+-ARGS=
> -+-GOOD=0
> -+-export PS_FORMAT=booger
> -+diff -ruN procps-3.1.15.old/test/ps/bad-format-env/stderr procps-3.1.15/test/ps/bad-format-env/stderr
> -+--- procps-3.1.15.old/test/ps/bad-format-env/stderr	2003-10-02 12:16:13.000000000 +1000
> -++++ procps-3.1.15/test/ps/bad-format-env/stderr	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+-Warning: $PS_FORMAT ignored. (Unknown user-defined format specifier "booger".)
> -+diff -ruN procps-3.1.15.old/test/ps/bogus-n-header/header procps-3.1.15/test/ps/bogus-n-header/header
> -+--- procps-3.1.15.old/test/ps/bogus-n-header/header	2003-09-02 09:37:07.000000000 +1000
> -++++ procps-3.1.15/test/ps/bogus-n-header/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- PID TTY STAT TIME COMMAND
> -+diff -ruN procps-3.1.15.old/test/ps/bogus-n-header/setup procps-3.1.15/test/ps/bogus-n-header/setup
> -+--- procps-3.1.15.old/test/ps/bogus-n-header/setup	2003-09-02 09:34:40.000000000 +1000
> -++++ procps-3.1.15/test/ps/bogus-n-header/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,2 +0,0 @@
> -+-ARGS="-n"
> -+-GOOD=0
> -+diff -ruN procps-3.1.15.old/test/ps/bogus-n-header/stderr procps-3.1.15/test/ps/bogus-n-header/stderr
> -+--- procps-3.1.15.old/test/ps/bogus-n-header/stderr	2003-09-02 09:35:37.000000000 +1000
> -++++ procps-3.1.15/test/ps/bogus-n-header/stderr	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+-Warning: bad syntax, perhaps a bogus '-'? See http://procps.sf.net/faq.html
> -+diff -ruN procps-3.1.15.old/test/ps/bsd-T/header procps-3.1.15/test/ps/bsd-T/header
> -+--- procps-3.1.15.old/test/ps/bsd-T/header	2003-09-02 11:54:41.000000000 +1000
> -++++ procps-3.1.15/test/ps/bsd-T/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- PID TTY STAT TIME COMMAND
> -+diff -ruN procps-3.1.15.old/test/ps/bsd-T/setup procps-3.1.15/test/ps/bsd-T/setup
> -+--- procps-3.1.15.old/test/ps/bsd-T/setup	2003-09-02 11:53:24.000000000 +1000
> -++++ procps-3.1.15/test/ps/bsd-T/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,11 +0,0 @@
> -+-ARGS=T
> -+-GOOD=0
> -+-EVALFN=1
> -+-
> -+-# default output is restricted to this tty
> -+-MYTTY=`tty`
> -+-
> -+-evalfn () {
> -+-  PSTTY=`awk '!/TTY/{print $2}' < stdout | uniq`
> -+-  [ /dev/$PSTTY == $MYTTY ]
> -+-}
> -+diff -ruN procps-3.1.15.old/test/ps/bsd-j-header/header procps-3.1.15/test/ps/bsd-j-header/header
> -+--- procps-3.1.15.old/test/ps/bsd-j-header/header	2003-09-02 22:33:49.000000000 +1000
> -++++ procps-3.1.15/test/ps/bsd-j-header/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- PPID PID PGID SID TTY TPGID STAT UID TIME COMMAND
> -+diff -ruN procps-3.1.15.old/test/ps/bsd-j-header/setup procps-3.1.15/test/ps/bsd-j-header/setup
> -+--- procps-3.1.15.old/test/ps/bsd-j-header/setup	2003-09-02 22:32:53.000000000 +1000
> -++++ procps-3.1.15/test/ps/bsd-j-header/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,2 +0,0 @@
> -+-ARGS="j"
> -+-GOOD=0
> -+diff -ruN procps-3.1.15.old/test/ps/bsd-j-header2/header procps-3.1.15/test/ps/bsd-j-header2/header
> -+--- procps-3.1.15.old/test/ps/bsd-j-header2/header	2003-09-02 23:16:25.000000000 +1000
> -++++ procps-3.1.15/test/ps/bsd-j-header2/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- USER PID PPID PGID SESS JOBC STAT TT TIME COMMAND
> -+diff -ruN procps-3.1.15.old/test/ps/bsd-j-header2/setup procps-3.1.15/test/ps/bsd-j-header2/setup
> -+--- procps-3.1.15.old/test/ps/bsd-j-header2/setup	2003-09-02 23:15:16.000000000 +1000
> -++++ procps-3.1.15/test/ps/bsd-j-header2/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,3 +0,0 @@
> -+-export CMD_ENV=bsd
> -+-ARGS="-j"
> -+-GOOD=0
> -+diff -ruN procps-3.1.15.old/test/ps/bsd-l-header/header procps-3.1.15/test/ps/bsd-l-header/header
> -+--- procps-3.1.15.old/test/ps/bsd-l-header/header	2003-09-02 22:54:09.000000000 +1000
> -++++ procps-3.1.15/test/ps/bsd-l-header/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- F UID PID PPID PRI NI VSZ RSS WCHAN STAT TTY TIME COMMAND
> -+diff -ruN procps-3.1.15.old/test/ps/bsd-l-header/setup procps-3.1.15/test/ps/bsd-l-header/setup
> -+--- procps-3.1.15.old/test/ps/bsd-l-header/setup	2003-09-02 22:53:45.000000000 +1000
> -++++ procps-3.1.15/test/ps/bsd-l-header/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,2 +0,0 @@
> -+-ARGS="l"
> -+-GOOD=0
> -+diff -ruN procps-3.1.15.old/test/ps/bsd-l-header2/header procps-3.1.15/test/ps/bsd-l-header2/header
> -+--- procps-3.1.15.old/test/ps/bsd-l-header2/header	2003-09-03 07:26:56.000000000 +1000
> -++++ procps-3.1.15/test/ps/bsd-l-header2/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- UID PID PPID CPU PRI NI VSZ RSS WCHAN STAT TT TIME COMMAND
> -+diff -ruN procps-3.1.15.old/test/ps/bsd-l-header2/setup procps-3.1.15/test/ps/bsd-l-header2/setup
> -+--- procps-3.1.15.old/test/ps/bsd-l-header2/setup	2003-09-03 07:21:19.000000000 +1000
> -++++ procps-3.1.15/test/ps/bsd-l-header2/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,3 +0,0 @@
> -+-export CMD_ENV=bsd
> -+-ARGS="-l"
> -+-GOOD=0
> -+diff -ruN procps-3.1.15.old/test/ps/bsd-s-header/header procps-3.1.15/test/ps/bsd-s-header/header
> -+--- procps-3.1.15.old/test/ps/bsd-s-header/header	2003-09-02 22:55:32.000000000 +1000
> -++++ procps-3.1.15/test/ps/bsd-s-header/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- UID PID PENDING BLOCKED IGNORED CAUGHT STAT TTY TIME COMMAND
> -+diff -ruN procps-3.1.15.old/test/ps/bsd-s-header/setup procps-3.1.15/test/ps/bsd-s-header/setup
> -+--- procps-3.1.15.old/test/ps/bsd-s-header/setup	2003-09-02 22:55:06.000000000 +1000
> -++++ procps-3.1.15/test/ps/bsd-s-header/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,2 +0,0 @@
> -+-ARGS="s"
> -+-GOOD=0
> -+diff -ruN procps-3.1.15.old/test/ps/bsd-s-header2/header procps-3.1.15/test/ps/bsd-s-header2/header
> -+--- procps-3.1.15.old/test/ps/bsd-s-header2/header	2003-09-03 07:21:33.000000000 +1000
> -++++ procps-3.1.15/test/ps/bsd-s-header2/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- UID PID PENDING BLOCKED IGNORED CAUGHT STAT TTY TIME COMMAND
> -+diff -ruN procps-3.1.15.old/test/ps/bsd-s-header2/setup procps-3.1.15/test/ps/bsd-s-header2/setup
> -+--- procps-3.1.15.old/test/ps/bsd-s-header2/setup	2003-09-03 07:21:40.000000000 +1000
> -++++ procps-3.1.15/test/ps/bsd-s-header2/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,3 +0,0 @@
> -+-export CMD_ENV=bsd
> -+-ARGS="-s"
> -+-GOOD=0
> -+diff -ruN procps-3.1.15.old/test/ps/bsd-selection/header procps-3.1.15/test/ps/bsd-selection/header
> -+--- procps-3.1.15.old/test/ps/bsd-selection/header	2003-09-04 16:04:27.000000000 +1000
> -++++ procps-3.1.15/test/ps/bsd-selection/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- PID TTY STAT TIME COMMAND
> -+diff -ruN procps-3.1.15.old/test/ps/bsd-selection/setup procps-3.1.15/test/ps/bsd-selection/setup
> -+--- procps-3.1.15.old/test/ps/bsd-selection/setup	2003-09-13 13:47:22.000000000 +1000
> -++++ procps-3.1.15/test/ps/bsd-selection/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,25 +0,0 @@
> -+-ARGS="m"
> -+-GOOD=0
> -+-EVALFN=1
> -+-KILLFN=1
> -+-
> -+-rm -f misc.tmp ready.tmp typescript.tmp
> -+-
> -+-./got-no-tty
> -+-# this'll do but... WHERE ARE THE MAN PAGES FOR PTY STUFF???
> -+-(SHELL=`pwd`/script-child script typescript.tmp &>/dev/null) &
> -+-while [ ! -f ready.tmp ] ; do sleep 0.01 ; done
> -+-. ready.tmp
> -+-
> -+-evalfn () {
> -+-   THIS_TTY=`tty | colrm 1 5`
> -+-   lines2=`awk '{print $2}' < stdout | sort -u | egrep "^($SHELL_TTY|$THIS_TTY)$"   | wc -l`
> -+-   lines3=`awk '{print $2}' < stdout | sort -u | egrep "^($SHELL_TTY|$THIS_TTY|\?)$" | wc -l`
> -+-   [ $lines2 == 2 ] && [ $lines3 == 2 ]
> -+-}
> -+-
> -+-killfn () {
> -+-  killall -9 got-no-tty
> -+-  kill -9 $SHELL_PID  # the others should freely die
> -+-  rm -f misc.tmp ready.tmp typescript.tmp
> -+-}
> -+diff -ruN procps-3.1.15.old/test/ps/bsd-t-1/header procps-3.1.15/test/ps/bsd-t-1/header
> -+--- procps-3.1.15.old/test/ps/bsd-t-1/header	2003-09-02 11:55:23.000000000 +1000
> -++++ procps-3.1.15/test/ps/bsd-t-1/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- PID TTY STAT TIME COMMAND
> -+diff -ruN procps-3.1.15.old/test/ps/bsd-t-1/setup procps-3.1.15/test/ps/bsd-t-1/setup
> -+--- procps-3.1.15.old/test/ps/bsd-t-1/setup	2003-09-02 11:56:11.000000000 +1000
> -++++ procps-3.1.15/test/ps/bsd-t-1/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,11 +0,0 @@
> -+-# default output is restricted to this tty
> -+-MYTTY=`tty`
> -+-
> -+-ARGS=t$MYTTY
> -+-GOOD=0
> -+-EVALFN=1
> -+-
> -+-evalfn () {
> -+-  PSTTY=`awk '!/TTY/{print $2}' < stdout | uniq`
> -+-  [ /dev/$PSTTY == $MYTTY ]
> -+-}
> -+diff -ruN procps-3.1.15.old/test/ps/bsd-t-2/header procps-3.1.15/test/ps/bsd-t-2/header
> -+--- procps-3.1.15.old/test/ps/bsd-t-2/header	2003-09-02 11:55:26.000000000 +1000
> -++++ procps-3.1.15/test/ps/bsd-t-2/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- PID TTY STAT TIME COMMAND
> -+diff -ruN procps-3.1.15.old/test/ps/bsd-t-2/setup procps-3.1.15/test/ps/bsd-t-2/setup
> -+--- procps-3.1.15.old/test/ps/bsd-t-2/setup	2003-09-02 11:56:54.000000000 +1000
> -++++ procps-3.1.15/test/ps/bsd-t-2/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,12 +0,0 @@
> -+-# Ancient usage: t w/o arg is current tty
> -+-ARGS=t
> -+-GOOD=0
> -+-EVALFN=1
> -+-
> -+-# default output is restricted to this tty
> -+-MYTTY=`tty`
> -+-
> -+-evalfn () {
> -+-  PSTTY=`awk '!/TTY/{print $2}' < stdout | uniq`
> -+-  [ /dev/$PSTTY == $MYTTY ]
> -+-}
> -+diff -ruN procps-3.1.15.old/test/ps/bsd-t-3/header procps-3.1.15/test/ps/bsd-t-3/header
> -+--- procps-3.1.15.old/test/ps/bsd-t-3/header	2003-09-02 11:55:27.000000000 +1000
> -++++ procps-3.1.15/test/ps/bsd-t-3/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- PID TTY STAT TIME COMMAND
> -+diff -ruN procps-3.1.15.old/test/ps/bsd-t-3/setup procps-3.1.15/test/ps/bsd-t-3/setup
> -+--- procps-3.1.15.old/test/ps/bsd-t-3/setup	2003-09-02 12:25:44.000000000 +1000
> -++++ procps-3.1.15/test/ps/bsd-t-3/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,19 +0,0 @@
> -+-MYTTY=`tty`
> -+-
> -+-# two ways to interpret "ps t 42"
> -+-#
> -+-# 1. as "ps t" with "ps 42"  (PID 42)
> -+-# 2. as "ps t42" (tty /dev/tty42)
> -+-#
> -+-# The command doesn't seem to be legal BSD syntax, but we try...
> -+-# We use interpretation #2, since BSD isn't known for ORing.
> -+-# We'll assume PID 1 is "init" and not on /dev/tty1, and that
> -+-# nothing on tty1 is named "init".
> -+-
> -+-ARGS="t 1"
> -+-GOOD=0
> -+-EVALFN=1
> -+-
> -+-evalfn () {
> -+-  ! egrep ' init' stdout >> /dev/null
> -+-}
> -+diff -ruN procps-3.1.15.old/test/ps/bsd-t-4/header procps-3.1.15/test/ps/bsd-t-4/header
> -+--- procps-3.1.15.old/test/ps/bsd-t-4/header	2003-09-02 11:55:29.000000000 +1000
> -++++ procps-3.1.15/test/ps/bsd-t-4/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- PID TTY STAT TIME COMMAND
> -+diff -ruN procps-3.1.15.old/test/ps/bsd-t-4/setup procps-3.1.15/test/ps/bsd-t-4/setup
> -+--- procps-3.1.15.old/test/ps/bsd-t-4/setup	2003-09-02 12:15:34.000000000 +1000
> -++++ procps-3.1.15/test/ps/bsd-t-4/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,10 +0,0 @@
> -+-ARGS=t-
> -+-GOOD=0
> -+-EVALFN=1
> -+-
> -+-# Use 'Y' to avoid shell wildcard problems.
> -+-
> -+-evalfn () {
> -+-  PSTTY=`awk '!/TTY/{print $2}' < stdout | uniq | tr '?' 'Y'`
> -+-  [ $PSTTY == 'Y' ]
> -+-}
> -+diff -ruN procps-3.1.15.old/test/ps/bsd-u-header/header procps-3.1.15/test/ps/bsd-u-header/header
> -+--- procps-3.1.15.old/test/ps/bsd-u-header/header	2003-09-02 22:57:35.000000000 +1000
> -++++ procps-3.1.15/test/ps/bsd-u-header/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
> -+diff -ruN procps-3.1.15.old/test/ps/bsd-u-header/setup procps-3.1.15/test/ps/bsd-u-header/setup
> -+--- procps-3.1.15.old/test/ps/bsd-u-header/setup	2003-09-02 22:57:20.000000000 +1000
> -++++ procps-3.1.15/test/ps/bsd-u-header/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,2 +0,0 @@
> -+-ARGS="u"
> -+-GOOD=0
> -+diff -ruN procps-3.1.15.old/test/ps/bsd-u-header2/header procps-3.1.15/test/ps/bsd-u-header2/header
> -+--- procps-3.1.15.old/test/ps/bsd-u-header2/header	2003-09-03 07:27:09.000000000 +1000
> -++++ procps-3.1.15/test/ps/bsd-u-header2/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- USER PID %CPU %MEM VSZ RSS TT STAT STARTED TIME COMMAND
> -+diff -ruN procps-3.1.15.old/test/ps/bsd-u-header2/setup procps-3.1.15/test/ps/bsd-u-header2/setup
> -+--- procps-3.1.15.old/test/ps/bsd-u-header2/setup	2003-09-03 07:22:00.000000000 +1000
> -++++ procps-3.1.15/test/ps/bsd-u-header2/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,3 +0,0 @@
> -+-export CMD_ENV=bsd
> -+-ARGS="-u"
> -+-GOOD=0
> -+diff -ruN procps-3.1.15.old/test/ps/bsd-v-header/header procps-3.1.15/test/ps/bsd-v-header/header
> -+--- procps-3.1.15.old/test/ps/bsd-v-header/header	2003-09-02 22:56:43.000000000 +1000
> -++++ procps-3.1.15/test/ps/bsd-v-header/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- PID TTY STAT TIME MAJFL TRS DRS RSS %MEM COMMAND
> -+diff -ruN procps-3.1.15.old/test/ps/bsd-v-header/setup procps-3.1.15/test/ps/bsd-v-header/setup
> -+--- procps-3.1.15.old/test/ps/bsd-v-header/setup	2003-09-02 22:56:10.000000000 +1000
> -++++ procps-3.1.15/test/ps/bsd-v-header/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,2 +0,0 @@
> -+-ARGS="v"
> -+-GOOD=0
> -+diff -ruN procps-3.1.15.old/test/ps/bsd-v-header2/header procps-3.1.15/test/ps/bsd-v-header2/header
> -+--- procps-3.1.15.old/test/ps/bsd-v-header2/header	2003-09-03 07:27:16.000000000 +1000
> -++++ procps-3.1.15/test/ps/bsd-v-header2/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- PID STAT TIME SL RE PAGEIN VSZ RSS LIM TSIZ %CPU %MEM COMMAND
> -+diff -ruN procps-3.1.15.old/test/ps/bsd-v-header2/setup procps-3.1.15/test/ps/bsd-v-header2/setup
> -+--- procps-3.1.15.old/test/ps/bsd-v-header2/setup	2003-09-03 07:22:17.000000000 +1000
> -++++ procps-3.1.15/test/ps/bsd-v-header2/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,3 +0,0 @@
> -+-export CMD_ENV=bsd
> -+-ARGS="-v"
> -+-GOOD=0
> -+diff -ruN procps-3.1.15.old/test/ps/dynix-F-header/header procps-3.1.15/test/ps/dynix-F-header/header
> -+--- procps-3.1.15.old/test/ps/dynix-F-header/header	2003-09-02 22:31:23.000000000 +1000
> -++++ procps-3.1.15/test/ps/dynix-F-header/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- UID PID PPID C SZ RSS PSR STIME TTY TIME CMD
> -+diff -ruN procps-3.1.15.old/test/ps/dynix-F-header/setup procps-3.1.15/test/ps/dynix-F-header/setup
> -+--- procps-3.1.15.old/test/ps/dynix-F-header/setup	2003-09-02 22:30:43.000000000 +1000
> -++++ procps-3.1.15/test/ps/dynix-F-header/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,2 +0,0 @@
> -+-ARGS="-F"
> -+-GOOD=0
> -+diff -ruN procps-3.1.15.old/test/ps/fail-aix-Q/header procps-3.1.15/test/ps/fail-aix-Q/header
> -+--- procps-3.1.15.old/test/ps/fail-aix-Q/header	2003-10-02 11:31:34.000000000 +1000
> -++++ procps-3.1.15/test/ps/fail-aix-Q/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- 
> -+\ No newline at end of file
> -+diff -ruN procps-3.1.15.old/test/ps/fail-aix-Q/setup procps-3.1.15/test/ps/fail-aix-Q/setup
> -+--- procps-3.1.15.old/test/ps/fail-aix-Q/setup	2003-10-02 11:32:11.000000000 +1000
> -++++ procps-3.1.15/test/ps/fail-aix-Q/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,2 +0,0 @@
> -+-ARGS="-o %Q"
> -+-GOOD=1
> -+diff -ruN procps-3.1.15.old/test/ps/fail-aix-Q/stderr procps-3.1.15/test/ps/fail-aix-Q/stderr
> -+--- procps-3.1.15.old/test/ps/fail-aix-Q/stderr	2003-10-02 11:33:07.000000000 +1000
> -++++ procps-3.1.15/test/ps/fail-aix-Q/stderr	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,23 +0,0 @@
> -+-ERROR: Unknown AIX field descriptor.
> -+-********* simple selection *********  ********* selection by list *********
> -+--A all processes                      -C by command name
> -+--N negate selection                   -G by real group ID (supports names)
> -+--a all w/ tty except session leaders  -U by real user ID (supports names)
> -+--d all except session leaders         -g by session leader OR by group name
> -+--e all processes                      -p by process ID
> -+-T  all processes on this terminal     -s processes in the sessions given
> -+-a  all w/ tty, including other users  -t by tty
> -+-g  all, even group leaders!           -u by effective user ID (supports names)
> -+-r  only running processes             U  processes for specified users
> -+-x  processes w/o controlling ttys     t  by tty
> -+-*********** output format **********  *********** long options ***********
> -+--o,o user-defined  -f full            --Group --User --pid --cols --ppid
> -+--j,j job control   s  signal          --group --user --sid --rows
> -+--O,O preloaded -o  v  virtual memory  --cumulative --format --deselect
> -+--l,l long          u  user-oriented   --sort --tty --forest --version
> -+--F   extra full    X  registers       --heading --no-heading
> -+-                    ********* misc options *********
> -+--V,V show version       L  list format codes  f  ASCII art forest
> -+--m,m show threads       S  children in sum    -y change -l format
> -+--n,N set namelist file  c  true command name  n  numeric WCHAN,UID
> -+--w,w wide output        e  show environment   -H process hierarchy
> -+diff -ruN procps-3.1.15.old/test/ps/fail-aix-improper/header procps-3.1.15/test/ps/fail-aix-improper/header
> -+--- procps-3.1.15.old/test/ps/fail-aix-improper/header	2003-10-02 11:34:09.000000000 +1000
> -++++ procps-3.1.15/test/ps/fail-aix-improper/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- 
> -+\ No newline at end of file
> -+diff -ruN procps-3.1.15.old/test/ps/fail-aix-improper/setup procps-3.1.15/test/ps/fail-aix-improper/setup
> -+--- procps-3.1.15.old/test/ps/fail-aix-improper/setup	2003-10-02 11:34:22.000000000 +1000
> -++++ procps-3.1.15/test/ps/fail-aix-improper/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,2 +0,0 @@
> -+-ARGS="-o %"
> -+-GOOD=1
> -+diff -ruN procps-3.1.15.old/test/ps/fail-aix-improper/stderr procps-3.1.15/test/ps/fail-aix-improper/stderr
> -+--- procps-3.1.15.old/test/ps/fail-aix-improper/stderr	2003-10-02 11:34:40.000000000 +1000
> -++++ procps-3.1.15/test/ps/fail-aix-improper/stderr	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,23 +0,0 @@
> -+-ERROR: Improper AIX field descriptor.
> -+-********* simple selection *********  ********* selection by list *********
> -+--A all processes                      -C by command name
> -+--N negate selection                   -G by real group ID (supports names)
> -+--a all w/ tty except session leaders  -U by real user ID (supports names)
> -+--d all except session leaders         -g by session leader OR by group name
> -+--e all processes                      -p by process ID
> -+-T  all processes on this terminal     -s processes in the sessions given
> -+-a  all w/ tty, including other users  -t by tty
> -+-g  all, even group leaders!           -u by effective user ID (supports names)
> -+-r  only running processes             U  processes for specified users
> -+-x  processes w/o controlling ttys     t  by tty
> -+-*********** output format **********  *********** long options ***********
> -+--o,o user-defined  -f full            --Group --User --pid --cols --ppid
> -+--j,j job control   s  signal          --group --user --sid --rows
> -+--O,O preloaded -o  v  virtual memory  --cumulative --format --deselect
> -+--l,l long          u  user-oriented   --sort --tty --forest --version
> -+--F   extra full    X  registers       --heading --no-heading
> -+-                    ********* misc options *********
> -+--V,V show version       L  list format codes  f  ASCII art forest
> -+--m,m show threads       S  children in sum    -y change -l format
> -+--n,N set namelist file  c  true command name  n  numeric WCHAN,UID
> -+--w,w wide output        e  show environment   -H process hierarchy
> -+diff -ruN procps-3.1.15.old/test/ps/fail-improper-sort/header procps-3.1.15/test/ps/fail-improper-sort/header
> -+--- procps-3.1.15.old/test/ps/fail-improper-sort/header	2003-10-02 11:47:57.000000000 +1000
> -++++ procps-3.1.15/test/ps/fail-improper-sort/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- 
> -+\ No newline at end of file
> -+diff -ruN procps-3.1.15.old/test/ps/fail-improper-sort/setup procps-3.1.15/test/ps/fail-improper-sort/setup
> -+--- procps-3.1.15.old/test/ps/fail-improper-sort/setup	2003-10-02 11:48:15.000000000 +1000
> -++++ procps-3.1.15/test/ps/fail-improper-sort/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,2 +0,0 @@
> -+-ARGS="--sort ,,"
> -+-GOOD=1
> -+diff -ruN procps-3.1.15.old/test/ps/fail-improper-sort/stderr procps-3.1.15/test/ps/fail-improper-sort/stderr
> -+--- procps-3.1.15.old/test/ps/fail-improper-sort/stderr	2003-10-02 12:22:31.000000000 +1000
> -++++ procps-3.1.15/test/ps/fail-improper-sort/stderr	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,23 +0,0 @@
> -+-ERROR: Improper sort list
> -+-********* simple selection *********  ********* selection by list *********
> -+--A all processes                      -C by command name
> -+--N negate selection                   -G by real group ID (supports names)
> -+--a all w/ tty except session leaders  -U by real user ID (supports names)
> -+--d all except session leaders         -g by session leader OR by group name
> -+--e all processes                      -p by process ID
> -+-T  all processes on this terminal     -s processes in the sessions given
> -+-a  all w/ tty, including other users  -t by tty
> -+-g  all, even group leaders!           -u by effective user ID (supports names)
> -+-r  only running processes             U  processes for specified users
> -+-x  processes w/o controlling ttys     t  by tty
> -+-*********** output format **********  *********** long options ***********
> -+--o,o user-defined  -f full            --Group --User --pid --cols --ppid
> -+--j,j job control   s  signal          --group --user --sid --rows
> -+--O,O preloaded -o  v  virtual memory  --cumulative --format --deselect
> -+--l,l long          u  user-oriented   --sort --tty --forest --version
> -+--F   extra full    X  registers       --heading --no-heading
> -+-                    ********* misc options *********
> -+--V,V show version       L  list format codes  f  ASCII art forest
> -+--m,m show threads       S  children in sum    -y change -l format
> -+--n,N set namelist file  c  true command name  n  numeric WCHAN,UID
> -+--w,w wide output        e  show environment   -H process hierarchy
> -+diff -ruN procps-3.1.15.old/test/ps/fail-improper-spec/header procps-3.1.15/test/ps/fail-improper-spec/header
> -+--- procps-3.1.15.old/test/ps/fail-improper-spec/header	2003-10-02 11:37:17.000000000 +1000
> -++++ procps-3.1.15/test/ps/fail-improper-spec/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- 
> -+\ No newline at end of file
> -+diff -ruN procps-3.1.15.old/test/ps/fail-improper-spec/setup procps-3.1.15/test/ps/fail-improper-spec/setup
> -+--- procps-3.1.15.old/test/ps/fail-improper-spec/setup	2003-10-02 11:37:34.000000000 +1000
> -++++ procps-3.1.15/test/ps/fail-improper-spec/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,2 +0,0 @@
> -+-ARGS="-o ,"
> -+-GOOD=1
> -+diff -ruN procps-3.1.15.old/test/ps/fail-improper-spec/stderr procps-3.1.15/test/ps/fail-improper-spec/stderr
> -+--- procps-3.1.15.old/test/ps/fail-improper-spec/stderr	2003-10-02 11:37:52.000000000 +1000
> -++++ procps-3.1.15/test/ps/fail-improper-spec/stderr	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,23 +0,0 @@
> -+-ERROR: Improper format list.
> -+-********* simple selection *********  ********* selection by list *********
> -+--A all processes                      -C by command name
> -+--N negate selection                   -G by real group ID (supports names)
> -+--a all w/ tty except session leaders  -U by real user ID (supports names)
> -+--d all except session leaders         -g by session leader OR by group name
> -+--e all processes                      -p by process ID
> -+-T  all processes on this terminal     -s processes in the sessions given
> -+-a  all w/ tty, including other users  -t by tty
> -+-g  all, even group leaders!           -u by effective user ID (supports names)
> -+-r  only running processes             U  processes for specified users
> -+-x  processes w/o controlling ttys     t  by tty
> -+-*********** output format **********  *********** long options ***********
> -+--o,o user-defined  -f full            --Group --User --pid --cols --ppid
> -+--j,j job control   s  signal          --group --user --sid --rows
> -+--O,O preloaded -o  v  virtual memory  --cumulative --format --deselect
> -+--l,l long          u  user-oriented   --sort --tty --forest --version
> -+--F   extra full    X  registers       --heading --no-heading
> -+-                    ********* misc options *********
> -+--V,V show version       L  list format codes  f  ASCII art forest
> -+--m,m show threads       S  children in sum    -y change -l format
> -+--n,N set namelist file  c  true command name  n  numeric WCHAN,UID
> -+--w,w wide output        e  show environment   -H process hierarchy
> -+diff -ruN procps-3.1.15.old/test/ps/fail-macro-width/header procps-3.1.15/test/ps/fail-macro-width/header
> -+--- procps-3.1.15.old/test/ps/fail-macro-width/header	2003-10-02 11:42:15.000000000 +1000
> -++++ procps-3.1.15/test/ps/fail-macro-width/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- 
> -+\ No newline at end of file
> -+diff -ruN procps-3.1.15.old/test/ps/fail-macro-width/setup procps-3.1.15/test/ps/fail-macro-width/setup
> -+--- procps-3.1.15.old/test/ps/fail-macro-width/setup	2003-10-02 11:42:30.000000000 +1000
> -++++ procps-3.1.15/test/ps/fail-macro-width/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,2 +0,0 @@
> -+-ARGS="-o DefBSD:6"
> -+-GOOD=1
> -+diff -ruN procps-3.1.15.old/test/ps/fail-macro-width/stderr procps-3.1.15/test/ps/fail-macro-width/stderr
> -+--- procps-3.1.15.old/test/ps/fail-macro-width/stderr	2003-10-02 11:42:46.000000000 +1000
> -++++ procps-3.1.15/test/ps/fail-macro-width/stderr	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,23 +0,0 @@
> -+-ERROR: Can't set width for a macro (multi-column) format specifier.
> -+-********* simple selection *********  ********* selection by list *********
> -+--A all processes                      -C by command name
> -+--N negate selection                   -G by real group ID (supports names)
> -+--a all w/ tty except session leaders  -U by real user ID (supports names)
> -+--d all except session leaders         -g by session leader OR by group name
> -+--e all processes                      -p by process ID
> -+-T  all processes on this terminal     -s processes in the sessions given
> -+-a  all w/ tty, including other users  -t by tty
> -+-g  all, even group leaders!           -u by effective user ID (supports names)
> -+-r  only running processes             U  processes for specified users
> -+-x  processes w/o controlling ttys     t  by tty
> -+-*********** output format **********  *********** long options ***********
> -+--o,o user-defined  -f full            --Group --User --pid --cols --ppid
> -+--j,j job control   s  signal          --group --user --sid --rows
> -+--O,O preloaded -o  v  virtual memory  --cumulative --format --deselect
> -+--l,l long          u  user-oriented   --sort --tty --forest --version
> -+--F   extra full    X  registers       --heading --no-heading
> -+-                    ********* misc options *********
> -+--V,V show version       L  list format codes  f  ASCII art forest
> -+--m,m show threads       S  children in sum    -y change -l format
> -+--n,N set namelist file  c  true command name  n  numeric WCHAN,UID
> -+--w,w wide output        e  show environment   -H process hierarchy
> -+diff -ruN procps-3.1.15.old/test/ps/fail-no-sort-key/header procps-3.1.15/test/ps/fail-no-sort-key/header
> -+--- procps-3.1.15.old/test/ps/fail-no-sort-key/header	2003-10-02 11:50:26.000000000 +1000
> -++++ procps-3.1.15/test/ps/fail-no-sort-key/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- 
> -+\ No newline at end of file
> -+diff -ruN procps-3.1.15.old/test/ps/fail-no-sort-key/setup procps-3.1.15/test/ps/fail-no-sort-key/setup
> -+--- procps-3.1.15.old/test/ps/fail-no-sort-key/setup	2003-10-02 11:50:39.000000000 +1000
> -++++ procps-3.1.15/test/ps/fail-no-sort-key/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,2 +0,0 @@
> -+-ARGS="--sort"
> -+-GOOD=1
> -+diff -ruN procps-3.1.15.old/test/ps/fail-no-sort-key/stderr procps-3.1.15/test/ps/fail-no-sort-key/stderr
> -+--- procps-3.1.15.old/test/ps/fail-no-sort-key/stderr	2003-10-02 11:51:05.000000000 +1000
> -++++ procps-3.1.15/test/ps/fail-no-sort-key/stderr	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,23 +0,0 @@
> -+-ERROR: Long sort specification must follow --sort.
> -+-********* simple selection *********  ********* selection by list *********
> -+--A all processes                      -C by command name
> -+--N negate selection                   -G by real group ID (supports names)
> -+--a all w/ tty except session leaders  -U by real user ID (supports names)
> -+--d all except session leaders         -g by session leader OR by group name
> -+--e all processes                      -p by process ID
> -+-T  all processes on this terminal     -s processes in the sessions given
> -+-a  all w/ tty, including other users  -t by tty
> -+-g  all, even group leaders!           -u by effective user ID (supports names)
> -+-r  only running processes             U  processes for specified users
> -+-x  processes w/o controlling ttys     t  by tty
> -+-*********** output format **********  *********** long options ***********
> -+--o,o user-defined  -f full            --Group --User --pid --cols --ppid
> -+--j,j job control   s  signal          --group --user --sid --rows
> -+--O,O preloaded -o  v  virtual memory  --cumulative --format --deselect
> -+--l,l long          u  user-oriented   --sort --tty --forest --version
> -+--F   extra full    X  registers       --heading --no-heading
> -+-                    ********* misc options *********
> -+--V,V show version       L  list format codes  f  ASCII art forest
> -+--m,m show threads       S  children in sum    -y change -l format
> -+--n,N set namelist file  c  true command name  n  numeric WCHAN,UID
> -+--w,w wide output        e  show environment   -H process hierarchy
> -+diff -ruN procps-3.1.15.old/test/ps/fail-no-width/header procps-3.1.15/test/ps/fail-no-width/header
> -+--- procps-3.1.15.old/test/ps/fail-no-width/header	2003-10-02 11:40:56.000000000 +1000
> -++++ procps-3.1.15/test/ps/fail-no-width/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- 
> -+\ No newline at end of file
> -+diff -ruN procps-3.1.15.old/test/ps/fail-no-width/setup procps-3.1.15/test/ps/fail-no-width/setup
> -+--- procps-3.1.15.old/test/ps/fail-no-width/setup	2003-10-02 11:41:22.000000000 +1000
> -++++ procps-3.1.15/test/ps/fail-no-width/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,2 +0,0 @@
> -+-ARGS="-o pid:,f,comm"
> -+-GOOD=1
> -+diff -ruN procps-3.1.15.old/test/ps/fail-no-width/stderr procps-3.1.15/test/ps/fail-no-width/stderr
> -+--- procps-3.1.15.old/test/ps/fail-no-width/stderr	2003-10-02 11:40:56.000000000 +1000
> -++++ procps-3.1.15/test/ps/fail-no-width/stderr	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,23 +0,0 @@
> -+-ERROR: Column widths must be unsigned decimal numbers.
> -+-********* simple selection *********  ********* selection by list *********
> -+--A all processes                      -C by command name
> -+--N negate selection                   -G by real group ID (supports names)
> -+--a all w/ tty except session leaders  -U by real user ID (supports names)
> -+--d all except session leaders         -g by session leader OR by group name
> -+--e all processes                      -p by process ID
> -+-T  all processes on this terminal     -s processes in the sessions given
> -+-a  all w/ tty, including other users  -t by tty
> -+-g  all, even group leaders!           -u by effective user ID (supports names)
> -+-r  only running processes             U  processes for specified users
> -+-x  processes w/o controlling ttys     t  by tty
> -+-*********** output format **********  *********** long options ***********
> -+--o,o user-defined  -f full            --Group --User --pid --cols --ppid
> -+--j,j job control   s  signal          --group --user --sid --rows
> -+--O,O preloaded -o  v  virtual memory  --cumulative --format --deselect
> -+--l,l long          u  user-oriented   --sort --tty --forest --version
> -+--F   extra full    X  registers       --heading --no-heading
> -+-                    ********* misc options *********
> -+--V,V show version       L  list format codes  f  ASCII art forest
> -+--m,m show threads       S  children in sum    -y change -l format
> -+--n,N set namelist file  c  true command name  n  numeric WCHAN,UID
> -+--w,w wide output        e  show environment   -H process hierarchy
> -+diff -ruN procps-3.1.15.old/test/ps/fail-nondecimal/header procps-3.1.15/test/ps/fail-nondecimal/header
> -+--- procps-3.1.15.old/test/ps/fail-nondecimal/header	2003-10-02 11:39:38.000000000 +1000
> -++++ procps-3.1.15/test/ps/fail-nondecimal/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- 
> -+\ No newline at end of file
> -+diff -ruN procps-3.1.15.old/test/ps/fail-nondecimal/setup procps-3.1.15/test/ps/fail-nondecimal/setup
> -+--- procps-3.1.15.old/test/ps/fail-nondecimal/setup	2003-10-02 11:40:07.000000000 +1000
> -++++ procps-3.1.15/test/ps/fail-nondecimal/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,2 +0,0 @@
> -+-ARGS="-o pid:f,comm"
> -+-GOOD=1
> -+diff -ruN procps-3.1.15.old/test/ps/fail-nondecimal/stderr procps-3.1.15/test/ps/fail-nondecimal/stderr
> -+--- procps-3.1.15.old/test/ps/fail-nondecimal/stderr	2003-10-02 11:40:30.000000000 +1000
> -++++ procps-3.1.15/test/ps/fail-nondecimal/stderr	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,23 +0,0 @@
> -+-ERROR: Column widths must be unsigned decimal numbers.
> -+-********* simple selection *********  ********* selection by list *********
> -+--A all processes                      -C by command name
> -+--N negate selection                   -G by real group ID (supports names)
> -+--a all w/ tty except session leaders  -U by real user ID (supports names)
> -+--d all except session leaders         -g by session leader OR by group name
> -+--e all processes                      -p by process ID
> -+-T  all processes on this terminal     -s processes in the sessions given
> -+-a  all w/ tty, including other users  -t by tty
> -+-g  all, even group leaders!           -u by effective user ID (supports names)
> -+-r  only running processes             U  processes for specified users
> -+-x  processes w/o controlling ttys     t  by tty
> -+-*********** output format **********  *********** long options ***********
> -+--o,o user-defined  -f full            --Group --User --pid --cols --ppid
> -+--j,j job control   s  signal          --group --user --sid --rows
> -+--O,O preloaded -o  v  virtual memory  --cumulative --format --deselect
> -+--l,l long          u  user-oriented   --sort --tty --forest --version
> -+--F   extra full    X  registers       --heading --no-heading
> -+-                    ********* misc options *********
> -+--V,V show version       L  list format codes  f  ASCII art forest
> -+--m,m show threads       S  children in sum    -y change -l format
> -+--n,N set namelist file  c  true command name  n  numeric WCHAN,UID
> -+--w,w wide output        e  show environment   -H process hierarchy
> -+diff -ruN procps-3.1.15.old/test/ps/fail-oj/header procps-3.1.15/test/ps/fail-oj/header
> -+--- procps-3.1.15.old/test/ps/fail-oj/header	2003-09-02 13:47:18.000000000 +1000
> -++++ procps-3.1.15/test/ps/fail-oj/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- 
> -+\ No newline at end of file
> -+diff -ruN procps-3.1.15.old/test/ps/fail-oj/setup procps-3.1.15/test/ps/fail-oj/setup
> -+--- procps-3.1.15.old/test/ps/fail-oj/setup	2003-09-02 13:47:54.000000000 +1000
> -++++ procps-3.1.15/test/ps/fail-oj/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,2 +0,0 @@
> -+-ARGS="-o pid -j"
> -+-GOOD=1
> -+diff -ruN procps-3.1.15.old/test/ps/fail-oj/stderr procps-3.1.15/test/ps/fail-oj/stderr
> -+--- procps-3.1.15.old/test/ps/fail-oj/stderr	2003-09-02 13:49:02.000000000 +1000
> -++++ procps-3.1.15/test/ps/fail-oj/stderr	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,23 +0,0 @@
> -+-ERROR: Can't use output modifiers with user-defined output
> -+-********* simple selection *********  ********* selection by list *********
> -+--A all processes                      -C by command name
> -+--N negate selection                   -G by real group ID (supports names)
> -+--a all w/ tty except session leaders  -U by real user ID (supports names)
> -+--d all except session leaders         -g by session leader OR by group name
> -+--e all processes                      -p by process ID
> -+-T  all processes on this terminal     -s processes in the sessions given
> -+-a  all w/ tty, including other users  -t by tty
> -+-g  all, even group leaders!           -u by effective user ID (supports names)
> -+-r  only running processes             U  processes for specified users
> -+-x  processes w/o controlling ttys     t  by tty
> -+-*********** output format **********  *********** long options ***********
> -+--o,o user-defined  -f full            --Group --User --pid --cols --ppid
> -+--j,j job control   s  signal          --group --user --sid --rows
> -+--O,O preloaded -o  v  virtual memory  --cumulative --format --deselect
> -+--l,l long          u  user-oriented   --sort --tty --forest --version
> -+--F   extra full    X  registers       --heading --no-heading
> -+-                    ********* misc options *********
> -+--V,V show version       L  list format codes  f  ASCII art forest
> -+--m,m show threads       S  children in sum    -y change -l format
> -+--n,N set namelist file  c  true command name  n  numeric WCHAN,UID
> -+--w,w wide output        e  show environment   -H process hierarchy
> -+diff -ruN procps-3.1.15.old/test/ps/fail-unknown-sort/header procps-3.1.15/test/ps/fail-unknown-sort/header
> -+--- procps-3.1.15.old/test/ps/fail-unknown-sort/header	2003-10-02 11:49:27.000000000 +1000
> -++++ procps-3.1.15/test/ps/fail-unknown-sort/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- 
> -+\ No newline at end of file
> -+diff -ruN procps-3.1.15.old/test/ps/fail-unknown-sort/setup procps-3.1.15/test/ps/fail-unknown-sort/setup
> -+--- procps-3.1.15.old/test/ps/fail-unknown-sort/setup	2003-10-02 11:49:41.000000000 +1000
> -++++ procps-3.1.15/test/ps/fail-unknown-sort/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,2 +0,0 @@
> -+-ARGS="--sort booger"
> -+-GOOD=1
> -+diff -ruN procps-3.1.15.old/test/ps/fail-unknown-sort/stderr procps-3.1.15/test/ps/fail-unknown-sort/stderr
> -+--- procps-3.1.15.old/test/ps/fail-unknown-sort/stderr	2003-10-02 11:50:09.000000000 +1000
> -++++ procps-3.1.15/test/ps/fail-unknown-sort/stderr	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,23 +0,0 @@
> -+-ERROR: Unknown sort specifier.
> -+-********* simple selection *********  ********* selection by list *********
> -+--A all processes                      -C by command name
> -+--N negate selection                   -G by real group ID (supports names)
> -+--a all w/ tty except session leaders  -U by real user ID (supports names)
> -+--d all except session leaders         -g by session leader OR by group name
> -+--e all processes                      -p by process ID
> -+-T  all processes on this terminal     -s processes in the sessions given
> -+-a  all w/ tty, including other users  -t by tty
> -+-g  all, even group leaders!           -u by effective user ID (supports names)
> -+-r  only running processes             U  processes for specified users
> -+-x  processes w/o controlling ttys     t  by tty
> -+-*********** output format **********  *********** long options ***********
> -+--o,o user-defined  -f full            --Group --User --pid --cols --ppid
> -+--j,j job control   s  signal          --group --user --sid --rows
> -+--O,O preloaded -o  v  virtual memory  --cumulative --format --deselect
> -+--l,l long          u  user-oriented   --sort --tty --forest --version
> -+--F   extra full    X  registers       --heading --no-heading
> -+-                    ********* misc options *********
> -+--V,V show version       L  list format codes  f  ASCII art forest
> -+--m,m show threads       S  children in sum    -y change -l format
> -+--n,N set namelist file  c  true command name  n  numeric WCHAN,UID
> -+--w,w wide output        e  show environment   -H process hierarchy
> -+diff -ruN procps-3.1.15.old/test/ps/fail-unknown-spec/header procps-3.1.15/test/ps/fail-unknown-spec/header
> -+--- procps-3.1.15.old/test/ps/fail-unknown-spec/header	2003-10-02 11:35:33.000000000 +1000
> -++++ procps-3.1.15/test/ps/fail-unknown-spec/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- 
> -+\ No newline at end of file
> -+diff -ruN procps-3.1.15.old/test/ps/fail-unknown-spec/setup procps-3.1.15/test/ps/fail-unknown-spec/setup
> -+--- procps-3.1.15.old/test/ps/fail-unknown-spec/setup	2003-10-02 11:35:52.000000000 +1000
> -++++ procps-3.1.15/test/ps/fail-unknown-spec/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,2 +0,0 @@
> -+-ARGS="-o boogers"
> -+-GOOD=1
> -+diff -ruN procps-3.1.15.old/test/ps/fail-unknown-spec/stderr procps-3.1.15/test/ps/fail-unknown-spec/stderr
> -+--- procps-3.1.15.old/test/ps/fail-unknown-spec/stderr	2003-10-02 11:36:05.000000000 +1000
> -++++ procps-3.1.15/test/ps/fail-unknown-spec/stderr	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,23 +0,0 @@
> -+-ERROR: Unknown user-defined format specifier "boogers".
> -+-********* simple selection *********  ********* selection by list *********
> -+--A all processes                      -C by command name
> -+--N negate selection                   -G by real group ID (supports names)
> -+--a all w/ tty except session leaders  -U by real user ID (supports names)
> -+--d all except session leaders         -g by session leader OR by group name
> -+--e all processes                      -p by process ID
> -+-T  all processes on this terminal     -s processes in the sessions given
> -+-a  all w/ tty, including other users  -t by tty
> -+-g  all, even group leaders!           -u by effective user ID (supports names)
> -+-r  only running processes             U  processes for specified users
> -+-x  processes w/o controlling ttys     t  by tty
> -+-*********** output format **********  *********** long options ***********
> -+--o,o user-defined  -f full            --Group --User --pid --cols --ppid
> -+--j,j job control   s  signal          --group --user --sid --rows
> -+--O,O preloaded -o  v  virtual memory  --cumulative --format --deselect
> -+--l,l long          u  user-oriented   --sort --tty --forest --version
> -+--F   extra full    X  registers       --heading --no-heading
> -+-                    ********* misc options *********
> -+--V,V show version       L  list format codes  f  ASCII art forest
> -+--m,m show threads       S  children in sum    -y change -l format
> -+--n,N set namelist file  c  true command name  n  numeric WCHAN,UID
> -+--w,w wide output        e  show environment   -H process hierarchy
> -+diff -ruN procps-3.1.15.old/test/ps/fail-xx/header procps-3.1.15/test/ps/fail-xx/header
> -+--- procps-3.1.15.old/test/ps/fail-xx/header	2003-09-02 09:43:13.000000000 +1000
> -++++ procps-3.1.15/test/ps/fail-xx/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- 
> -+\ No newline at end of file
> -+diff -ruN procps-3.1.15.old/test/ps/fail-xx/setup procps-3.1.15/test/ps/fail-xx/setup
> -+--- procps-3.1.15.old/test/ps/fail-xx/setup	2003-09-02 09:41:38.000000000 +1000
> -++++ procps-3.1.15/test/ps/fail-xx/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,2 +0,0 @@
> -+-ARGS="x -x"
> -+-GOOD=1
> -+diff -ruN procps-3.1.15.old/test/ps/fail-xx/stderr procps-3.1.15/test/ps/fail-xx/stderr
> -+--- procps-3.1.15.old/test/ps/fail-xx/stderr	2003-09-02 09:42:04.000000000 +1000
> -++++ procps-3.1.15/test/ps/fail-xx/stderr	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,23 +0,0 @@
> -+-ERROR: Unsupported SysV option.
> -+-********* simple selection *********  ********* selection by list *********
> -+--A all processes                      -C by command name
> -+--N negate selection                   -G by real group ID (supports names)
> -+--a all w/ tty except session leaders  -U by real user ID (supports names)
> -+--d all except session leaders         -g by session leader OR by group name
> -+--e all processes                      -p by process ID
> -+-T  all processes on this terminal     -s processes in the sessions given
> -+-a  all w/ tty, including other users  -t by tty
> -+-g  all, even group leaders!           -u by effective user ID (supports names)
> -+-r  only running processes             U  processes for specified users
> -+-x  processes w/o controlling ttys     t  by tty
> -+-*********** output format **********  *********** long options ***********
> -+--o,o user-defined  -f full            --Group --User --pid --cols --ppid
> -+--j,j job control   s  signal          --group --user --sid --rows
> -+--O,O preloaded -o  v  virtual memory  --cumulative --format --deselect
> -+--l,l long          u  user-oriented   --sort --tty --forest --version
> -+--F   extra full    X  registers       --heading --no-heading
> -+-                    ********* misc options *********
> -+--V,V show version       L  list format codes  f  ASCII art forest
> -+--m,m show threads       S  children in sum    -y change -l format
> -+--n,N set namelist file  c  true command name  n  numeric WCHAN,UID
> -+--w,w wide output        e  show environment   -H process hierarchy
> -+diff -ruN procps-3.1.15.old/test/ps/hpux-H-simple/setup procps-3.1.15/test/ps/hpux-H-simple/setup
> -+--- procps-3.1.15.old/test/ps/hpux-H-simple/setup	2003-09-03 10:15:28.000000000 +1000
> -++++ procps-3.1.15/test/ps/hpux-H-simple/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,14 +0,0 @@
> -+-ARGS="-HC fork-you -o comm="
> -+-GOOD=0
> -+-EVALFN=1
> -+-KILLFN=1
> -+-
> -+-./fork-you 3 4 5 6 7 8 9
> -+-
> -+-evalfn () {
> -+-  diff -Naurd stdout $TESTNAME/stdout >> /dev/null
> -+-}
> -+-
> -+-killfn () {
> -+-  killall -9 fork-you
> -+-}
> -+diff -ruN procps-3.1.15.old/test/ps/hpux-H-simple/stdout procps-3.1.15/test/ps/hpux-H-simple/stdout
> -+--- procps-3.1.15.old/test/ps/hpux-H-simple/stdout	2003-09-03 09:51:00.000000000 +1000
> -++++ procps-3.1.15/test/ps/hpux-H-simple/stdout	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,9 +0,0 @@
> -+-fork-you
> -+-  fork-you
> -+-  fork-you
> -+-  fork-you
> -+-  fork-you
> -+-  fork-you
> -+-  fork-you
> -+-  fork-you
> -+-  fork-you
> -+diff -ruN procps-3.1.15.old/test/ps/jyclf-header/header procps-3.1.15/test/ps/jyclf-header/header
> -+--- procps-3.1.15.old/test/ps/jyclf-header/header	2003-09-02 13:57:34.000000000 +1000
> -++++ procps-3.1.15/test/ps/jyclf-header/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- S UID PID PPID PGID SID CLS PRI RSS SZ WCHAN STIME TTY TIME CMD
> -+diff -ruN procps-3.1.15.old/test/ps/jyclf-header/setup procps-3.1.15/test/ps/jyclf-header/setup
> -+--- procps-3.1.15.old/test/ps/jyclf-header/setup	2003-09-02 13:55:34.000000000 +1000
> -++++ procps-3.1.15/test/ps/jyclf-header/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,2 +0,0 @@
> -+-ARGS="-jyclf"
> -+-GOOD=0
> -+diff -ruN procps-3.1.15.old/test/ps/linux-lf-header/header procps-3.1.15/test/ps/linux-lf-header/header
> -+--- procps-3.1.15.old/test/ps/linux-lf-header/header	2003-09-02 14:03:14.000000000 +1000
> -++++ procps-3.1.15/test/ps/linux-lf-header/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- F S USER PID PPID C PRI NI P SZ WCHAN STIME TTY TIME CMD
> -+diff -ruN procps-3.1.15.old/test/ps/linux-lf-header/setup procps-3.1.15/test/ps/linux-lf-header/setup
> -+--- procps-3.1.15.old/test/ps/linux-lf-header/setup	2003-09-02 14:04:14.000000000 +1000
> -++++ procps-3.1.15/test/ps/linux-lf-header/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,3 +0,0 @@
> -+-export CMD_ENV=linux
> -+-ARGS="-lf"
> -+-GOOD=0
> -+diff -ruN procps-3.1.15.old/test/ps/mH-mix/header procps-3.1.15/test/ps/mH-mix/header
> -+--- procps-3.1.15.old/test/ps/mH-mix/header	2003-10-02 12:38:52.000000000 +1000
> -++++ procps-3.1.15/test/ps/mH-mix/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- 
> -+\ No newline at end of file
> -+diff -ruN procps-3.1.15.old/test/ps/mH-mix/setup procps-3.1.15/test/ps/mH-mix/setup
> -+--- procps-3.1.15.old/test/ps/mH-mix/setup	2003-10-02 12:39:25.000000000 +1000
> -++++ procps-3.1.15/test/ps/mH-mix/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,2 +0,0 @@
> -+-ARGS="mH"
> -+-GOOD=1
> -+diff -ruN procps-3.1.15.old/test/ps/mH-mix/stderr procps-3.1.15/test/ps/mH-mix/stderr
> -+--- procps-3.1.15.old/test/ps/mH-mix/stderr	2003-10-02 12:40:18.000000000 +1000
> -++++ procps-3.1.15/test/ps/mH-mix/stderr	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,23 +0,0 @@
> -+-ERROR: Thread flags conflict; can't use H with m or -m.
> -+-********* simple selection *********  ********* selection by list *********
> -+--A all processes                      -C by command name
> -+--N negate selection                   -G by real group ID (supports names)
> -+--a all w/ tty except session leaders  -U by real user ID (supports names)
> -+--d all except session leaders         -g by session leader OR by group name
> -+--e all processes                      -p by process ID
> -+-T  all processes on this terminal     -s processes in the sessions given
> -+-a  all w/ tty, including other users  -t by tty
> -+-g  all, even group leaders!           -u by effective user ID (supports names)
> -+-r  only running processes             U  processes for specified users
> -+-x  processes w/o controlling ttys     t  by tty
> -+-*********** output format **********  *********** long options ***********
> -+--o,o user-defined  -f full            --Group --User --pid --cols --ppid
> -+--j,j job control   s  signal          --group --user --sid --rows
> -+--O,O preloaded -o  v  virtual memory  --cumulative --format --deselect
> -+--l,l long          u  user-oriented   --sort --tty --forest --version
> -+--F   extra full    X  registers       --heading --no-heading
> -+-                    ********* misc options *********
> -+--V,V show version       L  list format codes  f  ASCII art forest
> -+--m,m show threads       S  children in sum    -y change -l format
> -+--n,N set namelist file  c  true command name  n  numeric WCHAN,UID
> -+--w,w wide output        e  show environment   -H process hierarchy
> -+diff -ruN procps-3.1.15.old/test/ps/mH-mix2/header procps-3.1.15/test/ps/mH-mix2/header
> -+--- procps-3.1.15.old/test/ps/mH-mix2/header	2003-10-02 12:38:58.000000000 +1000
> -++++ procps-3.1.15/test/ps/mH-mix2/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- 
> -+\ No newline at end of file
> -+diff -ruN procps-3.1.15.old/test/ps/mH-mix2/setup procps-3.1.15/test/ps/mH-mix2/setup
> -+--- procps-3.1.15.old/test/ps/mH-mix2/setup	2003-10-02 12:39:15.000000000 +1000
> -++++ procps-3.1.15/test/ps/mH-mix2/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,2 +0,0 @@
> -+-ARGS="-m H"
> -+-GOOD=1
> -+diff -ruN procps-3.1.15.old/test/ps/mH-mix2/stderr procps-3.1.15/test/ps/mH-mix2/stderr
> -+--- procps-3.1.15.old/test/ps/mH-mix2/stderr	2003-10-02 12:40:20.000000000 +1000
> -++++ procps-3.1.15/test/ps/mH-mix2/stderr	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,23 +0,0 @@
> -+-ERROR: Thread flags conflict; can't use H with m or -m.
> -+-********* simple selection *********  ********* selection by list *********
> -+--A all processes                      -C by command name
> -+--N negate selection                   -G by real group ID (supports names)
> -+--a all w/ tty except session leaders  -U by real user ID (supports names)
> -+--d all except session leaders         -g by session leader OR by group name
> -+--e all processes                      -p by process ID
> -+-T  all processes on this terminal     -s processes in the sessions given
> -+-a  all w/ tty, including other users  -t by tty
> -+-g  all, even group leaders!           -u by effective user ID (supports names)
> -+-r  only running processes             U  processes for specified users
> -+-x  processes w/o controlling ttys     t  by tty
> -+-*********** output format **********  *********** long options ***********
> -+--o,o user-defined  -f full            --Group --User --pid --cols --ppid
> -+--j,j job control   s  signal          --group --user --sid --rows
> -+--O,O preloaded -o  v  virtual memory  --cumulative --format --deselect
> -+--l,l long          u  user-oriented   --sort --tty --forest --version
> -+--F   extra full    X  registers       --heading --no-heading
> -+-                    ********* misc options *********
> -+--V,V show version       L  list format codes  f  ASCII art forest
> -+--m,m show threads       S  children in sum    -y change -l format
> -+--n,N set namelist file  c  true command name  n  numeric WCHAN,UID
> -+--w,w wide output        e  show environment   -H process hierarchy
> -+diff -ruN procps-3.1.15.old/test/ps/mm-mix/header procps-3.1.15/test/ps/mm-mix/header
> -+--- procps-3.1.15.old/test/ps/mm-mix/header	2003-10-02 12:37:41.000000000 +1000
> -++++ procps-3.1.15/test/ps/mm-mix/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- 
> -+\ No newline at end of file
> -+diff -ruN procps-3.1.15.old/test/ps/mm-mix/setup procps-3.1.15/test/ps/mm-mix/setup
> -+--- procps-3.1.15.old/test/ps/mm-mix/setup	2003-10-02 12:37:57.000000000 +1000
> -++++ procps-3.1.15/test/ps/mm-mix/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,2 +0,0 @@
> -+-ARGS="-m m"
> -+-GOOD=1
> -+diff -ruN procps-3.1.15.old/test/ps/mm-mix/stderr procps-3.1.15/test/ps/mm-mix/stderr
> -+--- procps-3.1.15.old/test/ps/mm-mix/stderr	2003-10-02 12:38:11.000000000 +1000
> -++++ procps-3.1.15/test/ps/mm-mix/stderr	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,23 +0,0 @@
> -+-ERROR: Thread flags conflict; can't use both m and -m.
> -+-********* simple selection *********  ********* selection by list *********
> -+--A all processes                      -C by command name
> -+--N negate selection                   -G by real group ID (supports names)
> -+--a all w/ tty except session leaders  -U by real user ID (supports names)
> -+--d all except session leaders         -g by session leader OR by group name
> -+--e all processes                      -p by process ID
> -+-T  all processes on this terminal     -s processes in the sessions given
> -+-a  all w/ tty, including other users  -t by tty
> -+-g  all, even group leaders!           -u by effective user ID (supports names)
> -+-r  only running processes             U  processes for specified users
> -+-x  processes w/o controlling ttys     t  by tty
> -+-*********** output format **********  *********** long options ***********
> -+--o,o user-defined  -f full            --Group --User --pid --cols --ppid
> -+--j,j job control   s  signal          --group --user --sid --rows
> -+--O,O preloaded -o  v  virtual memory  --cumulative --format --deselect
> -+--l,l long          u  user-oriented   --sort --tty --forest --version
> -+--F   extra full    X  registers       --heading --no-heading
> -+-                    ********* misc options *********
> -+--V,V show version       L  list format codes  f  ASCII art forest
> -+--m,m show threads       S  children in sum    -y change -l format
> -+--n,N set namelist file  c  true command name  n  numeric WCHAN,UID
> -+--w,w wide output        e  show environment   -H process hierarchy
> -+diff -ruN procps-3.1.15.old/test/ps/multi-sort/header procps-3.1.15/test/ps/multi-sort/header
> -+--- procps-3.1.15.old/test/ps/multi-sort/header	2003-10-02 12:08:50.000000000 +1000
> -++++ procps-3.1.15/test/ps/multi-sort/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- 
> -+\ No newline at end of file
> -+diff -ruN procps-3.1.15.old/test/ps/multi-sort/setup procps-3.1.15/test/ps/multi-sort/setup
> -+--- procps-3.1.15.old/test/ps/multi-sort/setup	2003-10-02 12:09:10.000000000 +1000
> -++++ procps-3.1.15/test/ps/multi-sort/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,2 +0,0 @@
> -+-ARGS="--sort wchan --sort sess"
> -+-GOOD=1
> -+diff -ruN procps-3.1.15.old/test/ps/multi-sort/stderr procps-3.1.15/test/ps/multi-sort/stderr
> -+--- procps-3.1.15.old/test/ps/multi-sort/stderr	2003-10-02 12:09:23.000000000 +1000
> -++++ procps-3.1.15/test/ps/multi-sort/stderr	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,23 +0,0 @@
> -+-ERROR: Multiple sort options.
> -+-********* simple selection *********  ********* selection by list *********
> -+--A all processes                      -C by command name
> -+--N negate selection                   -G by real group ID (supports names)
> -+--a all w/ tty except session leaders  -U by real user ID (supports names)
> -+--d all except session leaders         -g by session leader OR by group name
> -+--e all processes                      -p by process ID
> -+-T  all processes on this terminal     -s processes in the sessions given
> -+-a  all w/ tty, including other users  -t by tty
> -+-g  all, even group leaders!           -u by effective user ID (supports names)
> -+-r  only running processes             U  processes for specified users
> -+-x  processes w/o controlling ttys     t  by tty
> -+-*********** output format **********  *********** long options ***********
> -+--o,o user-defined  -f full            --Group --User --pid --cols --ppid
> -+--j,j job control   s  signal          --group --user --sid --rows
> -+--O,O preloaded -o  v  virtual memory  --cumulative --format --deselect
> -+--l,l long          u  user-oriented   --sort --tty --forest --version
> -+--F   extra full    X  registers       --heading --no-heading
> -+-                    ********* misc options *********
> -+--V,V show version       L  list format codes  f  ASCII art forest
> -+--m,m show threads       S  children in sum    -y change -l format
> -+--n,N set namelist file  c  true command name  n  numeric WCHAN,UID
> -+--w,w wide output        e  show environment   -H process hierarchy
> -+diff -ruN procps-3.1.15.old/test/ps/o-O/header procps-3.1.15/test/ps/o-O/header
> -+--- procps-3.1.15.old/test/ps/o-O/header	2003-10-02 12:03:27.000000000 +1000
> -++++ procps-3.1.15/test/ps/o-O/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- 
> -+\ No newline at end of file
> -+diff -ruN procps-3.1.15.old/test/ps/o-O/setup procps-3.1.15/test/ps/o-O/setup
> -+--- procps-3.1.15.old/test/ps/o-O/setup	2003-10-02 12:04:40.000000000 +1000
> -++++ procps-3.1.15/test/ps/o-O/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,2 +0,0 @@
> -+-ARGS="-o wchan -O sess"
> -+-GOOD=1
> -+diff -ruN procps-3.1.15.old/test/ps/o-O/stderr procps-3.1.15/test/ps/o-O/stderr
> -+--- procps-3.1.15.old/test/ps/o-O/stderr	2003-10-02 12:06:35.000000000 +1000
> -++++ procps-3.1.15/test/ps/o-O/stderr	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,23 +0,0 @@
> -+-ERROR: option -O can not follow other format options.
> -+-********* simple selection *********  ********* selection by list *********
> -+--A all processes                      -C by command name
> -+--N negate selection                   -G by real group ID (supports names)
> -+--a all w/ tty except session leaders  -U by real user ID (supports names)
> -+--d all except session leaders         -g by session leader OR by group name
> -+--e all processes                      -p by process ID
> -+-T  all processes on this terminal     -s processes in the sessions given
> -+-a  all w/ tty, including other users  -t by tty
> -+-g  all, even group leaders!           -u by effective user ID (supports names)
> -+-r  only running processes             U  processes for specified users
> -+-x  processes w/o controlling ttys     t  by tty
> -+-*********** output format **********  *********** long options ***********
> -+--o,o user-defined  -f full            --Group --User --pid --cols --ppid
> -+--j,j job control   s  signal          --group --user --sid --rows
> -+--O,O preloaded -o  v  virtual memory  --cumulative --format --deselect
> -+--l,l long          u  user-oriented   --sort --tty --forest --version
> -+--F   extra full    X  registers       --heading --no-heading
> -+-                    ********* misc options *********
> -+--V,V show version       L  list format codes  f  ASCII art forest
> -+--m,m show threads       S  children in sum    -y change -l format
> -+--n,N set namelist file  c  true command name  n  numeric WCHAN,UID
> -+--w,w wide output        e  show environment   -H process hierarchy
> -+diff -ruN procps-3.1.15.old/test/ps/o-o/header procps-3.1.15/test/ps/o-o/header
> -+--- procps-3.1.15.old/test/ps/o-o/header	2003-10-02 12:07:18.000000000 +1000
> -++++ procps-3.1.15/test/ps/o-o/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- WCHAN SESS
> -+diff -ruN procps-3.1.15.old/test/ps/o-o/setup procps-3.1.15/test/ps/o-o/setup
> -+--- procps-3.1.15.old/test/ps/o-o/setup	2003-10-02 12:07:08.000000000 +1000
> -++++ procps-3.1.15/test/ps/o-o/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,2 +0,0 @@
> -+-ARGS="-o wchan -o sess"
> -+-GOOD=0
> -+diff -ruN procps-3.1.15.old/test/ps/old-m-1/header procps-3.1.15/test/ps/old-m-1/header
> -+--- procps-3.1.15.old/test/ps/old-m-1/header	2003-09-02 09:46:21.000000000 +1000
> -++++ procps-3.1.15/test/ps/old-m-1/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- PID TTY MAJFLT MINFLT TRS DRS SIZE SWAP RSS SHRD LIB DT COMMAND
> -+diff -ruN procps-3.1.15.old/test/ps/old-m-1/setup procps-3.1.15/test/ps/old-m-1/setup
> -+--- procps-3.1.15.old/test/ps/old-m-1/setup	2003-09-02 09:46:06.000000000 +1000
> -++++ procps-3.1.15/test/ps/old-m-1/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,3 +0,0 @@
> -+-export CMD_ENV=old
> -+-ARGS="-m"
> -+-GOOD=0
> -+diff -ruN procps-3.1.15.old/test/ps/old-m-2/header procps-3.1.15/test/ps/old-m-2/header
> -+--- procps-3.1.15.old/test/ps/old-m-2/header	2003-09-02 09:47:13.000000000 +1000
> -++++ procps-3.1.15/test/ps/old-m-2/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- PID TTY MAJFLT MINFLT TRS DRS SIZE SWAP RSS SHRD LIB DT COMMAND
> -+diff -ruN procps-3.1.15.old/test/ps/old-m-2/setup procps-3.1.15/test/ps/old-m-2/setup
> -+--- procps-3.1.15.old/test/ps/old-m-2/setup	2003-09-02 09:47:47.000000000 +1000
> -++++ procps-3.1.15/test/ps/old-m-2/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,4 +0,0 @@
> -+-export CMD_ENV=unix
> -+-export PS_PERSONALITY=old
> -+-ARGS="-m"
> -+-GOOD=0
> -+diff -ruN procps-3.1.15.old/test/ps/old-m-3/header procps-3.1.15/test/ps/old-m-3/header
> -+--- procps-3.1.15.old/test/ps/old-m-3/header	2003-09-02 09:47:15.000000000 +1000
> -++++ procps-3.1.15/test/ps/old-m-3/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- PID TTY MAJFLT MINFLT TRS DRS SIZE SWAP RSS SHRD LIB DT COMMAND
> -+diff -ruN procps-3.1.15.old/test/ps/old-m-3/setup procps-3.1.15/test/ps/old-m-3/setup
> -+--- procps-3.1.15.old/test/ps/old-m-3/setup	2003-09-02 09:47:58.000000000 +1000
> -++++ procps-3.1.15/test/ps/old-m-3/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,3 +0,0 @@
> -+-export CMD_ENV=old
> -+-ARGS="m"
> -+-GOOD=0
> -+diff -ruN procps-3.1.15.old/test/ps/old-m-4/header procps-3.1.15/test/ps/old-m-4/header
> -+--- procps-3.1.15.old/test/ps/old-m-4/header	2003-09-02 09:47:16.000000000 +1000
> -++++ procps-3.1.15/test/ps/old-m-4/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- PID TTY MAJFLT MINFLT TRS DRS SIZE SWAP RSS SHRD LIB DT COMMAND
> -+diff -ruN procps-3.1.15.old/test/ps/old-m-4/setup procps-3.1.15/test/ps/old-m-4/setup
> -+--- procps-3.1.15.old/test/ps/old-m-4/setup	2003-09-02 09:50:11.000000000 +1000
> -++++ procps-3.1.15/test/ps/old-m-4/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,3 +0,0 @@
> -+-export I_WANT_A_BROKEN_PS=
> -+-ARGS="-m"
> -+-GOOD=0
> -+diff -ruN procps-3.1.15.old/test/ps/pcpu-sort-threaded/setup procps-3.1.15/test/ps/pcpu-sort-threaded/setup
> -+--- procps-3.1.15.old/test/ps/pcpu-sort-threaded/setup	2003-10-19 13:48:43.000000000 +1000
> -++++ procps-3.1.15/test/ps/pcpu-sort-threaded/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,8 +0,0 @@
> -+-ARGS="-e --sort=pcpu -o cp="
> -+-GOOD=0
> -+-EVALFN=1
> -+-
> -+-evalfn () {
> -+-  sort -n < stdout > sorted.tmp
> -+-  diff -Naurd stdout sorted.tmp >> /dev/null
> -+-}
> -+diff -ruN procps-3.1.15.old/test/ps/suv-conflicts/header procps-3.1.15/test/ps/suv-conflicts/header
> -+--- procps-3.1.15.old/test/ps/suv-conflicts/header	2003-10-02 12:12:30.000000000 +1000
> -++++ procps-3.1.15/test/ps/suv-conflicts/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- 
> -+\ No newline at end of file
> -+diff -ruN procps-3.1.15.old/test/ps/suv-conflicts/setup procps-3.1.15/test/ps/suv-conflicts/setup
> -+--- procps-3.1.15.old/test/ps/suv-conflicts/setup	2003-10-02 12:13:26.000000000 +1000
> -++++ procps-3.1.15/test/ps/suv-conflicts/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,2 +0,0 @@
> -+-ARGS="suv"
> -+-GOOD=1
> -+diff -ruN procps-3.1.15.old/test/ps/suv-conflicts/stderr procps-3.1.15/test/ps/suv-conflicts/stderr
> -+--- procps-3.1.15.old/test/ps/suv-conflicts/stderr	2003-10-02 12:13:41.000000000 +1000
> -++++ procps-3.1.15/test/ps/suv-conflicts/stderr	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,23 +0,0 @@
> -+-ERROR: Conflicting format options.
> -+-********* simple selection *********  ********* selection by list *********
> -+--A all processes                      -C by command name
> -+--N negate selection                   -G by real group ID (supports names)
> -+--a all w/ tty except session leaders  -U by real user ID (supports names)
> -+--d all except session leaders         -g by session leader OR by group name
> -+--e all processes                      -p by process ID
> -+-T  all processes on this terminal     -s processes in the sessions given
> -+-a  all w/ tty, including other users  -t by tty
> -+-g  all, even group leaders!           -u by effective user ID (supports names)
> -+-r  only running processes             U  processes for specified users
> -+-x  processes w/o controlling ttys     t  by tty
> -+-*********** output format **********  *********** long options ***********
> -+--o,o user-defined  -f full            --Group --User --pid --cols --ppid
> -+--j,j job control   s  signal          --group --user --sid --rows
> -+--O,O preloaded -o  v  virtual memory  --cumulative --format --deselect
> -+--l,l long          u  user-oriented   --sort --tty --forest --version
> -+--F   extra full    X  registers       --heading --no-heading
> -+-                    ********* misc options *********
> -+--V,V show version       L  list format codes  f  ASCII art forest
> -+--m,m show threads       S  children in sum    -y change -l format
> -+--n,N set namelist file  c  true command name  n  numeric WCHAN,UID
> -+--w,w wide output        e  show environment   -H process hierarchy
> -+diff -ruN procps-3.1.15.old/test/ps/sysv-selection/header procps-3.1.15/test/ps/sysv-selection/header
> -+--- procps-3.1.15.old/test/ps/sysv-selection/header	2003-09-04 16:13:34.000000000 +1000
> -++++ procps-3.1.15/test/ps/sysv-selection/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- PID TTY TIME CMD
> -+diff -ruN procps-3.1.15.old/test/ps/sysv-selection/setup procps-3.1.15/test/ps/sysv-selection/setup
> -+--- procps-3.1.15.old/test/ps/sysv-selection/setup	2003-09-13 13:59:04.000000000 +1000
> -++++ procps-3.1.15/test/ps/sysv-selection/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,25 +0,0 @@
> -+-ARGS="-m"
> -+-GOOD=0
> -+-EVALFN=1
> -+-KILLFN=1
> -+-
> -+-rm -f misc.tmp ready.tmp typescript.tmp
> -+-
> -+-./got-no-tty
> -+-# this'll do but... WHERE ARE THE MAN PAGES FOR PTY STUFF???
> -+-(SHELL=`pwd`/script-child script typescript.tmp &>/dev/null) &
> -+-while [ ! -f ready.tmp ] ; do sleep 0.01 ; done
> -+-. ready.tmp
> -+-
> -+-evalfn () {
> -+-   THIS_TTY=`tty | colrm 1 5`
> -+-   lines1=`awk '{print $2}' < stdout | sort -u | egrep "^($THIS_TTY)$"               | wc -l`
> -+-   lines3=`awk '{print $2}' < stdout | sort -u | egrep "^($SHELL_TTY|$THIS_TTY|\?)$" | wc -l`
> -+-   [ $lines1 == 1 ] && [ $lines3 == 1 ]
> -+-}
> -+-
> -+-killfn () {
> -+-  killall -9 got-no-tty
> -+-  kill -9 $SHELL_PID  # the others should freely die
> -+-  rm -f misc.tmp ready.tmp typescript.tmp
> -+-}
> -+diff -ruN procps-3.1.15.old/test/ps/thread-nosort-H/header procps-3.1.15/test/ps/thread-nosort-H/header
> -+--- procps-3.1.15.old/test/ps/thread-nosort-H/header	2003-10-20 10:57:52.000000000 +1000
> -++++ procps-3.1.15/test/ps/thread-nosort-H/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- PID TTY STAT TIME COMMAND
> -+diff -ruN procps-3.1.15.old/test/ps/thread-nosort-H/setup procps-3.1.15/test/ps/thread-nosort-H/setup
> -+--- procps-3.1.15.old/test/ps/thread-nosort-H/setup	2003-10-20 10:50:16.000000000 +1000
> -++++ procps-3.1.15/test/ps/thread-nosort-H/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,14 +0,0 @@
> -+-ARGS="-C clone-once H"
> -+-GOOD=0
> -+-EVALFN=1
> -+-KILLFN=1
> -+-
> -+-./clone-once
> -+-
> -+-evalfn () {
> -+-   [ `wc -l < stdout` == 3 ]
> -+-}
> -+-
> -+-killfn () {
> -+-  killall -9 clone-once
> -+-}
> -+diff -ruN procps-3.1.15.old/test/ps/thread-nosort-HL/header procps-3.1.15/test/ps/thread-nosort-HL/header
> -+--- procps-3.1.15.old/test/ps/thread-nosort-HL/header	2003-10-20 10:57:52.000000000 +1000
> -++++ procps-3.1.15/test/ps/thread-nosort-HL/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- PID LWP TTY STAT TIME COMMAND
> -+diff -ruN procps-3.1.15.old/test/ps/thread-nosort-HL/setup procps-3.1.15/test/ps/thread-nosort-HL/setup
> -+--- procps-3.1.15.old/test/ps/thread-nosort-HL/setup	2003-10-20 10:50:16.000000000 +1000
> -++++ procps-3.1.15/test/ps/thread-nosort-HL/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,14 +0,0 @@
> -+-ARGS="-C clone-once H -L"
> -+-GOOD=0
> -+-EVALFN=1
> -+-KILLFN=1
> -+-
> -+-./clone-once
> -+-
> -+-evalfn () {
> -+-   [ `wc -l < stdout` == 3 ]
> -+-}
> -+-
> -+-killfn () {
> -+-  killall -9 clone-once
> -+-}
> -+diff -ruN procps-3.1.15.old/test/ps/thread-nosort-Hm/setup procps-3.1.15/test/ps/thread-nosort-Hm/setup
> -+--- procps-3.1.15.old/test/ps/thread-nosort-Hm/setup	2003-10-20 10:50:16.000000000 +1000
> -++++ procps-3.1.15/test/ps/thread-nosort-Hm/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,2 +0,0 @@
> -+-ARGS="-C clone-once Hm"
> -+-GOOD=1
> -+diff -ruN procps-3.1.15.old/test/ps/thread-nosort-Hm/stderr procps-3.1.15/test/ps/thread-nosort-Hm/stderr
> -+--- procps-3.1.15.old/test/ps/thread-nosort-Hm/stderr	2003-10-20 10:58:35.000000000 +1000
> -++++ procps-3.1.15/test/ps/thread-nosort-Hm/stderr	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,23 +0,0 @@
> -+-ERROR: Thread flags conflict; can't use H with m or -m.
> -+-********* simple selection *********  ********* selection by list *********
> -+--A all processes                      -C by command name
> -+--N negate selection                   -G by real group ID (supports names)
> -+--a all w/ tty except session leaders  -U by real user ID (supports names)
> -+--d all except session leaders         -g by session leader OR by group name
> -+--e all processes                      -p by process ID
> -+-T  all processes on this terminal     -s processes in the sessions given
> -+-a  all w/ tty, including other users  -t by tty
> -+-g  all, even group leaders!           -u by effective user ID (supports names)
> -+-r  only running processes             U  processes for specified users
> -+-x  processes w/o controlling ttys     t  by tty
> -+-*********** output format **********  *********** long options ***********
> -+--o,o user-defined  -f full            --Group --User --pid --cols --ppid
> -+--j,j job control   s  signal          --group --user --sid --rows
> -+--O,O preloaded -o  v  virtual memory  --cumulative --format --deselect
> -+--l,l long          u  user-oriented   --sort --tty --forest --version
> -+--F   extra full    X  registers       --heading --no-heading
> -+-                    ********* misc options *********
> -+--V,V show version       L  list format codes  f  ASCII art forest
> -+--m,m show threads       S  children in sum    -y change -l format
> -+--n,N set namelist file  c  true command name  n  numeric WCHAN,UID
> -+--w,w wide output        e  show environment   -H process hierarchy
> -+diff -ruN procps-3.1.15.old/test/ps/thread-nosort-L/header procps-3.1.15/test/ps/thread-nosort-L/header
> -+--- procps-3.1.15.old/test/ps/thread-nosort-L/header	2003-10-20 10:57:52.000000000 +1000
> -++++ procps-3.1.15/test/ps/thread-nosort-L/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- PID LWP TTY TIME CMD
> -+diff -ruN procps-3.1.15.old/test/ps/thread-nosort-L/setup procps-3.1.15/test/ps/thread-nosort-L/setup
> -+--- procps-3.1.15.old/test/ps/thread-nosort-L/setup	2003-10-20 10:50:16.000000000 +1000
> -++++ procps-3.1.15/test/ps/thread-nosort-L/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,14 +0,0 @@
> -+-ARGS="-C clone-once -L"
> -+-GOOD=0
> -+-EVALFN=1
> -+-KILLFN=1
> -+-
> -+-./clone-once
> -+-
> -+-evalfn () {
> -+-   [ `wc -l < stdout` == 3 ]
> -+-}
> -+-
> -+-killfn () {
> -+-  killall -9 clone-once
> -+-}
> -+diff -ruN procps-3.1.15.old/test/ps/thread-nosort-default/header procps-3.1.15/test/ps/thread-nosort-default/header
> -+--- procps-3.1.15.old/test/ps/thread-nosort-default/header	2003-10-20 10:57:53.000000000 +1000
> -++++ procps-3.1.15/test/ps/thread-nosort-default/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- PID TTY TIME CMD
> -+diff -ruN procps-3.1.15.old/test/ps/thread-nosort-default/setup procps-3.1.15/test/ps/thread-nosort-default/setup
> -+--- procps-3.1.15.old/test/ps/thread-nosort-default/setup	2003-10-20 10:50:16.000000000 +1000
> -++++ procps-3.1.15/test/ps/thread-nosort-default/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,14 +0,0 @@
> -+-ARGS="-C clone-once"
> -+-GOOD=0
> -+-EVALFN=1
> -+-KILLFN=1
> -+-
> -+-./clone-once
> -+-
> -+-evalfn () {
> -+-   [ `wc -l < stdout` == 2 ]
> -+-}
> -+-
> -+-killfn () {
> -+-  killall -9 clone-once
> -+-}
> -+diff -ruN procps-3.1.15.old/test/ps/thread-nosort-m/header procps-3.1.15/test/ps/thread-nosort-m/header
> -+--- procps-3.1.15.old/test/ps/thread-nosort-m/header	2003-10-20 10:57:53.000000000 +1000
> -++++ procps-3.1.15/test/ps/thread-nosort-m/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- PID TTY STAT TIME COMMAND
> -+diff -ruN procps-3.1.15.old/test/ps/thread-nosort-m/setup procps-3.1.15/test/ps/thread-nosort-m/setup
> -+--- procps-3.1.15.old/test/ps/thread-nosort-m/setup	2003-10-20 10:50:16.000000000 +1000
> -++++ procps-3.1.15/test/ps/thread-nosort-m/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,14 +0,0 @@
> -+-ARGS="-C clone-once m"
> -+-GOOD=0
> -+-EVALFN=1
> -+-KILLFN=1
> -+-
> -+-./clone-once
> -+-
> -+-evalfn () {
> -+-   [ `wc -l < stdout` == 4 ]
> -+-}
> -+-
> -+-killfn () {
> -+-  killall -9 clone-once
> -+-}
> -+diff -ruN procps-3.1.15.old/test/ps/thread-nosort-mL/header procps-3.1.15/test/ps/thread-nosort-mL/header
> -+--- procps-3.1.15.old/test/ps/thread-nosort-mL/header	2003-10-20 10:57:53.000000000 +1000
> -++++ procps-3.1.15/test/ps/thread-nosort-mL/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- PID LWP TTY TIME CMD
> -+diff -ruN procps-3.1.15.old/test/ps/thread-nosort-mL/setup procps-3.1.15/test/ps/thread-nosort-mL/setup
> -+--- procps-3.1.15.old/test/ps/thread-nosort-mL/setup	2003-10-20 10:50:16.000000000 +1000
> -++++ procps-3.1.15/test/ps/thread-nosort-mL/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,14 +0,0 @@
> -+-ARGS="-C clone-once -mL"
> -+-GOOD=0
> -+-EVALFN=1
> -+-KILLFN=1
> -+-
> -+-./clone-once
> -+-
> -+-evalfn () {
> -+-   [ `wc -l < stdout` == 4 ]
> -+-}
> -+-
> -+-killfn () {
> -+-  killall -9 clone-once
> -+-}
> -+diff -ruN procps-3.1.15.old/test/ps/thread-sorted-H/header procps-3.1.15/test/ps/thread-sorted-H/header
> -+--- procps-3.1.15.old/test/ps/thread-sorted-H/header	2003-10-20 10:57:53.000000000 +1000
> -++++ procps-3.1.15/test/ps/thread-sorted-H/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- PID TTY STAT TIME COMMAND
> -+diff -ruN procps-3.1.15.old/test/ps/thread-sorted-H/setup procps-3.1.15/test/ps/thread-sorted-H/setup
> -+--- procps-3.1.15.old/test/ps/thread-sorted-H/setup	2003-10-20 10:45:59.000000000 +1000
> -++++ procps-3.1.15/test/ps/thread-sorted-H/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,14 +0,0 @@
> -+-ARGS="-C clone-once --sort=pid H"
> -+-GOOD=0
> -+-EVALFN=1
> -+-KILLFN=1
> -+-
> -+-./clone-once
> -+-
> -+-evalfn () {
> -+-   [ `wc -l < stdout` == 3 ]
> -+-}
> -+-
> -+-killfn () {
> -+-  killall -9 clone-once
> -+-}
> -+diff -ruN procps-3.1.15.old/test/ps/thread-sorted-HL/header procps-3.1.15/test/ps/thread-sorted-HL/header
> -+--- procps-3.1.15.old/test/ps/thread-sorted-HL/header	2003-10-20 10:57:53.000000000 +1000
> -++++ procps-3.1.15/test/ps/thread-sorted-HL/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- PID LWP TTY STAT TIME COMMAND
> -+diff -ruN procps-3.1.15.old/test/ps/thread-sorted-HL/setup procps-3.1.15/test/ps/thread-sorted-HL/setup
> -+--- procps-3.1.15.old/test/ps/thread-sorted-HL/setup	2003-10-20 10:45:16.000000000 +1000
> -++++ procps-3.1.15/test/ps/thread-sorted-HL/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,14 +0,0 @@
> -+-ARGS="-C clone-once --sort=pid H -L"
> -+-GOOD=0
> -+-EVALFN=1
> -+-KILLFN=1
> -+-
> -+-./clone-once
> -+-
> -+-evalfn () {
> -+-   [ `wc -l < stdout` == 3 ]
> -+-}
> -+-
> -+-killfn () {
> -+-  killall -9 clone-once
> -+-}
> -+diff -ruN procps-3.1.15.old/test/ps/thread-sorted-Hm/setup procps-3.1.15/test/ps/thread-sorted-Hm/setup
> -+--- procps-3.1.15.old/test/ps/thread-sorted-Hm/setup	2003-10-20 10:47:00.000000000 +1000
> -++++ procps-3.1.15/test/ps/thread-sorted-Hm/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,2 +0,0 @@
> -+-ARGS="-C clone-once --sort=pid Hm"
> -+-GOOD=1
> -+diff -ruN procps-3.1.15.old/test/ps/thread-sorted-Hm/stderr procps-3.1.15/test/ps/thread-sorted-Hm/stderr
> -+--- procps-3.1.15.old/test/ps/thread-sorted-Hm/stderr	2003-10-20 10:58:47.000000000 +1000
> -++++ procps-3.1.15/test/ps/thread-sorted-Hm/stderr	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,23 +0,0 @@
> -+-ERROR: Thread flags conflict; can't use H with m or -m.
> -+-********* simple selection *********  ********* selection by list *********
> -+--A all processes                      -C by command name
> -+--N negate selection                   -G by real group ID (supports names)
> -+--a all w/ tty except session leaders  -U by real user ID (supports names)
> -+--d all except session leaders         -g by session leader OR by group name
> -+--e all processes                      -p by process ID
> -+-T  all processes on this terminal     -s processes in the sessions given
> -+-a  all w/ tty, including other users  -t by tty
> -+-g  all, even group leaders!           -u by effective user ID (supports names)
> -+-r  only running processes             U  processes for specified users
> -+-x  processes w/o controlling ttys     t  by tty
> -+-*********** output format **********  *********** long options ***********
> -+--o,o user-defined  -f full            --Group --User --pid --cols --ppid
> -+--j,j job control   s  signal          --group --user --sid --rows
> -+--O,O preloaded -o  v  virtual memory  --cumulative --format --deselect
> -+--l,l long          u  user-oriented   --sort --tty --forest --version
> -+--F   extra full    X  registers       --heading --no-heading
> -+-                    ********* misc options *********
> -+--V,V show version       L  list format codes  f  ASCII art forest
> -+--m,m show threads       S  children in sum    -y change -l format
> -+--n,N set namelist file  c  true command name  n  numeric WCHAN,UID
> -+--w,w wide output        e  show environment   -H process hierarchy
> -+diff -ruN procps-3.1.15.old/test/ps/thread-sorted-L/header procps-3.1.15/test/ps/thread-sorted-L/header
> -+--- procps-3.1.15.old/test/ps/thread-sorted-L/header	2003-10-20 10:57:53.000000000 +1000
> -++++ procps-3.1.15/test/ps/thread-sorted-L/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- PID LWP TTY TIME CMD
> -+diff -ruN procps-3.1.15.old/test/ps/thread-sorted-L/setup procps-3.1.15/test/ps/thread-sorted-L/setup
> -+--- procps-3.1.15.old/test/ps/thread-sorted-L/setup	2003-10-20 10:45:35.000000000 +1000
> -++++ procps-3.1.15/test/ps/thread-sorted-L/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,14 +0,0 @@
> -+-ARGS="-C clone-once --sort=pid -L"
> -+-GOOD=0
> -+-EVALFN=1
> -+-KILLFN=1
> -+-
> -+-./clone-once
> -+-
> -+-evalfn () {
> -+-   [ `wc -l < stdout` == 3 ]
> -+-}
> -+-
> -+-killfn () {
> -+-  killall -9 clone-once
> -+-}
> -+diff -ruN procps-3.1.15.old/test/ps/thread-sorted-default/header procps-3.1.15/test/ps/thread-sorted-default/header
> -+--- procps-3.1.15.old/test/ps/thread-sorted-default/header	2003-10-20 10:57:53.000000000 +1000
> -++++ procps-3.1.15/test/ps/thread-sorted-default/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- PID TTY TIME CMD
> -+diff -ruN procps-3.1.15.old/test/ps/thread-sorted-default/setup procps-3.1.15/test/ps/thread-sorted-default/setup
> -+--- procps-3.1.15.old/test/ps/thread-sorted-default/setup	2003-10-20 10:47:53.000000000 +1000
> -++++ procps-3.1.15/test/ps/thread-sorted-default/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,14 +0,0 @@
> -+-ARGS="-C clone-once --sort=pid"
> -+-GOOD=0
> -+-EVALFN=1
> -+-KILLFN=1
> -+-
> -+-./clone-once
> -+-
> -+-evalfn () {
> -+-   [ `wc -l < stdout` == 2 ]
> -+-}
> -+-
> -+-killfn () {
> -+-  killall -9 clone-once
> -+-}
> -+diff -ruN procps-3.1.15.old/test/ps/thread-sorted-m/header procps-3.1.15/test/ps/thread-sorted-m/header
> -+--- procps-3.1.15.old/test/ps/thread-sorted-m/header	2003-10-20 10:57:53.000000000 +1000
> -++++ procps-3.1.15/test/ps/thread-sorted-m/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- PID TTY STAT TIME COMMAND
> -+diff -ruN procps-3.1.15.old/test/ps/thread-sorted-m/setup procps-3.1.15/test/ps/thread-sorted-m/setup
> -+--- procps-3.1.15.old/test/ps/thread-sorted-m/setup	2003-10-20 10:42:59.000000000 +1000
> -++++ procps-3.1.15/test/ps/thread-sorted-m/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,14 +0,0 @@
> -+-ARGS="-C clone-once --sort=pid m"
> -+-GOOD=0
> -+-EVALFN=1
> -+-KILLFN=1
> -+-
> -+-./clone-once
> -+-
> -+-evalfn () {
> -+-   [ `wc -l < stdout` == 4 ]
> -+-}
> -+-
> -+-killfn () {
> -+-  killall -9 clone-once
> -+-}
> -+diff -ruN procps-3.1.15.old/test/ps/thread-sorted-mL/header procps-3.1.15/test/ps/thread-sorted-mL/header
> -+--- procps-3.1.15.old/test/ps/thread-sorted-mL/header	2003-10-20 10:57:54.000000000 +1000
> -++++ procps-3.1.15/test/ps/thread-sorted-mL/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- PID LWP TTY TIME CMD
> -+diff -ruN procps-3.1.15.old/test/ps/thread-sorted-mL/setup procps-3.1.15/test/ps/thread-sorted-mL/setup
> -+--- procps-3.1.15.old/test/ps/thread-sorted-mL/setup	2003-10-20 10:44:46.000000000 +1000
> -++++ procps-3.1.15/test/ps/thread-sorted-mL/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,14 +0,0 @@
> -+-ARGS="-C clone-once --sort=pid -mL"
> -+-GOOD=0
> -+-EVALFN=1
> -+-KILLFN=1
> -+-
> -+-./clone-once
> -+-
> -+-evalfn () {
> -+-   [ `wc -l < stdout` == 4 ]
> -+-}
> -+-
> -+-killfn () {
> -+-  killall -9 clone-once
> -+-}
> -+diff -ruN procps-3.1.15.old/test/ps/unix-comm/setup procps-3.1.15/test/ps/unix-comm/setup
> -+--- procps-3.1.15.old/test/ps/unix-comm/setup	2003-09-02 10:33:46.000000000 +1000
> -++++ procps-3.1.15/test/ps/unix-comm/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,7 +0,0 @@
> -+-ARGS=
> -+-GOOD=0
> -+-EVALFN=1
> -+-
> -+-evalfn () {
> -+-  grep "ps$" stdout >> /dev/null
> -+-}
> -+diff -ruN procps-3.1.15.old/test/ps/unix-doc/setup procps-3.1.15/test/ps/unix-doc/setup
> -+--- procps-3.1.15.old/test/ps/unix-doc/setup	2003-09-03 13:38:37.000000000 +1000
> -++++ procps-3.1.15/test/ps/unix-doc/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,37 +0,0 @@
> -+-# The UNIX+POSIX standard requires that, except for "args" and "comm",
> -+-# the documentation must warn about any implementation-defined
> -+-# format specifiers that may contain blanks.
> -+-#
> -+-# Using "ps L" to grab the list isn't proper, but it's needed.
> -+-#
> -+-# This is our list for the man page:
> -+-#
> -+-#args         COMMAND 
> -+-#cmd          CMD     
> -+-#comm         COMMAND 
> -+-#command      COMMAND 
> -+-#fname        COMMAND 
> -+-#ucmd         CMD     
> -+-#ucomm        COMMAND 
> -+-#lstart       STARTED 
> -+-#bsdstart     START   
> -+-#start        STARTED 
> -+-
> -+-# It gets to 819 last I checked
> -+-export COLUMNS=1111
> -+-
> -+-biglist=`$TESTME L \
> -+-  | egrep -v '^(comm|args|cmd|comm|command|fname|ucmd|ucomm|lstart|bsdstart|start) ' \
> -+-  | awk '{printf("%s,",$1);}'`
> -+-numcols=`echo $biglist | tr -dc , | wc -c`
> -+-
> -+-ARGS=-eo$biglist
> -+-GOOD=0
> -+-EVALFN=1
> -+-
> -+-evalfn () {
> -+-  while read -a myarray; do
> -+-    [ ${#myarray[*]} == $numcols ] || return 1
> -+-  done < stdout
> -+-  return 0
> -+-}
> -+diff -ruN procps-3.1.15.old/test/ps/unix-f-args/setup procps-3.1.15/test/ps/unix-f-args/setup
> -+--- procps-3.1.15.old/test/ps/unix-f-args/setup	2003-09-02 10:33:18.000000000 +1000
> -++++ procps-3.1.15/test/ps/unix-f-args/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,7 +0,0 @@
> -+-ARGS="-f"
> -+-GOOD=0
> -+-EVALFN=1
> -+-
> -+-evalfn () {
> -+-  grep "ps -f$" stdout >> /dev/null
> -+-}
> -+diff -ruN procps-3.1.15.old/test/ps/unix-f-header/header procps-3.1.15/test/ps/unix-f-header/header
> -+--- procps-3.1.15.old/test/ps/unix-f-header/header	2003-09-02 08:40:35.000000000 +1000
> -++++ procps-3.1.15/test/ps/unix-f-header/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- UID PID PPID C STIME TTY TIME CMD
> -+diff -ruN procps-3.1.15.old/test/ps/unix-f-header/setup procps-3.1.15/test/ps/unix-f-header/setup
> -+--- procps-3.1.15.old/test/ps/unix-f-header/setup	2003-09-02 08:37:18.000000000 +1000
> -++++ procps-3.1.15/test/ps/unix-f-header/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,2 +0,0 @@
> -+-ARGS="-f"
> -+-GOOD=0
> -+diff -ruN procps-3.1.15.old/test/ps/unix-fl-header/header procps-3.1.15/test/ps/unix-fl-header/header
> -+--- procps-3.1.15.old/test/ps/unix-fl-header/header	2003-09-02 08:53:56.000000000 +1000
> -++++ procps-3.1.15/test/ps/unix-fl-header/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- F S UID PID PPID C PRI NI ADDR SZ WCHAN STIME TTY TIME CMD
> -+diff -ruN procps-3.1.15.old/test/ps/unix-fl-header/setup procps-3.1.15/test/ps/unix-fl-header/setup
> -+--- procps-3.1.15.old/test/ps/unix-fl-header/setup	2003-09-02 08:55:32.000000000 +1000
> -++++ procps-3.1.15/test/ps/unix-fl-header/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,2 +0,0 @@
> -+-ARGS="-fl"
> -+-GOOD=0
> -+diff -ruN procps-3.1.15.old/test/ps/unix-header/header procps-3.1.15/test/ps/unix-header/header
> -+--- procps-3.1.15.old/test/ps/unix-header/header	2003-09-02 08:53:56.000000000 +1000
> -++++ procps-3.1.15/test/ps/unix-header/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- PID TTY TIME CMD
> -+diff -ruN procps-3.1.15.old/test/ps/unix-header/setup procps-3.1.15/test/ps/unix-header/setup
> -+--- procps-3.1.15.old/test/ps/unix-header/setup	2003-09-02 08:55:09.000000000 +1000
> -++++ procps-3.1.15/test/ps/unix-header/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,2 +0,0 @@
> -+-ARGS=
> -+-GOOD=0
> -+diff -ruN procps-3.1.15.old/test/ps/unix-l-header/header procps-3.1.15/test/ps/unix-l-header/header
> -+--- procps-3.1.15.old/test/ps/unix-l-header/header	2003-09-02 08:53:56.000000000 +1000
> -++++ procps-3.1.15/test/ps/unix-l-header/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
> -+diff -ruN procps-3.1.15.old/test/ps/unix-l-header/setup procps-3.1.15/test/ps/unix-l-header/setup
> -+--- procps-3.1.15.old/test/ps/unix-l-header/setup	2003-09-02 08:55:49.000000000 +1000
> -++++ procps-3.1.15/test/ps/unix-l-header/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,2 +0,0 @@
> -+-ARGS="-l"
> -+-GOOD=0
> -+diff -ruN procps-3.1.15.old/test/ps/unix-lf-header/header procps-3.1.15/test/ps/unix-lf-header/header
> -+--- procps-3.1.15.old/test/ps/unix-lf-header/header	2003-09-02 08:53:56.000000000 +1000
> -++++ procps-3.1.15/test/ps/unix-lf-header/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- F S UID PID PPID C PRI NI ADDR SZ WCHAN STIME TTY TIME CMD
> -+diff -ruN procps-3.1.15.old/test/ps/unix-lf-header/setup procps-3.1.15/test/ps/unix-lf-header/setup
> -+--- procps-3.1.15.old/test/ps/unix-lf-header/setup	2003-09-02 08:55:39.000000000 +1000
> -++++ procps-3.1.15/test/ps/unix-lf-header/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,2 +0,0 @@
> -+-ARGS="-lf"
> -+-GOOD=0
> -+diff -ruN procps-3.1.15.old/test/ps/unix-o-header-all/header procps-3.1.15/test/ps/unix-o-header-all/header
> -+--- procps-3.1.15.old/test/ps/unix-o-header-all/header	2003-09-02 09:23:24.000000000 +1000
> -++++ procps-3.1.15/test/ps/unix-o-header-all/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- COMMAND COMMAND ELAPSED GROUP NI %CPU PGID PID PPID RGROUP RUSER TIME TT USER VSZ
> -+diff -ruN procps-3.1.15.old/test/ps/unix-o-header-all/setup procps-3.1.15/test/ps/unix-o-header-all/setup
> -+--- procps-3.1.15.old/test/ps/unix-o-header-all/setup	2003-09-02 09:23:11.000000000 +1000
> -++++ procps-3.1.15/test/ps/unix-o-header-all/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,2 +0,0 @@
> -+-ARGS="-o args,comm,etime,group,nice,pcpu,pgid,pid,ppid,rgroup,ruser,time,tty,user,vsz"
> -+-GOOD=0
> -+diff -ruN procps-3.1.15.old/test/ps/unix-o-header-dup/header procps-3.1.15/test/ps/unix-o-header-dup/header
> -+--- procps-3.1.15.old/test/ps/unix-o-header-dup/header	2003-09-02 09:16:50.000000000 +1000
> -++++ procps-3.1.15/test/ps/unix-o-header-dup/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- PID TT PID PPID
> -+diff -ruN procps-3.1.15.old/test/ps/unix-o-header-dup/setup procps-3.1.15/test/ps/unix-o-header-dup/setup
> -+--- procps-3.1.15.old/test/ps/unix-o-header-dup/setup	2003-09-02 09:16:22.000000000 +1000
> -++++ procps-3.1.15/test/ps/unix-o-header-dup/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,2 +0,0 @@
> -+-ARGS="-o pid,tty -o pid,ppid"
> -+-GOOD=0
> -+diff -ruN procps-3.1.15.old/test/ps/unix-o-header-evil/header procps-3.1.15/test/ps/unix-o-header-evil/header
> -+--- procps-3.1.15.old/test/ps/unix-o-header-evil/header	2003-09-02 12:39:36.000000000 +1000
> -++++ procps-3.1.15/test/ps/unix-o-header-evil/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- PPID PID FOO,tty PPID
> -+diff -ruN procps-3.1.15.old/test/ps/unix-o-header-evil/setup procps-3.1.15/test/ps/unix-o-header-evil/setup
> -+--- procps-3.1.15.old/test/ps/unix-o-header-evil/setup	2003-09-02 12:39:19.000000000 +1000
> -++++ procps-3.1.15/test/ps/unix-o-header-evil/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,2 +0,0 @@
> -+-ARGS="-o ppid -o pid,ppid=FOO,tty -o ppid"
> -+-GOOD=0
> -+diff -ruN procps-3.1.15.old/test/ps/unix-o-header-nil/setup procps-3.1.15/test/ps/unix-o-header-nil/setup
> -+--- procps-3.1.15.old/test/ps/unix-o-header-nil/setup	2003-09-02 10:08:33.000000000 +1000
> -++++ procps-3.1.15/test/ps/unix-o-header-nil/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,7 +0,0 @@
> -+-ARGS="-o pid="
> -+-GOOD=0
> -+-EVALFN=1
> -+-
> -+-evalfn () {
> -+-  ! grep PID stdout >> /dev/null
> -+-}
> -+diff -ruN procps-3.1.15.old/test/ps/unix-selection/header procps-3.1.15/test/ps/unix-selection/header
> -+--- procps-3.1.15.old/test/ps/unix-selection/header	2003-09-04 16:13:48.000000000 +1000
> -++++ procps-3.1.15/test/ps/unix-selection/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- PID TTY TIME CMD
> -+diff -ruN procps-3.1.15.old/test/ps/unix-selection/setup procps-3.1.15/test/ps/unix-selection/setup
> -+--- procps-3.1.15.old/test/ps/unix-selection/setup	2003-09-13 14:00:48.000000000 +1000
> -++++ procps-3.1.15/test/ps/unix-selection/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,25 +0,0 @@
> -+-ARGS=
> -+-GOOD=0
> -+-EVALFN=1
> -+-KILLFN=1
> -+-
> -+-rm -f misc.tmp ready.tmp typescript.tmp
> -+-
> -+-./got-no-tty
> -+-# this'll do but... WHERE ARE THE MAN PAGES FOR PTY STUFF???
> -+-(SHELL=`pwd`/script-child script typescript.tmp &>/dev/null) &
> -+-while [ ! -f ready.tmp ] ; do sleep 0.01 ; done
> -+-. ready.tmp
> -+-
> -+-evalfn () {
> -+-   THIS_TTY=`tty | colrm 1 5`
> -+-   lines1=`awk '{print $2}' < stdout | sort -u | egrep "^($THIS_TTY)$"               | wc -l`
> -+-   lines3=`awk '{print $2}' < stdout | sort -u | egrep "^($SHELL_TTY|$THIS_TTY|\?)$" | wc -l`
> -+-   [ $lines1 == 1 ] && [ $lines3 == 1 ]
> -+-}
> -+-
> -+-killfn () {
> -+-  killall -9 got-no-tty
> -+-  kill -9 $SHELL_PID  # the others should freely die
> -+-  rm -f misc.tmp ready.tmp typescript.tmp
> -+-}
> -+diff -ruN procps-3.1.15.old/test/ps/unix-tty-default/setup procps-3.1.15/test/ps/unix-tty-default/setup
> -+--- procps-3.1.15.old/test/ps/unix-tty-default/setup	2003-09-02 11:36:37.000000000 +1000
> -++++ procps-3.1.15/test/ps/unix-tty-default/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,14 +0,0 @@
> -+-ARGS=
> -+-GOOD=0
> -+-EVALFN=1
> -+-
> -+-# default output is restricted to this tty
> -+-MYTTY=`tty`
> -+-
> -+-evalfn () {
> -+-  PSTTY=`awk '!/TTY/{print $2}' < stdout | uniq`
> -+-  if [ /dev/$PSTTY != $MYTTY ] ; then
> -+-    return 1
> -+-  fi
> -+-  return 0
> -+-}
> -+diff -ruN procps-3.1.15.old/test/ps/unix-tty-name/setup procps-3.1.15/test/ps/unix-tty-name/setup
> -+--- procps-3.1.15.old/test/ps/unix-tty-name/setup	2003-09-02 10:42:55.000000000 +1000
> -++++ procps-3.1.15/test/ps/unix-tty-name/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,9 +0,0 @@
> -+-ARGS="-otty= -p$$"
> -+-GOOD=0
> -+-EVALFN=1
> -+-
> -+-evalfn () {
> -+-  MYTTY=`tty`
> -+-  PSTTY=`printf /dev/ ; cat stdout`
> -+-  [ $MYTTY == $PSTTY ]
> -+-}
> -+diff -ruN procps-3.1.15.old/test/ps/unix-tty-names/setup procps-3.1.15/test/ps/unix-tty-names/setup
> -+--- procps-3.1.15.old/test/ps/unix-tty-names/setup	2003-09-02 11:17:09.000000000 +1000
> -++++ procps-3.1.15/test/ps/unix-tty-names/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,26 +0,0 @@
> -+-ARGS="-eotty="
> -+-GOOD=0
> -+-EVALFN=1
> -+-
> -+-# the UNIX spec allows:
> -+-#
> -+-# /dev/ttyS0   as ttyS0
> -+-# /dev/ttyS0   as S0          (OK to chop a leading "tty")
> -+-# /dev/console as console
> -+-# /foo/bar     as bar or /foo/bar  (poorly unspecified)
> -+-# -nothing-    as ? or -           (poorly unspecified, we use '?')
> -+-#
> -+-# Also, the format must agree with what "who" uses.
> -+-# Linux "who" doesn't strip "tty" off of /dev/ttyS0, etc.,
> -+-# so that's illegal in a Linux environment.
> -+-#
> -+-# junk the '?' to avoid shell wildcard expansion
> -+-
> -+-evalfn () {
> -+-  for i in `tr -d '?' < stdout | sort -u` ; do
> -+-    if [ ! -c /dev/$i -a ! -c /$i ] ; then
> -+-      return 1
> -+-    fi
> -+-  done
> -+-  return 0
> -+-}
> -+diff -ruN procps-3.1.15.old/test/ps/unix-vsz/setup procps-3.1.15/test/ps/unix-vsz/setup
> -+--- procps-3.1.15.old/test/ps/unix-vsz/setup	2003-09-11 10:24:38.000000000 +1000
> -++++ procps-3.1.15/test/ps/unix-vsz/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,27 +0,0 @@
> -+-# The standard describes the "vsz" format as:
> -+-#        The size of the process in (virtual) memory
> -+-#        in 1024 byte units as a decimal integer.
> -+-#
> -+-# It's hard to tell 1000-byte from 1024-byte units,
> -+-# but easy to tell 1024-byte from 512-byte or 2 kB.
> -+-# On a 64-bit system, watch for 4 GB troubles as well.
> -+-
> -+-# throw in the PID to ensure whitespace on the left
> -+-ARGS="-C gigabyte -o pid= -o vsz="
> -+-GOOD=0
> -+-EVALFN=1
> -+-KILLFN=1
> -+-
> -+-BITSIZE=`./gigabyte`
> -+-
> -+-evalfn () {
> -+-  if [ $BITSIZE == 32bit ] ; then
> -+-    egrep ' 1......$' stdout >> /dev/null
> -+-  else
> -+-    egrep ' 1.......$' stdout >> /dev/null
> -+-  fi
> -+-}
> -+-
> -+-killfn () {
> -+-  killall -9 gigabyte
> -+-}
> -+diff -ruN procps-3.1.15.old/test/ps/unix-wchan/setup procps-3.1.15/test/ps/unix-wchan/setup
> -+--- procps-3.1.15.old/test/ps/unix-wchan/setup	2003-09-02 12:25:15.000000000 +1000
> -++++ procps-3.1.15/test/ps/unix-wchan/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,11 +0,0 @@
> -+-ARGS="-eowchan="
> -+-GOOD=0
> -+-EVALFN=1
> -+-
> -+-# Make sure we're getting back real wchan data,
> -+-# not just "WCHAN", "-", "0", "*", and hex digits.
> -+-# Assumes usage of letters [g-z].
> -+-
> -+-evalfn () {
> -+-  egrep '[g-z]' stdout >> /dev/null
> -+-}
> -+diff -ruN procps-3.1.15.old/test/ps/y-needs-l/header procps-3.1.15/test/ps/y-needs-l/header
> -+--- procps-3.1.15.old/test/ps/y-needs-l/header	2003-10-02 12:10:34.000000000 +1000
> -++++ procps-3.1.15/test/ps/y-needs-l/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- 
> -+\ No newline at end of file
> -+diff -ruN procps-3.1.15.old/test/ps/y-needs-l/setup procps-3.1.15/test/ps/y-needs-l/setup
> -+--- procps-3.1.15.old/test/ps/y-needs-l/setup	2003-10-02 12:10:45.000000000 +1000
> -++++ procps-3.1.15/test/ps/y-needs-l/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,2 +0,0 @@
> -+-ARGS="-y"
> -+-GOOD=1
> -+diff -ruN procps-3.1.15.old/test/ps/y-needs-l/stderr procps-3.1.15/test/ps/y-needs-l/stderr
> -+--- procps-3.1.15.old/test/ps/y-needs-l/stderr	2003-10-02 12:10:56.000000000 +1000
> -++++ procps-3.1.15/test/ps/y-needs-l/stderr	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,23 +0,0 @@
> -+-ERROR: Modifier -y without format -l makes no sense.
> -+-********* simple selection *********  ********* selection by list *********
> -+--A all processes                      -C by command name
> -+--N negate selection                   -G by real group ID (supports names)
> -+--a all w/ tty except session leaders  -U by real user ID (supports names)
> -+--d all except session leaders         -g by session leader OR by group name
> -+--e all processes                      -p by process ID
> -+-T  all processes on this terminal     -s processes in the sessions given
> -+-a  all w/ tty, including other users  -t by tty
> -+-g  all, even group leaders!           -u by effective user ID (supports names)
> -+-r  only running processes             U  processes for specified users
> -+-x  processes w/o controlling ttys     t  by tty
> -+-*********** output format **********  *********** long options ***********
> -+--o,o user-defined  -f full            --Group --User --pid --cols --ppid
> -+--j,j job control   s  signal          --group --user --sid --rows
> -+--O,O preloaded -o  v  virtual memory  --cumulative --format --deselect
> -+--l,l long          u  user-oriented   --sort --tty --forest --version
> -+--F   extra full    X  registers       --heading --no-heading
> -+-                    ********* misc options *********
> -+--V,V show version       L  list format codes  f  ASCII art forest
> -+--m,m show threads       S  children in sum    -y change -l format
> -+--n,N set namelist file  c  true command name  n  numeric WCHAN,UID
> -+--w,w wide output        e  show environment   -H process hierarchy
> -+diff -ruN procps-3.1.15.old/test/ps/zombie-args/setup procps-3.1.15/test/ps/zombie-args/setup
> -+--- procps-3.1.15.old/test/ps/zombie-args/setup	2003-09-04 13:43:31.000000000 +1000
> -++++ procps-3.1.15/test/ps/zombie-args/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,18 +0,0 @@
> -+-ARGS="-H -C the_living_dead -o args"
> -+-GOOD=0
> -+-EVALFN=1
> -+-KILLFN=1
> -+-
> -+-# the -H is just to ensure predictable output ordering
> -+-
> -+-# assumes that the processes won't get swapped out before ps runs
> -+-
> -+-./the_living_dead
> -+-
> -+-evalfn () {
> -+-  diff -Naurd stdout $TESTNAME/stdout >> /dev/null
> -+-}
> -+-
> -+-killfn () {
> -+-  killall -9 the_living_dead
> -+-}
> -+diff -ruN procps-3.1.15.old/test/ps/zombie-args/stdout procps-3.1.15/test/ps/zombie-args/stdout
> -+--- procps-3.1.15.old/test/ps/zombie-args/stdout	2003-09-04 13:44:01.000000000 +1000
> -++++ procps-3.1.15/test/ps/zombie-args/stdout	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,3 +0,0 @@
> -+-COMMAND
> -+-./the_living_dead
> -+-  [the_living_dead] <defunct>
> -+diff -ruN procps-3.1.15.old/test/ps/zombie-comm/setup procps-3.1.15/test/ps/zombie-comm/setup
> -+--- procps-3.1.15.old/test/ps/zombie-comm/setup	2003-09-04 13:43:44.000000000 +1000
> -++++ procps-3.1.15/test/ps/zombie-comm/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,16 +0,0 @@
> -+-ARGS="-H -C the_living_dead -o comm"
> -+-GOOD=0
> -+-EVALFN=1
> -+-KILLFN=1
> -+-
> -+-# the -H is just to ensure predictable output ordering
> -+-
> -+-./the_living_dead
> -+-
> -+-evalfn () {
> -+-  diff -Naurd stdout $TESTNAME/stdout >> /dev/null
> -+-}
> -+-
> -+-killfn () {
> -+-  killall -9 the_living_dead
> -+-}
> -+diff -ruN procps-3.1.15.old/test/ps/zombie-comm/stdout procps-3.1.15/test/ps/zombie-comm/stdout
> -+--- procps-3.1.15.old/test/ps/zombie-comm/stdout	2003-09-04 13:44:12.000000000 +1000
> -++++ procps-3.1.15/test/ps/zombie-comm/stdout	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,3 +0,0 @@
> -+-COMMAND
> -+-the_living_dead
> -+-  the_living_dead <defunct>
> -+diff -ruN procps-3.1.15.old/test/ps/zombie-wchan/setup procps-3.1.15/test/ps/zombie-wchan/setup
> -+--- procps-3.1.15.old/test/ps/zombie-wchan/setup	2003-09-04 13:52:41.000000000 +1000
> -++++ procps-3.1.15/test/ps/zombie-wchan/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,14 +0,0 @@
> -+-ARGS="-C the_living_dead -o wchan,stat,comm"
> -+-GOOD=0
> -+-EVALFN=1
> -+-KILLFN=1
> -+-
> -+-./the_living_dead
> -+-
> -+-evalfn () {
> -+-  egrep 'exit.*Z.*defunct' stdout >> /dev/null
> -+-}
> -+-
> -+-killfn () {
> -+-  killall -9 the_living_dead
> -+-}
> -+diff -ruN procps-3.1.15.old/test/runtests procps-3.1.15/test/runtests
> -+--- procps-3.1.15.old/test/runtests	2003-09-03 12:09:08.000000000 +1000
> -++++ procps-3.1.15/test/runtests	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,4 +0,0 @@
> -+-#!/bin/bash
> -+-
> -+-export TESTME=${PSPROG:-../ps/ps}
> -+-for i in ps/*-* ; do ./onetest $i ; done
> -+diff -ruN procps-3.1.15.old/test/script-child procps-3.1.15/test/script-child
> -+--- procps-3.1.15.old/test/script-child	2003-09-04 14:43:28.000000000 +1000
> -++++ procps-3.1.15/test/script-child	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,10 +0,0 @@
> -+-#!/bin/bash
> -+-#
> -+-# usage:
> -+-# SHELL=/path/to/this/script script trashfile
> -+-
> -+-echo SCRIPT_PID=$PPID > misc.tmp
> -+-echo SHELL_PID=$$ >> misc.tmp
> -+-echo SHELL_TTY=`/usr/bin/tty | colrm 1 5` >> misc.tmp
> -+-mv misc.tmp ready.tmp   # atomic op
> -+-while /bin/true ; do sleep 42 ; done
> -+diff -ruN procps-3.1.15.old/test/sid-breaks-ttys.c procps-3.1.15/test/sid-breaks-ttys.c
> -+--- procps-3.1.15.old/test/sid-breaks-ttys.c	2003-09-08 13:28:24.000000000 +1000
> -++++ procps-3.1.15/test/sid-breaks-ttys.c	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,38 +0,0 @@
> -+-#include <sys/types.h>
> -+-#include <unistd.h>
> -+-#include <signal.h>
> -+-
> -+-static pid_t one;
> -+-
> -+-static void die(int signo){
> -+-  (void)signo;
> -+-  _exit(0);
> -+-}
> -+-
> -+-static void hang(void){
> -+-  for(;;) pause();
> -+-}
> -+-
> -+-int main(int argc, char *argv[]){
> -+-  (void)argc;
> -+-  (void)argv;
> -+-
> -+-  one = getpid();
> -+-  signal(SIGHUP,die);
> -+-  if(fork()) hang();    // parent later killed as readyness signal
> -+-
> -+-  // second one exits, to enable setsid(), and the resulting
> -+-  // zombie will be reaped by init after 1st process killed
> -+-  if(fork()) _exit(0);
> -+-
> -+-  if(setsid()==-1){
> -+-    kill(one,SIGKILL); // hopefully the shell will complain
> -+-    _exit(42); // kind of tough to report errors
> -+-  }
> -+-
> -+-  kill(one,SIGHUP); // let the shell know we're ready
> -+-
> -+-  hang();
> -+-
> -+-  return 0;
> -+-}
> -+diff -ruN procps-3.1.15.old/test/sidious.c procps-3.1.15/test/sidious.c
> -+--- procps-3.1.15.old/test/sidious.c	2003-09-08 13:58:20.000000000 +1000
> -++++ procps-3.1.15/test/sidious.c	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,77 +0,0 @@
> -+-// ps fTo sess,pgid,pid,tty,ppid,tpgid,args -C a.out
> -+-
> -+-#include <sys/types.h>
> -+-#include <unistd.h>
> -+-#include <signal.h>
> -+-#include <sys/stat.h>
> -+-#include <fcntl.h>
> -+-#include <stdlib.h> // undocumented grantpt,unlockpt,ptsname,openpt,posix_openpt
> -+-//#include <pty.h>    // undocumented openpty,forkpty
> -+-
> -+-static pid_t one;
> -+-
> -+-static void die(int signo){
> -+-  (void)signo;
> -+-  _exit(0);
> -+-}
> -+-
> -+-//static void sigchld_handler(int signo){
> -+-//  (void)signo;
> -+-//  kill(one,SIGHUP);          // kill parent
> -+-//}
> -+-
> -+-static void hang(void){
> -+-  for(;;) pause();
> -+-}
> -+-
> -+-int main(int argc, char *argv[]){
> -+-  int master;
> -+-  int slave;
> -+-
> -+-  (void)argc;
> -+-  (void)argv;
> -+-
> -+-  one = getpid();
> -+-  signal(SIGHUP,die);
> -+-  if(fork()) hang();    // parent later killed as readyness signal
> -+-
> -+-  // second one exits, to enable setsid(), and the resulting
> -+-  // zombie will be reaped by init after 1st process killed
> -+-  if(fork()) _exit(0);
> -+-
> -+-
> -+-  master = open("/dev/ptmx", O_RDWR|O_NOCTTY);
> -+-
> -+-  // could fork, but don't bother
> -+-  // (won't be doing anything with the master side)
> -+-
> -+-  // could change child's UID, but don't bother
> -+-  // (would make the tests require running as root)
> -+-
> -+-  // not in the man pages!!!
> -+-  grantpt(master);
> -+-  unlockpt(master);
> -+-
> -+-  if(setsid()==-1){
> -+-    kill(one,SIGKILL); // hopefully the shell will complain
> -+-    _exit(42); // kind of tough to report errors
> -+-  }
> -+-
> -+-  slave = open(ptsname(master), O_RDWR);
> -+-#ifdef I_PUSH
> -+-  // push STREAMS tty stuff, just to have an example of it
> -+-  ioctl(slave, I_PUSH, "ptem");
> -+-  ioctl(slave, I_PUSH, "ldterm");
> -+-#endif
> -+-#ifdef TIOCSCTTY
> -+-  // On SysV, slave open got us a TTY. On BSD, we must do this:
> -+-  ioctl(fd, TIOCSCTTY, NULL);
> -+-#endif
> -+-
> -+-
> -+-  kill(one,SIGHUP); // let the shell know we're ready
> -+-
> -+-  hang();
> -+-
> -+-  return 0;
> -+-}
> -+diff -ruN procps-3.1.15.old/test/th.c procps-3.1.15/test/th.c
> -+--- procps-3.1.15.old/test/th.c	2003-09-14 01:35:42.000000000 +1000
> -++++ procps-3.1.15/test/th.c	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,16 +0,0 @@
> -+-#include <unistd.h>
> -+-#include <pthread.h>
> -+-
> -+-void *hanger(void *vp){
> -+-  (void)vp;
> -+-  for(;;) pause();
> -+-}
> -+-
> -+-int main(int argc, char *argv[]){
> -+-  pthread_t thread;
> -+-  (void)argc;
> -+-  (void)argv;
> -+-  pthread_create(&thread, NULL, hanger, NULL);
> -+-  hanger(NULL);
> -+-  return 0; // keep gcc happy
> -+-}
> -+diff -ruN procps-3.1.15.old/test/the_living_dead.c procps-3.1.15/test/the_living_dead.c
> -+--- procps-3.1.15.old/test/the_living_dead.c	2003-09-04 13:36:54.000000000 +1000
> -++++ procps-3.1.15/test/the_living_dead.c	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,39 +0,0 @@
> -+-#include <sys/types.h>
> -+-#include <unistd.h>
> -+-#include <signal.h>
> -+-
> -+-static pid_t one;
> -+-
> -+-static void die(int signo){
> -+-  (void)signo;
> -+-  _exit(0);
> -+-}
> -+-
> -+-static void sigchld_handler(int signo){
> -+-  (void)signo;
> -+-  kill(one,SIGHUP);          // kill parent
> -+-}
> -+-
> -+-static void hang(void){
> -+-  for(;;) pause();
> -+-}
> -+-
> -+-int main(int argc, char *argv[]){
> -+-  pid_t three;
> -+-
> -+-  (void)argc;
> -+-  (void)argv;
> -+-
> -+-  one = getpid();
> -+-  signal(SIGHUP,die);
> -+-  if(fork()) hang();    // parent later killed as readyness signal
> -+-
> -+-  three = fork();
> -+-  if(three){
> -+-    signal(SIGCHLD,sigchld_handler);
> -+-    kill(three,SIGHUP);   // create the zombie
> -+-  }
> -+-
> -+-  hang();
> -+-  return 0;
> -+-}
> ---- procps-3.1.15.orig/debian/control
> -+++ procps-3.1.15/debian/control
> -@@ -0,0 +1,31 @@
> -+Source: procps
> -+Section: base
> -+Priority: required
> -+Maintainer: Craig Small <csmall@debian.org>
> -+Build-Depends: debhelper (>> 4.1.1), libncurses5-dev, make (>= 3.78.1-8), dpatch
> -+Standards-Version: 3.6.0
> -+
> -+Package: procps
> -+Architecture: any
> -+Provides: watch
> -+Depends: ${shlibs:Depends}
> -+Conflicts: watch, libproc-dev (<< 1:1.2.6-2), w-bassman (<< 1.0-3), procps-nonfree, pgrep (<< 3.3-5)
> -+Replaces: watch, bsdutils (<< 2.9x-1)
> -+Recommends: psmisc
> -+Description: The /proc file system utilities
> -+ These are utilities to browse the /proc filesystem, which is not a real file
> -+ system but a way for the kernel to provide information about the status of
> -+ entries in its process table. (e.g. running, stopped or "zombie")
> -+ Both command line and full screen utilities are provided. Ncurses is needed
> -+ for the full screen utilities.  More information can be found at procps
> -+ website http://procps.sf.net/
> -+
> -+Package: libproc-dev
> -+Architecture: any
> -+Section: libdevel
> -+Priority: optional
> -+Depends: libc6-dev, procps (= ${Source-Version})
> -+Description: library for accessing process information from /proc
> -+ These are the header files for libproc. Some packages using libproc
> -+ to access process information from /proc need these to compile.
> -+
> ---- procps-3.1.15.orig/debian/rules
> -+++ procps-3.1.15/debian/rules
> -@@ -0,0 +1,99 @@
> -+#!/usr/bin/make -f
> -+# Sample debian/rules that uses debhelper.
> -+# GNU copyright 1997 to 1999 by Joey Hess.
> -+
> -+# Uncomment this to turn on verbose mode.
> -+#export DH_VERBOSE=1
> -+
> -+# Include dpatch stuff
> -+include /usr/share/dpatch/dpatch.make
> -+
> -+PACKAGE="procps"
> -+
> -+ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS)))
> -+	INSTALL_PROGRAM += -s
> -+endif
> -+
> -+
> -+build: build-stamp
> -+
> -+build-stamp: patch-stamp
> -+	dh_testdir
> -+
> -+	# Add here commands to compile the package.
> -+	mkdir static
> -+	SHARED=0 $(MAKE) proc/libproc.a
> -+	mv proc/libproc.a static
> -+	$(MAKE) clean
> -+	$(MAKE) W_SHOWFROM=\-DW_SHOWFROM
> -+
> -+	touch build-stamp
> -+
> -+clean: clean1 unpatch
> -+clean1:
> -+	dh_testdir
> -+	dh_testroot
> -+	rm -f build-stamp 
> -+
> -+	# Add here commands to clean up after the build process.
> -+	-$(MAKE) clean
> -+	-rm -rf static
> -+
> -+	dh_clean
> -+
> -+install: build
> -+	dh_testdir
> -+	dh_testroot
> -+	dh_clean -k
> -+	dh_installdirs
> -+
> -+	# Add here commands to install the package into debian/procps.
> -+	$(MAKE) ln_f="ln -sf" ldconfig=echo DESTDIR=$(CURDIR)/debian/procps install
> -+	install --mode 644 -o root -g root debian/sysctl.conf $(CURDIR)/debian/procps/etc
> -+	# Rename w as there are two of them
> -+	(cd $(CURDIR)/debian/procps/usr/bin && mv w w.procps )
> -+	(cd $(CURDIR)/debian/procps/usr/share/man/man1 && mv w.1 w.procps.1 )
> -+
> -+	# Work-around until proc includes fixed
> -+	(cp proc/*.h $(CURDIR)/debian/procps/usr/include/proc)
> -+	cp static/libproc.a $(CURDIR)/debian/libproc-dev/usr/lib
> -+
> -+	dh_movefiles --sourcedir=debian/procps
> -+	rmdir $(CURDIR)/debian/procps/usr/include/proc
> -+
> -+# Build architecture-independent files here.
> -+binary-indep: build install
> -+# We have nothing to do by default.
> -+
> -+# Build architecture-dependent files here.
> -+binary-arch: build install
> -+	dh_testdir
> -+	dh_testroot
> -+#	dh_installdebconf	
> -+	dh_installdocs
> -+	dh_installexamples
> -+	dh_installmenu
> -+#	dh_installlogrotate
> -+#	dh_installemacsen
> -+#	dh_installpam
> -+#	dh_installmime
> -+	dh_installinit --update-rcd-params='start 30 S .' --init-script='procps.sh'
> -+#	dh_installcron
> -+	dh_installman
> -+	dh_installinfo
> -+#	dh_undocumented
> -+	dh_installchangelogs NEWS
> -+	dh_link
> -+	dh_strip
> -+	dh_compress
> -+	dh_fixperms
> -+	dh_makeshlibs -V "procps (>= 3.1.14), procps (<< 3.1.15)"
> -+	dh_installdeb
> -+#	dh_perl
> -+	dh_shlibdeps -Lprocps -ldebian/procps/lib
> -+	dh_gencontrol
> -+	dh_md5sums
> -+	dh_builddeb
> -+
> -+binary: binary-indep binary-arch
> -+.PHONY: build clean binary-indep binary-arch binary install patch unpatch clean1
> ---- procps-3.1.15.orig/debian/changelog
> -+++ procps-3.1.15/debian/changelog
> -@@ -0,0 +1,743 @@
> -+procps (1:3.1.15-2) unstable; urgency=low
> -+
> -+  * Removed offending test directory Closes: #227933
> -+
> -+ -- Craig Small <csmall@debian.org>  Tue, 20 Jan 2004 10:20:44 +1100
> -+
> -+procps (1:3.1.15-1) unstable; urgency=low
> -+
> -+  * Now uses dpatch to handle the various patches
> -+  * New upstream release
> -+    - Supports SELINUX flags for kernel v2.6 Closes: #193648
> -+    - Hide kernel PID bug Closes: #217278, #219730, #217525, #224470
> -+    - Fixed top auto-margins problem Closes: #217559
> -+  * Fix top manual page Closes: #225089
> -+  * Patch so SELINUX flags work in v2.4 kernels
> -+  * Extra +s in ps.1 removed Closes: #218220
> -+  * Added patch so sysctl has quiet -q flag Closes: #189100
> -+
> -+ -- Craig Small <csmall@debian.org>  Fri, 26 Dec 2003 18:02:59 +1100
> -+
> -+procps (1:3.1.14-1) unstable; urgency=low
> -+
> -+  * New upstream release
> -+
> -+ -- Craig Small <csmall@debian.org>  Wed, 22 Oct 2003 11:59:53 +1000
> -+
> -+procps (1:3.1.13-1) unstable; urgency=low
> -+
> -+  * New upstream release
> -+
> -+ -- Craig Small <csmall@debian.org>  Wed, 24 Sep 2003 16:10:42 +1000
> -+
> -+procps (1:3.1.12-1) unstable; urgency=low
> -+
> -+  * New upstream release
> -+    ps: $PS_FORMAT works properly Closes: #201575
> -+    man page: /var/run/utmp, not /etc/utmp Closes: #206583
> -+    required flags moved out of CFLAGS Closes: #205429
> -+    
> -+
> -+ -- Craig Small <csmall@debian.org>  Sat, 13 Sep 2003 21:11:09 +1000
> -+
> -+procps (1:3.1.11-2) unstable; urgency=low
> -+
> -+  * Made shlibs have a specific version Closes: #199118
> -+  * libproc.a is back in libproc-dev, use it
> -+  * Added README to libproc-dev for people who use the library
> -+
> -+ -- Craig Small <csmall@debian.org>  Wed, 20 Aug 2003 15:31:59 +1000
> -+
> -+procps (1:3.1.11-1) unstable; urgency=low
> -+
> -+  * 3.1.11 New upstream version
> -+    - handle GPLONLY_ symbols Closes: #143549, #188374
> -+  * freeproc now defined Closes: #189047
> -+  * warning in readproc.c fixed Closes: #197346
> -+  * Removed optarg and optind defines Closes: #197343
> -+  * Fixed saved_start_time warning Closes: #197342
> -+
> -+ -- Craig Small <csmall@debian.org>  Thu, 24 Jul 2003 17:02:36 +1000
> -+
> -+procps (1:3.1.9-1) unstable; urgency=low
> -+
> -+  * New upstream source
> -+  * memory sizes fixed for 64-bit w/ gcc 3.x Closes: #194376, #191933
> -+  * Doesn't segfault if /proc not mounted Closes: #172735
> -+  * No warning in top about memory key Closes: #188271
> -+  * More info in kill man page Closes: #182414
> -+  * Document the different oO options Closes: #169301
> -+  * Updated stabndards version to 3.5.9
> -+  * Changed disk to backing storage Closes: #175925
> -+
> -+ -- Craig Small <csmall@debian.org>  Mon,  2 Jun 2003 02:31:03 +1000
> -+
> -+procps (1:3.1.8-1) unstable; urgency=low
> -+
> -+  * New upstream release
> -+    watch man page fixed, Closes #182246
> -+  * Changed section for libproc-dev
> -+
> -+ -- Craig Small <csmall@debian.org>  Tue,  1 Apr 2003 10:19:05 +1000
> -+
> -+procps (1:3.1.6-1) unstable; urgency=low
> -+
> -+  * New upstream release
> -+    - watch has --no-title option Closes: #179862
> -+    - ps -C can compare very long names Closes: #178127
> -+  * Fixed descriptions in manual pages Closes: #179046
> -+  * w wont crash if /proc unreadable Closes: #169398
> -+
> -+ -- Craig Small <csmall@debian.org>  Sat, 22 Feb 2003 21:33:45 +1100
> -+
> -+procps (1:3.1.5-1) unstable; urgency=low
> -+
> -+  * New upstream version
> -+    - watch don't drop empty lines Closes: #171005 
> -+    - top has old sort keys Closes: #167249
> -+    - now count Inact_laundry as needed Closes: #172163
> -+
> -+ -- Craig Small <csmall@debian.org>  Mon,  6 Jan 2003 13:49:32 +1100
> -+
> -+procps (1:3.1.3-1) unstable; urgency=low
> -+
> -+  * New upstream source
> -+
> -+ -- Craig Small <csmall@debian.org>  Fri, 13 Dec 2002 16:16:36 +1100
> -+
> -+procps (1:3.1.1-1) unstable; urgency=low
> -+
> -+  * New upstream source
> -+    - vmstats reports memort counts Closes: #169774
> -+
> -+ -- Craig Small <csmall@debian.org>  Wed,  4 Dec 2002 15:57:13 +1100
> -+
> -+procps (1:3.1.0-1) unstable; urgency=low
> -+
> -+  * New upstream version
> -+    - vmstat displays IO-wait time instead of bogus "w"
> -+    - when IO-wait hidden, count as idle, not as sys
> -+    - pmap command added (like Sun has)
> -+  * Manual pages cleaned up Closes: #165970, #164481
> -+
> -+ -- Craig Small <csmall@debian.org>  Mon, 11 Nov 2002 12:03:46 +1100
> -+
> -+procps (1:3.0.5-1) unstable; urgency=low
> -+
> -+  * New upstream version
> -+    - top tolerates super-wide displays Closes: #165497
> -+    - ELF note warning gone for some kernels Closes: #165900
> -+    - Fix ps and top man pages a bit, dropped bugs severity.
> -+
> -+ -- Craig Small <csmall@debian.org>  Tue, 29 Oct 2002 22:04:36 +1100
> -+
> -+procps (1:3.0.4-1) unstable; urgency=low
> -+
> -+  * New upstream version
> -+    - ELF note warning removed Closes: #165093, #165343
> -+    - top works for most TERM= settings Closes: #164864, #164956
> -+  * w has FROM column again by default Closes: #165252
> -+  * debhelper dependency version fixed Closes: #165083
> -+  * ps.1 looks a bit better now Closes: #16448
> -+
> -+ -- Craig Small <csmall@debian.org>  Mon, 21 Oct 2002 08:30:04 +1000
> -+
> -+procps (1:3.0.3-1) unstable; urgency=low
> -+
> -+  * New upstream version
> -+    - w works with KOI8 locale Closes: #153043
> -+    - fix top for non-SMP 2.2.xx and 2.0.xx Closes: #164231
> -+    - negative idle time fixed Closes: #126260
> -+    - sysctl handles new vlan interface Closes: #140386
> -+    - vmstat documentation update Closes: #157935, #155684
> -+    - "skill -n blah blah blah" lets you test options Closes: #158630
> -+    - fixed ps --sort crash Closes: #164226
> -+    - vmstat compiles with latest gcc-3.x Closes: #164348
> -+    - bad (int*) cast in top removed Closes: #164468
> -+    - Support new/improved statistics interfaces in 2.5 /proc Closes: #164013
> -+    - top defaults to old layout and sort by pid Closes: #164277
> -+    - rant moved out of top.1 man page Closes: #164520
> -+    - top runs much faster Closes: #87779
> -+
> -+ -- Craig Small <csmall@debian.org>  Sat, 12 Oct 2002 21:44:23 +1000
> -+
> -+procps (1:3.0.0-2) unstable; urgency=low
> -+
> -+  * Fixed pkill and skill, auto* is so broken. Closes: #163940, #163944
> -+  * Moved libproc.so.3 into /lib as it's needed early Closes: #163981,#163899
> -+
> -+ -- Craig Small <csmall@debian.org>  Thu, 10 Oct 2002 07:19:45 +1000
> -+
> -+procps (1:3.0.0-1) unstable; urgency=low
> -+
> -+  * New upstream source Closes: #163698
> -+    - top has SMP Closes: #162316, #62282, #94896, #98277, #117040, #117735
> -+    - SELINUX support Closes: #142892
> -+    - top defaults to signal 15 to kill pids with Closes: #72158
> -+    - 64-bit time reduces the overflow problem  Closes: #82382, #155908
> -+    - "w" program better at determining what a user is doing 
> -+      Closes: #88758, 115529
> -+    - oldps is gone Closes: #101917
> -+    - Handles /proc/tty/drivers Closes: #108654, #154046
> -+    - Supports scanf where locale uses , for decimal point Closes: #126873
> -+    - uptime --help now calls itself uptime Closes: #128880
> -+    - ps faster Closes: #147731
> -+    - top calculates screen better Closes: #162296
> -+    - top allows sorts by pid or  swapped memory Closes: #79868, #159446
> -+    - support for s/390 Closes: #126295
> -+    - statm buffer size increased Closes: #145085
> -+    - new top has no typos Closes: #148918
> -+    - new top can handle lots of tasks Closes: #70900
> -+  * Fixed init.d file so it follows policy Closes: #121945
> -+
> -+ -- Craig Small <csmall@debian.org>  Tue,  8 Oct 2002 12:29:45 +1000
> -+
> -+procps (1:2.0.7-10) unstable; urgency=low
> -+
> -+  * Fixes ps crash when system.map is exact multiple of 1024
> -+    Thankyou Colin for the patch! Closes: #109237, #142292
> -+
> -+ -- Craig Small <csmall@eye-net.com.au>  Fri, 12 Apr 2002 21:02:04 +1000
> -+
> -+procps (1:2.0.7-9) unstable; urgency=low
> -+
> -+  * Sanity checking for Number of CPU Closes: #127561, #122617
> -+    This will keep the m68k and ARM boys happy.
> -+  * uptime usage fixed Closes: #138351
> -+  * kill man page NAME updated Closes: #119400
> -+  * Better explanation for load average in uptime(1) Closes: #140902
> -+  * utmp in correct location in w(1) Closes: #115725
> -+
> -+ -- Craig Small <csmall@eye-net.com.au>  Mon,  8 Apr 2002 14:18:20 +1000
> -+
> -+procps (1:2.0.7-8) unstable; urgency=low
> -+
> -+  * Removed -ggdb Closes: #117203
> -+
> -+ -- Craig Small <csmall@eye-net.com.au>  Sat, 27 Oct 2001 07:02:38 +1000
> -+
> -+procps (1:2.0.7-7) unstable; urgency=low
> -+
> -+  * Added os/390 patches Closes: #113494
> -+  * w manpage now gives correct location for utmp Closes: #110723
> -+  * watch wrap-around problem fixed Closes: #111759
> -+  * Programs are compilied -O2 Closes: #108652
> -+
> -+ -- Craig Small <csmall@eye-net.com.au>  Wed, 26 Sep 2001 08:08:43 +1000
> -+
> -+procps (1:2.0.7-6) unstable; urgency=low
> -+
> -+  * Re-fixed command line interpretation Closes: #103101
> -+
> -+ -- Craig Small <csmall@eye-net.com.au>  Tue, 10 Jul 2001 17:32:02 +1000
> -+
> -+procps (1:2.0.7-5) unstable; urgency=low
> -+
> -+  * watch now copys strings better. Closes: #95404, #97948, #99780
> -+  * skill.1 loads tbl Closes: #92242, #67899
> -+  * long usernames are shown Closes: #86205, #94957
> -+  * Remove /etc/rcS.d/S30procps with good ole rm Closes: #92184
> -+  * /etc/init.d/procps.sh calls itself that Closes: #93302
> -+  * Cannot write config in secure mode Closes: #93948
> -+
> -+ -- Craig Small <csmall@debian.org>  Sun, 29 Apr 2001 14:55:20 +1000
> -+
> -+procps (1:2.0.7-4) unstable; urgency=low
> -+
> -+  * watch doesnt crash with long command lines Closes: #88592, #87693
> -+  * bumped up a buffer in a proc read Closes: #85775
> -+  * Now we use 24 hour time Closes: #85640
> -+  * pgrep calls itself pgrep Closes: #86630
> -+  * Corrected symlink in libproc-dev Closes: #87865
> -+
> -+ -- Craig Small <csmall@debian.org>  Mon, 19 Mar 2001 10:13:27 +1100
> -+
> -+procps (1:2.0.7-3) unstable; urgency=low
> -+
> -+  * Conflicts with pgrep, so no more conflicts Closes: #82835
> -+  * Minor fixes to ps.1 manpage Closes: #81921
> -+  * watch highlighs correctly Closes: #77737
> -+  * top wont die with evil HOMEs, Closes: #81452
> -+  * removed reference to suidregister
> -+  * Remore -L reference in kill.1 Closes: #85913
> -+
> -+ -- Craig Small <csmall@debian.org>  Thu,  8 Feb 2001 12:44:58 +1100
> -+
> -+procps (1:2.0.7-2) unstable; urgency=medium
> -+
> -+  * Moved kill back again, dammit why is the makefile so broken
> -+    Closes: #82747
> -+  * Watch uses locale Closes: #82739
> -+  * top's scanf is protected from evil locale problems Closes: #82671, #69128
> -+    (Big thankyou to Guillaume for lending a test account)
> -+
> -+ -- Craig Small <csmall@debian.org>  Fri, 19 Jan 2001 09:15:36 +1100
> -+
> -+procps (1:2.0.7-1) unstable; urgency=medium
> -+
> -+  * New upstream version (010114)
> -+    - Merges 2.0.7 code from RedHat Closes: #80832
> -+    - Made note that Shared memory report will be junk due to kernel
> -+      Closes: #77818
> -+    - Remove html and null stuff from man page Closes: #81920
> -+    - vsize is kB in man page Closes: #82210
> -+    - man pages look better Closes: #70055, #70941
> -+    - vmstat increase Closes: #77886
> -+    - w tries harder to find things Closes: #24531
> -+    - 15 char user names Closes: #71211
> -+  * No HOME overflow in top Closes: 81452
> -+  * Added menu Hints Closes: #80051, #82324
> -+
> -+
> -+ -- Craig Small <csmall@debian.org>  Wed, 17 Jan 2001 08:57:24 +1100
> -+
> -+procps (1:2.0.6-9) unstable; urgency=medium
> -+
> -+  * added libncurses5-dev to build-depends, Closes: #67533
> -+  * Put kill back into /bin Closes #67580, #67582
> -+  * Put 2.0.6-7 ps.1 back in Closes: #67451
> -+
> -+ -- Craig Small <csmall@debian.org>  Tue, 25 Jul 2000 08:13:21 +1000
> -+
> -+procps (1:2.0.6-8) unstable; urgency=low
> -+
> -+  * New upstream source:
> -+  *  - sysctl EOF bug fixed Closes: #62877
> -+  *  - stop crashes with unmounted /proc Closes: #63512, #55177
> -+  *  - Versions checking tolerates RH /proc/ksyms Closes: #59798
> -+  *  - Top works better with SMP Closes: #34734, #56547, #59703
> -+
> -+ -- Craig Small <csmall@debian.org>  Fri, 14 Jul 2000 22:33:44 +1000
> -+
> -+procps (1:2.0.6-7) unstable; urgency=low
> -+
> -+  * Fixed missing version Closes: #62207, #62484, #59112
> -+  * Stop crashes with umounted /proc Closes: #63512, #55177
> -+  * Nicer man pages Closes: #63495, #59406
> -+  * Fixed sysctl eof bug Closes: #62877
> -+  * watch wraps properly Closes: #60913
> -+  * watch handles tabs Closes: #46213
> -+  * watch honors locale settings Closes: #63762
> -+  * now versioned replaces line for bsdutils
> -+
> -+ -- Craig Small <csmall@debian.org>  Mon, 29 May 2000 13:31:54 +1000
> -+
> -+procps (1:2.0.6-6) unstable; urgency=low
> -+
> -+  * New patchlevel (000221)
> -+  * ps 'f' ASCII art forest fixed. Closes: #57134, #58644
> -+  * let insane people run ps setuid. Closes: #56701
> -+  * note that kernel 2.3 is now faster. Closes: #49130
> -+  * top with WCHAN was leaking memory. Closes: #58172, #52257, #56889
> -+  * can show current CPU. Closes: #37023
> -+  * w looks better now. Closes: #55952
> -+  * init.d/procps removed if exists. Closes: #55137, #55852
> -+  * Fixed skill/snice man page (thanks man-db maint!) Closes: #53736, #46743
> -+  * Fixed ps man page Closes: #58365
> -+
> -+ -- Craig Small <csmall@debian.org>  Wed, 23 Feb 2000 10:31:37 +1100
> -+
> -+procps (1:2.0.6-5) unstable; urgency=low
> -+
> -+  * New upstream source
> -+  * kill "_R(smp_|smp2gig_|2gig_)?[0-9a-fA-F]{8,}"  Closes: #54394, #53208
> -+  * added type 'S' and scan past machine types  Closes: #54396
> -+  * Fixed w(1) manpage Closes: #54709
> -+  * top now agrees with ps for RSS Closes: #52679
> -+
> -+ -- Craig Small <csmall@debian.org>  Tue, 11 Jan 2000 08:23:56 +1100
> -+
> -+procps (1:2.0.6-4) unstable; urgency=low
> -+
> -+  * procps init.d script quietly dies if not /etc/default/rcS Closes:
> -+    #52839
> -+  * Put the NEWS changelog back in Closes: #52678
> -+  * Fixed that damn Rsmp annoying message bug Closes: #48686
> -+  * Remove /etc/init.d/procps Closes: #53818
> -+
> -+ -- Craig Small <csmall@debian.org>  Mon, 20 Dec 1999 11:14:53 +1100
> -+
> -+procps (1:2.0.6-3) unstable; urgency=low
> -+
> -+  * Patched ps so it complains if you chmod 711 /proc Closes: #52481
> -+  * Did the same for top.
> -+  * Ditto for oldps.
> -+  * Changed and int to a char* Closes: #52482
> -+  * sysctl.conf file references sysctl.conf (5) not 8 Closes: #52385
> -+  * props init.d script changed to procps.sh Closes: #52228
> -+
> -+ -- Craig Small <csmall@debian.org>  Mon, 13 Dec 1999 11:57:01 +1100
> -+
> -+procps (1:2.0.6-2) unstable; urgency=low
> -+
> -+  * Changed psmisc from reccomends to suggests
> -+  * %MEM now works, Closes: #50010 #50055 #50148 #50356
> -+  * top doesn't crash with > 204 processes Closes: #50055
> -+  * Another libproc fd leak fixed Closes: #45398
> -+  * ps silently ignores m and -m for future compatibility Closes: #48308
> -+  * Added a sysctl.conf and other files as suggested Closes: #51098
> -+  * Fix start field instability
> -+  * ps.1 fixed Closes: #35137
> -+
> -+ -- Craig Small <csmall@debian.org>  Tue,  7 Dec 1999 14:42:51 +1100
> -+
> -+procps (1:2.0.6-1) unstable; urgency=low
> -+
> -+  * New upstream
> -+  * sysctl crash fixed, Closes: #49015
> -+  * libproc file descriptor leak fixed, Closes: #45398
> -+  * False positive System.map mismatches killed, Closes: #49047
> -+  * Supports 64 Hz for StrongARM/Shark Closes: #47461
> -+  * pr_time fixed, Closes: #46223
> -+  * libc num cpu workaround back in, Closes: #49039
> -+  * Fixed kill manpage, Closes: #47018
> -+  * This version definitely, absolutely has kill, Closes: #46762
> -+
> -+
> -+ -- Craig Small <csmall@debian.org>  Fri,  5 Nov 1999 12:46:05 +1100
> -+
> -+procps (1:2.0.3-5) unstable; urgency=low
> -+
> -+  * Changed conflicts with replaces
> -+
> -+ -- Craig Small <csmall@debian.org>  Wed,  6 Oct 1999 14:36:48 +1000
> -+
> -+procps (1:2.0.3-4) unstable; urgency=low
> -+
> -+  * support SMP systems with versioned kernel modules Closes: #45621, #46465
> -+  * Added kill to this (it is removed from bsdutils).
> -+  * We now need kill manpage, Closes: #46004
> -+
> -+ -- Craig Small <csmall@debian.org>  Tue,  5 Oct 1999 10:28:01 +1000
> -+
> -+procps (1:2.0.3-3) unstable; urgency=low
> -+
> -+  * System.map support for non-i386 Closes: #45592, #45250
> -+  * Do not require /proc/ksyms Closes: #45128, #45132, #45619
> -+  * Alternative w.1 points to the right spot, Closes: #45331
> -+  * Copyright for skill and snice and ps fixed, Closes: #45119
> -+
> -+ -- Craig Small <csmall@debian.org>  Tue, 21 Sep 1999 16:31:59 +1000
> -+
> -+procps (1:2.0.3-2) unstable; urgency=medium
> -+
> -+  * Now with top! Closes: #45106
> -+
> -+ -- Craig Small <csmall@debian.org>  Wed, 15 Sep 1999 11:12:34 +1000
> -+
> -+procps (1:2.0.3-1) unstable; urgency=low
> -+
> -+  * New upstream source
> -+  * Debian personality does m flag Closes: #44832
> -+  * Corrected typo in top.1 Closes: #44836
> -+  * New improved watch Closes: #29970
> -+
> -+ -- Craig Small <csmall@debian.org>  Mon, 13 Sep 1999 16:59:16 +1000
> -+
> -+procps (1:2.0.2-4) unstable; urgency=high
> -+
> -+  * Fixed the nasty ps formatting problem (Bug #40859 #40856 #40839 )
> -+
> -+ -- Craig Small <csmall@debian.org>  Wed,  7 Jul 1999 08:41:54 +1000
> -+
> -+procps (1:2.0.2-3) unstable; urgency=low
> -+
> -+  * New upstream patches/source
> -+  * SMB Hz wierdness fixed (Bug #33023 #33284)
> -+  * non-tty output does not get chopped at 80 columns (bug #36688)
> -+  * BSD personalities set the default selection and output format (bug #36698)
> -+  * Fixed collumn spacing problem (Bug #35309)
> -+  * Work around for borken libs that return 0 processors (Bug #36902)
> -+  * skill now uses process name not command line (Bug #19208)
> -+
> -+ -- Craig Small <csmall@debian.org>  Mon,  5 Jul 1999 07:29:47 +1000
> -+
> -+procps (1:2.0.2-2) unstable; urgency=low
> -+
> -+  * Removed kill and manual page (Bug #36421 #36551 #36375)
> -+  * Put in patch for bogus sysconf return (Bug #36494 #36532 #36581)
> -+
> -+ -- Craig Small <csmall@debian.org>  Wed, 28 Apr 1999 09:04:59 +1000
> -+
> -+procps (1:2.0.2-1) unstable; urgency=low
> -+
> -+  * New upstream version (Bug #34394 #27291 #34250 #34956 #35240 #35247
> -+    #35520 #35756 #34580 )
> -+
> -+ -- Craig Small <csmall@debian.org>  Mon, 19 Apr 1999 13:26:48 +1000
> -+
> -+procps (1:2.0.0-1) unstable; urgency=low
> -+
> -+  * New upstream version (Bug #33083 23347 33462 10556 33266 33371 )
> -+   
> -+
> -+ -- Craig Small <csmall@debian.org>  Mon, 15 Mar 1999 14:21:57 +1100
> -+
> -+procps (1:1.9.0-2) unstable; urgency=low
> -+
> -+  * top now resumes (Bug #32106 )
> -+  * debhelper text problem fixed in postinst (Bug #32963 #33122 #33003 33117 )
> -+  * oldps and ps now use alternatives (Bug #33083 )
> -+  * ps s format now not ugly (Bug #28266 )
> -+  * watch command line help and man page correct (Bug #31702 )
> -+  * sessreg removed from package (Bug #32294 )
> -+  * ps doesn't display extra spaces (Bug #27799 )
> -+  * top has spaces in command lines again (Bug #33060 )
> -+  * ps now has personality (Bug #22923 #18429 )
> -+  * moved non-free skill and snice to non-free package.
> -+
> -+ -- Craig Small <csmall@debian.org>  Tue,  9 Feb 1999 15:10:58 +1100
> -+
> -+procps (1:1.9.0-1) unstable; urgency=low
> -+
> -+  * New Upstream source
> -+
> -+ -- Craig Small <csmall@debian.org>  Thu,  4 Feb 1999 14:48:37 +1100
> -+
> -+procps (1:1.2.9-3) unstable; urgency=low
> -+
> -+  * Linked to ncurses4
> -+
> -+ -- Craig Small <csmall@debian.org>  Fri, 30 Oct 1998 14:13:02 +1100
> -+
> -+procps (1:1.2.9-2) unstable; urgency=low
> -+
> -+  * top now has spaces in between command lines (Bug #28178 )
> -+  * --version or -V now shows proper version.
> -+
> -+ -- Craig Small <csmall@debian.org>  Mon, 26 Oct 1998 08:55:59 +1100
> -+
> -+procps (1:1.2.9-1) unstable; urgency=low
> -+
> -+  * New upstream version (Bug #27573 )
> -+  * Menu entry changed from System to Menu/System (Bug #27438 )
> -+  * Char variables changed to int for powerpc (Bug #26624 )
> -+  * libproc now nulls allocated structure (Bug #26225 )
> -+  * No longer uses psdevtab (yay!) (Bug #25388 )
> -+  * ps doesn't double space command line parameters (Bug #25306 #24293 )
> -+  * ps now silently ignores g flag for those BSD heads (Bug #24075 )  
> -+
> -+ -- Craig Small <csmall@debian.org>  Fri,  9 Oct 1998 09:15:11 +1000
> -+
> -+procps (1:1.2.7-2) unstable; urgency=low
> -+
> -+  * Top can suspend twice (or three times even) (Bug #22997 )
> -+  * Libraries properly built (Bug #20010 )
> -+
> -+ -- Craig Small <csmall@debian.org>  Mon,  1 Jun 1998 09:16:09 +1000
> -+
> -+procps (1:1.2.7-1) frozen unstable; urgency=high
> -+
> -+  * New upstream source, fixes security bug (Bug #21475)
> -+
> -+ -- Craig Small <csmall@debian.org>  Thu, 23 Apr 1998 08:04:54 +1000
> -+
> -+procps (1:1.2.6-2) unstable; urgency=low
> -+
> -+  * Fixed Shared library dependencies (bugs #18388 #18394 18392 )
> -+  * Conflicts with earlier versions of w-bassman (bug #18389 )
> -+
> -+ -- Craig Small <csmall@debian.org>  Mon, 23 Feb 1998 09:05:54 +1100
> -+
> -+procps (1:1.2.6-1) unstable; urgency=low
> -+
> -+  * New upstream source.
> -+  * xload is undiverted (Bug #17102 )
> -+  * ps_fields.7.gz removed (Bug #18090 )
> -+  * Colour patches removed, color-related bugs gone (Bug #18008 #17217 #18090 )
> -+  * POSIX patches removed, cmd line bugs gone (Bug #15537 )
> -+  * w is now an alternative w.procps (Bug #17960 )
> -+  * skill now works with process names (Bug #17087 )
> -+  * ps and top man pages have their field descriptions (Bug #17360 )
> -+  * ps u fixed (Bug #17313 )
> -+  * Source code is no longer FUBAR (Bug #17892 )
> -+  * top now redraws screen after config screen (Bug #11896 )
> -+  * Circular dependency removed (Bug #16966 )
> -+  * top does mess up screens with wrong cmd line (Bug #17230 )
> -+  * top suspends with ctrl-Z  (Bug #16703 )
> -+
> -+ -- Craig Small <csmall@debian.org>  Tue, 17 Feb 1998 08:31:21 +1100
> -+
> -+procps (1:1.2.5-2) unstable; urgency=low
> -+
> -+  * Moved /bin into /bin/ps (Bug #17001 )
> -+
> -+ -- Craig Small <csmall@debian.org>  Tue, 13 Jan 1998 07:50:43 +1100
> -+
> -+procps (1:1.2.5-1) unstable; urgency=low
> -+
> -+  * TTY selection works ( #16724 ) 
> -+  * top and ps now accept --colour and *_COLOURS
> -+  * xproc copyright file not compressed ( #14491 )
> -+  * All #include <proc/*.h> now #include "proc/*.h" ( #13482 ) 
> -+  * Copyright doesn't mention psmisc now ( #16704 ) 
> -+  * Moved ps back into /bin ( #16737  #16705 )
> -+  * New upstream source ( #16795 )
> -+
> -+ -- Craig Small <csmall@debian.org>  Mon, 12 Jan 1998 08:35:10 +1100
> -+
> -+procps (1:1.2.2-1) unstable; urgency=low
> -+
> -+  * New maintainer
> -+  * Updated upstream source to 1.2.2 (instead of 1.2)
> -+  * Merged Helmut's color/command line patches into upstream.
> -+  * Copyright file is not compressed ( #14493 #14415 )
> -+  * psdatabase refreshed when installing ( #10693 )
> -+  * Fixed +/- line in free ( #10785 #10870 #11566 #12027 #12245 #12374 )
> -+  * w collumns corrected ( #10898 #13117 )
> -+  * top saves sort type ( #11553 )
> -+  * Linked to libc6 ( #11725 )
> -+  * top doesn't coredump with S option ( #11855 )
> -+  * skill works with given patch ( #12023 )
> -+  * libproc-dev has proper sym link ( #12697 )
> -+  * top -h doesn't change terminal settings ( #13513 )
> -+  * ps -s has "CAUGHT" not "CATCHED" ( #14342 )
> -+  * ps_colors.7 and ps_fields.7 reformatted ( #14109 #14544 #14545 )
> -+  * ps checks for tty before using colors ( #14596 )
> -+  * top sets stop signal handler later, stopping race ( #14769 )
> -+  * When using POSIX personality, processes show up ( #14780 )
> -+  * top checks for valid term type ( #15807 )
> -+  * xproc now Depends on procps-1.2.*-* ( #10762 #13347 )
> -+  * xproc dependencies fixed ( #12698 )
> -+
> -+ -- Craig Small <csmall@debian.org>  Tue, 30 Dec 1997 11:33:54 +1100
> -+
> -+procps (1.12.2.1) unstable; urgency=low
> -+
> -+  * Non-maintainer release, built for libc6.
> -+  * Added in free.c from new procps version 1.2.3 (from sunsite), seems to
> -+    fix all the problems with free reporting bogus valus.
> -+
> -+ -- Joey Hess <joeyh@master.debian.org>  Fri, 24 Oct 1997 13:34:35 -0400
> -+
> -+procps (1.12.2) stable unstable; urgency=low
> -+
> -+  * fixed meminfo handling again, as the fix wouldn't work on pre-2.1.x
> -+    kernels. 
> -+  * fixed free to use the meminfo routines from libproc.
> -+
> -+ -- Helmut Geyer <Helmut.Geyer@iwr.uni-heidelberg.de>  Fri, 13 Jun 1997 22:42:14 +0200
> -+
> -+procps (1.12.1) stable unstable; urgency=low
> -+
> -+  * fixed several bugs
> -+  * replaced utmp handling to support wrappers.
> -+  * added /proc/meminfo support for 2.1.x kernels.
> -+
> -+ -- Helmut Geyer <Helmut.Geyer@iwr.uni-heidelberg.de>  Tue, 10 Jun 1997 23:59:41 +0200
> -+
> -+procps (1.11.6) frozen unstable; urgency=medium
> -+
> -+  * psmisc 1.14 : new upstream version (mainly bugfixes)
> -+  * added a lot of new serial device major numbers to the device lookup
> -+    code. Somehow it seems there are new serial devices every other week.
> -+  * fixed a bug in top: broken .toprc may cause a segmentation fault.
> -+
> -+ -- Helmut Geyer <Helmut.Geyer@iwr.uni-heidelberg.de>  Sun, 4 May 1997 09:50:30 +0200
> -+
> -+procps (1.11.5) frozen unstable; urgency=medium
> -+
> -+  * minor changes to make it compile with libc6
> -+  * fix top behaviour on machines having nonstandard NR_TASKS up to 4k
> -+    tasks 
> -+
> -+ -- Helmut Geyer <Helmut.Geyer@iwr.uni-heidelberg.de>  Fri, 18 Apr 1997 02:07:46 +0200
> -+
> -+procps (1.11.4) unstable; urgency=medium
> -+
> -+  * strip libproc.so from unneeded symbols (Bug# 8311)
> -+  * fixed watch.1 example (Bug# 8169)
> -+  * partly fixed fuser sigsegv core dump (Bug# 8004)
> -+  * menu entries for xproc and procps (Bug# 8325)
> -+  * divertions for xmem and xload. (Bug# 7565)
> -+  
> -+ -- Helmut Geyer <Helmut.Geyer@iwr.uni-heidelberg.de>  Sun, 13 Apr 1997 20:55:05 +0200
> -+
> -+procps (1.11.3) unstable; urgency=low
> -+
> -+  * fixed uptime again, minor Makefile changes
> -+
> -+ -- Helmut Geyer <Helmut.Geyer@iwr.uni-heidelberg.de>  Fri, 21 Feb 1997 16:22:04 +0100
> -+
> -+procps (1.11.2) unstable; urgency=medium
> -+
> -+  * fixed typo in ps_fields.7 (Bug#5457)
> -+  * fixed typo in debian/rules (Bug #5585)
> -+  * fixed bug in w introduced in 1.11.1 (Bugs #5489, #5694, #5695, #5705).
> -+  * added support for non-standard serial devices (long overdue - Bug
> -+    #5771). 
> -+  * fixed uptime option handling (Bug #6099).
> -+  * fixed top problems with missing/corrupted utmp (Bug #5819).
> -+  * fixed manpage problems (Bug #5936).
> -+
> -+ -- Helmut Geyer <Helmut.Geyer@iwr.uni-heidelberg.de>  Wed, 19 Feb 1997 18:49:26 +0100
> -+
> -+procps (1.11.1) unstable; urgency=low
> -+
> -+  * fixed bug in w <username>
> -+  * automatic resize if field length is exceeded. This changed the shared
> -+    library, so popping the major number.
> -+  * fixed numeric WCHAN output on Alphas and stupid bug in ps (again,
> -+    thanks to H. Koenig). 
> -+  * fixed top memory statistics for systems with more than 100M memory or 
> -+    swap. 
> -+  
> -+ -- Helmut Geyer <Helmut.Geyer@iwr.uni-heidelberg.de>  Tue, 12 Nov 1996 02:57:18 +0100
> -+
> -+procps (1.10.1) unstable; urgency=low
> -+
> -+  * merged in ALPHA & Sparc patches
> -+    (from ftp.azstarnet.com:/pub/linux/axp/glibc)
> -+  * fixed ps --deselect/-N for pid lists    
> -+  * use shared libs from now on, install shlibs again
> -+  * manpages for libproc
> -+  * static lib compiled without -fPIC
> -+  * added libproc package for development installing libproc headers,
> -+    manpages and static library. 
> -+  * fixed PROC_REAL bug when PROC_FILLSTATUS isn't set.
> -+  * fixed color bug in ps --forest
> -+  * added xproc package for xload, xmem, xidle, xcpustate
> -+    (XConsole left out as we use xconsole & klogd on debian)
> -+  * adapted xload manpage for xidle and xmem
> -+  * fixed xmem to cope with newer kernels (where shared pages are counted
> -+    once for each additional reference)
> -+  * fixed top change_fields bug (a field needs 24, not 21 spaces)
> -+  * fixed several Alpha bugs (thanks to Harald Koenig)
> -+  * due to popular demand, the old format for time intervals is back.
> -+    for all program using this, a toggle command line option has been
> -+    provided. The default behaviour depends on the compile time option
> -+    NEW_TIME_DEFAULT (see main Makefile)
> -+
> -+ -- Helmut Geyer <Helmut.Geyer@iwr.uni-heidelberg.de>  Wed, 23 Oct 1996 21:30:54 +0200
> -+
> -+procps (1.09.2) unstable; urgency=low
> -+
> -+  * fixed cpu nice % in summary
> -+  * fixed topsetup initialisation in top.h I messed up in last revision
> -+  * fixed pipe output bug
> -+  * fixed --deselect bug in SVR4/POSIX mode
> -+
> -+ -- Helmut Geyer <Helmut.Geyer@iwr.uni-heidelberg.de>  Sun, 20 Oct 1996 13:57:11 +0200
> -+
> -+procps (1.09.1) unstable; urgency=low
> -+
> -+  * fixed ps -w bug displaying too many empty lines
> -+  * fixed SIGSEGV bug in ps -www
> -+  * fixed bug in top not calculating length of the command/args/env fields
> -+    at the field selection screen in some circumstances.
> -+  * fixed SIGSEGV bug when using environ field
> -+
> -+ -- Helmut Geyer <Helmut.Geyer@iwr.uni-heidelberg.de>  Sat, 12 Oct 1996 07:59:29 +0200
> -+
> -+procps (1.09) experimental; urgency=low
> -+
> -+  * This is an experimental release of the procps suite. A lot of features have
> -+    been added since the 1.01(a) release:
> -+     - support for both BSD and POSIX (SVR4) style command line options.
> -+     - completely configurable display of information.
> -+     - colour markup of processes exceeding limits or belonging to a user.
> -+    Please take a look at /usr/doc/procps/NEWS and the manpages for a concise
> -+    list. This is how the next upstream release of procps may look
> -+    (i.e. it will  look like this if there is not too much resistance).  
> -+
> -+ -- Helmut Geyer <Helmut.Geyer@iwr.uni-heidelberg.de>  Sat, 5 Oct 1996 14:26:57 +0200
> ---- procps-3.1.15.orig/kill.1
> -+++ procps-3.1.15/kill.1
> -@@ -10,16 +10,11 @@
> - kill \- send a signal to a process
> - 
> - .SH SYNOPSIS
> --.TS
> --l l.
> --kill pid ...	Send SIGTERM to every process listed.
> --kill -signal pid ...	Send a signal to every process listed.
> --kill -s signal pid ...	Send a signal to every process listed.
> --kill -l	List all signal names.
> --kill -L	List all signal names in a nice table.
> --kill -l signal	Convert a signal number into a name.
> --kill -V,--version	Show version of program
> --.TE
> -+\fBkill\fR [ -\fBsignal\fR | -s \fBsignal\fR ] \fBpid\fR ...
> -+.br
> -+\fBkill\fR [ -L | -V, --version ]
> -+.br
> -+\fBkill\fR -l  [ \fBsignal\fR ]
> - 
> - .SH DESCRIPTION
> - The default signal for kill is TERM. Use -l or -L to list available signals.
> -@@ -105,7 +100,7 @@
> - .fi
> - .PP
> - .SH "SEE ALSO"
> --pkill(1) skill(1) kill(2) renice(1) nice(1) signal(7) killall(1)
> -+.BR pkill (1), skill (1), kill (2), renice (1), nice (1), signal (7), killall (1).
> - 
> - .SH STANDARDS
> - This command meets appropriate standards. The -L flag is Linux-specific.
> ---- procps-3.1.15.orig/tload.c
> -+++ procps-3.1.15/tload.c
> -@@ -30,9 +30,6 @@
> - static int dly=5;
> - static jmp_buf jb;
> - 
> --extern int optind;
> --extern char *optarg;
> --
> - static void alrm(int signo)
> - {
> -     (void)signo;
> ---- procps-3.1.15.orig/pgrep.c
> -+++ procps-3.1.15/pgrep.c
> -@@ -367,7 +367,8 @@
> - 	preg = do_regcomp ();
> - 
> - 	if (opt_newest) saved_start_time =  0ULL;
> --	if (opt_oldest) saved_start_time = ~0ULL;
> -+    else
> -+	    saved_start_time = ~0ULL;
> - 	if (opt_newest) saved_pid = 0;
> - 	if (opt_oldest) saved_pid = INT_MAX;
> - 	
> ---- procps-3.1.15.orig/top.1
> -+++ procps-3.1.15/top.1
> -@@ -430,8 +430,8 @@
> - The number of\fB major\fR page faults that have occurred for a task.
> - A page fault occurs when a process attempts to read from or write to a virtual
> - page that is not currently present in its address space.
> --A major page fault is when disk access is involved in making that
> --page available.
> -+A major page fault is when backing storage access (such as a disk) is involved
> -+in making that page available.
> - 
> - .TP 3
> - v:\fB nDRT\fR \*(EM Dirty Pages count
> diff --git a/recipes/procps/procps-3.2.1/install.patch b/recipes/procps/procps-3.2.1/install.patch
> deleted file mode 100644
> index 2d16c26..0000000
> --- a/recipes/procps/procps-3.2.1/install.patch
> +++ /dev/null
> @@ -1,16 +0,0 @@
> -
> -#
> -# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
> -#
> -
> ---- procps-3.1.15/Makefile~install	2003-12-24 03:01:55.000000000 +0100
> -+++ procps-3.1.15/Makefile	2004-02-11 00:45:59.000000000 +0100
> -@@ -147,7 +147,7 @@
> - ###### install
> - 
> - $(BINFILES) : all
> --	$(install) --mode a=rx --strip $(notdir $@) $@
> -+	$(install) --mode a=rx $(notdir $@) $@
> - 
> - $(MANFILES) : all
> - 	$(install) --mode a=r $(notdir $@) $@
> diff --git a/recipes/procps/procps-3.2.5/pagesz-not-constant.patch b/recipes/procps/procps-3.2.5/pagesz-not-constant.patch
> deleted file mode 100644
> index 8e9e1eb..0000000
> --- a/recipes/procps/procps-3.2.5/pagesz-not-constant.patch
> +++ /dev/null
> @@ -1,22 +0,0 @@
> -Index: procps-3.2.1/proc/devname.c
> -===================================================================
> ---- procps-3.2.1.orig/proc/devname.c	2004-03-18 05:43:50.000000000 +1100
> -+++ procps-3.2.1/proc/devname.c	2005-04-02 10:40:17.462138000 +1000
> -@@ -227,7 +227,7 @@
> - 
> - /* number --> name */
> - unsigned dev_to_tty(char *restrict ret, unsigned chop, dev_t dev_t_dev, int pid, unsigned int flags) {
> --  static char buf[PAGE_SIZE];
> -+  static char buf[4096];
> -   char *restrict tmp = buf;
> -   unsigned dev = dev_t_dev;
> -   unsigned i = 0;
> -@@ -249,7 +249,7 @@
> -   if((flags&ABBREV_TTY) && !strncmp(tmp,"tty",  3) && tmp[3]) tmp += 3;
> -   if((flags&ABBREV_PTS) && !strncmp(tmp,"pts/", 4) && tmp[4]) tmp += 4;
> -   /* gotta check before we chop or we may chop someone else's memory */
> --  if(chop + (unsigned long)(tmp-buf) <= sizeof buf)
> -+  if(chop + (unsigned long)(tmp-buf) < sizeof buf)
> -     tmp[chop] = '\0';
> -   /* replace non-ASCII characters with '?' and return the number of chars */
> -   for(;;){
> diff --git a/recipes/procps/procps-3.2.7/install.patch b/recipes/procps/procps-3.2.7/install.patch
> deleted file mode 100644
> index 9f1ef69..0000000
> --- a/recipes/procps/procps-3.2.7/install.patch
> +++ /dev/null
> @@ -1,27 +0,0 @@
> ---- procps-3.2.5.virgin/Makefile	2005-01-26 05:55:26.000000000 +0100
> -+++ procps-3.2.5/Makefile	2005-08-03 04:55:26.346984488 +0200
> -@@ -30,7 +30,10 @@
> - install  := install -D --owner 0 --group 0
> - 
> - # Lame x86-64 /lib64 and /usr/lib64 abomination:
> --lib64    := lib$(shell [ -d /lib64 ] && echo 64)
> -+# lib64    := lib$(shell [ -d /lib64 ] && echo 64)
> -+
> -+# Equally lame hack to work around makefile lameness when the host arch is 64bit, but the target is not.
> -+lib64      := lib
> - 
> - usr/bin                  := $(DESTDIR)/usr/bin/
> - bin                      := $(DESTDIR)/bin/
> -@@ -211,10 +214,10 @@
> - ###### install
> - 
> - $(BINFILES) : all
> --	$(install) --mode a=rx $(notdir $@) $@
> -+	$(install) -m 555 $(notdir $@) $@
> - 
> - $(MANFILES) : all
> --	$(install) --mode a=r $(notdir $@) $@
> -+	$(install) -m 444 $(notdir $@) $@
> - 
> - install: $(filter-out $(SKIP) $(addprefix $(DESTDIR),$(SKIP)),$(INSTALL))
> - 	cd $(usr/bin) && $(ln_f) skill snice
> diff --git a/recipes/procps/procps-3.2.7/pagesz-not-constant.patch b/recipes/procps/procps-3.2.7/pagesz-not-constant.patch
> deleted file mode 100644
> index 8e9e1eb..0000000
> --- a/recipes/procps/procps-3.2.7/pagesz-not-constant.patch
> +++ /dev/null
> @@ -1,22 +0,0 @@
> -Index: procps-3.2.1/proc/devname.c
> -===================================================================
> ---- procps-3.2.1.orig/proc/devname.c	2004-03-18 05:43:50.000000000 +1100
> -+++ procps-3.2.1/proc/devname.c	2005-04-02 10:40:17.462138000 +1000
> -@@ -227,7 +227,7 @@
> - 
> - /* number --> name */
> - unsigned dev_to_tty(char *restrict ret, unsigned chop, dev_t dev_t_dev, int pid, unsigned int flags) {
> --  static char buf[PAGE_SIZE];
> -+  static char buf[4096];
> -   char *restrict tmp = buf;
> -   unsigned dev = dev_t_dev;
> -   unsigned i = 0;
> -@@ -249,7 +249,7 @@
> -   if((flags&ABBREV_TTY) && !strncmp(tmp,"tty",  3) && tmp[3]) tmp += 3;
> -   if((flags&ABBREV_PTS) && !strncmp(tmp,"pts/", 4) && tmp[4]) tmp += 4;
> -   /* gotta check before we chop or we may chop someone else's memory */
> --  if(chop + (unsigned long)(tmp-buf) <= sizeof buf)
> -+  if(chop + (unsigned long)(tmp-buf) < sizeof buf)
> -     tmp[chop] = '\0';
> -   /* replace non-ASCII characters with '?' and return the number of chars */
> -   for(;;){
> diff --git a/recipes/procps/procps-3.2.7/procmodule.patch b/recipes/procps/procps-3.2.7/procmodule.patch
> deleted file mode 100644
> index fabfaba..0000000
> --- a/recipes/procps/procps-3.2.7/procmodule.patch
> +++ /dev/null
> @@ -1,36 +0,0 @@
> -*** procps-3.2.5/proc/module.mk.orig	Sun Jul 24 11:53:49 2005
> ---- procps-3.2.5/proc/module.mk	Sun Jul 24 11:54:32 2005
> -***************
> -*** 96,102 ****
> -  #################### install rules ###########################
> -  
> -  $(lib)$(SOFILE) : proc/$(SONAME)
> -! 	$(install) --mode a=rx $< $@
> -  
> -  ifneq ($(SOLINK),$(SOFILE))
> -  .PHONY: $(lib)$(SOLINK)
> ---- 96,102 ----
> -  #################### install rules ###########################
> -  
> -  $(lib)$(SOFILE) : proc/$(SONAME)
> -! 	$(install) -m 555 $< $@
> -  
> -  ifneq ($(SOLINK),$(SOFILE))
> -  .PHONY: $(lib)$(SOLINK)
> -***************
> -*** 115,121 ****
> -  	$(ldconfig)
> -  
> -  $(usr/lib)$(ANAME) : proc/$(ANAME)
> -! 	$(install) --mode a=r $< $@
> -  
> -  # Junk anyway... supposed to go in /usr/include/$(NAME)
> -  #INSTALL += $(addprefix $(include),$(HDRFILES))
> ---- 115,121 ----
> -  	$(ldconfig)
> -  
> -  $(usr/lib)$(ANAME) : proc/$(ANAME)
> -! 	$(install) -m 444 $< $@
> -  
> -  # Junk anyway... supposed to go in /usr/include/$(NAME)
> -  #INSTALL += $(addprefix $(include),$(HDRFILES))
> diff --git a/recipes/procps/procps-3.2.7/psmodule.patch b/recipes/procps/procps-3.2.7/psmodule.patch
> deleted file mode 100644
> index f298c1c..0000000
> --- a/recipes/procps/procps-3.2.7/psmodule.patch
> +++ /dev/null
> @@ -1,21 +0,0 @@
> -*** procps-3.2.5/ps/module.mk.orig	Sun Jul 24 11:54:40 2005
> ---- procps-3.2.5/ps/module.mk	Sun Jul 24 11:55:02 2005
> -***************
> -*** 33,40 ****
> -  
> -  
> -  $(bin)ps: ps/ps
> -! 	$(install) --mode a=rx $< $@
> -  
> -  $(man1)ps.1 : ps/ps.1
> -! 	$(install) --mode a=r $< $@
> -  	-rm -f $(DESTDIR)/var/catman/cat1/ps.1.gz $(DESTDIR)/var/man/cat1/ps.1.gz
> ---- 33,40 ----
> -  
> -  
> -  $(bin)ps: ps/ps
> -! 	$(install) -m 555 $< $@
> -  
> -  $(man1)ps.1 : ps/ps.1
> -! 	$(install) -m 444 $< $@
> -  	-rm -f $(DESTDIR)/var/catman/cat1/ps.1.gz $(DESTDIR)/var/man/cat1/ps.1.gz
> diff --git a/recipes/procps/procps-3.2.5/install.patch b/recipes/procps/procps-3.2.8/install.patch
> similarity index 100%
> rename from recipes/procps/procps-3.2.5/install.patch
> rename to recipes/procps/procps-3.2.8/install.patch
> diff --git a/recipes/procps/procps-3.2.7/linux-limits.patch b/recipes/procps/procps-3.2.8/linux-limits.patch
> similarity index 100%
> rename from recipes/procps/procps-3.2.7/linux-limits.patch
> rename to recipes/procps/procps-3.2.8/linux-limits.patch
> diff --git a/recipes/procps/procps-3.2.1/pagesz-not-constant.patch b/recipes/procps/procps-3.2.8/pagesz-not-constant.patch
> similarity index 100%
> rename from recipes/procps/procps-3.2.1/pagesz-not-constant.patch
> rename to recipes/procps/procps-3.2.8/pagesz-not-constant.patch
> diff --git a/recipes/procps/procps-3.2.5/procmodule.patch b/recipes/procps/procps-3.2.8/procmodule.patch
> similarity index 100%
> rename from recipes/procps/procps-3.2.5/procmodule.patch
> rename to recipes/procps/procps-3.2.8/procmodule.patch
> diff --git a/recipes/procps/procps-3.2.7/procps.init b/recipes/procps/procps-3.2.8/procps.init
> similarity index 100%
> rename from recipes/procps/procps-3.2.7/procps.init
> rename to recipes/procps/procps-3.2.8/procps.init
> diff --git a/recipes/procps/procps-3.2.5/psmodule.patch b/recipes/procps/procps-3.2.8/psmodule.patch
> similarity index 100%
> rename from recipes/procps/procps-3.2.5/psmodule.patch
> rename to recipes/procps/procps-3.2.8/psmodule.patch
> diff --git a/recipes/procps/procps-3.2.7/sysctl.conf b/recipes/procps/procps-3.2.8/sysctl.conf
> similarity index 100%
> rename from recipes/procps/procps-3.2.7/sysctl.conf
> rename to recipes/procps/procps-3.2.8/sysctl.conf
> diff --git a/recipes/procps/procps.inc b/recipes/procps/procps.inc
> index 2de32d2..1db030d 100644
> --- a/recipes/procps/procps.inc
> +++ b/recipes/procps/procps.inc
> @@ -8,9 +8,64 @@ PRIORITY = "optional"
>  LICENSE = "GPL"
>  DEPENDS = "ncurses"
>  
> -FILES_${PN} += "${base_libdir}/libproc-*.so"
> +INC_PR = "r9"
>  
> -SRC_URI = "http://procps.sourceforge.net/procps-${PV}.tar.gz \
> +SRC_URI = "http://procps.sourceforge.net/procps-${PV}.tar.gz;name=tarball \
> +	   file://sysctl.conf \
> +	   file://procps.init \
>             file://install.patch;patch=1"
>  
> -inherit autotools
> +inherit autotools update-rc.d
> +
> +INITSCRIPT_NAME = "procps.sh"
> +INITSCRIPT_PARAMS = "start 30 S ."
> +
> +FILES_${PN} += "${base_libdir}/libproc-*.so"
> +
> +FILES = "${bindir}/top.${PN} ${base_bindir}/ps.${PN} ${bindir}/uptime.${PN} ${base_bindir}/kill.${PN} \
> +	 ${bindir}/free.${PN} ${bindir}/w ${bindir}/watch ${bindir}/pgrep ${bindir}/pmap ${bindir}/pwdx \
> +	 ${bindir}/snice ${bindir}/vmstat ${bindir}/slabtop ${bindir}/pkill ${bindir}/skill ${bindir}/tload \
> +	 ${base_sbindir}/sysctl.${PN}"
> +
> +CONFFILES_${PN} = "${sysconfdir}/sysctl.conf"
> +
> +EXTRA_OEMAKE = "CFLAGS=-I${STAGING_INCDIR} \
> +                CPPFLAGS=-I${STAGING_INCDIR} \
> +                LDFLAGS="${LDFLAGS}" \
> +                CURSES=-lncurses \
> +                install='install -D' \
> +                ldconfig=echo"
> +
> +do_install_append () {
> +	install -d ${D}${sysconfdir}/init.d
> +	install -m 0644 ${WORKDIR}/sysctl.conf ${D}${sysconfdir}/sysctl.conf
> +	install -m 0755 ${WORKDIR}/procps.init ${D}${sysconfdir}/init.d/procps.sh
> +
> +	mv ${D}${bindir}/uptime ${D}${bindir}/uptime.${PN}
> +	mv ${D}${bindir}/top ${D}${bindir}/top.${PN}
> +	mv ${D}${base_bindir}/kill ${D}${base_bindir}/kill.${PN}
> +	mv ${D}${base_bindir}/ps ${D}${base_bindir}/ps.${PN}
> +	mv ${D}${bindir}/free ${D}${bindir}/free.${PN}
> +	mv ${D}${base_sbindir}/sysctl ${D}${base_sbindir}/sysctl.${PN}
> +	mv ${D}${bindir}/pkill ${D}${bindir}/pkill.${PN}
> +}
> +
> +pkg_postinst() {
> +	update-alternatives --install ${bindir}/top top top.${PN} 90
> +	update-alternatives --install ${bindir}/uptime uptime uptime.${PN} 90
> +	update-alternatives --install ${base_bindir}/ps ps ps.${PN} 90
> +	update-alternatives --install ${base_bindir}/kill kill kill.${PN} 90
> +	update-alternatives --install ${bindir}/free free free.${PN} 90
> +	update-alternatives --install ${base_sbindir}/sysctl sysctl sysctl.${PN} 90
> +	update-alternatives --install ${bindir}/pkill pkill pkill.${PN} 90
> +}
> +
> +pkg_postrm() {
> +	update-alternatives --remove top top.${PN}
> +	update-alternatives --remove ps ps.${PN}
> +	update-alternatives --remove uptime uptime.${PN}
> +	update-alternatives --remove kill kill.${PN}
> +	update-alternatives --remove free free.${PN}
> +	update-alternatives --remove sysctl sysctl.${PN}
> +	update-alternatives --remove pkill pkill.${PN}
> +}
> diff --git a/recipes/procps/procps_3.1.15.bb b/recipes/procps/procps_3.1.15.bb
> deleted file mode 100644
> index 01114e8..0000000
> --- a/recipes/procps/procps_3.1.15.bb
> +++ /dev/null
> @@ -1,9 +0,0 @@
> -require procps.inc
> -
> -SRC_URI += "file://procps_${PV}-2.diff;patch=1"
> -
> -EXTRA_OEMAKE = "CFLAGS=-I${STAGING_INCDIR} \
> -                LDFLAGS=-L${STAGING_LIBDIR} -Wl,--rpath-link,${STAGING_LIBDIR} \
> -                CURSES=-lncurses \
> -                install='install -D' \
> -                ldconfig=echo"
> diff --git a/recipes/procps/procps_3.2.1.bb b/recipes/procps/procps_3.2.1.bb
> deleted file mode 100644
> index 33df399..0000000
> --- a/recipes/procps/procps_3.2.1.bb
> +++ /dev/null
> @@ -1,11 +0,0 @@
> -require procps.inc
> -
> -PR = "r1"
> -
> -SRC_URI += "file://pagesz-not-constant.patch;patch=1"
> -
> -EXTRA_OEMAKE = "CFLAGS=-I${STAGING_INCDIR} \
> -                LDFLAGS=-L${STAGING_LIBDIR} -Wl,--rpath-link,${STAGING_LIBDIR} \
> -                CURSES=-lncurses \
> -                install='install -D' \
> -                ldconfig=echo"
> diff --git a/recipes/procps/procps_3.2.5.bb b/recipes/procps/procps_3.2.5.bb
> deleted file mode 100644
> index de7524b..0000000
> --- a/recipes/procps/procps_3.2.5.bb
> +++ /dev/null
> @@ -1,45 +0,0 @@
> -require procps.inc
> -
> -PR = "r5"
> -
> -SRC_URI += "file://procmodule.patch;patch=1 \
> -            file://psmodule.patch;patch=1"
> -
> -FILES = "${bindir}/top.${PN} ${base_bindir}/ps.${PN} ${bindir}/uptime.${PN} ${base_bindir}/kill.${PN} \
> -	 ${bindir}/free.${PN} ${bindir}/w ${bindir}/watch ${bindir}/pgrep ${bindir}/pmap ${bindir}/pwdx \
> -	 ${bindir}/snice ${bindir}/vmstat ${bindir}/slabtop ${bindir}/pkill ${bindir}/skill ${bindir}/tload \
> -	 ${base_sbindir}/sysctl.${PN}"
> -
> -EXTRA_OEMAKE = "CFLAGS=-I${STAGING_INCDIR} \
> -		CPPFLAGS=-I${STAGING_INCDIR} \
> -                LDFLAGS=-L${STAGING_LIBDIR} -Wl,--rpath-link,${STAGING_LIBDIR} \
> -                CURSES=-lncurses \
> -                install='install -D' \
> -                ldconfig=echo"
> -
> -do_install_append () {
> -	mv ${D}${bindir}/uptime ${D}${bindir}/uptime.${PN}
> -	mv ${D}${bindir}/top ${D}${bindir}/top.${PN}
> -	mv ${D}${base_bindir}/kill ${D}${base_bindir}/kill.${PN}
> -	mv ${D}${base_bindir}/ps ${D}${base_bindir}/ps.${PN}
> -	mv ${D}${bindir}/free ${D}${bindir}/free.${PN}
> -	mv ${D}${base_sbindir}/sysctl ${D}${base_sbindir}/sysctl.${PN}
> -}
> -
> -pkg_postinst() {
> -	update-alternatives --install ${bindir}/top top top.${PN} 90
> -	update-alternatives --install ${bindir}/uptime uptime uptime.${PN} 90
> -	update-alternatives --install ${base_bindir}/ps ps ps.${PN} 90
> -	update-alternatives --install ${base_bindir}/kill kill kill.${PN} 90
> -	update-alternatives --install ${bindir}/free free free.${PN} 90
> -	update-alternatives --install ${base_sbindir}/sysctl sysctl sysctl.${PN} 90
> -}
> -
> -pkg_postrm() {
> -	update-alternatives --remove top top.${PN}
> -	update-alternatives --remove ps ps.${PN}
> -	update-alternatives --remove uptime uptime.${PN}
> -	update-alternatives --remove kill kill.${PN}
> -	update-alternatives --remove free free.${PN}
> -	update-alternatives --remove sysctl sysctl.${PN}
> -}
> diff --git a/recipes/procps/procps_3.2.7.bb b/recipes/procps/procps_3.2.7.bb
> deleted file mode 100644
> index b31b683..0000000
> --- a/recipes/procps/procps_3.2.7.bb
> +++ /dev/null
> @@ -1,67 +0,0 @@
> -require procps.inc
> -
> -PR = "r9"
> -
> -inherit update-rc.d
> -
> -INITSCRIPT_NAME = "procps.sh"
> -INITSCRIPT_PARAMS = "start 30 S ."
> -
> -SRC_URI += "file://procmodule.patch;patch=1 \
> -            file://psmodule.patch;patch=1 \
> -	    file://linux-limits.patch;patch=1 \
> -	    file://sysctl.conf \
> -	    file://procps.init \
> -	    "
> -
> -FILES = "${bindir}/top.${PN} ${base_bindir}/ps.${PN} ${bindir}/uptime.${PN} ${base_bindir}/kill.${PN} \
> -	 ${bindir}/free.${PN} ${bindir}/w ${bindir}/watch ${bindir}/pgrep ${bindir}/pmap ${bindir}/pwdx \
> -	 ${bindir}/snice ${bindir}/vmstat ${bindir}/slabtop ${bindir}/pkill ${bindir}/skill ${bindir}/tload \
> -	 ${base_sbindir}/sysctl.${PN}"
> -
> -CONFFILES_${PN} = "${sysconfdir}/sysctl.conf"
> -
> -EXTRA_OEMAKE = "CFLAGS=-I${STAGING_INCDIR} \
> -                CPPFLAGS=-I${STAGING_INCDIR} \
> -		usr/bin=${D}${bindir}/ \
> -		bin=${D}${base_bindir}/ \
> -		usr/proc/bin=${D}${bindir}/ \
> -                LDFLAGS="${LDFLAGS}" \
> -                CURSES=-lncurses \
> -                install='install -D' \
> -                ldconfig=echo"
> -
> -do_install_append () {
> -	install -d ${D}${sysconfdir}
> -	install -m 0644 ${WORKDIR}/sysctl.conf ${D}${sysconfdir}/sysctl.conf
> -	install -d ${D}${sysconfdir}/init.d
> -	install -m 0755 ${WORKDIR}/procps.init ${D}${sysconfdir}/init.d/procps.sh
> -
> -	mv ${D}${bindir}/uptime ${D}${bindir}/uptime.${PN}
> -	mv ${D}${bindir}/top ${D}${bindir}/top.${PN}
> -	mv ${D}${base_bindir}/kill ${D}${base_bindir}/kill.${PN}
> -	mv ${D}${base_bindir}/ps ${D}${base_bindir}/ps.${PN}
> -	mv ${D}${bindir}/free ${D}${bindir}/free.${PN}
> -	mv ${D}${base_sbindir}/sysctl ${D}${base_sbindir}/sysctl.${PN}
> -	mv ${D}${bindir}/pkill ${D}${bindir}/pkill.${PN}
> -}
> -
> -pkg_postinst() {
> -	update-alternatives --install ${bindir}/top top top.${PN} 90
> -	update-alternatives --install ${bindir}/uptime uptime uptime.${PN} 90
> -	update-alternatives --install ${base_bindir}/ps ps ps.${PN} 90
> -	update-alternatives --install ${base_bindir}/kill kill kill.${PN} 90
> -	update-alternatives --install ${bindir}/free free free.${PN} 90
> -	update-alternatives --install ${base_sbindir}/sysctl sysctl sysctl.${PN} 90
> -	update-alternatives --install ${bindir}/pkill pkill pkill.${PN} 90
> -}
> -
> -pkg_postrm() {
> -	update-alternatives --remove top top.${PN}
> -	update-alternatives --remove ps ps.${PN}
> -	update-alternatives --remove uptime uptime.${PN}
> -	update-alternatives --remove kill kill.${PN}
> -	update-alternatives --remove free free.${PN}
> -	update-alternatives --remove sysctl sysctl.${PN}
> -	update-alternatives --remove pkill pkill.${PN}
> -}
> diff --git a/recipes/procps/procps_3.2.8.bb b/recipes/procps/procps_3.2.8.bb
> new file mode 100644
> index 0000000..22f54c3
> --- /dev/null
> +++ b/recipes/procps/procps_3.2.8.bb
> @@ -0,0 +1,11 @@
> +require procps.inc
> +
> +PR = "${INC_PR}.0"
> +
> +SRC_URI += "file://procmodule.patch;patch=1 \
> +            file://psmodule.patch;patch=1 \
> +	    file://linux-limits.patch;patch=1 \
> +	    "
> +
> +SRC_URI[tarball.md5sum] = "9532714b6846013ca9898984ba4cd7e0"
> +SRC_URI[tarball.sha256sum] = "11ed68d8a4433b91cd833deb714a3aa849c02aea738c42e6b4557982419c1535"

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (Darwin)

iD8DBQFLp2O7MkyGM64RGpERAg3gAJ0YYWj+dVGrXwdq7ERv62G2f6ktTQCfaKJw
O559auCge1D5fPy2BIW4FIY=
=iHdV
-----END PGP SIGNATURE-----




^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH][STABLE] procps: apply patch from Ubuntu to finally get rid of 'Unknown Hz value'
  2010-03-22 11:05 ` [PATCH][STABLE] procps: apply patch from Ubuntu to finally get rid of 'Unknown Hz value' Marcin Juszkiewicz
@ 2010-03-22 12:34   ` Koen Kooi
  2010-03-23  1:59   ` Philip Balister
  1 sibling, 0 replies; 13+ messages in thread
From: Koen Kooi @ 2010-03-22 12:34 UTC (permalink / raw)
  To: openembedded-devel

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Acked-by: Koen Kooi <koen@openembedded.org>

On 22-03-10 12:05, Marcin Juszkiewicz wrote:
> Signed-off-by: Marcin Juszkiewicz <marcin@juszkiewicz.com.pl>
> ---
>  .../procps-3.2.8/60_linux_version_init.dpatch      |   61 ++++++++++++++++++++
>  recipes/procps/procps_3.2.8.bb                     |    3 +-
>  2 files changed, 63 insertions(+), 1 deletions(-)
>  create mode 100644 recipes/procps/procps-3.2.8/60_linux_version_init.dpatch
> 
> diff --git a/recipes/procps/procps-3.2.8/60_linux_version_init.dpatch b/recipes/procps/procps-3.2.8/60_linux_version_init.dpatch
> new file mode 100644
> index 0000000..d99456a
> --- /dev/null
> +++ b/recipes/procps/procps-3.2.8/60_linux_version_init.dpatch
> @@ -0,0 +1,61 @@
> +#! /bin/sh /usr/share/dpatch/dpatch-run
> +## 60_linux_init.dpatch by  <david.sugar@canonical.com>
> +##
> +## All lines beginning with `## DP:' are a description of the patch.
> +## DP: Fix Linux version detection which relied on elf loader side-effect.
> +## DP: This patch also depends on 40_gnu-kbsd-version, which modified
> +## DP: init_Linux_version().
> +
> +@DPATCH@
> +---
> + proc/sysinfo.c |    1 +
> + proc/version.c |    5 +++--
> + proc/version.h |    1 +
> + 3 files changed, 5 insertions(+), 2 deletions(-)
> +
> +--- procps-3.2.8.orig/proc/sysinfo.c
> ++++ procps-3.2.8/proc/sysinfo.c
> +@@ -210,10 +210,11 @@ static int check_for_privs(void){
> + }
> + 
> + static void init_libproc(void) __attribute__((constructor));
> + static void init_libproc(void){
> +   have_privs = check_for_privs();
> ++  init_Linux_version(); // make sure we have version before continuing...
> +   // ought to count CPUs in /proc/stat instead of relying
> +   // on glibc, which foolishly tries to parse /proc/cpuinfo
> +   //
> +   // SourceForge has an old Alpha running Linux 2.2.20 that
> +   // appears to have a non-SMP kernel on a 2-way SMP box.
> +--- procps-3.2.8.orig/proc/version.c
> ++++ procps-3.2.8/proc/version.c
> +@@ -31,12 +31,13 @@ void display_version(void) {
> + 
> + #define LINUX_VERSION(x,y,z)   (0x10000*(x) + 0x100*(y) + z)
> + 
> + int linux_version_code;
> + 
> +-static void init_Linux_version(void) __attribute__((constructor));
> +-static void init_Linux_version(void) {
> ++// cannot depend on this auto-running before libproc init...
> ++//static void init_Linux_version(void) __attribute__((constructor));
> ++void init_Linux_version(void) {
> +     static struct utsname uts;
> +     int x = 0, y = 0, z = 0;	/* cleared in case sscanf() < 3 */
> +     
> +     if (uname(&uts) == -1)	/* failure implies impending death */
> + 	exit(1);
> +--- procps-3.2.8.orig/proc/version.h
> ++++ procps-3.2.8/proc/version.h
> +@@ -12,10 +12,11 @@
> +  * Copyright 2002 Albert Cahalan
> +  */
> + 
> + EXTERN_C_BEGIN
> + 
> ++extern void init_Linux_version(void);	/* initialize linux version */
> + extern void display_version(void);	/* display suite version */
> + extern const char procps_version[];		/* global buf for suite version */
> + 
> + extern int linux_version_code;		/* runtime version of LINUX_VERSION_CODE
> + 					   in /usr/include/linux/version.h */
> diff --git a/recipes/procps/procps_3.2.8.bb b/recipes/procps/procps_3.2.8.bb
> index 22f54c3..f98b849 100644
> --- a/recipes/procps/procps_3.2.8.bb
> +++ b/recipes/procps/procps_3.2.8.bb
> @@ -1,10 +1,11 @@
>  require procps.inc
>  
> -PR = "${INC_PR}.0"
> +PR = "${INC_PR}.1"
>  
>  SRC_URI += "file://procmodule.patch;patch=1 \
>              file://psmodule.patch;patch=1 \
>  	    file://linux-limits.patch;patch=1 \
> +	    file://60_linux_version_init.dpatch;patch=1 \
>  	    "
>  
>  SRC_URI[tarball.md5sum] = "9532714b6846013ca9898984ba4cd7e0"

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (Darwin)

iD8DBQFLp2PJMkyGM64RGpERAsGYAJ4x+Osy3iqCGueayn3TyuMFT0P2rACgr/yZ
o6BwCeYrcNnVuZHWQLJIiTk=
=ZUbA
-----END PGP SIGNATURE-----




^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH][STABLE] procps: adjust FILES so that libproc-*.so lands in ${PN}
  2010-03-22 11:05 ` [PATCH][STABLE] procps: adjust FILES so that libproc-*.so lands in ${PN} Marcin Juszkiewicz
  2010-03-22 12:33   ` Koen Kooi
@ 2010-03-23  1:58   ` Philip Balister
  1 sibling, 0 replies; 13+ messages in thread
From: Philip Balister @ 2010-03-23  1:58 UTC (permalink / raw)
  To: openembedded-devel

Acked-by: Philip Balister <philip@balister.org>


On 03/22/2010 07:05 AM, Marcin Juszkiewicz wrote:
> From: Phil Blundell<philb@gnu.org>
>
> ---
>   recipes/procps/procps.inc |    2 ++
>   1 files changed, 2 insertions(+), 0 deletions(-)
>
> diff --git a/recipes/procps/procps.inc b/recipes/procps/procps.inc
> index ddc8030..2de32d2 100644
> --- a/recipes/procps/procps.inc
> +++ b/recipes/procps/procps.inc
> @@ -8,6 +8,8 @@ PRIORITY = "optional"
>   LICENSE = "GPL"
>   DEPENDS = "ncurses"
>
> +FILES_${PN} += "${base_libdir}/libproc-*.so"
> +
>   SRC_URI = "http://procps.sourceforge.net/procps-${PV}.tar.gz \
>              file://install.patch;patch=1"
>



^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH][STABLE] procps_3.2.7.bb: Fix compilation when usr/bin is same as /bin
  2010-03-22 11:05 ` [PATCH][STABLE] procps_3.2.7.bb: Fix compilation when usr/bin is same as /bin Marcin Juszkiewicz
  2010-03-22 12:33   ` Koen Kooi
@ 2010-03-23  1:58   ` Philip Balister
  1 sibling, 0 replies; 13+ messages in thread
From: Philip Balister @ 2010-03-23  1:58 UTC (permalink / raw)
  To: openembedded-devel

Acked-by: Philip Balister <philip@balister.org>


On 03/22/2010 07:05 AM, Marcin Juszkiewicz wrote:
> From: Khem Raj<raj.khem@gmail.com>
>
> * On DISTROs like micro where bindir and base_bindir are
>    same, procps does not compile because it wants to install
>    binaries in both places. We have to pass the variable to
>    make file since it does not use autotools.
>
> Signed-off-by: Khem Raj<raj.khem@gmail.com>
> ---
>   recipes/procps/procps_3.2.7.bb |    5 ++++-
>   1 files changed, 4 insertions(+), 1 deletions(-)
>
> diff --git a/recipes/procps/procps_3.2.7.bb b/recipes/procps/procps_3.2.7.bb
> index 6da975a..b31b683 100644
> --- a/recipes/procps/procps_3.2.7.bb
> +++ b/recipes/procps/procps_3.2.7.bb
> @@ -1,6 +1,6 @@
>   require procps.inc
>
> -PR = "r8"
> +PR = "r9"
>
>   inherit update-rc.d
>
> @@ -23,6 +23,9 @@ CONFFILES_${PN} = "${sysconfdir}/sysctl.conf"
>
>   EXTRA_OEMAKE = "CFLAGS=-I${STAGING_INCDIR} \
>                   CPPFLAGS=-I${STAGING_INCDIR} \
> +		usr/bin=${D}${bindir}/ \
> +		bin=${D}${base_bindir}/ \
> +		usr/proc/bin=${D}${bindir}/ \
>                   LDFLAGS="${LDFLAGS}" \
>                   CURSES=-lncurses \
>                   install='install -D' \



^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH][STABLE] procps: added 3.2.8 and dropped older
  2010-03-22 11:05 ` [PATCH][STABLE] procps: added 3.2.8 and dropped older Marcin Juszkiewicz
  2010-03-22 12:34   ` Koen Kooi
@ 2010-03-23  1:59   ` Philip Balister
  1 sibling, 0 replies; 13+ messages in thread
From: Philip Balister @ 2010-03-23  1:59 UTC (permalink / raw)
  To: openembedded-devel

Acked-by: Philip Balister <philip@balister.org>


On 03/22/2010 07:05 AM, Marcin Juszkiewicz wrote:
> This version no longer complain about unknown Hz value during boot.
>
> Signed-off-by: Marcin Juszkiewicz<marcin@juszkiewicz.com.pl>
> ---
>   recipes/procps/procps-3.1.15/install.patch         |   16 -
>   recipes/procps/procps-3.1.15/procps_3.1.15-2.diff  | 5133 --------------------
>   recipes/procps/procps-3.2.1/install.patch          |   16 -
>   .../procps/procps-3.2.5/pagesz-not-constant.patch  |   22 -
>   recipes/procps/procps-3.2.7/install.patch          |   27 -
>   .../procps/procps-3.2.7/pagesz-not-constant.patch  |   22 -
>   recipes/procps/procps-3.2.7/procmodule.patch       |   36 -
>   recipes/procps/procps-3.2.7/psmodule.patch         |   21 -
>   .../{procps-3.2.5 =>  procps-3.2.8}/install.patch   |    0
>   .../linux-limits.patch                             |    0
>   .../pagesz-not-constant.patch                      |    0
>   .../procmodule.patch                               |    0
>   .../{procps-3.2.7 =>  procps-3.2.8}/procps.init     |    0
>   .../{procps-3.2.5 =>  procps-3.2.8}/psmodule.patch  |    0
>   .../{procps-3.2.7 =>  procps-3.2.8}/sysctl.conf     |    0
>   recipes/procps/procps.inc                          |   61 +-
>   recipes/procps/procps_3.1.15.bb                    |    9 -
>   recipes/procps/procps_3.2.1.bb                     |   11 -
>   recipes/procps/procps_3.2.5.bb                     |   45 -
>   recipes/procps/procps_3.2.7.bb                     |   67 -
>   recipes/procps/procps_3.2.8.bb                     |   11 +
>   21 files changed, 69 insertions(+), 5428 deletions(-)
>   delete mode 100644 recipes/procps/procps-3.1.15/install.patch
>   delete mode 100644 recipes/procps/procps-3.1.15/procps_3.1.15-2.diff
>   delete mode 100644 recipes/procps/procps-3.2.1/install.patch
>   delete mode 100644 recipes/procps/procps-3.2.5/pagesz-not-constant.patch
>   delete mode 100644 recipes/procps/procps-3.2.7/install.patch
>   delete mode 100644 recipes/procps/procps-3.2.7/pagesz-not-constant.patch
>   delete mode 100644 recipes/procps/procps-3.2.7/procmodule.patch
>   delete mode 100644 recipes/procps/procps-3.2.7/psmodule.patch
>   rename recipes/procps/{procps-3.2.5 =>  procps-3.2.8}/install.patch (100%)
>   rename recipes/procps/{procps-3.2.7 =>  procps-3.2.8}/linux-limits.patch (100%)
>   rename recipes/procps/{procps-3.2.1 =>  procps-3.2.8}/pagesz-not-constant.patch (100%)
>   rename recipes/procps/{procps-3.2.5 =>  procps-3.2.8}/procmodule.patch (100%)
>   rename recipes/procps/{procps-3.2.7 =>  procps-3.2.8}/procps.init (100%)
>   rename recipes/procps/{procps-3.2.5 =>  procps-3.2.8}/psmodule.patch (100%)
>   rename recipes/procps/{procps-3.2.7 =>  procps-3.2.8}/sysctl.conf (100%)
>   delete mode 100644 recipes/procps/procps_3.1.15.bb
>   delete mode 100644 recipes/procps/procps_3.2.1.bb
>   delete mode 100644 recipes/procps/procps_3.2.5.bb
>   delete mode 100644 recipes/procps/procps_3.2.7.bb
>   create mode 100644 recipes/procps/procps_3.2.8.bb
>
> diff --git a/recipes/procps/procps-3.1.15/install.patch b/recipes/procps/procps-3.1.15/install.patch
> deleted file mode 100644
> index 2d16c26..0000000
> --- a/recipes/procps/procps-3.1.15/install.patch
> +++ /dev/null
> @@ -1,16 +0,0 @@
> -
> -#
> -# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
> -#
> -
> ---- procps-3.1.15/Makefile~install	2003-12-24 03:01:55.000000000 +0100
> -+++ procps-3.1.15/Makefile	2004-02-11 00:45:59.000000000 +0100
> -@@ -147,7 +147,7 @@
> - ###### install
> -
> - $(BINFILES) : all
> --	$(install) --mode a=rx --strip $(notdir $@) $@
> -+	$(install) --mode a=rx $(notdir $@) $@
> -
> - $(MANFILES) : all
> - 	$(install) --mode a=r $(notdir $@) $@
> diff --git a/recipes/procps/procps-3.1.15/procps_3.1.15-2.diff b/recipes/procps/procps-3.1.15/procps_3.1.15-2.diff
> deleted file mode 100644
> index 438fd0f..0000000
> --- a/recipes/procps/procps-3.1.15/procps_3.1.15-2.diff
> +++ /dev/null
> @@ -1,5133 +0,0 @@
> ---- procps-3.1.15.orig/proc/library.map
> -+++ procps-3.1.15/proc/library.map
> -@@ -4,7 +4,7 @@
> -
> -   readproc; readtask; readproctab; readproctab2; look_up_our_self; escape_command;
> -   escape_str; escape_strlist;
> --  openproc; closeproc;
> -+  openproc; closeproc; freeproc;
> -   tty_to_dev; dev_to_tty; open_psdb_message; open_psdb; wchan;
> -   display_version; procps_version; linux_version_code;
> -   Hertz; smp_num_cpus;
> ---- procps-3.1.15.orig/proc/readproc.c
> -+++ procps-3.1.15/proc/readproc.c
> -@@ -162,7 +162,7 @@
> -         // examine a field name (hash and compare)
> -     base:
> -         if(unlikely(!*S)) break;
> --        entry = table[63&  (asso[S[3]] + asso[S[2]] + asso[S[0]])];
> -+        entry = table[63&  (asso[(int)S[3]] + asso[(int)S[2]] + asso[(int)S[0]])];
> -         colon = strchr(S, ':');
> -         if(unlikely(!colon)) break;
> -         if(unlikely(colon[1]!='\t')) break;
> -@@ -888,6 +888,8 @@
> -     else
> - 	PT = openproc(flags);
> -     va_end(ap);
> -+    if (!PT)
> -+      return 0;
> -     do {					/* read table: */
> - 	tab = xrealloc(tab, (n+1)*sizeof(proc_t*));/* realloc as we go, using */
> - 	tab[n] = readproc_direct(PT, NULL);     /* final null to terminate */
> ---- procps-3.1.15.orig/proc/module.mk
> -+++ procps-3.1.15/proc/module.mk
> -@@ -3,7 +3,7 @@
> - # for lib$(NAME).so and /usr/include/($NAME) and such
> - NAME      :=  proc
> -
> --SHARED := 1
> -+SHARED ?= 1
> -
> - SONAME    :=  lib$(NAME).so.$(LIBVERSION)
> -
> ---- procps-3.1.15.orig/debian/README.Debian
> -+++ procps-3.1.15/debian/README.Debian
> -@@ -0,0 +1,22 @@
> -+README for Debian package of procps
> -+===================================
> -+
> -+XConsole gone
> -+-------------
> -+ XConsole and other X-based programs have been finally removed.  Look in
> -+ the x packages for their equivalents.
> -+
> -+pgrep
> -+-----
> -+pgrep is a new program, using the Unix standard name for something that
> -+greps for processes.  If you are looking for Perl compatible regular
> -+expression grep, it is called pcregrep.
> -+
> -+forks
> -+-----
> -+Procps upstream is forked.  This one comes from procps.sf.net  I'm really
> -+not interested when the others have new versions so please don't bug me about
> -+it.  However if you see something neat in the others and would like it in
> -+the Debian one, report a *wishlist* level bug about it.
> -+
> -+ Craig Small<csmall@debian.org>
> ---- procps-3.1.15.orig/debian/copyright
> -+++ procps-3.1.15/debian/copyright
> -@@ -0,0 +1,27 @@
> -+This is the Debian Linux prepackaged version of the /proc file
> -+system utilities.
> -+
> -+This package was downloaded from:
> -+  http://procps.sourceforge.net/
> -+
> -+
> -+Upstream Authors:
> -+Werner Almesberger<almesber@di.epfl.ch>, Roger Binns, Charles
> -+Blake<cblake@ucsd.edu>, Brian Edmonds, David Engel<david@ods.com>,
> -+Larry Greenfield<greenfie@gauss.rutgers.edu>, Michael K. Johnson
> -+<johnsonm@sunsite.unc.edu>, Branko Lankester<lankeste@fwi.uva.nl>,
> -+Robert Nation<nation@rocket.sanders.lockheed.com>, Michael Shields
> -+<mjshield@nyx.cs.du.edu>, Henry Ware<al172@yfn.ysu.edu>, Matt
> -+Welsh<mdw@sunsite.unc.edu>, Albert D. Cahalan and Jim C. Warner
> -+<warnerjc@worldnet.att.net>
> -+
> -+All programs except ps, skill and snice are copyright by their
> -+authors and redistributable under the terms of the GNU General
> -+Public License. On Debian Linux systems, the complete text of
> -+the GNU General Public License can be found in
> -+`/usr/share/common-licenses/GPL'.
> -+
> -+ps, skill and snice are copyright by their authors and redistributable under
> -+the terms of the GNU Library General Public License. On Debian Linux
> -+systems, the complete text of the GNU Library General Public License can
> -+be found in `/usr/share/common/licenses/LGPL'.
> ---- procps-3.1.15.orig/debian/dirs
> -+++ procps-3.1.15/debian/dirs
> -@@ -0,0 +1,12 @@
> -+etc
> -+lib
> -+sbin
> -+bin
> -+usr/bin
> -+usr/sbin
> -+usr/lib
> -+usr/include/proc
> -+usr/share/man/man1
> -+usr/share/man/man5
> -+usr/share/man/man8
> -+
> ---- procps-3.1.15.orig/debian/docs
> -+++ procps-3.1.15/debian/docs
> -@@ -0,0 +1,4 @@
> -+BUGS
> -+TODO
> -+README.top
> -+
> ---- procps-3.1.15.orig/debian/examples
> -+++ procps-3.1.15/debian/examples
> -@@ -0,0 +1,2 @@
> -+debian/sysctl.conf
> -+
> ---- procps-3.1.15.orig/debian/libproc-dev.dirs
> -+++ procps-3.1.15/debian/libproc-dev.dirs
> -@@ -0,0 +1,2 @@
> -+usr/lib
> -+usr/include/proc
> ---- procps-3.1.15.orig/debian/menu
> -+++ procps-3.1.15/debian/menu
> -@@ -0,0 +1 @@
> -+?package(procps):needs=text section="Apps/System" title="Top" command="/usr/bin/top" hints="Monitoring"
> ---- procps-3.1.15.orig/debian/postinst
> -+++ procps-3.1.15/debian/postinst
> -@@ -0,0 +1,74 @@
> -+#!/bin/sh
> -+# postinst script for procps
> -+#
> -+# see: dh_installdeb(1)
> -+
> -+set -e
> -+
> -+# summary of how this script can be called:
> -+#        *<postinst>  `configure'<most-recently-configured-version>
> -+#        *<old-postinst>  `abort-upgrade'<new version>
> -+#        *<conflictor's-postinst>  `abort-remove' `in-favour'<package>
> -+#<new-version>
> -+#        *<deconfigured's-postinst>  `abort-deconfigure' `in-favour'
> -+#<failed-install-package>  <version>  `removing'
> -+#<conflicting-package>  <version>
> -+# for details, see http://www.debian.org/doc/debian-policy/ or
> -+# the debian-policy package
> -+#
> -+# quoting from the policy:
> -+#     Any necessary prompting should almost always be confined to the
> -+#     post-installation script, and should be protected with a conditional
> -+#     so that unnecessary prompting doesn't happen if a package's
> -+#     installation fails and the `postinst' is called with `abort-upgrade',
> -+#     `abort-remove' or `abort-deconfigure'.
> -+
> -+case "$1" in
> -+    configure)
> -+		if [ -e /etc/psdevtab ] ; then
> -+			rm -f /etc/psdevtab
> -+		fi
> -+		if [ -e /etc/psdatabase ]
> -+		then
> -+			rm -f /etc/psdatabase
> -+		fi
> -+		# Remove old /etc/init.d/procps file, Bug #53818
> -+		if [ -e /etc/init.d/procps ]
> -+		then
> -+			rm -f /etc/init.d/procps
> -+		fi
> -+		# Remove old procps init.d script, if it exists Closes: #55137
> -+		if [ -e /etc/rcS.d/S30procps ]
> -+		then
> -+			update-rc.d procps remove>/dev/null
> -+		fi
> -+		# and if that didn't work Closes: #92184
> -+		if [ -e /etc/rcS.d/S30procps ]
> -+		then
> -+			rm -f /etc/rcS.d/S30procps
> -+		fi
> -+		#
> -+		# Now to do the alternatives for w and ps
> -+		update-alternatives --install /usr/bin/w w /usr/bin/w.procps 50 \
> -+			--slave /usr/share/man/man1/w.1.gz w.1.gz /usr/share/man/man1/w.procps.1.gz
> -+		
> -+    ;;
> -+
> -+    abort-upgrade|abort-remove|abort-deconfigure)
> -+
> -+    ;;
> -+
> -+    *)
> -+        echo "postinst called with unknown argument \`$1'">&2
> -+        exit 1
> -+    ;;
> -+esac
> -+
> -+# dh_installdeb will replace this with shell code automatically
> -+# generated by other debhelper scripts.
> -+
> -+#DEBHELPER#
> -+
> -+exit 0
> -+
> -+
> ---- procps-3.1.15.orig/debian/prerm
> -+++ procps-3.1.15/debian/prerm
> -@@ -0,0 +1,11 @@
> -+#!/bin/sh
> -+
> -+if [ "$1" != "upgrade" ]
> -+then
> -+	update-alternatives --remove w /usr/bin/w.procps
> -+fi
> -+
> -+#DEBHELPER#
> -+
> -+exit 0
> -+
> ---- procps-3.1.15.orig/debian/sysctl.conf
> -+++ procps-3.1.15/debian/sysctl.conf
> -@@ -0,0 +1,6 @@
> -+#
> -+# /etc/sysctl.conf - Configuration file for setting system variables
> -+# See sysctl.conf (5) for information.
> -+#
> -+#kernel.domainname = example.com
> -+#net/ipv4/icmp_echo_ignore_broadcasts=1
> ---- procps-3.1.15.orig/debian/watch
> -+++ procps-3.1.15/debian/watch
> -@@ -0,0 +1,6 @@
> -+# Example watch control file for uscan
> -+# Rename this file to "watch" and then you can run the "uscan" command
> -+# to check for upstream updates and more.
> -+# Site		Directory		Pattern			Version	Script
> -+sunsite.unc.edu	/pub/Linux/Incoming	procps-*.tar.gz	debian	uupdate
> -+
> ---- procps-3.1.15.orig/debian/procps.sh
> -+++ procps-3.1.15/debian/procps.sh
> -@@ -0,0 +1,40 @@
> -+#! /bin/sh
> -+# /etc/init.d/procps: Set kernel variables from /etc/sysctl.conf
> -+#
> -+# written by Elrond<Elrond@Wunder-Nett.org>
> -+
> -+# Check for existance of the default file and exit if not there,
> -+# Closes #52839 for the boot-floppy people
> -+[ -r /etc/default/rcS ] || exit 0
> -+. /etc/default/rcS
> -+
> -+[ -x /sbin/sysctl ] || exit 0
> -+
> -+
> -+case "$1" in
> -+       start|reload|restart|force-reload)
> -+               if [ ! -r /etc/sysctl.conf ]
> -+               then
> -+                       exit 0
> -+               fi
> -+               if [ "$VERBOSE" = "no" ]
> -+               then
> -+                       n="-n"
> -+                       redir=">/dev/null"
> -+               else
> -+                       echo -n "Setting kernel variables."
> -+                       n=""
> -+                       redir=""
> -+               fi
> -+               eval "/sbin/sysctl $n -p $redir"
> -+			   echo "."
> -+               ;;
> -+       stop|show)
> -+               ;;
> -+       *)
> -+               echo "Usage: /etc/init.d/procps.sh {start|stop|reload|restart}">&2
> -+               exit 1
> -+               ;;
> -+esac
> -+
> -+
> ---- procps-3.1.15.orig/debian/procps.manpages
> -+++ procps-3.1.15/debian/procps.manpages
> -@@ -0,0 +1 @@
> -+ps/ps.1
> ---- procps-3.1.15.orig/debian/compat
> -+++ procps-3.1.15/debian/compat
> -@@ -0,0 +1 @@
> -+4
> ---- procps-3.1.15.orig/debian/libproc-dev.files
> -+++ procps-3.1.15/debian/libproc-dev.files
> -@@ -0,0 +1,2 @@
> -+usr/include/proc/*.h
> -+lib/libproc.so
> ---- procps-3.1.15.orig/debian/libproc-dev.README
> -+++ procps-3.1.15/debian/libproc-dev.README
> -@@ -0,0 +1,12 @@
> -+README for libproc-dev
> -+======================
> -+
> -+This README is for people who want to use the libraries for their own
> -+programs.  If you just want to use procps tools you don't need to use this
> -+and you can probably remove libproc-dev too.
> -+
> -+It is generally a bad idea to dynamically link to libproc.  The API changes
> -+a fair bit and I cannot guarantee that it will stay the same between minor
> -+versions (though it will stay the same between Debian versions).  I've now
> -+re-included the libproc.a file so use that.
> -+
> ---- procps-3.1.15.orig/debian/patches/20_procps-fix+attr.dpatch
> -+++ procps-3.1.15/debian/patches/20_procps-fix+attr.dpatch
> -@@ -0,0 +1,55 @@
> -+#! /bin/sh -e
> -+## 20_procps-fix++attr by someone
> -+##
> -+## All lines beginning with `## DP:' are a description of the patch.
> -+## DP: SELINUX Attr value in /proc
> -+
> -+[ -f debian/patches/00patch-opts ]&&  . debian/patches/00patch-opts
> -+patch_opts="${patch_opts:--f --no-backup-if-mismatch}"
> -+
> -+if [ $# -ne 1 ]; then
> -+    echo>&2 "`basename $0`: script expects -patch|-unpatch as argument"
> -+    exit 1
> -+fi
> -+case "$1" in
> -+       -patch) patch $patch_opts -p1<  $0;;
> -+       -unpatch) patch $patch_opts -p1 -R<  $0;;
> -+        *)
> -+                echo>&2 "`basename $0`: script expects -patch|-unpatch as argum
> -+ent"
> -+                exit 1;;
> -+esac
> -+
> -+exit 0
> -+@DPATCH@
> -+diff -urN procps-3.1.15/ps/output.c procps-3.1.15.new/ps/output.c
> -+--- procps-3.1.15/ps/output.c	2003-12-23 19:46:32.000000000 -0600
> -++++ procps-3.1.15.new/ps/output.c	2003-12-24 13:31:16.000000000 -0600
> -+@@ -944,7 +944,7 @@
> -+
> -+ // wchan file is suitable for testing
> -+ //snprintf(filename, sizeof filename, "/proc/%d/task/%d/wchan", pp->tgid, pp->tid);
> -+-  snprintf(filename, sizeof filename, "/proc/%d/task/%d/attr/current", pp->tgid, pp->tid);
> -++  snprintf(filename, sizeof filename, "/proc/%d/attr/current", pp->tgid);
> -+
> -+   fd = open(filename, O_RDONLY, 0);
> -+   if(likely(fd==-1)) goto fail;
> -+diff -urN procps-3.1.15/ps/parser.c procps-3.1.15.new/ps/parser.c
> -+--- procps-3.1.15/ps/parser.c	2003-12-23 17:58:06.000000000 -0600
> -++++ procps-3.1.15.new/ps/parser.c	2003-12-24 13:45:08.000000000 -0600
> -+@@ -315,12 +315,10 @@
> -+       exclusive("-V");
> -+       display_version();
> -+       exit(0);
> -+-#if 0
> -+-    case 'Z':     /* full Mandatory Access Control level info */
> -+-      trace("-Z shows full MAC info\n");
> -+-      return "Don't understand MAC on Linux.";
> -++    case 'Z':
> -++      trace("-Z shows SELinux contexts\n");
> -++      format_flags |= FF_Fc;
> -+       break;
> -+-#endif
> -+     case 'a':
> -+       trace("-a select all with a tty, but omit session leaders.\n");
> -+       simple_select |= SS_U_a;
> ---- procps-3.1.15.orig/debian/patches/20_ps.1.dpatch
> -+++ procps-3.1.15/debian/patches/20_ps.1.dpatch
> -@@ -0,0 +1,376 @@
> -+#! /bin/sh -e
> -+## 20_ps.1.dpatch by Craig Small<csmall@debian.org>
> -+##
> -+## All lines beginning with `## DP:' are a description of the patch.
> -+## DP: Fix ps manual page
> -+
> -+[ -f debian/patches/00patch-opts ]&&  . debian/patches/00patch-opts
> -+patch_opts="${patch_opts:--f --no-backup-if-mismatch}"
> -+
> -+if [ $# -ne 1 ]; then
> -+    echo>&2 "`basename $0`: script expects -patch|-unpatch as argument"
> -+    exit 1
> -+fi
> -+case "$1" in
> -+       -patch) patch $patch_opts -p1<  $0;;
> -+       -unpatch) patch $patch_opts -p1 -R<  $0;;
> -+        *)
> -+                echo>&2 "`basename $0`: script expects -patch|-unpatch as argum
> -+ent"
> -+                exit 1;;
> -+esac
> -+
> -+exit 0
> -+@DPATCH@
> -+--- procps-3.1.15/ps/ps.1	2003-12-24 12:59:47.000000000 +1100
> -++++ procps-3.1.15.newps/ps.1	2003-12-26 18:05:01.000000000 +1100
> -+@@ -1,3 +1,5 @@
> -++'\" t
> -++.\" (The preceding line is a note to broken versions of man to tell
> -+ .\" Man page for ps.
> -+ .\" Quick hack conversion by Albert Cahalan, 1998.
> -+ .\" Licensed under version 2 of the Gnu General Public License.
> -+@@ -10,8 +12,8 @@
> -+ .\" invented this crap in 1973. Oh yeah, they did. Sorry.
> -+ .\"
> -+ .TH PS 1 "July 5, 1998" "Linux" "Linux User's Manual"
> -+-.SH \fRNAME\fR
> -+-ps \- report process status
> -++.SH NAME
> -++ps \- report a snapshot of the current processes.
> -+ .ad r
> -+ .na
> -+ .ss 12 0
> -+@@ -19,17 +21,17 @@
> -+ .nh
> -+ .nf
> -+
> -+-SYNOPSIS
> -++.SH SYNOPSIS
> -+ ps [options]
> -+
> -+
> -+-DESCRIPTION
> -++.SH DESCRIPTION
> -+ ps gives a snapshot of the current processes. If you want
> -+ a repetitive update of this status, use top. This man
> -+ page documents the /proc-based version of ps, or tries to.
> -+
> -+
> -+-COMMAND-LINE OPTIONS
> -++.SH "COMMAND-LINE OPTIONS"
> -+
> -+ This version of ps accepts several kinds of options.
> -+
> -+@@ -43,7 +45,9 @@
> -+ when options are preceeded by a dash. The PS_PERSONALITY environment
> -+ variable (described below) provides more detailed control of ps behavior.
> -+
> -+-SIMPLE PROCESS SELECTION
> -++.SH "SIMPLE PROCESS SELECTION"
> -++.TS
> -++l l.
> -+ -A           select all processes
> -+ -N           negate selection
> -+ -a           select all with a tty except session leaders
> -+@@ -55,8 +59,11 @@
> -+ r            restrict output to running processes
> -+ x            select processes without controlling ttys
> -+ --deselect   negate selection
> -++.TE
> -+
> -+-PROCESS SELECTION BY LIST
> -++.SH "PROCESS SELECTION BY LIST"
> -++.TS
> -++l l.
> -+ -C           select by command name
> -+ -G           select by RGID (supports names)
> -+ -U           select by RUID (supports names)
> -+@@ -78,8 +85,10 @@
> -+ --user       select by effective user name or ID
> -+ -123         implied --sid
> -+ 123          implied --pid
> -+-
> -+-OUTPUT FORMAT CONTROL
> -++.TE
> -++.SH "OUTPUT FORMAT CONTROL"
> -++.TS
> -++l l.
> -+ -O           is preloaded "-o"
> -+ -F           extra full format
> -+ -c           different scheduler info for -l option
> -+@@ -98,8 +107,10 @@
> -+ v            display virtual memory format
> -+ --format     user-defined format
> -+ --context    display security context format (NSA SELinux, etc.)
> -+-
> -+-OUTPUT MODIFIERS
> -++.TE
> -++.SH "OUTPUT MODIFIERS"
> -++.TS
> -++l l.
> -+ -H           show process hierarchy (forest)
> -+ -n           set namelist file
> -+ -w           wide output
> -+@@ -123,31 +134,40 @@
> -+ --rows       set screen height
> -+ --sort       specify sorting order
> -+ --width      set screen width
> -+-
> -+-THREAD DISPLAY
> -++.TE
> -++.SH "THREAD DISPLAY"
> -++.TS
> -++l l.
> -+ -L           show threads, possibly with LWP and NLWP columns
> -+ -T           show threads, possibly with SPID column
> -+ -m           show threads after processes
> -+ H            show threads as if they were processes
> -+ m            show threads after processes
> -++.TE
> -+
> -+-INFORMATION
> -++.SH INFORMATION
> -++
> -++.TS
> -++l l.
> -+ -V          print version
> -+ L           list all format specifiers
> -+ V           show version info
> -+ --help      print help message
> -+ --info      print debugging info
> -+ --version   print version
> -++.TE
> -++
> -++.SH OBSOLETE
> -+
> -+-OBSOLETE
> -++.TS
> -++l l.
> -+ A           increases the argument space (DecUnix)
> -+ M           use alternate core (try -n or N instead)
> -+ W           get swap info from ... not /dev/drum (try -n or N instead)
> -+ k           use /vmcore as c-dumpfile (try -n or N instead)
> -+-
> -+-
> -+-
> -+-NOTES
> -++.TE
> -++
> -++.SH NOTES
> -+
> -+ User-defined format options ("o", "-o", "O", and "-O") offer
> -+ a way to specify individual output columns. Headers may be
> -+@@ -249,14 +269,17 @@
> -+ will be destroyed by init(8) if the parent process exits.
> -+
> -+
> -+-PROCESS FLAGS
> -+-
> -++.SH "PROCESS FLAGS"
> -++.TS
> -++l l l.
> -+ FORKNOEXEC   1    forked but didn't exec
> -+ SUPERPRIV    4    used super-user privileges
> -++.TE
> -+
> -++.SH "PROCESS STATE CODES"
> -+
> -+-PROCESS STATE CODES
> -+-
> -++.TS
> -++l l.
> -+ D uninterruptible sleep (usually IO)
> -+ R runnable (on run queue)
> -+ S sleeping
> -+@@ -264,23 +287,30 @@
> -+ W paging
> -+ X dead
> -+ Z a defunct ("zombie") process
> -++.TE
> -+
> -+ For BSD formats and when the "stat" keyword is used, additional
> -+ letters may be displayed:
> -+
> -+-W has no resident pages
> -+-<  high-priority process
> -+-N low-priority task
> -+-L has pages locked into memory (for real-time and custom IO)
> -++.IP W
> -++has no resident pages
> -++.IP<
> -++high-priority process
> -++.IP N
> -++low-priority task
> -++.IP L
> -++has pages locked into memory (for real-time and custom IO)
> -+
> -+
> -+-SORT KEYS
> -++.SH "SORT KEYS"
> -+
> -+ Note that the values used in sorting are the internal values ps uses and not
> -+ the `cooked' values used in some of the output format fields. Pipe ps
> -+ output into the sort(1) command if you want to sort the cooked values.
> -+
> -+-KEY LONG       DESCRIPTION
> -++.TS
> -++l l l.
> -++\fBKEY LONG       DESCRIPTION\fR
> -+ c   cmd        simple name of executable
> -+ C   cmdline    full command line
> -+ f   flags      flags as in long format F field
> -+@@ -307,14 +337,15 @@
> -+ u   user       user name
> -+ v   vsize      total VM size in kB
> -+ y   priority   kernel scheduling priority
> -++.TE
> -+
> -+-
> -+-AIX FORMAT DESCRIPTORS
> -++.SH "AIX FORMAT DESCRIPTORS"
> -+
> -+ This ps supports AIX format descriptors, which work somewhat like the
> -+ formatting codes of printf(1) and printf(3). For example, the normal
> -+ default output can be produced with this:   ps -eo "%p %y %x %c"
> -+-
> -++.TS
> -++l l l.
> -+ CODE  NORMAL    HEADER
> -+ %C    pcpu      %CPU
> -+ %G    group     GROUP
> -+@@ -331,14 +362,16 @@
> -+ %x    time      TIME
> -+ %y    tty       TTY
> -+ %z    vsz       VSZ
> -++.TE
> -+
> -+-
> -+-STANDARD FORMAT SPECIFIERS
> -++.SH "STANDARD FORMAT SPECIFIERS"
> -+
> -+ These may be used to control both output format and sorting.
> -+ For example:  ps -eo pid,user,args --sort user
> -+
> -+-CODE         HEADER
> -++.TS
> -++l l.
> -++\fBCODE         HEADER\fR
> -+ %cpu         %CPU
> -+ %mem         %MEM
> -+ alarm        ALARM
> -+@@ -459,25 +492,51 @@
> -+ vsize        VSZ
> -+ vsz          VSZ
> -+ wchan        WCHAN
> -++.TE
> -+
> -++.SH "ENVIRONMENT VARIABLES"
> -+
> -+-
> -+-
> -+-ENVIRONMENT VARIABLES
> -+ The following environment variables could affect ps:
> -+-    COLUMNS             Override default display width.
> -+-    LINES               Override default display height.
> -+-    PS_PERSONALITY      Set to one of posix,old,linux,bsd,sun,digital...
> -+-    CMD_ENV             Set to one of posix,old,linux,bsd,sun,digital...
> -+-    I_WANT_A_BROKEN_PS  Force obsolete command line interpretation.
> -+-    LC_TIME             Date format.
> -+-    PS_COLORS           Not currently supported.
> -+-    PS_FORMAT           Default output format override.
> -+-    PS_SYSMAP           Default namelist (System.map) location.
> -+-    PS_SYSTEM_MAP       Default namelist (System.map) location.
> -+-    POSIXLY_CORRECT     Don't find excuses to ignore bad "features".
> -+-    UNIX95              Don't find excuses to ignore bad "features".
> -+-    _XPG                Cancel CMD_ENV=irix non-standard behavior.
> -++
> -++.TP
> -++.B COLUMNS
> -++Override default display width.
> -++.TP
> -++.B LINES
> -++Override default display height.
> -++.TP
> -++.B PS_PERSONALITY
> -++Set to one of posix,old,linux,bsd,sun,digital...
> -++.TP
> -++.B CMD_ENV
> -++Set to one of posix,old,linux,bsd,sun,digital...
> -++.TP
> -++.B I_WANT_A_BROKEN_PS
> -++Force obsolete command line interpretation.
> -++.TP
> -++.B LC_TIME
> -++Date format.
> -++.TP
> -++.B PS_COLORS
> -++Not currently supported.
> -++.TP
> -++.B PS_FORMAT
> -++Default output format override.
> -++.TP
> -++.B PS_SYSMAP
> -++Default namelist (System.map) location.
> -++.TP
> -++.B PS_SYSTEM_MAP
> -++Default namelist (System.map) location.
> -++.TP
> -++.B POSIXLY_CORRECT
> -++Don't find excuses to ignore bad "features".
> -++.TP
> -++.B UNIX95
> -++Don't find excuses to ignore bad "features".
> -++.TP
> -++.B _XPG
> -++Cancel CMD_ENV=irix non-standard behavior.
> -+
> -+ In general, it is a bad idea to set these variables. The one exception
> -+ is CMD_ENV or PS_PERSONALITY, which could be set to Linux for normal
> -+@@ -485,7 +544,9 @@
> -+ of the Unix98 standard.
> -+
> -+
> -+-PERSONALITY
> -++.SH "PERSONALITY"
> -++.TS
> -++l l.
> -+     390      like the S/390 OpenEdition ps
> -+     aix      like AIX ps
> -+     bsd      like FreeBSD ps (totally non-standard)
> -+@@ -507,9 +568,9 @@
> -+     unix     standard
> -+     unix95   standard
> -+     unix98   standard
> -++.TE
> -+
> -+-
> -+-EXAMPLES
> -++.SH "EXAMPLES"
> -+ To see every process on the system using standard syntax:
> -+     ps -e
> -+ To see every process on the system using BSD syntax:
> -+@@ -523,13 +584,13 @@
> -+ Print only the process IDs of syslogd:
> -+     ps -C syslogd -o pid=
> -+
> -+-SEE ALSO
> -+-top(1) pgrep(1) pstree(1) proc(5)
> -++.SH "SEE ALSO"
> -++.BR top (1), pgrep (1), pstree (1),  proc (5).
> -+
> -+-STANDARDS
> -++.SH STANDARDS
> -+ This ps conforms to version 2 of the Single Unix Specification.
> -+
> -+-AUTHOR
> -++.SH AUTHOR
> -+ ps was originally written by Branko Lankester<lankeste@fwi.uva.nl>. Michael
> -+ K. Johnson<johnsonm@redhat.com>  re-wrote it significantly to use the proc
> -+ filesystem, changing a few things in the process. Michael Shields
> -+@@ -541,4 +602,4 @@
> -+<acahalan@cs.uml.edu>  rewrote ps for full Unix98 and BSD support, along with
> -+ some ugly hacks for obsolete and foreign syntax.
> -+
> -+-Please send bug reports to<acahalan@cs.uml.edu>
> -++Please send bug reports to<procps-feedback@lists.sf.net>.
> ---- procps-3.1.15.orig/debian/patches/20_top_manpage.dpatch
> -+++ procps-3.1.15/debian/patches/20_top_manpage.dpatch
> -@@ -0,0 +1,384 @@
> -+#! /bin/sh -e
> -+## 20_top_manpage by Randy Hron
> -+##
> -+## All lines beginning with `## DP:' are a description of the patch.
> -+## DP: Fix bold in top manual page
> -+
> -+[ -f debian/patches/00patch-opts ]&&  . debian/patches/00patch-opts
> -+patch_opts="${patch_opts:--f --no-backup-if-mismatch}"
> -+
> -+if [ $# -ne 1 ]; then
> -+    echo>&2 "`basename $0`: script expects -patch|-unpatch as argument"
> -+    exit 1
> -+fi
> -+case "$1" in
> -+       -patch) patch $patch_opts -p1<  $0;;
> -+       -unpatch) patch $patch_opts -p1 -R<  $0;;
> -+        *)
> -+                echo>&2 "`basename $0`: script expects -patch|-unpatch as argum
> -+ent"
> -+                exit 1;;
> -+esac
> -+
> -+exit 0
> -+@DPATCH@
> -+--- procps/top.1.orig	2003-12-24 15:51:35.000000000 -0500
> -++++ procps/top.1	2003-12-24 18:57:14.564156176 -0500
> -+@@ -52,7 +52,7 @@
> -+ .ds CF configuration file
> -+ .ds CI interactive command
> -+ .ds CO command\-line option
> -+-.ds CW \'current' window
> -++.ds CW 'current' window
> -+ .ds FM full\-screen mode
> -+ .ds MP \fBphysical\fR memory
> -+ .ds MS \fBshared\fR memory
> -+@@ -370,7 +370,7 @@
> -+ The task's share of the elapsed \*(PU time since the last screen update, expressed
> -+ as a percentage of total \*(PU time.
> -+ In a true SMP environment, if 'Irix mode' is \*F, \*(Me will operate in
> -+-\'Solaris mode' where a task's \*(Pu usage will be divided by the total
> -++'Solaris mode' where a task's \*(Pu usage will be divided by the total
> -+ number of \*(PUs.
> -+ You toggle 'Irix/Solaris' modes with the 'I' \*(CI.
> -+
> -+@@ -498,7 +498,7 @@
> -+ .\" ......................................................................
> -+ .SS 2b. SELECTING and ORDERING Columns
> -+ .\" ----------------------------------------------------------------------
> -+-After pressing the \*(CIs 'f' (Fields select) or \'o' (Order fields) you will
> -++After pressing the \*(CIs 'f' (Fields select) or 'o' (Order fields) you will
> -+ be shown a screen containing the current \fBfields string\fR followed by names
> -+ and descriptions for all fields.
> -+
> -+@@ -574,7 +574,7 @@
> -+ see current status,
> -+
> -+ .TP 7
> -+-\ \ \'\fB?\fR\' or \'\fBh\fR\' :\fIHelp\fR
> -++\ \ \<\fB?\fR\>  or \<\fBh\fR\>  :\fIHelp\fR
> -+ There are two help levels available.
> -+ The first will provide a reminder of all the basic \*(CIs.
> -+ If \*(Me is\fI secured\fR, that screen will be abbreviated.
> -+@@ -583,7 +583,7 @@
> -+ applicable to \*(AM.
> -+
> -+ .TP 7
> -+-\ \ \'\fB=\fR\' :\fIExit_Task_Limits\fR
> -++\ \ \<\fB=\fR\>  :\fIExit_Task_Limits\fR
> -+ Removes restrictions on which tasks are shown.
> -+ This command will reverse any 'i' (idle tasks) and 'n' (max tasks) commands
> -+ that might be active.
> -+@@ -593,13 +593,13 @@
> -+ When operating in \*(AM this command has a slightly broader meaning.
> -+
> -+ .TP 7
> -+-\ \ \'\fBA\fR\' :\fIAlternate_Display_Mode_toggle\fR
> -++\ \ \<\fBA\fR\>  :\fIAlternate_Display_Mode_toggle\fR
> -+ This command will switch between \*(FM and \*(AM.
> -+-\*(XT 4. ALTERNATE\-DISPLAY Mode and the 'G' \*(CI for insight into
> -+-\*(CWs and field groups.
> -++\*(XT 4. ALTERNATE\-DISPLAY Mode and the 'G' \*(CI for insight
> -++into \*(CWs and field groups.
> -+
> -+ .TP 7
> -+-\ \ \'\fBB\fR\' :\fIBold_Disable/Enable_toggle\fR
> -++\ \ \<\fBB\fR\>  :\fIBold_Disable/Enable_toggle\fR
> -+ This command will influence use of the 'bold' terminfo capability and
> -+ alters\fB both\fR the \*(SA and \*(TA for the \*(CW.
> -+ While it is intended primarily for use with dumb terminals, it can be
> -+@@ -611,7 +611,7 @@
> -+ there will be no visual confirmation that they are even on.
> -+
> -+ .TP 7
> -+-*\ \'\fBd\fR\' or \'\fBs\fR\' :\fIChange_Delay_Time_interval\fR
> -++*\ \<\fBd\fR\>  or \<\fBs\fR\>  :\fIChange_Delay_Time_interval\fR
> -+ You will be prompted to enter the delay time, in seconds, between
> -+ display updates.
> -+
> -+@@ -625,32 +625,32 @@
> -+ and view the system summary on the second line.
> -+
> -+ .TP 7
> -+-\ \ \'\fBG\fR\' :\fIChoose_Another_Window/Field_Group\fR
> -++\ \ \<\fBG\fR\>  :\fIChoose_Another_Window/Field_Group\fR
> -+ You will be prompted to enter a number between 1 and 4 designating the
> -+ window/field group which should be made the \*(CW.
> -+ You will soon grow comfortable with these 4 windows, especially after
> -+ experimenting with \*(AM.
> -+
> -+ .TP 7
> -+-\ \ \'\fBI\fR\' :\fIIrix/Solaris_Mode_toggle\fR
> -++\ \ \<\fBI\fR\>  :\fIIrix/Solaris_Mode_toggle\fR
> -+ When operating in 'Solaris mode' ('I' toggled \*F), a task's \*(Pu usage
> -+ will be divided by the total number of \*(PUs.
> -+ After issuing this command, you'll be informed of the new state of this toggle.
> -+
> -+ .TP 7
> -+-\ \ \'\fBu\fR\' :\fIselect a user\fR
> -++\ \ \<\fBu\fR\>  :\fIselect a user\fR
> -+ You will be prompted for a UID or username. Only processes
> -+ belonging to the selected user will be displayed. This option
> -+ matches on the effective UID.
> -+
> -+ .TP 7
> -+-\ \ \'\fBU\fR\' :\fIselect a user\fR
> -++\ \ \<\fBU\fR\>  :\fIselect a user\fR
> -+ You will be prompted for a UID or username. Only processes
> -+ belonging to the selected user will be displayed. This option
> -+ matches on the real, effective, saved, and filesystem UID.
> -+
> -+ .TP 7
> -+-*\ \'\fBk\fR\' :\fIKill_a_task\fR
> -++*\ \<\fBk\fR\>  :\fIKill_a_task\fR
> -+ You will be prompted for a PID and then the signal to send.
> -+ The default signal, as reflected in the prompt, is SIGTERM.
> -+ However, you can send any signal, via number or name.
> -+@@ -661,24 +661,24 @@
> -+    2) at the signal prompt, type 0
> -+
> -+ .TP 7
> -+-\ \ \'\fBq\fR\' :\fIQuit\fR
> -++\ \ \<\fBq\fR\>  :\fIQuit\fR
> -+
> -+ .TP 7
> -+-*\ \'\fBr\fR\' :\fIRenice_a_Task\fR
> -++*\ \<\fBr\fR\>  :\fIRenice_a_Task\fR
> -+ You will be prompted for a PID and then the value to nice it to.
> -+ Entering a positive value will cause a process to lose priority.
> -+ Conversely, a negative value will cause a process to be viewed more
> -+ favorably by the kernel.
> -+
> -+ .TP 7
> -+-\ \ \'\fBW\fR\' :\fIWrite_the_Configuration_File\fR
> -++\ \ \<\fBW\fR\>  :\fIWrite_the_Configuration_File\fR
> -+ This will save all of your options and toggles plus the current
> -+ display mode and delay time.
> -+ By issuing this command just before quitting \*(Me, you will be able restart
> -+ later in exactly that same state.
> -+
> -+ .TP 7
> -+-\ \ \'\fBZ\fR\' :\fIChange_Color_Mapping
> -++\ \ \<\fBZ\fR\>  :\fIChange_Color_Mapping
> -+ This key will take you to a separate screen where you can change the
> -+ colors for the \*(CW, or for all windows.
> -+ For details regarding this \*(CI \*(Xt 3d. COLOR Mapping.
> -+@@ -694,25 +694,25 @@
> -+ of messages and prompts.
> -+
> -+ These commands always impact just the \*(CW/field group.
> -+-\*(XT 4. ALTERNATE\-DISPLAY Mode and the 'G' \*(CI for insight into
> -+-\*(CWs and field groups.
> -++\*(XT 4. ALTERNATE\-DISPLAY Mode and the 'G' \*(CI for insight
> -++into \*(CWs and field groups.
> -+
> -+ .TP 7
> -+-\ \ \'\fBl\fR\' :\fIToggle_Load_Average/Uptime\fR \*(EM On/Off
> -++\ \ \<\fBl\fR\>  :\fIToggle_Load_Average/Uptime\fR \*(EM On/Off
> -+ This is also the line containing the program name (possibly an alias) when
> -+ operating in \*(FM or the \*(CW name when operating in \*(AM.
> -+
> -+ .TP 7
> -+-\ \ \'\fBm\fR\' :\fIToggle_Memory/Swap_Usage\fR \*(EM On/Off
> -++\ \ \<\fBm\fR\>  :\fIToggle_Memory/Swap_Usage\fR \*(EM On/Off
> -+ This command affects two \*(SA lines.
> -+
> -+ .TP 7
> -+-\ \ \'\fBt\fR\' :\fIToggle_Task/Cpu_States\fR \*(EM On/Off
> -++\ \ \<\fBt\fR\>  :\fIToggle_Task/Cpu_States\fR \*(EM On/Off
> -+ This command affects from 2 to many \*(SA lines, depending on the state
> -+ of the '1' toggle and whether or not \*(Me is running under true SMP.
> -+
> -+ .TP 7
> -+-\ \ \'\fB1\fR\' :\fIToggle_Single/Separate_Cpu_States\fR \*(EM On/Off
> -++\ \ \<\fB1\fR\>  :\fIToggle_Single/Separate_Cpu_States\fR \*(EM On/Off
> -+ This command affects how the 't' command's Cpu States portion is shown.
> -+ Although this toggle exists primarily to serve massively-parallel SMP machines,
> -+ it is not restricted to solely SMP environments.
> -+@@ -744,12 +744,12 @@
> -+ .in
> -+
> -+ .TP 7
> -+-\ \ \'\fBb\fR\' :\fIBold/Reverse_toggle\fR
> -++\ \ \<\fBb\fR\>  :\fIBold/Reverse_toggle\fR
> -+ This command will impact how the 'x' and 'y' toggles are displayed.
> -+ Further, it will only be available when at least one of those toggles is \*O.
> -+
> -+ .TP 7
> -+-\ \ \'\fBx\fR\' :\fIColumn_Highlight_toggle\fR
> -++\ \ \<\fBx\fR\>  :\fIColumn_Highlight_toggle\fR
> -+ Changes highlighting for the current sort field.
> -+ You probably don't need a constant visual reminder of the sort field and
> -+ \*(Me hopes that you always run with 'column highlight' \*F, due to the cost
> -+@@ -759,7 +759,7 @@
> -+ visual reminder.
> -+
> -+ .TP 7
> -+-\ \ \'\fBy\fR\' :\fIRow_Highlight_toggle\fR
> -++\ \ \<\fBy\fR\>  :\fIRow_Highlight_toggle\fR
> -+ Changes highlighting for "running" tasks.
> -+ For additional insight into this task state, \*(Xt 2a. DESCRIPTIONS of Fields,
> -+ Process Status.
> -+@@ -768,7 +768,7 @@
> -+ The only costs will be a few additional tty escape sequences.
> -+
> -+ .TP 7
> -+-\ \ \'\fBz\fR\' :\fIColor/Monochrome_toggle\fR
> -++\ \ \<\fBz\fR\>  :\fIColor/Monochrome_toggle\fR
> -+ Switches the \*(CW between your last used color scheme and the older form
> -+ of black-on-white or white-on-black.
> -+ This command will alter\fB both\fR the \*(SA and \*(TA but does not affect the
> -+@@ -779,20 +779,20 @@
> -+ .B CONTENT\fR of \*(TW
> -+ .PD 0
> -+ .TP 7
> -+-\ \ \'\fBc\fR\' :\fICommand_Line/Program_Name_toggle\fR
> -++\ \ \<\fBc\fR\>  :\fICommand_Line/Program_Name_toggle\fR
> -+ This command will be honored whether or not the 'Command' column
> -+ is currently visible.
> -+ Later, should that field come into view, the change you applied will be seen.
> -+
> -+ .TP 7
> -+-\ \ \'\fBf\fR\' and \'\fBo\fR\' :\fIFields_select\fR or \fIOrder_fields\fR
> -++\ \ \<\fBf\fR\>  and \<\fBo\fR\>  :\fIFields_select\fR or \fIOrder_fields\fR
> -+ These keys display separate screens where you can change which
> -+ fields are displayed and their order.
> -+ For additional information on these \*(CIs
> -+ \*(Xt 2b. SELECTING and ORDERING Columns.
> -+
> -+ .TP 7
> -+-\ \ \'\fBS\fR\' :\fICumulative_Time_Mode_toggle\fR
> -++\ \ \<\fBS\fR\>  :\fICumulative_Time_Mode_toggle\fR
> -+ When 'Cumulative mode' is \*O, each process is listed with the \*(Pu
> -+ time that it and its dead children have used.
> -+
> -+@@ -808,7 +808,7 @@
> -+ effect, simply ask for help and view the window summary on the second line.
> -+
> -+ .TP 7
> -+-\ \ \'\fBu\fR\' :\fIShow_Specific_User_Only\fR
> -++\ \ \<\fBu\fR\>  :\fIShow_Specific_User_Only\fR
> -+ You will be prompted to enter the name of the user to display.
> -+ Thereafter, in that \*(TW only matching User ID's will be shown, or possibly
> -+ no tasks will be shown.
> -+@@ -821,7 +821,7 @@
> -+ .B SIZE\fR of \*(TW
> -+ .PD 0
> -+ .TP 7
> -+-\ \ \'\fBi\fR\' :\fIIdle_Processes_toggle\fR
> -++\ \ \<\fBi\fR\>  :\fIIdle_Processes_toggle\fR
> -+ Displays all tasks or just active tasks.
> -+ When this toggle is \*F, idled or zombied processes will not be displayed.
> -+
> -+@@ -829,7 +829,7 @@
> -+ affect the window's size, as all prior \*(TDs will have already been painted.
> -+
> -+ .TP 7
> -+-\ \ \'\fBn\fR\' or \'#\' :\fISet_Maximum_Tasks\fR
> -++\ \ \<\fBn\fR\>  or \<\fB#\fR\>  :\fISet_Maximum_Tasks\fR
> -+ You will be prompted to enter the number of tasks to display.
> -+ The lessor of your number and available screen rows will be used.
> -+
> -+@@ -868,12 +868,12 @@
> -+ .in
> -+
> -+ .TP 7
> -+-\ \ \'\fB<\fR\' :\fIMove_Sort_Field_Left\fR
> -++\ \ \<\fB<\fR\>  :\fIMove_Sort_Field_Left\fR
> -+ Moves the sort column to the left unless the current sort field is
> -+ the first field being displayed.
> -+
> -+ .TP 7
> -+-\ \ \'\fB>\fR\' :\fIMove_Sort_Field_Right\fR
> -++\ \ \<\fB>\fR\>  :\fIMove_Sort_Field_Right\fR
> -+ Moves the sort column to the right unless the current sort field is
> -+ the last field being displayed.
> -+
> -+@@ -884,7 +884,7 @@
> -+ .in
> -+
> -+ .TP 7
> -+-\ \ \'\fBF\fR\' or \'\fBO\fR\' :\fISelect_Sort_Field\fR
> -++\ \ \<\fBF\fR\>  or \<\fBO\fR\>  :\fISelect_Sort_Field\fR
> -+ These keys display a separate screen where you can change which field
> -+ is used as the sort column.
> -+
> -+@@ -897,7 +897,7 @@
> -+ when running \*(Me with column highlighting turned \*F.
> -+
> -+ .TP 7
> -+-\ \ \'\fBR\fR\' :\fIReverse/Normal_Sort_Field_toggle\fR
> -++\ \ \<\fBR\fR\>  :\fIReverse/Normal_Sort_Field_toggle\fR
> -+ Using this \*(CI you can alternate between high-to-low and low-to-high sorts.
> -+
> -+ .PP
> -+@@ -974,7 +974,7 @@
> -+ .\" ......................................................................
> -+ .SS 4b. COMMANDS for Windows
> -+ .TP 7
> -+-\ \ \'\fB-\fR\' and \'\fB_\fR\' :\fIShow/Hide_Window(s)_toggles\fR
> -++\ \ \<\fB-\fR\>  and \<\fB_\fR\>  :\fIShow/Hide_Window(s)_toggles\fR
> -+ The '-' key turns the \*(CW's \*(TD \*O and \*F.
> -+ When \*O, that \*(TA will show a minimum of the columns header you've
> -+ established with the 'f' and 'o' commands.
> -+@@ -988,7 +988,7 @@
> -+ as the only display element.
> -+
> -+ .TP 7
> -+-*\ \'\fB=\fR\' and \'\fB+\fR\' :\fIEqualize_(re-balance)_Window(s)\fR
> -++*\ \<\fB=\fR\>  and \<\fB+\fR\>  :\fIEqualize_(re-balance)_Window(s)\fR
> -+ The '=' key forces the \*(CW's \*(TD to be visible.
> -+ It also reverses any 'i' (idle tasks) and 'n' (max tasks) commands that might
> -+ be active.
> -+@@ -999,7 +999,7 @@
> -+ except for the 'i' (idle tasks) and 'n' (max tasks) commands.
> -+
> -+ .TP 7
> -+-*\ \'\fBA\fR\' :\fIAlternate_Display_Mode_toggle\fR
> -++*\ \<\fBA\fR\>  :\fIAlternate_Display_Mode_toggle\fR
> -+ This command will switch between \*(FM and \*(AM.
> -+
> -+ The first time you issue this command, all four \*(TDs will be shown.
> -+@@ -1007,7 +1007,7 @@
> -+ chosen to make visible.
> -+
> -+ .TP 7
> -+-*\ \'\fBa\fR\' and \'\fBw\fR\' :\fINext_Window_Forward/Backward\fR
> -++*\ \<\fBa\fR\>  and \<\fBw\fR\>  :\fINext_Window_Forward/Backward\fR
> -+ This will change the \*(CW, which in turn changes the window to which
> -+ commands are directed.
> -+ These keys act in a circular fashion so you can reach any desired \*(CW
> -+@@ -1018,7 +1018,7 @@
> -+ the \*(TD is \*F and many commands will be restricted.
> -+
> -+ .TP 7
> -+-*\ \'\fBG\fR\' :\fIChoose_Another_Window/Field_Group\fR
> -++*\ \<\fBG\fR\>  :\fIChoose_Another_Window/Field_Group\fR
> -+ You will be prompted to enter a number between 1 and 4 designating the
> -+ window/field group which should be made the \*(CW.
> -+
> -+@@ -1027,15 +1027,15 @@
> -+ commands.
> -+
> -+ .TP 7
> -+-\ \ \'\fBg\fR\' :\fIChange_Window/Field_Group_Name\fR
> -++\ \ \<\fBg\fR\>  :\fIChange_Window/Field_Group_Name\fR
> -+ You will be prompted for a new name to be applied to the \*(CW.
> -+ It does not require that the window name be visible
> -+ (the 'l' toggle to be \*O).
> -+
> -+ .IP "*" 3
> -+ The \*(CIs shown with an \*(AS have use beyond \*(AM.
> -+-    \'=', 'A', 'G'  are always available
> -+-    \'a', 'w'       act the same when color mapping
> -++    '=', 'A', 'G'  are always available
> -++    'a', 'w'       act the same when color mapping
> -+
> -+
> -+ .\" ----------------------------------------------------------------------
> -+
> -+
> -+
> -+
> -+
> -+
> ---- procps-3.1.15.orig/debian/patches/10_sysctl_quiet.dpatch
> -+++ procps-3.1.15/debian/patches/10_sysctl_quiet.dpatch
> -@@ -0,0 +1,119 @@
> -+#! /bin/sh -e
> -+## 10_sysctl_quiet by Simon Horman
> -+##
> -+## All lines beginning with `## DP:' are a description of the patch.
> -+## DP: Adds quiet -q flag to sysctl
> -+
> -+[ -f debian/patches/00patch-opts ]&&  . debian/patches/00patch-opts
> -+patch_opts="${patch_opts:--f --no-backup-if-mismatch}"
> -+
> -+if [ $# -ne 1 ]; then
> -+    echo>&2 "`basename $0`: script expects -patch|-unpatch as argument"
> -+    exit 1
> -+fi
> -+case "$1" in
> -+       -patch) patch $patch_opts -p1<  $0;;
> -+       -unpatch) patch $patch_opts -p1 -R<  $0;;
> -+        *)
> -+                echo>&2 "`basename $0`: script expects -patch|-unpatch as argum
> -+ent"
> -+                exit 1;;
> -+esac
> -+
> -+exit 0
> -+@DPATCH@
> -+diff -ru procps-3.1.8/sysctl.8 procps-3.1.8.new/sysctl.8
> -+--- procps-3.1.8/sysctl.8	2002-12-12 07:51:32.000000000 +0900
> -++++ procps-3.1.8.new/sysctl.8	2003-04-15 20:30:46.000000000 +0900
> -+@@ -12,9 +12,9 @@
> -+ .SH SYNOPSIS
> -+ .B "sysctl [-n] [-e] variable ..."
> -+ .br
> -+-.B "sysctl [-n] [-e] -w variable=value ..."
> -++.B "sysctl [-n] [-e] [-q] -w variable=value ..."
> -+ .br
> -+-.B "sysctl [-n] [-e] -p<filename>"
> -++.B "sysctl [-n] [-e] [-q] -p<filename>"
> -+ .br
> -+ .B "sysctl [-n] [-e] -a"
> -+ .br
> -+@@ -45,6 +45,9 @@
> -+ .B "-e"
> -+ Use this option to ignore errors about unknown keys.
> -+ .TP
> -++.B "-q"
> -++Use this option to not display the values set to stdout.
> -++.TP
> -+ .B "-w"
> -+ Use this option when you want to change a sysctl setting.
> -+ .TP
> -+diff -ru procps-3.1.8/sysctl.c procps-3.1.8.new/sysctl.c
> -+--- procps-3.1.8/sysctl.c	2002-12-29 08:26:50.000000000 +0900
> -++++ procps-3.1.8.new/sysctl.c	2003-04-15 20:35:08.000000000 +0900
> -+@@ -15,6 +15,8 @@
> -+  * Changelog:
> -+  *            v1.01:
> -+  *                   - added -p<preload>  to preload values from a file
> -++ *            Horms:
> -++ *                   - added -q to be quiet when modifying values
> -+  *
> -+  * Changes by Albert Cahalan, 2002.
> -+  */
> -+@@ -46,6 +48,7 @@
> -+ static bool PrintName;
> -+ static bool PrintNewline;
> -+ static bool IgnoreError;
> -++static bool Quiet;
> -+
> -+ /* error messages */
> -+ static const char ERR_UNKNOWN_PARAMETER[] = "error: Unknown parameter '%s'\n";
> -+@@ -80,9 +83,9 @@
> -+  */
> -+ static int Usage(const char *restrict const name) {
> -+    printf("usage:  %s [-n] [-e] variable ... \n"
> -+-          "        %s [-n] [-e] -w variable=value ... \n"
> -++          "        %s [-n] [-e] [-q] -w variable=value ... \n"
> -+           "        %s [-n] [-e] -a \n"
> -+-          "        %s [-n] [-e] -p<file>    (default /etc/sysctl.conf) \n"
> -++          "        %s [-n] [-e] [-q] -p<file>    (default /etc/sysctl.conf) \n"
> -+           "        %s [-n] [-e] -A\n", name, name, name, name, name);
> -+    return -1;
> -+ }
> -+@@ -290,13 +293,14 @@
> -+       fprintf(fp, "%s\n", value);
> -+       fclose(fp);
> -+
> -+-      if (PrintName) {
> -++      if(Quiet) {
> -++	 ;
> -++      } else if (PrintName) {
> -+          fprintf(stdout, "%s = %s\n", outname, value);
> -++      } else if (PrintNewline) {
> -++         fprintf(stdout, "%s\n", value);
> -+       } else {
> -+-         if (PrintNewline)
> -+-            fprintf(stdout, "%s\n", value);
> -+-         else
> -+-            fprintf(stdout, "%s", value);
> -++         fprintf(stdout, "%s", value);
> -+       }
> -+    }
> -+
> -+@@ -377,6 +381,7 @@
> -+    PrintName = true;
> -+    PrintNewline = true;
> -+    IgnoreError = false;
> -++   Quiet = false;
> -+
> -+    if (argc<  2) {
> -+        return Usage(me);
> -+@@ -419,6 +424,9 @@
> -+                  preloadfile = *argv;
> -+               }
> -+               return Preload(preloadfile);
> -++	 case 'q':
> -++	      Quiet = true;
> -++	   break;
> -+          case 'a': /* string and integer values (for Linux, all of them) */
> -+          case 'A': /* the above, including "opaques" (would be unprintable) */
> -+          case 'X': /* the above, with opaques completly printed in hex */
> ---- procps-3.1.15.orig/debian/patches/00list
> -+++ procps-3.1.15/debian/patches/00list
> -@@ -0,0 +1,5 @@
> -+10_sysctl_quiet
> -+20_procps-fix+attr
> -+20_ps.1
> -+20_top_manpage
> -+30_remove_test_dir
> ---- procps-3.1.15.orig/debian/patches/30_remove_test_dir.dpatch
> -+++ procps-3.1.15/debian/patches/30_remove_test_dir.dpatch
> -@@ -0,0 +1,2911 @@
> -+#! /bin/sh -e
> -+## 30_remove_test-dir by Craif Small
> -+##
> -+## All lines beginning with `## DP:' are a description of the patch.
> -+## DP: Removing test directory
> -+[ -f debian/patches/00patch-opts ]&&  . debian/patches/00patch-opts
> -+patch_opts="${patch_opts:--f --no-backup-if-mismatch}"
> -+
> -+if [ $# -ne 1 ]; then
> -+    echo>&2 "`basename $0`: script expects -patch|-unpatch as argument"
> -+    exit 1
> -+fi
> -+case "$1" in
> -+       -patch) patch $patch_opts -p1<  $0;;
> -+       -unpatch) patch $patch_opts -p1 -R<  $0;;
> -+        *)
> -+                echo>&2 "`basename $0`: script expects -patch|-unpatch as argum
> -+ent"
> -+                exit 1;;
> -+esac
> -+
> -+exit 0
> -+@DPATCH@
> -+diff -ruN procps-3.1.15.old/test/clone-army.c procps-3.1.15/test/clone-army.c
> -+--- procps-3.1.15.old/test/clone-army.c	2003-10-05 04:46:34.000000000 +1000
> -++++ procps-3.1.15/test/clone-army.c	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,127 +0,0 @@
> -+-// ps fTo sess,pgid,pid,tty,ppid,tpgid,args -C a.out
> -+-
> -+-#include<sys/types.h>
> -+-#include<unistd.h>
> -+-#include<signal.h>
> -+-//#include<sys/stat.h>
> -+-//#include<fcntl.h>
> -+-//#include<stdlib.h>
> -+-#include<stdio.h>
> -+-#include<sched.h>
> -+-
> -+-#if 0
> -+-#define CLONE_VM             0x00000100 // set if VM shared between processes
> -+-#define CLONE_FS             0x00000200 // set if fs info shared between processes
> -+-#define CLONE_FILES          0x00000400 // set if open files shared between processes
> -+-#define CLONE_SIGHAND        0x00000800 // set if signal handlers and blocked signals shared
> -+-#define CLONE_IDLETASK       0x00001000 // set if new pid should be 0 (kernel only)*/
> -+-#define CLONE_PTRACE         0x00002000 // set if we want to let tracing continue on the child too
> -+-#define CLONE_VFORK          0x00004000 // set if the parent wants the child to wake it up on mm_release
> -+-#define CLONE_PARENT         0x00008000 // set if we want to have the same parent as the cloner
> -+-#define CLONE_THREAD         0x00010000 // Same thread group?
> -+-#define CLONE_NEWNS          0x00020000 // New namespace group?
> -+-#define CLONE_SYSVSEM        0x00040000 // share system V SEM_UNDO semantics
> -+-#define CLONE_SETTLS         0x00080000 // create a new TLS for the child
> -+-#define CLONE_PARENT_SETTID  0x00100000 // set the TID in the parent
> -+-#define CLONE_CHILD_CLEARTID 0x00200000 // clear the TID in the child
> -+-#define CLONE_DETACHED       0x00400000 // parent wants no child-exit signal
> -+-#define CLONE_UNTRACED       0x00800000 // set if the tracing process can't force CLONE_PTRACE on this clone
> -+-#define CLONE_CHILD_SETTID   0x01000000 // set the TID in the child
> -+-#define CLONE_STOPPED        0x02000000 // Start in stopped state
> -+-#endif
> -+-
> -+-#ifndef CLONE_THREAD
> -+-#define CLONE_THREAD         0x00010000
> -+-#endif
> -+-#ifndef CLONE_DETACHED
> -+-#define CLONE_DETACHED       0x00400000
> -+-#endif
> -+-
> -+-
> -+-// interesting: VM FS FILES SIGHAND PARENT THREAD SYSVSEM DETACHED
> -+-
> -+-//#define FLAGS (CLONE_PARENT|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_VM|CLONE_THREAD|CLONE_SYSVSEM)
> -+-#define FLAGS (CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_VM|CLONE_THREAD|CLONE_DETACHED)
> -+-
> -+-// Don't cause rejection: FS FILES SYSVSEM PARENT
> -+-// Do cause rejection:
> -+-
> -+-static void printflags(int pass, unsigned flags){
> -+-  printf(
> -+-    "%s %08x %s %s %s %s\n",
> -+-    pass?"pass":"FAIL",
> -+-    flags,
> -+-    (flags&CLONE_THREAD) ? "THREAD" : "______",
> -+-    (flags&CLONE_DETACHED) ? "DETACHED" : "________",
> -+-    (flags&CLONE_SIGHAND) ? "SIGHAND" : "_______",
> -+-    (flags&CLONE_SIGHAND) ? "VM" : "__"
> -+-  );
> -+-}
> -+-
> -+-static unsigned genflags(unsigned flags){
> -+-  return (
> -+-    (flags&0x08) ? 0 : CLONE_THREAD
> -+-    )|(
> -+-    (flags&0x04) ? 0 : CLONE_DETACHED
> -+-    )|(
> -+-    (flags&0x02) ? 0 : CLONE_SIGHAND
> -+-    )|(
> -+-    (flags&0x01) ? 0 : CLONE_VM
> -+-  );
> -+-}
> -+-
> -+-//static pid_t one;
> -+-
> -+-//static void die(int signo){
> -+-//  (void)signo;
> -+-//  _exit(0);
> -+-//}
> -+-
> -+-//static void sigchld_handler(int signo){
> -+-//  (void)signo;
> -+-//  kill(one,SIGHUP);          // kill parent
> -+-//}
> -+-
> -+-static int clone_fn(void *vp){
> -+-  for(;;) pause();
> -+-}
> -+-
> -+-static long clone_stack_data[2048];
> -+-#ifdef __hppa__
> -+-static long *clone_stack =&clone_stack_data[0];
> -+-#else
> -+-static long *clone_stack =&clone_stack_data[2048];
> -+-#endif
> -+-
> -+-int main(int argc, char *argv[]){
> -+-  unsigned u;
> -+-  pid_t minime;
> -+-  (void)argc;
> -+-  (void)argv;
> -+-
> -+-//  one = getpid();
> -+-//  signal(SIGHUP,die);
> -+-//  if(fork()) hang();    // parent later killed as readyness signal
> -+-
> -+-  u = 16;
> -+-
> -+-  while(u--){
> -+-    unsigned f = genflags(u);
> -+-    minime = clone(clone_fn, clone_stack, f, "arg");
> -+-
> -+-    printflags(minime!=-1, f);
> -+-//    if(minime==-1){
> -+-//      perror("no clone");
> -+-//      _exit(8);
> -+-//    }
> -+-
> -+-//    printf("%d begat %d\n",getpid(),minime);
> -+-  }
> -+-
> -+-
> -+-//  kill(one,SIGHUP); // let the shell know we're ready
> -+-
> -+-//  clone_fn();
> -+-
> -+-  return 0;
> -+-}
> -+diff -ruN procps-3.1.15.old/test/clone-once.c procps-3.1.15/test/clone-once.c
> -+--- procps-3.1.15.old/test/clone-once.c	2003-10-20 10:56:12.000000000 +1000
> -++++ procps-3.1.15/test/clone-once.c	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,97 +0,0 @@
> -+-#include<sys/types.h>
> -+-#include<unistd.h>
> -+-#include<signal.h>
> -+-//#include<sys/stat.h>
> -+-//#include<fcntl.h>
> -+-//#include<stdlib.h>
> -+-#include<stdio.h>
> -+-#include<sched.h>
> -+-
> -+-#if 0
> -+-#define CLONE_VM             0x00000100 // set if VM shared between processes
> -+-#define CLONE_FS             0x00000200 // set if fs info shared between processes
> -+-#define CLONE_FILES          0x00000400 // set if open files shared between processes
> -+-#define CLONE_SIGHAND        0x00000800 // set if signal handlers and blocked signals shared
> -+-#define CLONE_IDLETASK       0x00001000 // set if new pid should be 0 (kernel only)*/
> -+-#define CLONE_PTRACE         0x00002000 // set if we want to let tracing continue on the child too
> -+-#define CLONE_VFORK          0x00004000 // set if the parent wants the child to wake it up on mm_release
> -+-#define CLONE_PARENT         0x00008000 // set if we want to have the same parent as the cloner
> -+-#define CLONE_THREAD         0x00010000 // Same thread group?
> -+-#define CLONE_NEWNS          0x00020000 // New namespace group?
> -+-#define CLONE_SYSVSEM        0x00040000 // share system V SEM_UNDO semantics
> -+-#define CLONE_SETTLS         0x00080000 // create a new TLS for the child
> -+-#define CLONE_PARENT_SETTID  0x00100000 // set the TID in the parent
> -+-#define CLONE_CHILD_CLEARTID 0x00200000 // clear the TID in the child
> -+-#define CLONE_DETACHED       0x00400000 // parent wants no child-exit signal
> -+-#define CLONE_UNTRACED       0x00800000 // set if the tracing process can't force CLONE_PTRACE on this clone
> -+-#define CLONE_CHILD_SETTID   0x01000000 // set the TID in the child
> -+-#define CLONE_STOPPED        0x02000000 // Start in stopped state
> -+-#endif
> -+-
> -+-#ifndef CLONE_THREAD
> -+-#define CLONE_THREAD         0x00010000
> -+-#endif
> -+-#ifndef CLONE_DETACHED
> -+-#define CLONE_DETACHED       0x00400000
> -+-#endif
> -+-
> -+-//#define FLAGS (CLONE_PARENT|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_VM|CLONE_THREAD|CLONE_SYSVSEM)
> -+-#define FLAGS (CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_VM|CLONE_THREAD|CLONE_DETACHED)
> -+-
> -+-static pid_t one;
> -+-
> -+-static void die(int signo){
> -+-  (void)signo;
> -+-  _exit(0);
> -+-}
> -+-
> -+-//static void sigchld_handler(int signo){
> -+-//  (void)signo;
> -+-//  kill(one,SIGHUP);          // kill parent
> -+-//}
> -+-
> -+-static void hang(void){
> -+-  for(;;) pause();
> -+-}
> -+-
> -+-static int clone_fn(void *vp){
> -+-//  const char msg[] = "I think I'm a clone now!\n";
> -+-  (void)vp;
> -+-//  write(STDOUT_FILENO, msg, sizeof(msg)-1);
> -+-  hang();
> -+-  return 0; // keep gcc happy
> -+-}
> -+-
> -+-static long clone_stack_data[2048];
> -+-#ifdef __hppa__
> -+-static long *clone_stack =&clone_stack_data[0];
> -+-#else
> -+-static long *clone_stack =&clone_stack_data[2048];
> -+-#endif
> -+-
> -+-int main(int argc, char *argv[]){
> -+-  pid_t minime;
> -+-  (void)argc;
> -+-  (void)argv;
> -+-
> -+-  one = getpid();
> -+-  signal(SIGHUP,die);
> -+-  if(fork()) hang();    // parent later killed as readyness signal
> -+-
> -+-
> -+-  minime = clone(clone_fn, clone_stack, FLAGS, "arg");
> -+-
> -+-  if(minime==-1){
> -+-    perror("no clone");
> -+-    kill(one,SIGKILL);
> -+-    _exit(8);
> -+-  }
> -+-
> -+-//  printf("%d begat %d\n",getpid(),minime);
> -+-
> -+-  kill(one,SIGHUP); // let the shell know we're ready
> -+-
> -+-  hang();
> -+-
> -+-  return 0;
> -+-}
> -+diff -ruN procps-3.1.15.old/test/fork-you.c procps-3.1.15/test/fork-you.c
> -+--- procps-3.1.15.old/test/fork-you.c	2003-09-05 14:18:30.000000000 +1000
> -++++ procps-3.1.15/test/fork-you.c	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,27 +0,0 @@
> -+-#include<sys/types.h>
> -+-#include<unistd.h>
> -+-#include<signal.h>
> -+-
> -+-static void die(int signo){
> -+-  (void)signo;
> -+-  _exit(0);
> -+-}
> -+-
> -+-static void hang(void){
> -+-  for(;;) pause();
> -+-}
> -+-
> -+-int main(int argc, char *argv[]){
> -+-  pid_t pid;
> -+-
> -+-  (void)argv;
> -+-
> -+-  pid = getpid();
> -+-  signal(SIGHUP,die);
> -+-  if(fork()) hang();    // parent later killed as readyness signal
> -+-  kill(1,9);            // "kill" unkillable init to touch lib pages
> -+-  while(argc--) if(!fork()) hang();
> -+-  kill(pid,SIGHUP);          // kill parent
> -+-  hang();
> -+-  return 0;
> -+-}
> -+diff -ruN procps-3.1.15.old/test/funny-thing.c procps-3.1.15/test/funny-thing.c
> -+--- procps-3.1.15.old/test/funny-thing.c	2003-09-08 13:55:57.000000000 +1000
> -++++ procps-3.1.15/test/funny-thing.c	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,38 +0,0 @@
> -+-#include<sys/types.h>
> -+-#include<unistd.h>
> -+-#include<signal.h>
> -+-
> -+-static pid_t one;
> -+-
> -+-static void die(int signo){
> -+-  (void)signo;
> -+-  _exit(0);
> -+-}
> -+-
> -+-static void hang(void){
> -+-  for(;;) pause();
> -+-}
> -+-
> -+-int main(int argc, char *argv[]){
> -+-  (void)argc;
> -+-  (void)argv;
> -+-
> -+-  one = getpid();
> -+-  signal(SIGHUP,die);
> -+-  if(fork()) hang();    // parent later killed as readyness signal
> -+-
> -+-  // second one exits, to enable setsid(), and the resulting
> -+-  // zombie will be reaped by init after 1st process killed
> -+-  if(!fork()) _exit(0);
> -+-
> -+-  if(setsid()==-1){
> -+-    kill(one,SIGKILL); // hopefully the shell will complain
> -+-    _exit(42); // kind of tough to report errors
> -+-  }
> -+-
> -+-  kill(one,SIGHUP); // let the shell know we're ready
> -+-
> -+-  hang();
> -+-
> -+-  return 0;
> -+-}
> -+diff -ruN procps-3.1.15.old/test/gigabyte.c procps-3.1.15/test/gigabyte.c
> -+--- procps-3.1.15.old/test/gigabyte.c	2003-09-11 10:23:56.000000000 +1000
> -++++ procps-3.1.15/test/gigabyte.c	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,74 +0,0 @@
> -+-#include<sys/types.h>
> -+-#include<unistd.h>
> -+-#include<signal.h>
> -+-//#include<sys/ioctl.h>
> -+-//#include<sys/stat.h>
> -+-//#include<fcntl.h>
> -+-#include<stdio.h>
> -+-#include<sys/mman.h>
> -+-
> -+-static void die(int signo){
> -+-  (void)signo;
> -+-  _exit(0);
> -+-}
> -+-
> -+-static void hang(void){
> -+-  for(;;) pause();
> -+-}
> -+-
> -+-#ifndef MAP_NORESERVE
> -+-#define MAP_NORESERVE 0
> -+-#endif
> -+-
> -+-int main(int argc, char *argv[]){
> -+-  void *vp;
> -+-  pid_t pid;
> -+-  size_t length = 1024*1024*1024;
> -+-  unsigned maps;   // how many mappings to do
> -+-
> -+-  (void)argc;
> -+-  (void)argv;
> -+-
> -+-  if(sizeof(void*)==8){
> -+-    maps = 10;
> -+-    puts("64bit");
> -+-  }else{
> -+-    maps = 1;
> -+-    puts("32bit");
> -+-  }
> -+-  fflush(stdout);
> -+-
> -+-  pid = getpid();
> -+-  signal(SIGHUP,die);
> -+-  if(fork()) hang();    // parent later killed as readyness signal
> -+-
> -+-
> -+-  while(maps){
> -+-    vp = mmap(
> -+-      0,   // start
> -+-      length,
> -+-      PROT_READ|PROT_WRITE,
> -+-      MAP_PRIVATE|MAP_NORESERVE|MAP_ANONYMOUS,
> -+-      0,   // fd
> -+-      0    // offset
> -+-    );
> -+-    if(vp==MAP_FAILED){
> -+-      // try a smaller size; maybe fragmentation stopped us
> -+-      length /= 2;
> -+-      maps *= 2;
> -+-    }else{
> -+-      maps--;
> -+-    }
> -+-    if(maps>200 || length<2*1024*1024){
> -+-      kill(pid,SIGKILL); // hopefully the shell will complain
> -+-      _exit(88);
> -+-    }
> -+-  }
> -+-
> -+-  close(0);
> -+-  close(1);
> -+-  close(2);
> -+-  kill(pid,SIGHUP);          // kill parent
> -+-  hang();
> -+-  return 0;
> -+-}
> -+diff -ruN procps-3.1.15.old/test/got-no-tty.c procps-3.1.15/test/got-no-tty.c
> -+--- procps-3.1.15.old/test/got-no-tty.c	2003-09-05 14:17:57.000000000 +1000
> -++++ procps-3.1.15/test/got-no-tty.c	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,46 +0,0 @@
> -+-#include<sys/types.h>
> -+-#include<unistd.h>
> -+-#include<signal.h>
> -+-#include<sys/ioctl.h>
> -+-#include<sys/stat.h>
> -+-#include<fcntl.h>
> -+-#include<stdio.h>
> -+-
> -+-static void die(int signo){
> -+-  (void)signo;
> -+-  _exit(0);
> -+-}
> -+-
> -+-static void hang(void){
> -+-  for(;;) pause();
> -+-}
> -+-
> -+-int main(int argc, char *argv[]){
> -+-  int fd;
> -+-  pid_t pid;
> -+-
> -+-  (void)argc;
> -+-  (void)argv;
> -+-
> -+-  pid = getpid();
> -+-  signal(SIGHUP,die);
> -+-  if(fork()) hang();    // parent later killed as readyness signal
> -+-
> -+-
> -+-  // Use the TIOCNOTTY ioctl to detach from the tty
> -+-  // and, supposedly, set the process group ID to zero.
> -+-  // Reality: PGRP unchanged, TPGID becomes -1, TTY lost.
> -+-  fd = open("/dev/tty", O_RDONLY);
> -+-  if(!fd){
> -+-    perror("open /dev/tty");
> -+-    _exit(1);
> -+-  }
> -+-  if(ioctl(fd, TIOCNOTTY)==-1){
> -+-    perror("open /dev/tty");
> -+-    _exit(1);
> -+-  }
> -+-
> -+-  kill(pid,SIGHUP);          // kill parent
> -+-  hang();
> -+-  return 0;
> -+-}
> -+diff -ruN procps-3.1.15.old/test/mini-me.c procps-3.1.15/test/mini-me.c
> -+--- procps-3.1.15.old/test/mini-me.c	2003-09-22 05:50:38.000000000 +1000
> -++++ procps-3.1.15/test/mini-me.c	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,97 +0,0 @@
> -+-// ps fTo sess,pgid,pid,tty,ppid,tpgid,args -C a.out
> -+-
> -+-#include<sys/types.h>
> -+-#include<unistd.h>
> -+-#include<signal.h>
> -+-//#include<sys/stat.h>
> -+-//#include<fcntl.h>
> -+-//#include<stdlib.h>
> -+-#include<stdio.h>
> -+-#include<sched.h>
> -+-
> -+-#if 0
> -+-#define CLONE_VM             0x00000100 // set if VM shared between processes
> -+-#define CLONE_FS             0x00000200 // set if fs info shared between processes
> -+-#define CLONE_FILES          0x00000400 // set if open files shared between processes
> -+-#define CLONE_SIGHAND        0x00000800 // set if signal handlers and blocked signals shared
> -+-#define CLONE_IDLETASK       0x00001000 // set if new pid should be 0 (kernel only)*/
> -+-#define CLONE_PTRACE         0x00002000 // set if we want to let tracing continue on the child too
> -+-#define CLONE_VFORK          0x00004000 // set if the parent wants the child to wake it up on mm_release
> -+-#define CLONE_PARENT         0x00008000 // set if we want to have the same parent as the cloner
> -+-#define CLONE_THREAD         0x00010000 // Same thread group?
> -+-#define CLONE_NEWNS          0x00020000 // New namespace group?
> -+-#define CLONE_SYSVSEM        0x00040000 // share system V SEM_UNDO semantics
> -+-#define CLONE_SETTLS         0x00080000 // create a new TLS for the child
> -+-#define CLONE_PARENT_SETTID  0x00100000 // set the TID in the parent
> -+-#define CLONE_CHILD_CLEARTID 0x00200000 // clear the TID in the child
> -+-#define CLONE_DETACHED       0x00400000 // parent wants no child-exit signal
> -+-#define CLONE_UNTRACED       0x00800000 // set if the tracing process can't force CLONE_PTRACE on this clone
> -+-#define CLONE_CHILD_SETTID   0x01000000 // set the TID in the child
> -+-#define CLONE_STOPPED        0x02000000 // Start in stopped state
> -+-#endif
> -+-
> -+-#ifndef CLONE_THREAD
> -+-#define CLONE_THREAD         0x00010000
> -+-#endif
> -+-#ifndef CLONE_DETACHED
> -+-#define CLONE_DETACHED       0x00400000
> -+-#endif
> -+-
> -+-//#define FLAGS (CLONE_PARENT|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_VM|CLONE_THREAD|CLONE_SYSVSEM)
> -+-#define FLAGS (CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_VM|CLONE_THREAD|CLONE_DETACHED)
> -+-
> -+-//static pid_t one;
> -+-
> -+-//static void die(int signo){
> -+-//  (void)signo;
> -+-//  _exit(0);
> -+-//}
> -+-
> -+-//static void sigchld_handler(int signo){
> -+-//  (void)signo;
> -+-//  kill(one,SIGHUP);          // kill parent
> -+-//}
> -+-
> -+-static void hang(void){
> -+-  for(;;) pause();
> -+-}
> -+-
> -+-static int clone_fn(void *vp){
> -+-  const char msg[] = "I think I'm a clone now!\n";
> -+-  write(STDOUT_FILENO, msg, sizeof(msg)-1);
> -+-  hang();
> -+-}
> -+-
> -+-static long clone_stack_data[2048];
> -+-#ifdef __hppa__
> -+-static long *clone_stack =&clone_stack_data[0];
> -+-#else
> -+-static long *clone_stack =&clone_stack_data[2048];
> -+-#endif
> -+-
> -+-int main(int argc, char *argv[]){
> -+-  pid_t minime;
> -+-  (void)argc;
> -+-  (void)argv;
> -+-
> -+-//  one = getpid();
> -+-//  signal(SIGHUP,die);
> -+-//  if(fork()) hang();    // parent later killed as readyness signal
> -+-
> -+-
> -+-  minime = clone(clone_fn, clone_stack, FLAGS, "arg");
> -+-
> -+-  if(minime==-1){
> -+-//    kill(one,SIGKILL);
> -+-    perror("no clone");
> -+-    _exit(8);
> -+-  }
> -+-
> -+-  printf("%d begat %d\n",getpid(),minime);
> -+-
> -+-//  kill(one,SIGHUP); // let the shell know we're ready
> -+-
> -+-  hang();
> -+-
> -+-  return 0;
> -+-}
> -+diff -ruN procps-3.1.15.old/test/module.mk procps-3.1.15/test/module.mk
> -+--- procps-3.1.15.old/test/module.mk	2003-12-25 02:02:52.000000000 +1100
> -++++ procps-3.1.15/test/module.mk	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,36 +0,0 @@
> -+-# This file gets included into the main Makefile, in the top directory.
> -+-
> -+-#INSTALL += $(bin)test $(man1)test.1 -- some data dump thing maybe?
> -+-
> -+-# directories for cleaning
> -+-DIRS += test/ $(wildcard test/*/*/)
> -+-
> -+-TEST_C    := fork-you the_living_dead got-no-tty sidious sid-breaks-ttys \
> -+-             gigabyte mini-me funny-thing clone-army clone-once
> -+-TESTNAMES := $(addprefix test/,$(TEST_C))
> -+-TESTOBJ   := $(addsuffix .o,$(TESTNAMES))
> -+-TESTSRC   := $(addsuffix .c,$(TESTNAMES)) test/th.c
> -+-
> -+-# files to create
> -+-ALL += $(TESTNAMES)
> -+-
> -+-# files to remove
> -+-TEST_JUNK := stderr stdout header stderr.test stderr.good
> -+-CLEAN += $(addprefix test/,$(TEST_JUNK)) $(TESTNAMES) test/th $(wildcard test/*.tmp)
> -+-
> -+-TEST_X := module.mk script-child onetest runtests
> -+-TARFILES += $(TESTSRC) $(addprefix test/,$(TEST_X)) $(wildcard test/*/*)
> -+-
> -+-$(TESTNAMES): %: %.o
> -+-	$(CC) $(ALL_CFLAGS) $(ALL_LDFLAGS) -o $@ $^
> -+-
> -+-# add proc/$(SONAME) on the end later if needed
> -+-$(TESTOBJ): %.o: %.c
> -+-	$(CC) -c $(ALL_CPPFLAGS) $(ALL_CFLAGS) $<  -o $@
> -+-
> -+-test/th: test/th.o
> -+-	$(CC) $(ALL_CFLAGS) $(ALL_LDFLAGS) -o $@ $^ -lpthread
> -+-
> -+-test/th.o: test/th.c
> -+-	$(CC) -c $(ALL_CPPFLAGS) $(ALL_CFLAGS) $<  -o $@
> -+-
> -+diff -ruN procps-3.1.15.old/test/onetest procps-3.1.15/test/onetest
> -+--- procps-3.1.15.old/test/onetest	2003-12-25 02:02:08.000000000 +1100
> -++++ procps-3.1.15/test/onetest	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,70 +0,0 @@
> -+-#!/bin/bash
> -+-
> -+-unset I_WANT_A_BROKEN_PS
> -+-unset PS_PERSONALITY
> -+-unset CMD_ENV
> -+-unset PS_FORMAT
> -+-
> -+-export LANG=C
> -+-export LC_ALL=C
> -+-export TZ=GMT
> -+-
> -+-TESTNAME=$1
> -+-
> -+-# enlarge as needed in setup to avoid COMMAND becoming COMMA, etc.
> -+-export COLUMNS=111
> -+-
> -+-: ${LD_LIBRARY_PATH:=../proc}
> -+-: ${TESTME:=../ps/ps}
> -+-export LD_LIBRARY_PATH
> -+-export DYLD_LIBRARY_PATH=$LD_LIBRARY_PATH  # if ever a darwin port
> -+-
> -+-
> -+-
> -+-. $TESTNAME/setup
> -+-$TESTME $ARGS>  stdout 2>  stderr
> -+-RESULT=$?
> -+-if [ x$KILLFN == x1 ] ; then
> -+-  killfn
> -+-fi
> -+-
> -+-
> -+-
> -+-if [ x$RESULT != x$GOOD ] ; then
> -+-  echo FAIL $TESTNAME err-$RESULT
> -+-  exit 1
> -+-fi
> -+-
> -+-rm -f stderr.test ; touch stderr.test
> -+-if [ -f stderr ] ; then
> -+-  head -3<  stderr>  stderr.test
> -+-fi
> -+-rm -f stderr.good ; touch stderr.good
> -+-if [ -f $TESTNAME/stderr ] ; then
> -+-  head -3<  $TESTNAME/stderr>  stderr.good
> -+-fi
> -+-diff -Naurd stderr.test stderr.good>>  /dev/null
> -+-if [ x$? != x0 ] ; then
> -+-  echo FAIL $TESTNAME wrong-stderr
> -+-  exit 1
> -+-fi
> -+-
> -+-if [ -f $TESTNAME/header ] ; then
> -+-  (printf ' ' ; head -1 stdout) | tr -s ' '>  header
> -+-  diff -Naurd header $TESTNAME/header>>  /dev/null
> -+-  if [ x$? != x0 ] ; then
> -+-    echo FAIL $TESTNAME wrong-header
> -+-    exit 1
> -+-  fi
> -+-fi
> -+-
> -+-if [ x$EVALFN == x1 ] ; then
> -+-  evalfn
> -+-  if [ x$? != x0 ] ; then
> -+-    echo FAIL $TESTNAME eval-fn
> -+-    exit 1
> -+-  fi
> -+-fi
> -+-
> -+-echo pass $TESTNAME a-ok
> -+-exit 0
> -+diff -ruN procps-3.1.15.old/test/ps/LT-mix/header procps-3.1.15/test/ps/LT-mix/header
> -+--- procps-3.1.15.old/test/ps/LT-mix/header	2003-10-02 12:38:29.000000000 +1000
> -++++ procps-3.1.15/test/ps/LT-mix/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+-
> -+\ No newline at end of file
> -+diff -ruN procps-3.1.15.old/test/ps/LT-mix/setup procps-3.1.15/test/ps/LT-mix/setup
> -+--- procps-3.1.15.old/test/ps/LT-mix/setup	2003-10-02 12:39:40.000000000 +1000
> -++++ procps-3.1.15/test/ps/LT-mix/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,2 +0,0 @@
> -+-ARGS="-L -T"
> -+-GOOD=1
> -+diff -ruN procps-3.1.15.old/test/ps/LT-mix/stderr procps-3.1.15/test/ps/LT-mix/stderr
> -+--- procps-3.1.15.old/test/ps/LT-mix/stderr	2003-10-02 12:40:03.000000000 +1000
> -++++ procps-3.1.15/test/ps/LT-mix/stderr	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,23 +0,0 @@
> -+-ERROR: Thread flags conflict; can't use both -L and -T.
> -+-********* simple selection *********  ********* selection by list *********
> -+--A all processes                      -C by command name
> -+--N negate selection                   -G by real group ID (supports names)
> -+--a all w/ tty except session leaders  -U by real user ID (supports names)
> -+--d all except session leaders         -g by session leader OR by group name
> -+--e all processes                      -p by process ID
> -+-T  all processes on this terminal     -s processes in the sessions given
> -+-a  all w/ tty, including other users  -t by tty
> -+-g  all, even group leaders!           -u by effective user ID (supports names)
> -+-r  only running processes             U  processes for specified users
> -+-x  processes w/o controlling ttys     t  by tty
> -+-*********** output format **********  *********** long options ***********
> -+--o,o user-defined  -f full            --Group --User --pid --cols --ppid
> -+--j,j job control   s  signal          --group --user --sid --rows
> -+--O,O preloaded -o  v  virtual memory  --cumulative --format --deselect
> -+--l,l long          u  user-oriented   --sort --tty --forest --version
> -+--F   extra full    X  registers       --heading --no-heading
> -+-                    ********* misc options *********
> -+--V,V show version       L  list format codes  f  ASCII art forest
> -+--m,m show threads       S  children in sum    -y change -l format
> -+--n,N set namelist file  c  true command name  n  numeric WCHAN,UID
> -+--w,w wide output        e  show environment   -H process hierarchy
> -+diff -ruN procps-3.1.15.old/test/ps/O-O/header procps-3.1.15/test/ps/O-O/header
> -+--- procps-3.1.15.old/test/ps/O-O/header	2003-10-02 12:01:36.000000000 +1000
> -++++ procps-3.1.15/test/ps/O-O/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+-
> -+\ No newline at end of file
> -+diff -ruN procps-3.1.15.old/test/ps/O-O/setup procps-3.1.15/test/ps/O-O/setup
> -+--- procps-3.1.15.old/test/ps/O-O/setup	2003-10-02 12:02:01.000000000 +1000
> -++++ procps-3.1.15/test/ps/O-O/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,2 +0,0 @@
> -+-ARGS="-O wchan -O sess"
> -+-GOOD=1
> -+diff -ruN procps-3.1.15.old/test/ps/O-O/stderr procps-3.1.15/test/ps/O-O/stderr
> -+--- procps-3.1.15.old/test/ps/O-O/stderr	2003-10-02 12:05:19.000000000 +1000
> -++++ procps-3.1.15/test/ps/O-O/stderr	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,23 +0,0 @@
> -+-ERROR: option -O can not follow other format options.
> -+-********* simple selection *********  ********* selection by list *********
> -+--A all processes                      -C by command name
> -+--N negate selection                   -G by real group ID (supports names)
> -+--a all w/ tty except session leaders  -U by real user ID (supports names)
> -+--d all except session leaders         -g by session leader OR by group name
> -+--e all processes                      -p by process ID
> -+-T  all processes on this terminal     -s processes in the sessions given
> -+-a  all w/ tty, including other users  -t by tty
> -+-g  all, even group leaders!           -u by effective user ID (supports names)
> -+-r  only running processes             U  processes for specified users
> -+-x  processes w/o controlling ttys     t  by tty
> -+-*********** output format **********  *********** long options ***********
> -+--o,o user-defined  -f full            --Group --User --pid --cols --ppid
> -+--j,j job control   s  signal          --group --user --sid --rows
> -+--O,O preloaded -o  v  virtual memory  --cumulative --format --deselect
> -+--l,l long          u  user-oriented   --sort --tty --forest --version
> -+--F   extra full    X  registers       --heading --no-heading
> -+-                    ********* misc options *********
> -+--V,V show version       L  list format codes  f  ASCII art forest
> -+--m,m show threads       S  children in sum    -y change -l format
> -+--n,N set namelist file  c  true command name  n  numeric WCHAN,UID
> -+--w,w wide output        e  show environment   -H process hierarchy
> -+diff -ruN procps-3.1.15.old/test/ps/O-o/header procps-3.1.15/test/ps/O-o/header
> -+--- procps-3.1.15.old/test/ps/O-o/header	2003-10-02 12:06:18.000000000 +1000
> -++++ procps-3.1.15/test/ps/O-o/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- PID WCHAN S TTY TIME COMMAND SESS
> -+diff -ruN procps-3.1.15.old/test/ps/O-o/setup procps-3.1.15/test/ps/O-o/setup
> -+--- procps-3.1.15.old/test/ps/O-o/setup	2003-10-02 12:05:41.000000000 +1000
> -++++ procps-3.1.15/test/ps/O-o/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,2 +0,0 @@
> -+-ARGS="-O wchan -o sess"
> -+-GOOD=0
> -+diff -ruN procps-3.1.15.old/test/ps/aix-pcpu-header/header procps-3.1.15/test/ps/aix-pcpu-header/header
> -+--- procps-3.1.15.old/test/ps/aix-pcpu-header/header	2003-09-03 07:26:05.000000000 +1000
> -++++ procps-3.1.15/test/ps/aix-pcpu-header/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- %CPU
> -+diff -ruN procps-3.1.15.old/test/ps/aix-pcpu-header/setup procps-3.1.15/test/ps/aix-pcpu-header/setup
> -+--- procps-3.1.15.old/test/ps/aix-pcpu-header/setup	2003-09-03 07:24:28.000000000 +1000
> -++++ procps-3.1.15/test/ps/aix-pcpu-header/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,2 +0,0 @@
> -+-ARGS="-o %cpu"
> -+-GOOD=0
> -+diff -ruN procps-3.1.15.old/test/ps/aix-pcpu-header2/header procps-3.1.15/test/ps/aix-pcpu-header2/header
> -+--- procps-3.1.15.old/test/ps/aix-pcpu-header2/header	2003-09-03 07:26:30.000000000 +1000
> -++++ procps-3.1.15/test/ps/aix-pcpu-header2/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- COMMAND px
> -+diff -ruN procps-3.1.15.old/test/ps/aix-pcpu-header2/setup procps-3.1.15/test/ps/aix-pcpu-header2/setup
> -+--- procps-3.1.15.old/test/ps/aix-pcpu-header2/setup	2003-09-03 07:25:22.000000000 +1000
> -++++ procps-3.1.15/test/ps/aix-pcpu-header2/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,2 +0,0 @@
> -+-ARGS="-o %cpx"
> -+-GOOD=0
> -+diff -ruN procps-3.1.15.old/test/ps/bad-format-env/header procps-3.1.15/test/ps/bad-format-env/header
> -+--- procps-3.1.15.old/test/ps/bad-format-env/header	2003-10-02 12:16:37.000000000 +1000
> -++++ procps-3.1.15/test/ps/bad-format-env/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- PID TTY TIME CMD
> -+diff -ruN procps-3.1.15.old/test/ps/bad-format-env/setup procps-3.1.15/test/ps/bad-format-env/setup
> -+--- procps-3.1.15.old/test/ps/bad-format-env/setup	2003-10-02 12:16:22.000000000 +1000
> -++++ procps-3.1.15/test/ps/bad-format-env/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,3 +0,0 @@
> -+-ARGS=
> -+-GOOD=0
> -+-export PS_FORMAT=booger
> -+diff -ruN procps-3.1.15.old/test/ps/bad-format-env/stderr procps-3.1.15/test/ps/bad-format-env/stderr
> -+--- procps-3.1.15.old/test/ps/bad-format-env/stderr	2003-10-02 12:16:13.000000000 +1000
> -++++ procps-3.1.15/test/ps/bad-format-env/stderr	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+-Warning: $PS_FORMAT ignored. (Unknown user-defined format specifier "booger".)
> -+diff -ruN procps-3.1.15.old/test/ps/bogus-n-header/header procps-3.1.15/test/ps/bogus-n-header/header
> -+--- procps-3.1.15.old/test/ps/bogus-n-header/header	2003-09-02 09:37:07.000000000 +1000
> -++++ procps-3.1.15/test/ps/bogus-n-header/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- PID TTY STAT TIME COMMAND
> -+diff -ruN procps-3.1.15.old/test/ps/bogus-n-header/setup procps-3.1.15/test/ps/bogus-n-header/setup
> -+--- procps-3.1.15.old/test/ps/bogus-n-header/setup	2003-09-02 09:34:40.000000000 +1000
> -++++ procps-3.1.15/test/ps/bogus-n-header/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,2 +0,0 @@
> -+-ARGS="-n"
> -+-GOOD=0
> -+diff -ruN procps-3.1.15.old/test/ps/bogus-n-header/stderr procps-3.1.15/test/ps/bogus-n-header/stderr
> -+--- procps-3.1.15.old/test/ps/bogus-n-header/stderr	2003-09-02 09:35:37.000000000 +1000
> -++++ procps-3.1.15/test/ps/bogus-n-header/stderr	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+-Warning: bad syntax, perhaps a bogus '-'? See http://procps.sf.net/faq.html
> -+diff -ruN procps-3.1.15.old/test/ps/bsd-T/header procps-3.1.15/test/ps/bsd-T/header
> -+--- procps-3.1.15.old/test/ps/bsd-T/header	2003-09-02 11:54:41.000000000 +1000
> -++++ procps-3.1.15/test/ps/bsd-T/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- PID TTY STAT TIME COMMAND
> -+diff -ruN procps-3.1.15.old/test/ps/bsd-T/setup procps-3.1.15/test/ps/bsd-T/setup
> -+--- procps-3.1.15.old/test/ps/bsd-T/setup	2003-09-02 11:53:24.000000000 +1000
> -++++ procps-3.1.15/test/ps/bsd-T/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,11 +0,0 @@
> -+-ARGS=T
> -+-GOOD=0
> -+-EVALFN=1
> -+-
> -+-# default output is restricted to this tty
> -+-MYTTY=`tty`
> -+-
> -+-evalfn () {
> -+-  PSTTY=`awk '!/TTY/{print $2}'<  stdout | uniq`
> -+-  [ /dev/$PSTTY == $MYTTY ]
> -+-}
> -+diff -ruN procps-3.1.15.old/test/ps/bsd-j-header/header procps-3.1.15/test/ps/bsd-j-header/header
> -+--- procps-3.1.15.old/test/ps/bsd-j-header/header	2003-09-02 22:33:49.000000000 +1000
> -++++ procps-3.1.15/test/ps/bsd-j-header/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- PPID PID PGID SID TTY TPGID STAT UID TIME COMMAND
> -+diff -ruN procps-3.1.15.old/test/ps/bsd-j-header/setup procps-3.1.15/test/ps/bsd-j-header/setup
> -+--- procps-3.1.15.old/test/ps/bsd-j-header/setup	2003-09-02 22:32:53.000000000 +1000
> -++++ procps-3.1.15/test/ps/bsd-j-header/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,2 +0,0 @@
> -+-ARGS="j"
> -+-GOOD=0
> -+diff -ruN procps-3.1.15.old/test/ps/bsd-j-header2/header procps-3.1.15/test/ps/bsd-j-header2/header
> -+--- procps-3.1.15.old/test/ps/bsd-j-header2/header	2003-09-02 23:16:25.000000000 +1000
> -++++ procps-3.1.15/test/ps/bsd-j-header2/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- USER PID PPID PGID SESS JOBC STAT TT TIME COMMAND
> -+diff -ruN procps-3.1.15.old/test/ps/bsd-j-header2/setup procps-3.1.15/test/ps/bsd-j-header2/setup
> -+--- procps-3.1.15.old/test/ps/bsd-j-header2/setup	2003-09-02 23:15:16.000000000 +1000
> -++++ procps-3.1.15/test/ps/bsd-j-header2/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,3 +0,0 @@
> -+-export CMD_ENV=bsd
> -+-ARGS="-j"
> -+-GOOD=0
> -+diff -ruN procps-3.1.15.old/test/ps/bsd-l-header/header procps-3.1.15/test/ps/bsd-l-header/header
> -+--- procps-3.1.15.old/test/ps/bsd-l-header/header	2003-09-02 22:54:09.000000000 +1000
> -++++ procps-3.1.15/test/ps/bsd-l-header/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- F UID PID PPID PRI NI VSZ RSS WCHAN STAT TTY TIME COMMAND
> -+diff -ruN procps-3.1.15.old/test/ps/bsd-l-header/setup procps-3.1.15/test/ps/bsd-l-header/setup
> -+--- procps-3.1.15.old/test/ps/bsd-l-header/setup	2003-09-02 22:53:45.000000000 +1000
> -++++ procps-3.1.15/test/ps/bsd-l-header/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,2 +0,0 @@
> -+-ARGS="l"
> -+-GOOD=0
> -+diff -ruN procps-3.1.15.old/test/ps/bsd-l-header2/header procps-3.1.15/test/ps/bsd-l-header2/header
> -+--- procps-3.1.15.old/test/ps/bsd-l-header2/header	2003-09-03 07:26:56.000000000 +1000
> -++++ procps-3.1.15/test/ps/bsd-l-header2/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- UID PID PPID CPU PRI NI VSZ RSS WCHAN STAT TT TIME COMMAND
> -+diff -ruN procps-3.1.15.old/test/ps/bsd-l-header2/setup procps-3.1.15/test/ps/bsd-l-header2/setup
> -+--- procps-3.1.15.old/test/ps/bsd-l-header2/setup	2003-09-03 07:21:19.000000000 +1000
> -++++ procps-3.1.15/test/ps/bsd-l-header2/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,3 +0,0 @@
> -+-export CMD_ENV=bsd
> -+-ARGS="-l"
> -+-GOOD=0
> -+diff -ruN procps-3.1.15.old/test/ps/bsd-s-header/header procps-3.1.15/test/ps/bsd-s-header/header
> -+--- procps-3.1.15.old/test/ps/bsd-s-header/header	2003-09-02 22:55:32.000000000 +1000
> -++++ procps-3.1.15/test/ps/bsd-s-header/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- UID PID PENDING BLOCKED IGNORED CAUGHT STAT TTY TIME COMMAND
> -+diff -ruN procps-3.1.15.old/test/ps/bsd-s-header/setup procps-3.1.15/test/ps/bsd-s-header/setup
> -+--- procps-3.1.15.old/test/ps/bsd-s-header/setup	2003-09-02 22:55:06.000000000 +1000
> -++++ procps-3.1.15/test/ps/bsd-s-header/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,2 +0,0 @@
> -+-ARGS="s"
> -+-GOOD=0
> -+diff -ruN procps-3.1.15.old/test/ps/bsd-s-header2/header procps-3.1.15/test/ps/bsd-s-header2/header
> -+--- procps-3.1.15.old/test/ps/bsd-s-header2/header	2003-09-03 07:21:33.000000000 +1000
> -++++ procps-3.1.15/test/ps/bsd-s-header2/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- UID PID PENDING BLOCKED IGNORED CAUGHT STAT TTY TIME COMMAND
> -+diff -ruN procps-3.1.15.old/test/ps/bsd-s-header2/setup procps-3.1.15/test/ps/bsd-s-header2/setup
> -+--- procps-3.1.15.old/test/ps/bsd-s-header2/setup	2003-09-03 07:21:40.000000000 +1000
> -++++ procps-3.1.15/test/ps/bsd-s-header2/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,3 +0,0 @@
> -+-export CMD_ENV=bsd
> -+-ARGS="-s"
> -+-GOOD=0
> -+diff -ruN procps-3.1.15.old/test/ps/bsd-selection/header procps-3.1.15/test/ps/bsd-selection/header
> -+--- procps-3.1.15.old/test/ps/bsd-selection/header	2003-09-04 16:04:27.000000000 +1000
> -++++ procps-3.1.15/test/ps/bsd-selection/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- PID TTY STAT TIME COMMAND
> -+diff -ruN procps-3.1.15.old/test/ps/bsd-selection/setup procps-3.1.15/test/ps/bsd-selection/setup
> -+--- procps-3.1.15.old/test/ps/bsd-selection/setup	2003-09-13 13:47:22.000000000 +1000
> -++++ procps-3.1.15/test/ps/bsd-selection/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,25 +0,0 @@
> -+-ARGS="m"
> -+-GOOD=0
> -+-EVALFN=1
> -+-KILLFN=1
> -+-
> -+-rm -f misc.tmp ready.tmp typescript.tmp
> -+-
> -+-./got-no-tty
> -+-# this'll do but... WHERE ARE THE MAN PAGES FOR PTY STUFF???
> -+-(SHELL=`pwd`/script-child script typescript.tmp&>/dev/null)&
> -+-while [ ! -f ready.tmp ] ; do sleep 0.01 ; done
> -+-. ready.tmp
> -+-
> -+-evalfn () {
> -+-   THIS_TTY=`tty | colrm 1 5`
> -+-   lines2=`awk '{print $2}'<  stdout | sort -u | egrep "^($SHELL_TTY|$THIS_TTY)$"   | wc -l`
> -+-   lines3=`awk '{print $2}'<  stdout | sort -u | egrep "^($SHELL_TTY|$THIS_TTY|\?)$" | wc -l`
> -+-   [ $lines2 == 2 ]&&  [ $lines3 == 2 ]
> -+-}
> -+-
> -+-killfn () {
> -+-  killall -9 got-no-tty
> -+-  kill -9 $SHELL_PID  # the others should freely die
> -+-  rm -f misc.tmp ready.tmp typescript.tmp
> -+-}
> -+diff -ruN procps-3.1.15.old/test/ps/bsd-t-1/header procps-3.1.15/test/ps/bsd-t-1/header
> -+--- procps-3.1.15.old/test/ps/bsd-t-1/header	2003-09-02 11:55:23.000000000 +1000
> -++++ procps-3.1.15/test/ps/bsd-t-1/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- PID TTY STAT TIME COMMAND
> -+diff -ruN procps-3.1.15.old/test/ps/bsd-t-1/setup procps-3.1.15/test/ps/bsd-t-1/setup
> -+--- procps-3.1.15.old/test/ps/bsd-t-1/setup	2003-09-02 11:56:11.000000000 +1000
> -++++ procps-3.1.15/test/ps/bsd-t-1/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,11 +0,0 @@
> -+-# default output is restricted to this tty
> -+-MYTTY=`tty`
> -+-
> -+-ARGS=t$MYTTY
> -+-GOOD=0
> -+-EVALFN=1
> -+-
> -+-evalfn () {
> -+-  PSTTY=`awk '!/TTY/{print $2}'<  stdout | uniq`
> -+-  [ /dev/$PSTTY == $MYTTY ]
> -+-}
> -+diff -ruN procps-3.1.15.old/test/ps/bsd-t-2/header procps-3.1.15/test/ps/bsd-t-2/header
> -+--- procps-3.1.15.old/test/ps/bsd-t-2/header	2003-09-02 11:55:26.000000000 +1000
> -++++ procps-3.1.15/test/ps/bsd-t-2/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- PID TTY STAT TIME COMMAND
> -+diff -ruN procps-3.1.15.old/test/ps/bsd-t-2/setup procps-3.1.15/test/ps/bsd-t-2/setup
> -+--- procps-3.1.15.old/test/ps/bsd-t-2/setup	2003-09-02 11:56:54.000000000 +1000
> -++++ procps-3.1.15/test/ps/bsd-t-2/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,12 +0,0 @@
> -+-# Ancient usage: t w/o arg is current tty
> -+-ARGS=t
> -+-GOOD=0
> -+-EVALFN=1
> -+-
> -+-# default output is restricted to this tty
> -+-MYTTY=`tty`
> -+-
> -+-evalfn () {
> -+-  PSTTY=`awk '!/TTY/{print $2}'<  stdout | uniq`
> -+-  [ /dev/$PSTTY == $MYTTY ]
> -+-}
> -+diff -ruN procps-3.1.15.old/test/ps/bsd-t-3/header procps-3.1.15/test/ps/bsd-t-3/header
> -+--- procps-3.1.15.old/test/ps/bsd-t-3/header	2003-09-02 11:55:27.000000000 +1000
> -++++ procps-3.1.15/test/ps/bsd-t-3/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- PID TTY STAT TIME COMMAND
> -+diff -ruN procps-3.1.15.old/test/ps/bsd-t-3/setup procps-3.1.15/test/ps/bsd-t-3/setup
> -+--- procps-3.1.15.old/test/ps/bsd-t-3/setup	2003-09-02 12:25:44.000000000 +1000
> -++++ procps-3.1.15/test/ps/bsd-t-3/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,19 +0,0 @@
> -+-MYTTY=`tty`
> -+-
> -+-# two ways to interpret "ps t 42"
> -+-#
> -+-# 1. as "ps t" with "ps 42"  (PID 42)
> -+-# 2. as "ps t42" (tty /dev/tty42)
> -+-#
> -+-# The command doesn't seem to be legal BSD syntax, but we try...
> -+-# We use interpretation #2, since BSD isn't known for ORing.
> -+-# We'll assume PID 1 is "init" and not on /dev/tty1, and that
> -+-# nothing on tty1 is named "init".
> -+-
> -+-ARGS="t 1"
> -+-GOOD=0
> -+-EVALFN=1
> -+-
> -+-evalfn () {
> -+-  ! egrep ' init' stdout>>  /dev/null
> -+-}
> -+diff -ruN procps-3.1.15.old/test/ps/bsd-t-4/header procps-3.1.15/test/ps/bsd-t-4/header
> -+--- procps-3.1.15.old/test/ps/bsd-t-4/header	2003-09-02 11:55:29.000000000 +1000
> -++++ procps-3.1.15/test/ps/bsd-t-4/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- PID TTY STAT TIME COMMAND
> -+diff -ruN procps-3.1.15.old/test/ps/bsd-t-4/setup procps-3.1.15/test/ps/bsd-t-4/setup
> -+--- procps-3.1.15.old/test/ps/bsd-t-4/setup	2003-09-02 12:15:34.000000000 +1000
> -++++ procps-3.1.15/test/ps/bsd-t-4/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,10 +0,0 @@
> -+-ARGS=t-
> -+-GOOD=0
> -+-EVALFN=1
> -+-
> -+-# Use 'Y' to avoid shell wildcard problems.
> -+-
> -+-evalfn () {
> -+-  PSTTY=`awk '!/TTY/{print $2}'<  stdout | uniq | tr '?' 'Y'`
> -+-  [ $PSTTY == 'Y' ]
> -+-}
> -+diff -ruN procps-3.1.15.old/test/ps/bsd-u-header/header procps-3.1.15/test/ps/bsd-u-header/header
> -+--- procps-3.1.15.old/test/ps/bsd-u-header/header	2003-09-02 22:57:35.000000000 +1000
> -++++ procps-3.1.15/test/ps/bsd-u-header/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
> -+diff -ruN procps-3.1.15.old/test/ps/bsd-u-header/setup procps-3.1.15/test/ps/bsd-u-header/setup
> -+--- procps-3.1.15.old/test/ps/bsd-u-header/setup	2003-09-02 22:57:20.000000000 +1000
> -++++ procps-3.1.15/test/ps/bsd-u-header/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,2 +0,0 @@
> -+-ARGS="u"
> -+-GOOD=0
> -+diff -ruN procps-3.1.15.old/test/ps/bsd-u-header2/header procps-3.1.15/test/ps/bsd-u-header2/header
> -+--- procps-3.1.15.old/test/ps/bsd-u-header2/header	2003-09-03 07:27:09.000000000 +1000
> -++++ procps-3.1.15/test/ps/bsd-u-header2/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- USER PID %CPU %MEM VSZ RSS TT STAT STARTED TIME COMMAND
> -+diff -ruN procps-3.1.15.old/test/ps/bsd-u-header2/setup procps-3.1.15/test/ps/bsd-u-header2/setup
> -+--- procps-3.1.15.old/test/ps/bsd-u-header2/setup	2003-09-03 07:22:00.000000000 +1000
> -++++ procps-3.1.15/test/ps/bsd-u-header2/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,3 +0,0 @@
> -+-export CMD_ENV=bsd
> -+-ARGS="-u"
> -+-GOOD=0
> -+diff -ruN procps-3.1.15.old/test/ps/bsd-v-header/header procps-3.1.15/test/ps/bsd-v-header/header
> -+--- procps-3.1.15.old/test/ps/bsd-v-header/header	2003-09-02 22:56:43.000000000 +1000
> -++++ procps-3.1.15/test/ps/bsd-v-header/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- PID TTY STAT TIME MAJFL TRS DRS RSS %MEM COMMAND
> -+diff -ruN procps-3.1.15.old/test/ps/bsd-v-header/setup procps-3.1.15/test/ps/bsd-v-header/setup
> -+--- procps-3.1.15.old/test/ps/bsd-v-header/setup	2003-09-02 22:56:10.000000000 +1000
> -++++ procps-3.1.15/test/ps/bsd-v-header/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,2 +0,0 @@
> -+-ARGS="v"
> -+-GOOD=0
> -+diff -ruN procps-3.1.15.old/test/ps/bsd-v-header2/header procps-3.1.15/test/ps/bsd-v-header2/header
> -+--- procps-3.1.15.old/test/ps/bsd-v-header2/header	2003-09-03 07:27:16.000000000 +1000
> -++++ procps-3.1.15/test/ps/bsd-v-header2/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- PID STAT TIME SL RE PAGEIN VSZ RSS LIM TSIZ %CPU %MEM COMMAND
> -+diff -ruN procps-3.1.15.old/test/ps/bsd-v-header2/setup procps-3.1.15/test/ps/bsd-v-header2/setup
> -+--- procps-3.1.15.old/test/ps/bsd-v-header2/setup	2003-09-03 07:22:17.000000000 +1000
> -++++ procps-3.1.15/test/ps/bsd-v-header2/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,3 +0,0 @@
> -+-export CMD_ENV=bsd
> -+-ARGS="-v"
> -+-GOOD=0
> -+diff -ruN procps-3.1.15.old/test/ps/dynix-F-header/header procps-3.1.15/test/ps/dynix-F-header/header
> -+--- procps-3.1.15.old/test/ps/dynix-F-header/header	2003-09-02 22:31:23.000000000 +1000
> -++++ procps-3.1.15/test/ps/dynix-F-header/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- UID PID PPID C SZ RSS PSR STIME TTY TIME CMD
> -+diff -ruN procps-3.1.15.old/test/ps/dynix-F-header/setup procps-3.1.15/test/ps/dynix-F-header/setup
> -+--- procps-3.1.15.old/test/ps/dynix-F-header/setup	2003-09-02 22:30:43.000000000 +1000
> -++++ procps-3.1.15/test/ps/dynix-F-header/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,2 +0,0 @@
> -+-ARGS="-F"
> -+-GOOD=0
> -+diff -ruN procps-3.1.15.old/test/ps/fail-aix-Q/header procps-3.1.15/test/ps/fail-aix-Q/header
> -+--- procps-3.1.15.old/test/ps/fail-aix-Q/header	2003-10-02 11:31:34.000000000 +1000
> -++++ procps-3.1.15/test/ps/fail-aix-Q/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+-
> -+\ No newline at end of file
> -+diff -ruN procps-3.1.15.old/test/ps/fail-aix-Q/setup procps-3.1.15/test/ps/fail-aix-Q/setup
> -+--- procps-3.1.15.old/test/ps/fail-aix-Q/setup	2003-10-02 11:32:11.000000000 +1000
> -++++ procps-3.1.15/test/ps/fail-aix-Q/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,2 +0,0 @@
> -+-ARGS="-o %Q"
> -+-GOOD=1
> -+diff -ruN procps-3.1.15.old/test/ps/fail-aix-Q/stderr procps-3.1.15/test/ps/fail-aix-Q/stderr
> -+--- procps-3.1.15.old/test/ps/fail-aix-Q/stderr	2003-10-02 11:33:07.000000000 +1000
> -++++ procps-3.1.15/test/ps/fail-aix-Q/stderr	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,23 +0,0 @@
> -+-ERROR: Unknown AIX field descriptor.
> -+-********* simple selection *********  ********* selection by list *********
> -+--A all processes                      -C by command name
> -+--N negate selection                   -G by real group ID (supports names)
> -+--a all w/ tty except session leaders  -U by real user ID (supports names)
> -+--d all except session leaders         -g by session leader OR by group name
> -+--e all processes                      -p by process ID
> -+-T  all processes on this terminal     -s processes in the sessions given
> -+-a  all w/ tty, including other users  -t by tty
> -+-g  all, even group leaders!           -u by effective user ID (supports names)
> -+-r  only running processes             U  processes for specified users
> -+-x  processes w/o controlling ttys     t  by tty
> -+-*********** output format **********  *********** long options ***********
> -+--o,o user-defined  -f full            --Group --User --pid --cols --ppid
> -+--j,j job control   s  signal          --group --user --sid --rows
> -+--O,O preloaded -o  v  virtual memory  --cumulative --format --deselect
> -+--l,l long          u  user-oriented   --sort --tty --forest --version
> -+--F   extra full    X  registers       --heading --no-heading
> -+-                    ********* misc options *********
> -+--V,V show version       L  list format codes  f  ASCII art forest
> -+--m,m show threads       S  children in sum    -y change -l format
> -+--n,N set namelist file  c  true command name  n  numeric WCHAN,UID
> -+--w,w wide output        e  show environment   -H process hierarchy
> -+diff -ruN procps-3.1.15.old/test/ps/fail-aix-improper/header procps-3.1.15/test/ps/fail-aix-improper/header
> -+--- procps-3.1.15.old/test/ps/fail-aix-improper/header	2003-10-02 11:34:09.000000000 +1000
> -++++ procps-3.1.15/test/ps/fail-aix-improper/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+-
> -+\ No newline at end of file
> -+diff -ruN procps-3.1.15.old/test/ps/fail-aix-improper/setup procps-3.1.15/test/ps/fail-aix-improper/setup
> -+--- procps-3.1.15.old/test/ps/fail-aix-improper/setup	2003-10-02 11:34:22.000000000 +1000
> -++++ procps-3.1.15/test/ps/fail-aix-improper/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,2 +0,0 @@
> -+-ARGS="-o %"
> -+-GOOD=1
> -+diff -ruN procps-3.1.15.old/test/ps/fail-aix-improper/stderr procps-3.1.15/test/ps/fail-aix-improper/stderr
> -+--- procps-3.1.15.old/test/ps/fail-aix-improper/stderr	2003-10-02 11:34:40.000000000 +1000
> -++++ procps-3.1.15/test/ps/fail-aix-improper/stderr	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,23 +0,0 @@
> -+-ERROR: Improper AIX field descriptor.
> -+-********* simple selection *********  ********* selection by list *********
> -+--A all processes                      -C by command name
> -+--N negate selection                   -G by real group ID (supports names)
> -+--a all w/ tty except session leaders  -U by real user ID (supports names)
> -+--d all except session leaders         -g by session leader OR by group name
> -+--e all processes                      -p by process ID
> -+-T  all processes on this terminal     -s processes in the sessions given
> -+-a  all w/ tty, including other users  -t by tty
> -+-g  all, even group leaders!           -u by effective user ID (supports names)
> -+-r  only running processes             U  processes for specified users
> -+-x  processes w/o controlling ttys     t  by tty
> -+-*********** output format **********  *********** long options ***********
> -+--o,o user-defined  -f full            --Group --User --pid --cols --ppid
> -+--j,j job control   s  signal          --group --user --sid --rows
> -+--O,O preloaded -o  v  virtual memory  --cumulative --format --deselect
> -+--l,l long          u  user-oriented   --sort --tty --forest --version
> -+--F   extra full    X  registers       --heading --no-heading
> -+-                    ********* misc options *********
> -+--V,V show version       L  list format codes  f  ASCII art forest
> -+--m,m show threads       S  children in sum    -y change -l format
> -+--n,N set namelist file  c  true command name  n  numeric WCHAN,UID
> -+--w,w wide output        e  show environment   -H process hierarchy
> -+diff -ruN procps-3.1.15.old/test/ps/fail-improper-sort/header procps-3.1.15/test/ps/fail-improper-sort/header
> -+--- procps-3.1.15.old/test/ps/fail-improper-sort/header	2003-10-02 11:47:57.000000000 +1000
> -++++ procps-3.1.15/test/ps/fail-improper-sort/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+-
> -+\ No newline at end of file
> -+diff -ruN procps-3.1.15.old/test/ps/fail-improper-sort/setup procps-3.1.15/test/ps/fail-improper-sort/setup
> -+--- procps-3.1.15.old/test/ps/fail-improper-sort/setup	2003-10-02 11:48:15.000000000 +1000
> -++++ procps-3.1.15/test/ps/fail-improper-sort/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,2 +0,0 @@
> -+-ARGS="--sort ,,"
> -+-GOOD=1
> -+diff -ruN procps-3.1.15.old/test/ps/fail-improper-sort/stderr procps-3.1.15/test/ps/fail-improper-sort/stderr
> -+--- procps-3.1.15.old/test/ps/fail-improper-sort/stderr	2003-10-02 12:22:31.000000000 +1000
> -++++ procps-3.1.15/test/ps/fail-improper-sort/stderr	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,23 +0,0 @@
> -+-ERROR: Improper sort list
> -+-********* simple selection *********  ********* selection by list *********
> -+--A all processes                      -C by command name
> -+--N negate selection                   -G by real group ID (supports names)
> -+--a all w/ tty except session leaders  -U by real user ID (supports names)
> -+--d all except session leaders         -g by session leader OR by group name
> -+--e all processes                      -p by process ID
> -+-T  all processes on this terminal     -s processes in the sessions given
> -+-a  all w/ tty, including other users  -t by tty
> -+-g  all, even group leaders!           -u by effective user ID (supports names)
> -+-r  only running processes             U  processes for specified users
> -+-x  processes w/o controlling ttys     t  by tty
> -+-*********** output format **********  *********** long options ***********
> -+--o,o user-defined  -f full            --Group --User --pid --cols --ppid
> -+--j,j job control   s  signal          --group --user --sid --rows
> -+--O,O preloaded -o  v  virtual memory  --cumulative --format --deselect
> -+--l,l long          u  user-oriented   --sort --tty --forest --version
> -+--F   extra full    X  registers       --heading --no-heading
> -+-                    ********* misc options *********
> -+--V,V show version       L  list format codes  f  ASCII art forest
> -+--m,m show threads       S  children in sum    -y change -l format
> -+--n,N set namelist file  c  true command name  n  numeric WCHAN,UID
> -+--w,w wide output        e  show environment   -H process hierarchy
> -+diff -ruN procps-3.1.15.old/test/ps/fail-improper-spec/header procps-3.1.15/test/ps/fail-improper-spec/header
> -+--- procps-3.1.15.old/test/ps/fail-improper-spec/header	2003-10-02 11:37:17.000000000 +1000
> -++++ procps-3.1.15/test/ps/fail-improper-spec/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+-
> -+\ No newline at end of file
> -+diff -ruN procps-3.1.15.old/test/ps/fail-improper-spec/setup procps-3.1.15/test/ps/fail-improper-spec/setup
> -+--- procps-3.1.15.old/test/ps/fail-improper-spec/setup	2003-10-02 11:37:34.000000000 +1000
> -++++ procps-3.1.15/test/ps/fail-improper-spec/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,2 +0,0 @@
> -+-ARGS="-o ,"
> -+-GOOD=1
> -+diff -ruN procps-3.1.15.old/test/ps/fail-improper-spec/stderr procps-3.1.15/test/ps/fail-improper-spec/stderr
> -+--- procps-3.1.15.old/test/ps/fail-improper-spec/stderr	2003-10-02 11:37:52.000000000 +1000
> -++++ procps-3.1.15/test/ps/fail-improper-spec/stderr	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,23 +0,0 @@
> -+-ERROR: Improper format list.
> -+-********* simple selection *********  ********* selection by list *********
> -+--A all processes                      -C by command name
> -+--N negate selection                   -G by real group ID (supports names)
> -+--a all w/ tty except session leaders  -U by real user ID (supports names)
> -+--d all except session leaders         -g by session leader OR by group name
> -+--e all processes                      -p by process ID
> -+-T  all processes on this terminal     -s processes in the sessions given
> -+-a  all w/ tty, including other users  -t by tty
> -+-g  all, even group leaders!           -u by effective user ID (supports names)
> -+-r  only running processes             U  processes for specified users
> -+-x  processes w/o controlling ttys     t  by tty
> -+-*********** output format **********  *********** long options ***********
> -+--o,o user-defined  -f full            --Group --User --pid --cols --ppid
> -+--j,j job control   s  signal          --group --user --sid --rows
> -+--O,O preloaded -o  v  virtual memory  --cumulative --format --deselect
> -+--l,l long          u  user-oriented   --sort --tty --forest --version
> -+--F   extra full    X  registers       --heading --no-heading
> -+-                    ********* misc options *********
> -+--V,V show version       L  list format codes  f  ASCII art forest
> -+--m,m show threads       S  children in sum    -y change -l format
> -+--n,N set namelist file  c  true command name  n  numeric WCHAN,UID
> -+--w,w wide output        e  show environment   -H process hierarchy
> -+diff -ruN procps-3.1.15.old/test/ps/fail-macro-width/header procps-3.1.15/test/ps/fail-macro-width/header
> -+--- procps-3.1.15.old/test/ps/fail-macro-width/header	2003-10-02 11:42:15.000000000 +1000
> -++++ procps-3.1.15/test/ps/fail-macro-width/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+-
> -+\ No newline at end of file
> -+diff -ruN procps-3.1.15.old/test/ps/fail-macro-width/setup procps-3.1.15/test/ps/fail-macro-width/setup
> -+--- procps-3.1.15.old/test/ps/fail-macro-width/setup	2003-10-02 11:42:30.000000000 +1000
> -++++ procps-3.1.15/test/ps/fail-macro-width/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,2 +0,0 @@
> -+-ARGS="-o DefBSD:6"
> -+-GOOD=1
> -+diff -ruN procps-3.1.15.old/test/ps/fail-macro-width/stderr procps-3.1.15/test/ps/fail-macro-width/stderr
> -+--- procps-3.1.15.old/test/ps/fail-macro-width/stderr	2003-10-02 11:42:46.000000000 +1000
> -++++ procps-3.1.15/test/ps/fail-macro-width/stderr	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,23 +0,0 @@
> -+-ERROR: Can't set width for a macro (multi-column) format specifier.
> -+-********* simple selection *********  ********* selection by list *********
> -+--A all processes                      -C by command name
> -+--N negate selection                   -G by real group ID (supports names)
> -+--a all w/ tty except session leaders  -U by real user ID (supports names)
> -+--d all except session leaders         -g by session leader OR by group name
> -+--e all processes                      -p by process ID
> -+-T  all processes on this terminal     -s processes in the sessions given
> -+-a  all w/ tty, including other users  -t by tty
> -+-g  all, even group leaders!           -u by effective user ID (supports names)
> -+-r  only running processes             U  processes for specified users
> -+-x  processes w/o controlling ttys     t  by tty
> -+-*********** output format **********  *********** long options ***********
> -+--o,o user-defined  -f full            --Group --User --pid --cols --ppid
> -+--j,j job control   s  signal          --group --user --sid --rows
> -+--O,O preloaded -o  v  virtual memory  --cumulative --format --deselect
> -+--l,l long          u  user-oriented   --sort --tty --forest --version
> -+--F   extra full    X  registers       --heading --no-heading
> -+-                    ********* misc options *********
> -+--V,V show version       L  list format codes  f  ASCII art forest
> -+--m,m show threads       S  children in sum    -y change -l format
> -+--n,N set namelist file  c  true command name  n  numeric WCHAN,UID
> -+--w,w wide output        e  show environment   -H process hierarchy
> -+diff -ruN procps-3.1.15.old/test/ps/fail-no-sort-key/header procps-3.1.15/test/ps/fail-no-sort-key/header
> -+--- procps-3.1.15.old/test/ps/fail-no-sort-key/header	2003-10-02 11:50:26.000000000 +1000
> -++++ procps-3.1.15/test/ps/fail-no-sort-key/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+-
> -+\ No newline at end of file
> -+diff -ruN procps-3.1.15.old/test/ps/fail-no-sort-key/setup procps-3.1.15/test/ps/fail-no-sort-key/setup
> -+--- procps-3.1.15.old/test/ps/fail-no-sort-key/setup	2003-10-02 11:50:39.000000000 +1000
> -++++ procps-3.1.15/test/ps/fail-no-sort-key/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,2 +0,0 @@
> -+-ARGS="--sort"
> -+-GOOD=1
> -+diff -ruN procps-3.1.15.old/test/ps/fail-no-sort-key/stderr procps-3.1.15/test/ps/fail-no-sort-key/stderr
> -+--- procps-3.1.15.old/test/ps/fail-no-sort-key/stderr	2003-10-02 11:51:05.000000000 +1000
> -++++ procps-3.1.15/test/ps/fail-no-sort-key/stderr	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,23 +0,0 @@
> -+-ERROR: Long sort specification must follow --sort.
> -+-********* simple selection *********  ********* selection by list *********
> -+--A all processes                      -C by command name
> -+--N negate selection                   -G by real group ID (supports names)
> -+--a all w/ tty except session leaders  -U by real user ID (supports names)
> -+--d all except session leaders         -g by session leader OR by group name
> -+--e all processes                      -p by process ID
> -+-T  all processes on this terminal     -s processes in the sessions given
> -+-a  all w/ tty, including other users  -t by tty
> -+-g  all, even group leaders!           -u by effective user ID (supports names)
> -+-r  only running processes             U  processes for specified users
> -+-x  processes w/o controlling ttys     t  by tty
> -+-*********** output format **********  *********** long options ***********
> -+--o,o user-defined  -f full            --Group --User --pid --cols --ppid
> -+--j,j job control   s  signal          --group --user --sid --rows
> -+--O,O preloaded -o  v  virtual memory  --cumulative --format --deselect
> -+--l,l long          u  user-oriented   --sort --tty --forest --version
> -+--F   extra full    X  registers       --heading --no-heading
> -+-                    ********* misc options *********
> -+--V,V show version       L  list format codes  f  ASCII art forest
> -+--m,m show threads       S  children in sum    -y change -l format
> -+--n,N set namelist file  c  true command name  n  numeric WCHAN,UID
> -+--w,w wide output        e  show environment   -H process hierarchy
> -+diff -ruN procps-3.1.15.old/test/ps/fail-no-width/header procps-3.1.15/test/ps/fail-no-width/header
> -+--- procps-3.1.15.old/test/ps/fail-no-width/header	2003-10-02 11:40:56.000000000 +1000
> -++++ procps-3.1.15/test/ps/fail-no-width/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+-
> -+\ No newline at end of file
> -+diff -ruN procps-3.1.15.old/test/ps/fail-no-width/setup procps-3.1.15/test/ps/fail-no-width/setup
> -+--- procps-3.1.15.old/test/ps/fail-no-width/setup	2003-10-02 11:41:22.000000000 +1000
> -++++ procps-3.1.15/test/ps/fail-no-width/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,2 +0,0 @@
> -+-ARGS="-o pid:,f,comm"
> -+-GOOD=1
> -+diff -ruN procps-3.1.15.old/test/ps/fail-no-width/stderr procps-3.1.15/test/ps/fail-no-width/stderr
> -+--- procps-3.1.15.old/test/ps/fail-no-width/stderr	2003-10-02 11:40:56.000000000 +1000
> -++++ procps-3.1.15/test/ps/fail-no-width/stderr	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,23 +0,0 @@
> -+-ERROR: Column widths must be unsigned decimal numbers.
> -+-********* simple selection *********  ********* selection by list *********
> -+--A all processes                      -C by command name
> -+--N negate selection                   -G by real group ID (supports names)
> -+--a all w/ tty except session leaders  -U by real user ID (supports names)
> -+--d all except session leaders         -g by session leader OR by group name
> -+--e all processes                      -p by process ID
> -+-T  all processes on this terminal     -s processes in the sessions given
> -+-a  all w/ tty, including other users  -t by tty
> -+-g  all, even group leaders!           -u by effective user ID (supports names)
> -+-r  only running processes             U  processes for specified users
> -+-x  processes w/o controlling ttys     t  by tty
> -+-*********** output format **********  *********** long options ***********
> -+--o,o user-defined  -f full            --Group --User --pid --cols --ppid
> -+--j,j job control   s  signal          --group --user --sid --rows
> -+--O,O preloaded -o  v  virtual memory  --cumulative --format --deselect
> -+--l,l long          u  user-oriented   --sort --tty --forest --version
> -+--F   extra full    X  registers       --heading --no-heading
> -+-                    ********* misc options *********
> -+--V,V show version       L  list format codes  f  ASCII art forest
> -+--m,m show threads       S  children in sum    -y change -l format
> -+--n,N set namelist file  c  true command name  n  numeric WCHAN,UID
> -+--w,w wide output        e  show environment   -H process hierarchy
> -+diff -ruN procps-3.1.15.old/test/ps/fail-nondecimal/header procps-3.1.15/test/ps/fail-nondecimal/header
> -+--- procps-3.1.15.old/test/ps/fail-nondecimal/header	2003-10-02 11:39:38.000000000 +1000
> -++++ procps-3.1.15/test/ps/fail-nondecimal/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+-
> -+\ No newline at end of file
> -+diff -ruN procps-3.1.15.old/test/ps/fail-nondecimal/setup procps-3.1.15/test/ps/fail-nondecimal/setup
> -+--- procps-3.1.15.old/test/ps/fail-nondecimal/setup	2003-10-02 11:40:07.000000000 +1000
> -++++ procps-3.1.15/test/ps/fail-nondecimal/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,2 +0,0 @@
> -+-ARGS="-o pid:f,comm"
> -+-GOOD=1
> -+diff -ruN procps-3.1.15.old/test/ps/fail-nondecimal/stderr procps-3.1.15/test/ps/fail-nondecimal/stderr
> -+--- procps-3.1.15.old/test/ps/fail-nondecimal/stderr	2003-10-02 11:40:30.000000000 +1000
> -++++ procps-3.1.15/test/ps/fail-nondecimal/stderr	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,23 +0,0 @@
> -+-ERROR: Column widths must be unsigned decimal numbers.
> -+-********* simple selection *********  ********* selection by list *********
> -+--A all processes                      -C by command name
> -+--N negate selection                   -G by real group ID (supports names)
> -+--a all w/ tty except session leaders  -U by real user ID (supports names)
> -+--d all except session leaders         -g by session leader OR by group name
> -+--e all processes                      -p by process ID
> -+-T  all processes on this terminal     -s processes in the sessions given
> -+-a  all w/ tty, including other users  -t by tty
> -+-g  all, even group leaders!           -u by effective user ID (supports names)
> -+-r  only running processes             U  processes for specified users
> -+-x  processes w/o controlling ttys     t  by tty
> -+-*********** output format **********  *********** long options ***********
> -+--o,o user-defined  -f full            --Group --User --pid --cols --ppid
> -+--j,j job control   s  signal          --group --user --sid --rows
> -+--O,O preloaded -o  v  virtual memory  --cumulative --format --deselect
> -+--l,l long          u  user-oriented   --sort --tty --forest --version
> -+--F   extra full    X  registers       --heading --no-heading
> -+-                    ********* misc options *********
> -+--V,V show version       L  list format codes  f  ASCII art forest
> -+--m,m show threads       S  children in sum    -y change -l format
> -+--n,N set namelist file  c  true command name  n  numeric WCHAN,UID
> -+--w,w wide output        e  show environment   -H process hierarchy
> -+diff -ruN procps-3.1.15.old/test/ps/fail-oj/header procps-3.1.15/test/ps/fail-oj/header
> -+--- procps-3.1.15.old/test/ps/fail-oj/header	2003-09-02 13:47:18.000000000 +1000
> -++++ procps-3.1.15/test/ps/fail-oj/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+-
> -+\ No newline at end of file
> -+diff -ruN procps-3.1.15.old/test/ps/fail-oj/setup procps-3.1.15/test/ps/fail-oj/setup
> -+--- procps-3.1.15.old/test/ps/fail-oj/setup	2003-09-02 13:47:54.000000000 +1000
> -++++ procps-3.1.15/test/ps/fail-oj/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,2 +0,0 @@
> -+-ARGS="-o pid -j"
> -+-GOOD=1
> -+diff -ruN procps-3.1.15.old/test/ps/fail-oj/stderr procps-3.1.15/test/ps/fail-oj/stderr
> -+--- procps-3.1.15.old/test/ps/fail-oj/stderr	2003-09-02 13:49:02.000000000 +1000
> -++++ procps-3.1.15/test/ps/fail-oj/stderr	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,23 +0,0 @@
> -+-ERROR: Can't use output modifiers with user-defined output
> -+-********* simple selection *********  ********* selection by list *********
> -+--A all processes                      -C by command name
> -+--N negate selection                   -G by real group ID (supports names)
> -+--a all w/ tty except session leaders  -U by real user ID (supports names)
> -+--d all except session leaders         -g by session leader OR by group name
> -+--e all processes                      -p by process ID
> -+-T  all processes on this terminal     -s processes in the sessions given
> -+-a  all w/ tty, including other users  -t by tty
> -+-g  all, even group leaders!           -u by effective user ID (supports names)
> -+-r  only running processes             U  processes for specified users
> -+-x  processes w/o controlling ttys     t  by tty
> -+-*********** output format **********  *********** long options ***********
> -+--o,o user-defined  -f full            --Group --User --pid --cols --ppid
> -+--j,j job control   s  signal          --group --user --sid --rows
> -+--O,O preloaded -o  v  virtual memory  --cumulative --format --deselect
> -+--l,l long          u  user-oriented   --sort --tty --forest --version
> -+--F   extra full    X  registers       --heading --no-heading
> -+-                    ********* misc options *********
> -+--V,V show version       L  list format codes  f  ASCII art forest
> -+--m,m show threads       S  children in sum    -y change -l format
> -+--n,N set namelist file  c  true command name  n  numeric WCHAN,UID
> -+--w,w wide output        e  show environment   -H process hierarchy
> -+diff -ruN procps-3.1.15.old/test/ps/fail-unknown-sort/header procps-3.1.15/test/ps/fail-unknown-sort/header
> -+--- procps-3.1.15.old/test/ps/fail-unknown-sort/header	2003-10-02 11:49:27.000000000 +1000
> -++++ procps-3.1.15/test/ps/fail-unknown-sort/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+-
> -+\ No newline at end of file
> -+diff -ruN procps-3.1.15.old/test/ps/fail-unknown-sort/setup procps-3.1.15/test/ps/fail-unknown-sort/setup
> -+--- procps-3.1.15.old/test/ps/fail-unknown-sort/setup	2003-10-02 11:49:41.000000000 +1000
> -++++ procps-3.1.15/test/ps/fail-unknown-sort/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,2 +0,0 @@
> -+-ARGS="--sort booger"
> -+-GOOD=1
> -+diff -ruN procps-3.1.15.old/test/ps/fail-unknown-sort/stderr procps-3.1.15/test/ps/fail-unknown-sort/stderr
> -+--- procps-3.1.15.old/test/ps/fail-unknown-sort/stderr	2003-10-02 11:50:09.000000000 +1000
> -++++ procps-3.1.15/test/ps/fail-unknown-sort/stderr	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,23 +0,0 @@
> -+-ERROR: Unknown sort specifier.
> -+-********* simple selection *********  ********* selection by list *********
> -+--A all processes                      -C by command name
> -+--N negate selection                   -G by real group ID (supports names)
> -+--a all w/ tty except session leaders  -U by real user ID (supports names)
> -+--d all except session leaders         -g by session leader OR by group name
> -+--e all processes                      -p by process ID
> -+-T  all processes on this terminal     -s processes in the sessions given
> -+-a  all w/ tty, including other users  -t by tty
> -+-g  all, even group leaders!           -u by effective user ID (supports names)
> -+-r  only running processes             U  processes for specified users
> -+-x  processes w/o controlling ttys     t  by tty
> -+-*********** output format **********  *********** long options ***********
> -+--o,o user-defined  -f full            --Group --User --pid --cols --ppid
> -+--j,j job control   s  signal          --group --user --sid --rows
> -+--O,O preloaded -o  v  virtual memory  --cumulative --format --deselect
> -+--l,l long          u  user-oriented   --sort --tty --forest --version
> -+--F   extra full    X  registers       --heading --no-heading
> -+-                    ********* misc options *********
> -+--V,V show version       L  list format codes  f  ASCII art forest
> -+--m,m show threads       S  children in sum    -y change -l format
> -+--n,N set namelist file  c  true command name  n  numeric WCHAN,UID
> -+--w,w wide output        e  show environment   -H process hierarchy
> -+diff -ruN procps-3.1.15.old/test/ps/fail-unknown-spec/header procps-3.1.15/test/ps/fail-unknown-spec/header
> -+--- procps-3.1.15.old/test/ps/fail-unknown-spec/header	2003-10-02 11:35:33.000000000 +1000
> -++++ procps-3.1.15/test/ps/fail-unknown-spec/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+-
> -+\ No newline at end of file
> -+diff -ruN procps-3.1.15.old/test/ps/fail-unknown-spec/setup procps-3.1.15/test/ps/fail-unknown-spec/setup
> -+--- procps-3.1.15.old/test/ps/fail-unknown-spec/setup	2003-10-02 11:35:52.000000000 +1000
> -++++ procps-3.1.15/test/ps/fail-unknown-spec/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,2 +0,0 @@
> -+-ARGS="-o boogers"
> -+-GOOD=1
> -+diff -ruN procps-3.1.15.old/test/ps/fail-unknown-spec/stderr procps-3.1.15/test/ps/fail-unknown-spec/stderr
> -+--- procps-3.1.15.old/test/ps/fail-unknown-spec/stderr	2003-10-02 11:36:05.000000000 +1000
> -++++ procps-3.1.15/test/ps/fail-unknown-spec/stderr	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,23 +0,0 @@
> -+-ERROR: Unknown user-defined format specifier "boogers".
> -+-********* simple selection *********  ********* selection by list *********
> -+--A all processes                      -C by command name
> -+--N negate selection                   -G by real group ID (supports names)
> -+--a all w/ tty except session leaders  -U by real user ID (supports names)
> -+--d all except session leaders         -g by session leader OR by group name
> -+--e all processes                      -p by process ID
> -+-T  all processes on this terminal     -s processes in the sessions given
> -+-a  all w/ tty, including other users  -t by tty
> -+-g  all, even group leaders!           -u by effective user ID (supports names)
> -+-r  only running processes             U  processes for specified users
> -+-x  processes w/o controlling ttys     t  by tty
> -+-*********** output format **********  *********** long options ***********
> -+--o,o user-defined  -f full            --Group --User --pid --cols --ppid
> -+--j,j job control   s  signal          --group --user --sid --rows
> -+--O,O preloaded -o  v  virtual memory  --cumulative --format --deselect
> -+--l,l long          u  user-oriented   --sort --tty --forest --version
> -+--F   extra full    X  registers       --heading --no-heading
> -+-                    ********* misc options *********
> -+--V,V show version       L  list format codes  f  ASCII art forest
> -+--m,m show threads       S  children in sum    -y change -l format
> -+--n,N set namelist file  c  true command name  n  numeric WCHAN,UID
> -+--w,w wide output        e  show environment   -H process hierarchy
> -+diff -ruN procps-3.1.15.old/test/ps/fail-xx/header procps-3.1.15/test/ps/fail-xx/header
> -+--- procps-3.1.15.old/test/ps/fail-xx/header	2003-09-02 09:43:13.000000000 +1000
> -++++ procps-3.1.15/test/ps/fail-xx/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+-
> -+\ No newline at end of file
> -+diff -ruN procps-3.1.15.old/test/ps/fail-xx/setup procps-3.1.15/test/ps/fail-xx/setup
> -+--- procps-3.1.15.old/test/ps/fail-xx/setup	2003-09-02 09:41:38.000000000 +1000
> -++++ procps-3.1.15/test/ps/fail-xx/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,2 +0,0 @@
> -+-ARGS="x -x"
> -+-GOOD=1
> -+diff -ruN procps-3.1.15.old/test/ps/fail-xx/stderr procps-3.1.15/test/ps/fail-xx/stderr
> -+--- procps-3.1.15.old/test/ps/fail-xx/stderr	2003-09-02 09:42:04.000000000 +1000
> -++++ procps-3.1.15/test/ps/fail-xx/stderr	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,23 +0,0 @@
> -+-ERROR: Unsupported SysV option.
> -+-********* simple selection *********  ********* selection by list *********
> -+--A all processes                      -C by command name
> -+--N negate selection                   -G by real group ID (supports names)
> -+--a all w/ tty except session leaders  -U by real user ID (supports names)
> -+--d all except session leaders         -g by session leader OR by group name
> -+--e all processes                      -p by process ID
> -+-T  all processes on this terminal     -s processes in the sessions given
> -+-a  all w/ tty, including other users  -t by tty
> -+-g  all, even group leaders!           -u by effective user ID (supports names)
> -+-r  only running processes             U  processes for specified users
> -+-x  processes w/o controlling ttys     t  by tty
> -+-*********** output format **********  *********** long options ***********
> -+--o,o user-defined  -f full            --Group --User --pid --cols --ppid
> -+--j,j job control   s  signal          --group --user --sid --rows
> -+--O,O preloaded -o  v  virtual memory  --cumulative --format --deselect
> -+--l,l long          u  user-oriented   --sort --tty --forest --version
> -+--F   extra full    X  registers       --heading --no-heading
> -+-                    ********* misc options *********
> -+--V,V show version       L  list format codes  f  ASCII art forest
> -+--m,m show threads       S  children in sum    -y change -l format
> -+--n,N set namelist file  c  true command name  n  numeric WCHAN,UID
> -+--w,w wide output        e  show environment   -H process hierarchy
> -+diff -ruN procps-3.1.15.old/test/ps/hpux-H-simple/setup procps-3.1.15/test/ps/hpux-H-simple/setup
> -+--- procps-3.1.15.old/test/ps/hpux-H-simple/setup	2003-09-03 10:15:28.000000000 +1000
> -++++ procps-3.1.15/test/ps/hpux-H-simple/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,14 +0,0 @@
> -+-ARGS="-HC fork-you -o comm="
> -+-GOOD=0
> -+-EVALFN=1
> -+-KILLFN=1
> -+-
> -+-./fork-you 3 4 5 6 7 8 9
> -+-
> -+-evalfn () {
> -+-  diff -Naurd stdout $TESTNAME/stdout>>  /dev/null
> -+-}
> -+-
> -+-killfn () {
> -+-  killall -9 fork-you
> -+-}
> -+diff -ruN procps-3.1.15.old/test/ps/hpux-H-simple/stdout procps-3.1.15/test/ps/hpux-H-simple/stdout
> -+--- procps-3.1.15.old/test/ps/hpux-H-simple/stdout	2003-09-03 09:51:00.000000000 +1000
> -++++ procps-3.1.15/test/ps/hpux-H-simple/stdout	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,9 +0,0 @@
> -+-fork-you
> -+-  fork-you
> -+-  fork-you
> -+-  fork-you
> -+-  fork-you
> -+-  fork-you
> -+-  fork-you
> -+-  fork-you
> -+-  fork-you
> -+diff -ruN procps-3.1.15.old/test/ps/jyclf-header/header procps-3.1.15/test/ps/jyclf-header/header
> -+--- procps-3.1.15.old/test/ps/jyclf-header/header	2003-09-02 13:57:34.000000000 +1000
> -++++ procps-3.1.15/test/ps/jyclf-header/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- S UID PID PPID PGID SID CLS PRI RSS SZ WCHAN STIME TTY TIME CMD
> -+diff -ruN procps-3.1.15.old/test/ps/jyclf-header/setup procps-3.1.15/test/ps/jyclf-header/setup
> -+--- procps-3.1.15.old/test/ps/jyclf-header/setup	2003-09-02 13:55:34.000000000 +1000
> -++++ procps-3.1.15/test/ps/jyclf-header/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,2 +0,0 @@
> -+-ARGS="-jyclf"
> -+-GOOD=0
> -+diff -ruN procps-3.1.15.old/test/ps/linux-lf-header/header procps-3.1.15/test/ps/linux-lf-header/header
> -+--- procps-3.1.15.old/test/ps/linux-lf-header/header	2003-09-02 14:03:14.000000000 +1000
> -++++ procps-3.1.15/test/ps/linux-lf-header/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- F S USER PID PPID C PRI NI P SZ WCHAN STIME TTY TIME CMD
> -+diff -ruN procps-3.1.15.old/test/ps/linux-lf-header/setup procps-3.1.15/test/ps/linux-lf-header/setup
> -+--- procps-3.1.15.old/test/ps/linux-lf-header/setup	2003-09-02 14:04:14.000000000 +1000
> -++++ procps-3.1.15/test/ps/linux-lf-header/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,3 +0,0 @@
> -+-export CMD_ENV=linux
> -+-ARGS="-lf"
> -+-GOOD=0
> -+diff -ruN procps-3.1.15.old/test/ps/mH-mix/header procps-3.1.15/test/ps/mH-mix/header
> -+--- procps-3.1.15.old/test/ps/mH-mix/header	2003-10-02 12:38:52.000000000 +1000
> -++++ procps-3.1.15/test/ps/mH-mix/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+-
> -+\ No newline at end of file
> -+diff -ruN procps-3.1.15.old/test/ps/mH-mix/setup procps-3.1.15/test/ps/mH-mix/setup
> -+--- procps-3.1.15.old/test/ps/mH-mix/setup	2003-10-02 12:39:25.000000000 +1000
> -++++ procps-3.1.15/test/ps/mH-mix/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,2 +0,0 @@
> -+-ARGS="mH"
> -+-GOOD=1
> -+diff -ruN procps-3.1.15.old/test/ps/mH-mix/stderr procps-3.1.15/test/ps/mH-mix/stderr
> -+--- procps-3.1.15.old/test/ps/mH-mix/stderr	2003-10-02 12:40:18.000000000 +1000
> -++++ procps-3.1.15/test/ps/mH-mix/stderr	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,23 +0,0 @@
> -+-ERROR: Thread flags conflict; can't use H with m or -m.
> -+-********* simple selection *********  ********* selection by list *********
> -+--A all processes                      -C by command name
> -+--N negate selection                   -G by real group ID (supports names)
> -+--a all w/ tty except session leaders  -U by real user ID (supports names)
> -+--d all except session leaders         -g by session leader OR by group name
> -+--e all processes                      -p by process ID
> -+-T  all processes on this terminal     -s processes in the sessions given
> -+-a  all w/ tty, including other users  -t by tty
> -+-g  all, even group leaders!           -u by effective user ID (supports names)
> -+-r  only running processes             U  processes for specified users
> -+-x  processes w/o controlling ttys     t  by tty
> -+-*********** output format **********  *********** long options ***********
> -+--o,o user-defined  -f full            --Group --User --pid --cols --ppid
> -+--j,j job control   s  signal          --group --user --sid --rows
> -+--O,O preloaded -o  v  virtual memory  --cumulative --format --deselect
> -+--l,l long          u  user-oriented   --sort --tty --forest --version
> -+--F   extra full    X  registers       --heading --no-heading
> -+-                    ********* misc options *********
> -+--V,V show version       L  list format codes  f  ASCII art forest
> -+--m,m show threads       S  children in sum    -y change -l format
> -+--n,N set namelist file  c  true command name  n  numeric WCHAN,UID
> -+--w,w wide output        e  show environment   -H process hierarchy
> -+diff -ruN procps-3.1.15.old/test/ps/mH-mix2/header procps-3.1.15/test/ps/mH-mix2/header
> -+--- procps-3.1.15.old/test/ps/mH-mix2/header	2003-10-02 12:38:58.000000000 +1000
> -++++ procps-3.1.15/test/ps/mH-mix2/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+-
> -+\ No newline at end of file
> -+diff -ruN procps-3.1.15.old/test/ps/mH-mix2/setup procps-3.1.15/test/ps/mH-mix2/setup
> -+--- procps-3.1.15.old/test/ps/mH-mix2/setup	2003-10-02 12:39:15.000000000 +1000
> -++++ procps-3.1.15/test/ps/mH-mix2/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,2 +0,0 @@
> -+-ARGS="-m H"
> -+-GOOD=1
> -+diff -ruN procps-3.1.15.old/test/ps/mH-mix2/stderr procps-3.1.15/test/ps/mH-mix2/stderr
> -+--- procps-3.1.15.old/test/ps/mH-mix2/stderr	2003-10-02 12:40:20.000000000 +1000
> -++++ procps-3.1.15/test/ps/mH-mix2/stderr	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,23 +0,0 @@
> -+-ERROR: Thread flags conflict; can't use H with m or -m.
> -+-********* simple selection *********  ********* selection by list *********
> -+--A all processes                      -C by command name
> -+--N negate selection                   -G by real group ID (supports names)
> -+--a all w/ tty except session leaders  -U by real user ID (supports names)
> -+--d all except session leaders         -g by session leader OR by group name
> -+--e all processes                      -p by process ID
> -+-T  all processes on this terminal     -s processes in the sessions given
> -+-a  all w/ tty, including other users  -t by tty
> -+-g  all, even group leaders!           -u by effective user ID (supports names)
> -+-r  only running processes             U  processes for specified users
> -+-x  processes w/o controlling ttys     t  by tty
> -+-*********** output format **********  *********** long options ***********
> -+--o,o user-defined  -f full            --Group --User --pid --cols --ppid
> -+--j,j job control   s  signal          --group --user --sid --rows
> -+--O,O preloaded -o  v  virtual memory  --cumulative --format --deselect
> -+--l,l long          u  user-oriented   --sort --tty --forest --version
> -+--F   extra full    X  registers       --heading --no-heading
> -+-                    ********* misc options *********
> -+--V,V show version       L  list format codes  f  ASCII art forest
> -+--m,m show threads       S  children in sum    -y change -l format
> -+--n,N set namelist file  c  true command name  n  numeric WCHAN,UID
> -+--w,w wide output        e  show environment   -H process hierarchy
> -+diff -ruN procps-3.1.15.old/test/ps/mm-mix/header procps-3.1.15/test/ps/mm-mix/header
> -+--- procps-3.1.15.old/test/ps/mm-mix/header	2003-10-02 12:37:41.000000000 +1000
> -++++ procps-3.1.15/test/ps/mm-mix/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+-
> -+\ No newline at end of file
> -+diff -ruN procps-3.1.15.old/test/ps/mm-mix/setup procps-3.1.15/test/ps/mm-mix/setup
> -+--- procps-3.1.15.old/test/ps/mm-mix/setup	2003-10-02 12:37:57.000000000 +1000
> -++++ procps-3.1.15/test/ps/mm-mix/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,2 +0,0 @@
> -+-ARGS="-m m"
> -+-GOOD=1
> -+diff -ruN procps-3.1.15.old/test/ps/mm-mix/stderr procps-3.1.15/test/ps/mm-mix/stderr
> -+--- procps-3.1.15.old/test/ps/mm-mix/stderr	2003-10-02 12:38:11.000000000 +1000
> -++++ procps-3.1.15/test/ps/mm-mix/stderr	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,23 +0,0 @@
> -+-ERROR: Thread flags conflict; can't use both m and -m.
> -+-********* simple selection *********  ********* selection by list *********
> -+--A all processes                      -C by command name
> -+--N negate selection                   -G by real group ID (supports names)
> -+--a all w/ tty except session leaders  -U by real user ID (supports names)
> -+--d all except session leaders         -g by session leader OR by group name
> -+--e all processes                      -p by process ID
> -+-T  all processes on this terminal     -s processes in the sessions given
> -+-a  all w/ tty, including other users  -t by tty
> -+-g  all, even group leaders!           -u by effective user ID (supports names)
> -+-r  only running processes             U  processes for specified users
> -+-x  processes w/o controlling ttys     t  by tty
> -+-*********** output format **********  *********** long options ***********
> -+--o,o user-defined  -f full            --Group --User --pid --cols --ppid
> -+--j,j job control   s  signal          --group --user --sid --rows
> -+--O,O preloaded -o  v  virtual memory  --cumulative --format --deselect
> -+--l,l long          u  user-oriented   --sort --tty --forest --version
> -+--F   extra full    X  registers       --heading --no-heading
> -+-                    ********* misc options *********
> -+--V,V show version       L  list format codes  f  ASCII art forest
> -+--m,m show threads       S  children in sum    -y change -l format
> -+--n,N set namelist file  c  true command name  n  numeric WCHAN,UID
> -+--w,w wide output        e  show environment   -H process hierarchy
> -+diff -ruN procps-3.1.15.old/test/ps/multi-sort/header procps-3.1.15/test/ps/multi-sort/header
> -+--- procps-3.1.15.old/test/ps/multi-sort/header	2003-10-02 12:08:50.000000000 +1000
> -++++ procps-3.1.15/test/ps/multi-sort/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+-
> -+\ No newline at end of file
> -+diff -ruN procps-3.1.15.old/test/ps/multi-sort/setup procps-3.1.15/test/ps/multi-sort/setup
> -+--- procps-3.1.15.old/test/ps/multi-sort/setup	2003-10-02 12:09:10.000000000 +1000
> -++++ procps-3.1.15/test/ps/multi-sort/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,2 +0,0 @@
> -+-ARGS="--sort wchan --sort sess"
> -+-GOOD=1
> -+diff -ruN procps-3.1.15.old/test/ps/multi-sort/stderr procps-3.1.15/test/ps/multi-sort/stderr
> -+--- procps-3.1.15.old/test/ps/multi-sort/stderr	2003-10-02 12:09:23.000000000 +1000
> -++++ procps-3.1.15/test/ps/multi-sort/stderr	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,23 +0,0 @@
> -+-ERROR: Multiple sort options.
> -+-********* simple selection *********  ********* selection by list *********
> -+--A all processes                      -C by command name
> -+--N negate selection                   -G by real group ID (supports names)
> -+--a all w/ tty except session leaders  -U by real user ID (supports names)
> -+--d all except session leaders         -g by session leader OR by group name
> -+--e all processes                      -p by process ID
> -+-T  all processes on this terminal     -s processes in the sessions given
> -+-a  all w/ tty, including other users  -t by tty
> -+-g  all, even group leaders!           -u by effective user ID (supports names)
> -+-r  only running processes             U  processes for specified users
> -+-x  processes w/o controlling ttys     t  by tty
> -+-*********** output format **********  *********** long options ***********
> -+--o,o user-defined  -f full            --Group --User --pid --cols --ppid
> -+--j,j job control   s  signal          --group --user --sid --rows
> -+--O,O preloaded -o  v  virtual memory  --cumulative --format --deselect
> -+--l,l long          u  user-oriented   --sort --tty --forest --version
> -+--F   extra full    X  registers       --heading --no-heading
> -+-                    ********* misc options *********
> -+--V,V show version       L  list format codes  f  ASCII art forest
> -+--m,m show threads       S  children in sum    -y change -l format
> -+--n,N set namelist file  c  true command name  n  numeric WCHAN,UID
> -+--w,w wide output        e  show environment   -H process hierarchy
> -+diff -ruN procps-3.1.15.old/test/ps/o-O/header procps-3.1.15/test/ps/o-O/header
> -+--- procps-3.1.15.old/test/ps/o-O/header	2003-10-02 12:03:27.000000000 +1000
> -++++ procps-3.1.15/test/ps/o-O/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+-
> -+\ No newline at end of file
> -+diff -ruN procps-3.1.15.old/test/ps/o-O/setup procps-3.1.15/test/ps/o-O/setup
> -+--- procps-3.1.15.old/test/ps/o-O/setup	2003-10-02 12:04:40.000000000 +1000
> -++++ procps-3.1.15/test/ps/o-O/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,2 +0,0 @@
> -+-ARGS="-o wchan -O sess"
> -+-GOOD=1
> -+diff -ruN procps-3.1.15.old/test/ps/o-O/stderr procps-3.1.15/test/ps/o-O/stderr
> -+--- procps-3.1.15.old/test/ps/o-O/stderr	2003-10-02 12:06:35.000000000 +1000
> -++++ procps-3.1.15/test/ps/o-O/stderr	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,23 +0,0 @@
> -+-ERROR: option -O can not follow other format options.
> -+-********* simple selection *********  ********* selection by list *********
> -+--A all processes                      -C by command name
> -+--N negate selection                   -G by real group ID (supports names)
> -+--a all w/ tty except session leaders  -U by real user ID (supports names)
> -+--d all except session leaders         -g by session leader OR by group name
> -+--e all processes                      -p by process ID
> -+-T  all processes on this terminal     -s processes in the sessions given
> -+-a  all w/ tty, including other users  -t by tty
> -+-g  all, even group leaders!           -u by effective user ID (supports names)
> -+-r  only running processes             U  processes for specified users
> -+-x  processes w/o controlling ttys     t  by tty
> -+-*********** output format **********  *********** long options ***********
> -+--o,o user-defined  -f full            --Group --User --pid --cols --ppid
> -+--j,j job control   s  signal          --group --user --sid --rows
> -+--O,O preloaded -o  v  virtual memory  --cumulative --format --deselect
> -+--l,l long          u  user-oriented   --sort --tty --forest --version
> -+--F   extra full    X  registers       --heading --no-heading
> -+-                    ********* misc options *********
> -+--V,V show version       L  list format codes  f  ASCII art forest
> -+--m,m show threads       S  children in sum    -y change -l format
> -+--n,N set namelist file  c  true command name  n  numeric WCHAN,UID
> -+--w,w wide output        e  show environment   -H process hierarchy
> -+diff -ruN procps-3.1.15.old/test/ps/o-o/header procps-3.1.15/test/ps/o-o/header
> -+--- procps-3.1.15.old/test/ps/o-o/header	2003-10-02 12:07:18.000000000 +1000
> -++++ procps-3.1.15/test/ps/o-o/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- WCHAN SESS
> -+diff -ruN procps-3.1.15.old/test/ps/o-o/setup procps-3.1.15/test/ps/o-o/setup
> -+--- procps-3.1.15.old/test/ps/o-o/setup	2003-10-02 12:07:08.000000000 +1000
> -++++ procps-3.1.15/test/ps/o-o/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,2 +0,0 @@
> -+-ARGS="-o wchan -o sess"
> -+-GOOD=0
> -+diff -ruN procps-3.1.15.old/test/ps/old-m-1/header procps-3.1.15/test/ps/old-m-1/header
> -+--- procps-3.1.15.old/test/ps/old-m-1/header	2003-09-02 09:46:21.000000000 +1000
> -++++ procps-3.1.15/test/ps/old-m-1/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- PID TTY MAJFLT MINFLT TRS DRS SIZE SWAP RSS SHRD LIB DT COMMAND
> -+diff -ruN procps-3.1.15.old/test/ps/old-m-1/setup procps-3.1.15/test/ps/old-m-1/setup
> -+--- procps-3.1.15.old/test/ps/old-m-1/setup	2003-09-02 09:46:06.000000000 +1000
> -++++ procps-3.1.15/test/ps/old-m-1/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,3 +0,0 @@
> -+-export CMD_ENV=old
> -+-ARGS="-m"
> -+-GOOD=0
> -+diff -ruN procps-3.1.15.old/test/ps/old-m-2/header procps-3.1.15/test/ps/old-m-2/header
> -+--- procps-3.1.15.old/test/ps/old-m-2/header	2003-09-02 09:47:13.000000000 +1000
> -++++ procps-3.1.15/test/ps/old-m-2/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- PID TTY MAJFLT MINFLT TRS DRS SIZE SWAP RSS SHRD LIB DT COMMAND
> -+diff -ruN procps-3.1.15.old/test/ps/old-m-2/setup procps-3.1.15/test/ps/old-m-2/setup
> -+--- procps-3.1.15.old/test/ps/old-m-2/setup	2003-09-02 09:47:47.000000000 +1000
> -++++ procps-3.1.15/test/ps/old-m-2/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,4 +0,0 @@
> -+-export CMD_ENV=unix
> -+-export PS_PERSONALITY=old
> -+-ARGS="-m"
> -+-GOOD=0
> -+diff -ruN procps-3.1.15.old/test/ps/old-m-3/header procps-3.1.15/test/ps/old-m-3/header
> -+--- procps-3.1.15.old/test/ps/old-m-3/header	2003-09-02 09:47:15.000000000 +1000
> -++++ procps-3.1.15/test/ps/old-m-3/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- PID TTY MAJFLT MINFLT TRS DRS SIZE SWAP RSS SHRD LIB DT COMMAND
> -+diff -ruN procps-3.1.15.old/test/ps/old-m-3/setup procps-3.1.15/test/ps/old-m-3/setup
> -+--- procps-3.1.15.old/test/ps/old-m-3/setup	2003-09-02 09:47:58.000000000 +1000
> -++++ procps-3.1.15/test/ps/old-m-3/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,3 +0,0 @@
> -+-export CMD_ENV=old
> -+-ARGS="m"
> -+-GOOD=0
> -+diff -ruN procps-3.1.15.old/test/ps/old-m-4/header procps-3.1.15/test/ps/old-m-4/header
> -+--- procps-3.1.15.old/test/ps/old-m-4/header	2003-09-02 09:47:16.000000000 +1000
> -++++ procps-3.1.15/test/ps/old-m-4/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- PID TTY MAJFLT MINFLT TRS DRS SIZE SWAP RSS SHRD LIB DT COMMAND
> -+diff -ruN procps-3.1.15.old/test/ps/old-m-4/setup procps-3.1.15/test/ps/old-m-4/setup
> -+--- procps-3.1.15.old/test/ps/old-m-4/setup	2003-09-02 09:50:11.000000000 +1000
> -++++ procps-3.1.15/test/ps/old-m-4/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,3 +0,0 @@
> -+-export I_WANT_A_BROKEN_PS=
> -+-ARGS="-m"
> -+-GOOD=0
> -+diff -ruN procps-3.1.15.old/test/ps/pcpu-sort-threaded/setup procps-3.1.15/test/ps/pcpu-sort-threaded/setup
> -+--- procps-3.1.15.old/test/ps/pcpu-sort-threaded/setup	2003-10-19 13:48:43.000000000 +1000
> -++++ procps-3.1.15/test/ps/pcpu-sort-threaded/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,8 +0,0 @@
> -+-ARGS="-e --sort=pcpu -o cp="
> -+-GOOD=0
> -+-EVALFN=1
> -+-
> -+-evalfn () {
> -+-  sort -n<  stdout>  sorted.tmp
> -+-  diff -Naurd stdout sorted.tmp>>  /dev/null
> -+-}
> -+diff -ruN procps-3.1.15.old/test/ps/suv-conflicts/header procps-3.1.15/test/ps/suv-conflicts/header
> -+--- procps-3.1.15.old/test/ps/suv-conflicts/header	2003-10-02 12:12:30.000000000 +1000
> -++++ procps-3.1.15/test/ps/suv-conflicts/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+-
> -+\ No newline at end of file
> -+diff -ruN procps-3.1.15.old/test/ps/suv-conflicts/setup procps-3.1.15/test/ps/suv-conflicts/setup
> -+--- procps-3.1.15.old/test/ps/suv-conflicts/setup	2003-10-02 12:13:26.000000000 +1000
> -++++ procps-3.1.15/test/ps/suv-conflicts/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,2 +0,0 @@
> -+-ARGS="suv"
> -+-GOOD=1
> -+diff -ruN procps-3.1.15.old/test/ps/suv-conflicts/stderr procps-3.1.15/test/ps/suv-conflicts/stderr
> -+--- procps-3.1.15.old/test/ps/suv-conflicts/stderr	2003-10-02 12:13:41.000000000 +1000
> -++++ procps-3.1.15/test/ps/suv-conflicts/stderr	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,23 +0,0 @@
> -+-ERROR: Conflicting format options.
> -+-********* simple selection *********  ********* selection by list *********
> -+--A all processes                      -C by command name
> -+--N negate selection                   -G by real group ID (supports names)
> -+--a all w/ tty except session leaders  -U by real user ID (supports names)
> -+--d all except session leaders         -g by session leader OR by group name
> -+--e all processes                      -p by process ID
> -+-T  all processes on this terminal     -s processes in the sessions given
> -+-a  all w/ tty, including other users  -t by tty
> -+-g  all, even group leaders!           -u by effective user ID (supports names)
> -+-r  only running processes             U  processes for specified users
> -+-x  processes w/o controlling ttys     t  by tty
> -+-*********** output format **********  *********** long options ***********
> -+--o,o user-defined  -f full            --Group --User --pid --cols --ppid
> -+--j,j job control   s  signal          --group --user --sid --rows
> -+--O,O preloaded -o  v  virtual memory  --cumulative --format --deselect
> -+--l,l long          u  user-oriented   --sort --tty --forest --version
> -+--F   extra full    X  registers       --heading --no-heading
> -+-                    ********* misc options *********
> -+--V,V show version       L  list format codes  f  ASCII art forest
> -+--m,m show threads       S  children in sum    -y change -l format
> -+--n,N set namelist file  c  true command name  n  numeric WCHAN,UID
> -+--w,w wide output        e  show environment   -H process hierarchy
> -+diff -ruN procps-3.1.15.old/test/ps/sysv-selection/header procps-3.1.15/test/ps/sysv-selection/header
> -+--- procps-3.1.15.old/test/ps/sysv-selection/header	2003-09-04 16:13:34.000000000 +1000
> -++++ procps-3.1.15/test/ps/sysv-selection/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- PID TTY TIME CMD
> -+diff -ruN procps-3.1.15.old/test/ps/sysv-selection/setup procps-3.1.15/test/ps/sysv-selection/setup
> -+--- procps-3.1.15.old/test/ps/sysv-selection/setup	2003-09-13 13:59:04.000000000 +1000
> -++++ procps-3.1.15/test/ps/sysv-selection/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,25 +0,0 @@
> -+-ARGS="-m"
> -+-GOOD=0
> -+-EVALFN=1
> -+-KILLFN=1
> -+-
> -+-rm -f misc.tmp ready.tmp typescript.tmp
> -+-
> -+-./got-no-tty
> -+-# this'll do but... WHERE ARE THE MAN PAGES FOR PTY STUFF???
> -+-(SHELL=`pwd`/script-child script typescript.tmp&>/dev/null)&
> -+-while [ ! -f ready.tmp ] ; do sleep 0.01 ; done
> -+-. ready.tmp
> -+-
> -+-evalfn () {
> -+-   THIS_TTY=`tty | colrm 1 5`
> -+-   lines1=`awk '{print $2}'<  stdout | sort -u | egrep "^($THIS_TTY)$"               | wc -l`
> -+-   lines3=`awk '{print $2}'<  stdout | sort -u | egrep "^($SHELL_TTY|$THIS_TTY|\?)$" | wc -l`
> -+-   [ $lines1 == 1 ]&&  [ $lines3 == 1 ]
> -+-}
> -+-
> -+-killfn () {
> -+-  killall -9 got-no-tty
> -+-  kill -9 $SHELL_PID  # the others should freely die
> -+-  rm -f misc.tmp ready.tmp typescript.tmp
> -+-}
> -+diff -ruN procps-3.1.15.old/test/ps/thread-nosort-H/header procps-3.1.15/test/ps/thread-nosort-H/header
> -+--- procps-3.1.15.old/test/ps/thread-nosort-H/header	2003-10-20 10:57:52.000000000 +1000
> -++++ procps-3.1.15/test/ps/thread-nosort-H/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- PID TTY STAT TIME COMMAND
> -+diff -ruN procps-3.1.15.old/test/ps/thread-nosort-H/setup procps-3.1.15/test/ps/thread-nosort-H/setup
> -+--- procps-3.1.15.old/test/ps/thread-nosort-H/setup	2003-10-20 10:50:16.000000000 +1000
> -++++ procps-3.1.15/test/ps/thread-nosort-H/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,14 +0,0 @@
> -+-ARGS="-C clone-once H"
> -+-GOOD=0
> -+-EVALFN=1
> -+-KILLFN=1
> -+-
> -+-./clone-once
> -+-
> -+-evalfn () {
> -+-   [ `wc -l<  stdout` == 3 ]
> -+-}
> -+-
> -+-killfn () {
> -+-  killall -9 clone-once
> -+-}
> -+diff -ruN procps-3.1.15.old/test/ps/thread-nosort-HL/header procps-3.1.15/test/ps/thread-nosort-HL/header
> -+--- procps-3.1.15.old/test/ps/thread-nosort-HL/header	2003-10-20 10:57:52.000000000 +1000
> -++++ procps-3.1.15/test/ps/thread-nosort-HL/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- PID LWP TTY STAT TIME COMMAND
> -+diff -ruN procps-3.1.15.old/test/ps/thread-nosort-HL/setup procps-3.1.15/test/ps/thread-nosort-HL/setup
> -+--- procps-3.1.15.old/test/ps/thread-nosort-HL/setup	2003-10-20 10:50:16.000000000 +1000
> -++++ procps-3.1.15/test/ps/thread-nosort-HL/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,14 +0,0 @@
> -+-ARGS="-C clone-once H -L"
> -+-GOOD=0
> -+-EVALFN=1
> -+-KILLFN=1
> -+-
> -+-./clone-once
> -+-
> -+-evalfn () {
> -+-   [ `wc -l<  stdout` == 3 ]
> -+-}
> -+-
> -+-killfn () {
> -+-  killall -9 clone-once
> -+-}
> -+diff -ruN procps-3.1.15.old/test/ps/thread-nosort-Hm/setup procps-3.1.15/test/ps/thread-nosort-Hm/setup
> -+--- procps-3.1.15.old/test/ps/thread-nosort-Hm/setup	2003-10-20 10:50:16.000000000 +1000
> -++++ procps-3.1.15/test/ps/thread-nosort-Hm/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,2 +0,0 @@
> -+-ARGS="-C clone-once Hm"
> -+-GOOD=1
> -+diff -ruN procps-3.1.15.old/test/ps/thread-nosort-Hm/stderr procps-3.1.15/test/ps/thread-nosort-Hm/stderr
> -+--- procps-3.1.15.old/test/ps/thread-nosort-Hm/stderr	2003-10-20 10:58:35.000000000 +1000
> -++++ procps-3.1.15/test/ps/thread-nosort-Hm/stderr	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,23 +0,0 @@
> -+-ERROR: Thread flags conflict; can't use H with m or -m.
> -+-********* simple selection *********  ********* selection by list *********
> -+--A all processes                      -C by command name
> -+--N negate selection                   -G by real group ID (supports names)
> -+--a all w/ tty except session leaders  -U by real user ID (supports names)
> -+--d all except session leaders         -g by session leader OR by group name
> -+--e all processes                      -p by process ID
> -+-T  all processes on this terminal     -s processes in the sessions given
> -+-a  all w/ tty, including other users  -t by tty
> -+-g  all, even group leaders!           -u by effective user ID (supports names)
> -+-r  only running processes             U  processes for specified users
> -+-x  processes w/o controlling ttys     t  by tty
> -+-*********** output format **********  *********** long options ***********
> -+--o,o user-defined  -f full            --Group --User --pid --cols --ppid
> -+--j,j job control   s  signal          --group --user --sid --rows
> -+--O,O preloaded -o  v  virtual memory  --cumulative --format --deselect
> -+--l,l long          u  user-oriented   --sort --tty --forest --version
> -+--F   extra full    X  registers       --heading --no-heading
> -+-                    ********* misc options *********
> -+--V,V show version       L  list format codes  f  ASCII art forest
> -+--m,m show threads       S  children in sum    -y change -l format
> -+--n,N set namelist file  c  true command name  n  numeric WCHAN,UID
> -+--w,w wide output        e  show environment   -H process hierarchy
> -+diff -ruN procps-3.1.15.old/test/ps/thread-nosort-L/header procps-3.1.15/test/ps/thread-nosort-L/header
> -+--- procps-3.1.15.old/test/ps/thread-nosort-L/header	2003-10-20 10:57:52.000000000 +1000
> -++++ procps-3.1.15/test/ps/thread-nosort-L/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- PID LWP TTY TIME CMD
> -+diff -ruN procps-3.1.15.old/test/ps/thread-nosort-L/setup procps-3.1.15/test/ps/thread-nosort-L/setup
> -+--- procps-3.1.15.old/test/ps/thread-nosort-L/setup	2003-10-20 10:50:16.000000000 +1000
> -++++ procps-3.1.15/test/ps/thread-nosort-L/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,14 +0,0 @@
> -+-ARGS="-C clone-once -L"
> -+-GOOD=0
> -+-EVALFN=1
> -+-KILLFN=1
> -+-
> -+-./clone-once
> -+-
> -+-evalfn () {
> -+-   [ `wc -l<  stdout` == 3 ]
> -+-}
> -+-
> -+-killfn () {
> -+-  killall -9 clone-once
> -+-}
> -+diff -ruN procps-3.1.15.old/test/ps/thread-nosort-default/header procps-3.1.15/test/ps/thread-nosort-default/header
> -+--- procps-3.1.15.old/test/ps/thread-nosort-default/header	2003-10-20 10:57:53.000000000 +1000
> -++++ procps-3.1.15/test/ps/thread-nosort-default/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- PID TTY TIME CMD
> -+diff -ruN procps-3.1.15.old/test/ps/thread-nosort-default/setup procps-3.1.15/test/ps/thread-nosort-default/setup
> -+--- procps-3.1.15.old/test/ps/thread-nosort-default/setup	2003-10-20 10:50:16.000000000 +1000
> -++++ procps-3.1.15/test/ps/thread-nosort-default/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,14 +0,0 @@
> -+-ARGS="-C clone-once"
> -+-GOOD=0
> -+-EVALFN=1
> -+-KILLFN=1
> -+-
> -+-./clone-once
> -+-
> -+-evalfn () {
> -+-   [ `wc -l<  stdout` == 2 ]
> -+-}
> -+-
> -+-killfn () {
> -+-  killall -9 clone-once
> -+-}
> -+diff -ruN procps-3.1.15.old/test/ps/thread-nosort-m/header procps-3.1.15/test/ps/thread-nosort-m/header
> -+--- procps-3.1.15.old/test/ps/thread-nosort-m/header	2003-10-20 10:57:53.000000000 +1000
> -++++ procps-3.1.15/test/ps/thread-nosort-m/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- PID TTY STAT TIME COMMAND
> -+diff -ruN procps-3.1.15.old/test/ps/thread-nosort-m/setup procps-3.1.15/test/ps/thread-nosort-m/setup
> -+--- procps-3.1.15.old/test/ps/thread-nosort-m/setup	2003-10-20 10:50:16.000000000 +1000
> -++++ procps-3.1.15/test/ps/thread-nosort-m/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,14 +0,0 @@
> -+-ARGS="-C clone-once m"
> -+-GOOD=0
> -+-EVALFN=1
> -+-KILLFN=1
> -+-
> -+-./clone-once
> -+-
> -+-evalfn () {
> -+-   [ `wc -l<  stdout` == 4 ]
> -+-}
> -+-
> -+-killfn () {
> -+-  killall -9 clone-once
> -+-}
> -+diff -ruN procps-3.1.15.old/test/ps/thread-nosort-mL/header procps-3.1.15/test/ps/thread-nosort-mL/header
> -+--- procps-3.1.15.old/test/ps/thread-nosort-mL/header	2003-10-20 10:57:53.000000000 +1000
> -++++ procps-3.1.15/test/ps/thread-nosort-mL/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- PID LWP TTY TIME CMD
> -+diff -ruN procps-3.1.15.old/test/ps/thread-nosort-mL/setup procps-3.1.15/test/ps/thread-nosort-mL/setup
> -+--- procps-3.1.15.old/test/ps/thread-nosort-mL/setup	2003-10-20 10:50:16.000000000 +1000
> -++++ procps-3.1.15/test/ps/thread-nosort-mL/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,14 +0,0 @@
> -+-ARGS="-C clone-once -mL"
> -+-GOOD=0
> -+-EVALFN=1
> -+-KILLFN=1
> -+-
> -+-./clone-once
> -+-
> -+-evalfn () {
> -+-   [ `wc -l<  stdout` == 4 ]
> -+-}
> -+-
> -+-killfn () {
> -+-  killall -9 clone-once
> -+-}
> -+diff -ruN procps-3.1.15.old/test/ps/thread-sorted-H/header procps-3.1.15/test/ps/thread-sorted-H/header
> -+--- procps-3.1.15.old/test/ps/thread-sorted-H/header	2003-10-20 10:57:53.000000000 +1000
> -++++ procps-3.1.15/test/ps/thread-sorted-H/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- PID TTY STAT TIME COMMAND
> -+diff -ruN procps-3.1.15.old/test/ps/thread-sorted-H/setup procps-3.1.15/test/ps/thread-sorted-H/setup
> -+--- procps-3.1.15.old/test/ps/thread-sorted-H/setup	2003-10-20 10:45:59.000000000 +1000
> -++++ procps-3.1.15/test/ps/thread-sorted-H/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,14 +0,0 @@
> -+-ARGS="-C clone-once --sort=pid H"
> -+-GOOD=0
> -+-EVALFN=1
> -+-KILLFN=1
> -+-
> -+-./clone-once
> -+-
> -+-evalfn () {
> -+-   [ `wc -l<  stdout` == 3 ]
> -+-}
> -+-
> -+-killfn () {
> -+-  killall -9 clone-once
> -+-}
> -+diff -ruN procps-3.1.15.old/test/ps/thread-sorted-HL/header procps-3.1.15/test/ps/thread-sorted-HL/header
> -+--- procps-3.1.15.old/test/ps/thread-sorted-HL/header	2003-10-20 10:57:53.000000000 +1000
> -++++ procps-3.1.15/test/ps/thread-sorted-HL/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- PID LWP TTY STAT TIME COMMAND
> -+diff -ruN procps-3.1.15.old/test/ps/thread-sorted-HL/setup procps-3.1.15/test/ps/thread-sorted-HL/setup
> -+--- procps-3.1.15.old/test/ps/thread-sorted-HL/setup	2003-10-20 10:45:16.000000000 +1000
> -++++ procps-3.1.15/test/ps/thread-sorted-HL/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,14 +0,0 @@
> -+-ARGS="-C clone-once --sort=pid H -L"
> -+-GOOD=0
> -+-EVALFN=1
> -+-KILLFN=1
> -+-
> -+-./clone-once
> -+-
> -+-evalfn () {
> -+-   [ `wc -l<  stdout` == 3 ]
> -+-}
> -+-
> -+-killfn () {
> -+-  killall -9 clone-once
> -+-}
> -+diff -ruN procps-3.1.15.old/test/ps/thread-sorted-Hm/setup procps-3.1.15/test/ps/thread-sorted-Hm/setup
> -+--- procps-3.1.15.old/test/ps/thread-sorted-Hm/setup	2003-10-20 10:47:00.000000000 +1000
> -++++ procps-3.1.15/test/ps/thread-sorted-Hm/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,2 +0,0 @@
> -+-ARGS="-C clone-once --sort=pid Hm"
> -+-GOOD=1
> -+diff -ruN procps-3.1.15.old/test/ps/thread-sorted-Hm/stderr procps-3.1.15/test/ps/thread-sorted-Hm/stderr
> -+--- procps-3.1.15.old/test/ps/thread-sorted-Hm/stderr	2003-10-20 10:58:47.000000000 +1000
> -++++ procps-3.1.15/test/ps/thread-sorted-Hm/stderr	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,23 +0,0 @@
> -+-ERROR: Thread flags conflict; can't use H with m or -m.
> -+-********* simple selection *********  ********* selection by list *********
> -+--A all processes                      -C by command name
> -+--N negate selection                   -G by real group ID (supports names)
> -+--a all w/ tty except session leaders  -U by real user ID (supports names)
> -+--d all except session leaders         -g by session leader OR by group name
> -+--e all processes                      -p by process ID
> -+-T  all processes on this terminal     -s processes in the sessions given
> -+-a  all w/ tty, including other users  -t by tty
> -+-g  all, even group leaders!           -u by effective user ID (supports names)
> -+-r  only running processes             U  processes for specified users
> -+-x  processes w/o controlling ttys     t  by tty
> -+-*********** output format **********  *********** long options ***********
> -+--o,o user-defined  -f full            --Group --User --pid --cols --ppid
> -+--j,j job control   s  signal          --group --user --sid --rows
> -+--O,O preloaded -o  v  virtual memory  --cumulative --format --deselect
> -+--l,l long          u  user-oriented   --sort --tty --forest --version
> -+--F   extra full    X  registers       --heading --no-heading
> -+-                    ********* misc options *********
> -+--V,V show version       L  list format codes  f  ASCII art forest
> -+--m,m show threads       S  children in sum    -y change -l format
> -+--n,N set namelist file  c  true command name  n  numeric WCHAN,UID
> -+--w,w wide output        e  show environment   -H process hierarchy
> -+diff -ruN procps-3.1.15.old/test/ps/thread-sorted-L/header procps-3.1.15/test/ps/thread-sorted-L/header
> -+--- procps-3.1.15.old/test/ps/thread-sorted-L/header	2003-10-20 10:57:53.000000000 +1000
> -++++ procps-3.1.15/test/ps/thread-sorted-L/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- PID LWP TTY TIME CMD
> -+diff -ruN procps-3.1.15.old/test/ps/thread-sorted-L/setup procps-3.1.15/test/ps/thread-sorted-L/setup
> -+--- procps-3.1.15.old/test/ps/thread-sorted-L/setup	2003-10-20 10:45:35.000000000 +1000
> -++++ procps-3.1.15/test/ps/thread-sorted-L/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,14 +0,0 @@
> -+-ARGS="-C clone-once --sort=pid -L"
> -+-GOOD=0
> -+-EVALFN=1
> -+-KILLFN=1
> -+-
> -+-./clone-once
> -+-
> -+-evalfn () {
> -+-   [ `wc -l<  stdout` == 3 ]
> -+-}
> -+-
> -+-killfn () {
> -+-  killall -9 clone-once
> -+-}
> -+diff -ruN procps-3.1.15.old/test/ps/thread-sorted-default/header procps-3.1.15/test/ps/thread-sorted-default/header
> -+--- procps-3.1.15.old/test/ps/thread-sorted-default/header	2003-10-20 10:57:53.000000000 +1000
> -++++ procps-3.1.15/test/ps/thread-sorted-default/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- PID TTY TIME CMD
> -+diff -ruN procps-3.1.15.old/test/ps/thread-sorted-default/setup procps-3.1.15/test/ps/thread-sorted-default/setup
> -+--- procps-3.1.15.old/test/ps/thread-sorted-default/setup	2003-10-20 10:47:53.000000000 +1000
> -++++ procps-3.1.15/test/ps/thread-sorted-default/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,14 +0,0 @@
> -+-ARGS="-C clone-once --sort=pid"
> -+-GOOD=0
> -+-EVALFN=1
> -+-KILLFN=1
> -+-
> -+-./clone-once
> -+-
> -+-evalfn () {
> -+-   [ `wc -l<  stdout` == 2 ]
> -+-}
> -+-
> -+-killfn () {
> -+-  killall -9 clone-once
> -+-}
> -+diff -ruN procps-3.1.15.old/test/ps/thread-sorted-m/header procps-3.1.15/test/ps/thread-sorted-m/header
> -+--- procps-3.1.15.old/test/ps/thread-sorted-m/header	2003-10-20 10:57:53.000000000 +1000
> -++++ procps-3.1.15/test/ps/thread-sorted-m/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- PID TTY STAT TIME COMMAND
> -+diff -ruN procps-3.1.15.old/test/ps/thread-sorted-m/setup procps-3.1.15/test/ps/thread-sorted-m/setup
> -+--- procps-3.1.15.old/test/ps/thread-sorted-m/setup	2003-10-20 10:42:59.000000000 +1000
> -++++ procps-3.1.15/test/ps/thread-sorted-m/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,14 +0,0 @@
> -+-ARGS="-C clone-once --sort=pid m"
> -+-GOOD=0
> -+-EVALFN=1
> -+-KILLFN=1
> -+-
> -+-./clone-once
> -+-
> -+-evalfn () {
> -+-   [ `wc -l<  stdout` == 4 ]
> -+-}
> -+-
> -+-killfn () {
> -+-  killall -9 clone-once
> -+-}
> -+diff -ruN procps-3.1.15.old/test/ps/thread-sorted-mL/header procps-3.1.15/test/ps/thread-sorted-mL/header
> -+--- procps-3.1.15.old/test/ps/thread-sorted-mL/header	2003-10-20 10:57:54.000000000 +1000
> -++++ procps-3.1.15/test/ps/thread-sorted-mL/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- PID LWP TTY TIME CMD
> -+diff -ruN procps-3.1.15.old/test/ps/thread-sorted-mL/setup procps-3.1.15/test/ps/thread-sorted-mL/setup
> -+--- procps-3.1.15.old/test/ps/thread-sorted-mL/setup	2003-10-20 10:44:46.000000000 +1000
> -++++ procps-3.1.15/test/ps/thread-sorted-mL/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,14 +0,0 @@
> -+-ARGS="-C clone-once --sort=pid -mL"
> -+-GOOD=0
> -+-EVALFN=1
> -+-KILLFN=1
> -+-
> -+-./clone-once
> -+-
> -+-evalfn () {
> -+-   [ `wc -l<  stdout` == 4 ]
> -+-}
> -+-
> -+-killfn () {
> -+-  killall -9 clone-once
> -+-}
> -+diff -ruN procps-3.1.15.old/test/ps/unix-comm/setup procps-3.1.15/test/ps/unix-comm/setup
> -+--- procps-3.1.15.old/test/ps/unix-comm/setup	2003-09-02 10:33:46.000000000 +1000
> -++++ procps-3.1.15/test/ps/unix-comm/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,7 +0,0 @@
> -+-ARGS=
> -+-GOOD=0
> -+-EVALFN=1
> -+-
> -+-evalfn () {
> -+-  grep "ps$" stdout>>  /dev/null
> -+-}
> -+diff -ruN procps-3.1.15.old/test/ps/unix-doc/setup procps-3.1.15/test/ps/unix-doc/setup
> -+--- procps-3.1.15.old/test/ps/unix-doc/setup	2003-09-03 13:38:37.000000000 +1000
> -++++ procps-3.1.15/test/ps/unix-doc/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,37 +0,0 @@
> -+-# The UNIX+POSIX standard requires that, except for "args" and "comm",
> -+-# the documentation must warn about any implementation-defined
> -+-# format specifiers that may contain blanks.
> -+-#
> -+-# Using "ps L" to grab the list isn't proper, but it's needed.
> -+-#
> -+-# This is our list for the man page:
> -+-#
> -+-#args         COMMAND
> -+-#cmd          CMD
> -+-#comm         COMMAND
> -+-#command      COMMAND
> -+-#fname        COMMAND
> -+-#ucmd         CMD
> -+-#ucomm        COMMAND
> -+-#lstart       STARTED
> -+-#bsdstart     START
> -+-#start        STARTED
> -+-
> -+-# It gets to 819 last I checked
> -+-export COLUMNS=1111
> -+-
> -+-biglist=`$TESTME L \
> -+-  | egrep -v '^(comm|args|cmd|comm|command|fname|ucmd|ucomm|lstart|bsdstart|start) ' \
> -+-  | awk '{printf("%s,",$1);}'`
> -+-numcols=`echo $biglist | tr -dc , | wc -c`
> -+-
> -+-ARGS=-eo$biglist
> -+-GOOD=0
> -+-EVALFN=1
> -+-
> -+-evalfn () {
> -+-  while read -a myarray; do
> -+-    [ ${#myarray[*]} == $numcols ] || return 1
> -+-  done<  stdout
> -+-  return 0
> -+-}
> -+diff -ruN procps-3.1.15.old/test/ps/unix-f-args/setup procps-3.1.15/test/ps/unix-f-args/setup
> -+--- procps-3.1.15.old/test/ps/unix-f-args/setup	2003-09-02 10:33:18.000000000 +1000
> -++++ procps-3.1.15/test/ps/unix-f-args/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,7 +0,0 @@
> -+-ARGS="-f"
> -+-GOOD=0
> -+-EVALFN=1
> -+-
> -+-evalfn () {
> -+-  grep "ps -f$" stdout>>  /dev/null
> -+-}
> -+diff -ruN procps-3.1.15.old/test/ps/unix-f-header/header procps-3.1.15/test/ps/unix-f-header/header
> -+--- procps-3.1.15.old/test/ps/unix-f-header/header	2003-09-02 08:40:35.000000000 +1000
> -++++ procps-3.1.15/test/ps/unix-f-header/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- UID PID PPID C STIME TTY TIME CMD
> -+diff -ruN procps-3.1.15.old/test/ps/unix-f-header/setup procps-3.1.15/test/ps/unix-f-header/setup
> -+--- procps-3.1.15.old/test/ps/unix-f-header/setup	2003-09-02 08:37:18.000000000 +1000
> -++++ procps-3.1.15/test/ps/unix-f-header/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,2 +0,0 @@
> -+-ARGS="-f"
> -+-GOOD=0
> -+diff -ruN procps-3.1.15.old/test/ps/unix-fl-header/header procps-3.1.15/test/ps/unix-fl-header/header
> -+--- procps-3.1.15.old/test/ps/unix-fl-header/header	2003-09-02 08:53:56.000000000 +1000
> -++++ procps-3.1.15/test/ps/unix-fl-header/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- F S UID PID PPID C PRI NI ADDR SZ WCHAN STIME TTY TIME CMD
> -+diff -ruN procps-3.1.15.old/test/ps/unix-fl-header/setup procps-3.1.15/test/ps/unix-fl-header/setup
> -+--- procps-3.1.15.old/test/ps/unix-fl-header/setup	2003-09-02 08:55:32.000000000 +1000
> -++++ procps-3.1.15/test/ps/unix-fl-header/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,2 +0,0 @@
> -+-ARGS="-fl"
> -+-GOOD=0
> -+diff -ruN procps-3.1.15.old/test/ps/unix-header/header procps-3.1.15/test/ps/unix-header/header
> -+--- procps-3.1.15.old/test/ps/unix-header/header	2003-09-02 08:53:56.000000000 +1000
> -++++ procps-3.1.15/test/ps/unix-header/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- PID TTY TIME CMD
> -+diff -ruN procps-3.1.15.old/test/ps/unix-header/setup procps-3.1.15/test/ps/unix-header/setup
> -+--- procps-3.1.15.old/test/ps/unix-header/setup	2003-09-02 08:55:09.000000000 +1000
> -++++ procps-3.1.15/test/ps/unix-header/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,2 +0,0 @@
> -+-ARGS=
> -+-GOOD=0
> -+diff -ruN procps-3.1.15.old/test/ps/unix-l-header/header procps-3.1.15/test/ps/unix-l-header/header
> -+--- procps-3.1.15.old/test/ps/unix-l-header/header	2003-09-02 08:53:56.000000000 +1000
> -++++ procps-3.1.15/test/ps/unix-l-header/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
> -+diff -ruN procps-3.1.15.old/test/ps/unix-l-header/setup procps-3.1.15/test/ps/unix-l-header/setup
> -+--- procps-3.1.15.old/test/ps/unix-l-header/setup	2003-09-02 08:55:49.000000000 +1000
> -++++ procps-3.1.15/test/ps/unix-l-header/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,2 +0,0 @@
> -+-ARGS="-l"
> -+-GOOD=0
> -+diff -ruN procps-3.1.15.old/test/ps/unix-lf-header/header procps-3.1.15/test/ps/unix-lf-header/header
> -+--- procps-3.1.15.old/test/ps/unix-lf-header/header	2003-09-02 08:53:56.000000000 +1000
> -++++ procps-3.1.15/test/ps/unix-lf-header/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- F S UID PID PPID C PRI NI ADDR SZ WCHAN STIME TTY TIME CMD
> -+diff -ruN procps-3.1.15.old/test/ps/unix-lf-header/setup procps-3.1.15/test/ps/unix-lf-header/setup
> -+--- procps-3.1.15.old/test/ps/unix-lf-header/setup	2003-09-02 08:55:39.000000000 +1000
> -++++ procps-3.1.15/test/ps/unix-lf-header/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,2 +0,0 @@
> -+-ARGS="-lf"
> -+-GOOD=0
> -+diff -ruN procps-3.1.15.old/test/ps/unix-o-header-all/header procps-3.1.15/test/ps/unix-o-header-all/header
> -+--- procps-3.1.15.old/test/ps/unix-o-header-all/header	2003-09-02 09:23:24.000000000 +1000
> -++++ procps-3.1.15/test/ps/unix-o-header-all/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- COMMAND COMMAND ELAPSED GROUP NI %CPU PGID PID PPID RGROUP RUSER TIME TT USER VSZ
> -+diff -ruN procps-3.1.15.old/test/ps/unix-o-header-all/setup procps-3.1.15/test/ps/unix-o-header-all/setup
> -+--- procps-3.1.15.old/test/ps/unix-o-header-all/setup	2003-09-02 09:23:11.000000000 +1000
> -++++ procps-3.1.15/test/ps/unix-o-header-all/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,2 +0,0 @@
> -+-ARGS="-o args,comm,etime,group,nice,pcpu,pgid,pid,ppid,rgroup,ruser,time,tty,user,vsz"
> -+-GOOD=0
> -+diff -ruN procps-3.1.15.old/test/ps/unix-o-header-dup/header procps-3.1.15/test/ps/unix-o-header-dup/header
> -+--- procps-3.1.15.old/test/ps/unix-o-header-dup/header	2003-09-02 09:16:50.000000000 +1000
> -++++ procps-3.1.15/test/ps/unix-o-header-dup/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- PID TT PID PPID
> -+diff -ruN procps-3.1.15.old/test/ps/unix-o-header-dup/setup procps-3.1.15/test/ps/unix-o-header-dup/setup
> -+--- procps-3.1.15.old/test/ps/unix-o-header-dup/setup	2003-09-02 09:16:22.000000000 +1000
> -++++ procps-3.1.15/test/ps/unix-o-header-dup/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,2 +0,0 @@
> -+-ARGS="-o pid,tty -o pid,ppid"
> -+-GOOD=0
> -+diff -ruN procps-3.1.15.old/test/ps/unix-o-header-evil/header procps-3.1.15/test/ps/unix-o-header-evil/header
> -+--- procps-3.1.15.old/test/ps/unix-o-header-evil/header	2003-09-02 12:39:36.000000000 +1000
> -++++ procps-3.1.15/test/ps/unix-o-header-evil/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- PPID PID FOO,tty PPID
> -+diff -ruN procps-3.1.15.old/test/ps/unix-o-header-evil/setup procps-3.1.15/test/ps/unix-o-header-evil/setup
> -+--- procps-3.1.15.old/test/ps/unix-o-header-evil/setup	2003-09-02 12:39:19.000000000 +1000
> -++++ procps-3.1.15/test/ps/unix-o-header-evil/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,2 +0,0 @@
> -+-ARGS="-o ppid -o pid,ppid=FOO,tty -o ppid"
> -+-GOOD=0
> -+diff -ruN procps-3.1.15.old/test/ps/unix-o-header-nil/setup procps-3.1.15/test/ps/unix-o-header-nil/setup
> -+--- procps-3.1.15.old/test/ps/unix-o-header-nil/setup	2003-09-02 10:08:33.000000000 +1000
> -++++ procps-3.1.15/test/ps/unix-o-header-nil/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,7 +0,0 @@
> -+-ARGS="-o pid="
> -+-GOOD=0
> -+-EVALFN=1
> -+-
> -+-evalfn () {
> -+-  ! grep PID stdout>>  /dev/null
> -+-}
> -+diff -ruN procps-3.1.15.old/test/ps/unix-selection/header procps-3.1.15/test/ps/unix-selection/header
> -+--- procps-3.1.15.old/test/ps/unix-selection/header	2003-09-04 16:13:48.000000000 +1000
> -++++ procps-3.1.15/test/ps/unix-selection/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+- PID TTY TIME CMD
> -+diff -ruN procps-3.1.15.old/test/ps/unix-selection/setup procps-3.1.15/test/ps/unix-selection/setup
> -+--- procps-3.1.15.old/test/ps/unix-selection/setup	2003-09-13 14:00:48.000000000 +1000
> -++++ procps-3.1.15/test/ps/unix-selection/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,25 +0,0 @@
> -+-ARGS=
> -+-GOOD=0
> -+-EVALFN=1
> -+-KILLFN=1
> -+-
> -+-rm -f misc.tmp ready.tmp typescript.tmp
> -+-
> -+-./got-no-tty
> -+-# this'll do but... WHERE ARE THE MAN PAGES FOR PTY STUFF???
> -+-(SHELL=`pwd`/script-child script typescript.tmp&>/dev/null)&
> -+-while [ ! -f ready.tmp ] ; do sleep 0.01 ; done
> -+-. ready.tmp
> -+-
> -+-evalfn () {
> -+-   THIS_TTY=`tty | colrm 1 5`
> -+-   lines1=`awk '{print $2}'<  stdout | sort -u | egrep "^($THIS_TTY)$"               | wc -l`
> -+-   lines3=`awk '{print $2}'<  stdout | sort -u | egrep "^($SHELL_TTY|$THIS_TTY|\?)$" | wc -l`
> -+-   [ $lines1 == 1 ]&&  [ $lines3 == 1 ]
> -+-}
> -+-
> -+-killfn () {
> -+-  killall -9 got-no-tty
> -+-  kill -9 $SHELL_PID  # the others should freely die
> -+-  rm -f misc.tmp ready.tmp typescript.tmp
> -+-}
> -+diff -ruN procps-3.1.15.old/test/ps/unix-tty-default/setup procps-3.1.15/test/ps/unix-tty-default/setup
> -+--- procps-3.1.15.old/test/ps/unix-tty-default/setup	2003-09-02 11:36:37.000000000 +1000
> -++++ procps-3.1.15/test/ps/unix-tty-default/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,14 +0,0 @@
> -+-ARGS=
> -+-GOOD=0
> -+-EVALFN=1
> -+-
> -+-# default output is restricted to this tty
> -+-MYTTY=`tty`
> -+-
> -+-evalfn () {
> -+-  PSTTY=`awk '!/TTY/{print $2}'<  stdout | uniq`
> -+-  if [ /dev/$PSTTY != $MYTTY ] ; then
> -+-    return 1
> -+-  fi
> -+-  return 0
> -+-}
> -+diff -ruN procps-3.1.15.old/test/ps/unix-tty-name/setup procps-3.1.15/test/ps/unix-tty-name/setup
> -+--- procps-3.1.15.old/test/ps/unix-tty-name/setup	2003-09-02 10:42:55.000000000 +1000
> -++++ procps-3.1.15/test/ps/unix-tty-name/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,9 +0,0 @@
> -+-ARGS="-otty= -p$$"
> -+-GOOD=0
> -+-EVALFN=1
> -+-
> -+-evalfn () {
> -+-  MYTTY=`tty`
> -+-  PSTTY=`printf /dev/ ; cat stdout`
> -+-  [ $MYTTY == $PSTTY ]
> -+-}
> -+diff -ruN procps-3.1.15.old/test/ps/unix-tty-names/setup procps-3.1.15/test/ps/unix-tty-names/setup
> -+--- procps-3.1.15.old/test/ps/unix-tty-names/setup	2003-09-02 11:17:09.000000000 +1000
> -++++ procps-3.1.15/test/ps/unix-tty-names/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,26 +0,0 @@
> -+-ARGS="-eotty="
> -+-GOOD=0
> -+-EVALFN=1
> -+-
> -+-# the UNIX spec allows:
> -+-#
> -+-# /dev/ttyS0   as ttyS0
> -+-# /dev/ttyS0   as S0          (OK to chop a leading "tty")
> -+-# /dev/console as console
> -+-# /foo/bar     as bar or /foo/bar  (poorly unspecified)
> -+-# -nothing-    as ? or -           (poorly unspecified, we use '?')
> -+-#
> -+-# Also, the format must agree with what "who" uses.
> -+-# Linux "who" doesn't strip "tty" off of /dev/ttyS0, etc.,
> -+-# so that's illegal in a Linux environment.
> -+-#
> -+-# junk the '?' to avoid shell wildcard expansion
> -+-
> -+-evalfn () {
> -+-  for i in `tr -d '?'<  stdout | sort -u` ; do
> -+-    if [ ! -c /dev/$i -a ! -c /$i ] ; then
> -+-      return 1
> -+-    fi
> -+-  done
> -+-  return 0
> -+-}
> -+diff -ruN procps-3.1.15.old/test/ps/unix-vsz/setup procps-3.1.15/test/ps/unix-vsz/setup
> -+--- procps-3.1.15.old/test/ps/unix-vsz/setup	2003-09-11 10:24:38.000000000 +1000
> -++++ procps-3.1.15/test/ps/unix-vsz/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,27 +0,0 @@
> -+-# The standard describes the "vsz" format as:
> -+-#        The size of the process in (virtual) memory
> -+-#        in 1024 byte units as a decimal integer.
> -+-#
> -+-# It's hard to tell 1000-byte from 1024-byte units,
> -+-# but easy to tell 1024-byte from 512-byte or 2 kB.
> -+-# On a 64-bit system, watch for 4 GB troubles as well.
> -+-
> -+-# throw in the PID to ensure whitespace on the left
> -+-ARGS="-C gigabyte -o pid= -o vsz="
> -+-GOOD=0
> -+-EVALFN=1
> -+-KILLFN=1
> -+-
> -+-BITSIZE=`./gigabyte`
> -+-
> -+-evalfn () {
> -+-  if [ $BITSIZE == 32bit ] ; then
> -+-    egrep ' 1......$' stdout>>  /dev/null
> -+-  else
> -+-    egrep ' 1.......$' stdout>>  /dev/null
> -+-  fi
> -+-}
> -+-
> -+-killfn () {
> -+-  killall -9 gigabyte
> -+-}
> -+diff -ruN procps-3.1.15.old/test/ps/unix-wchan/setup procps-3.1.15/test/ps/unix-wchan/setup
> -+--- procps-3.1.15.old/test/ps/unix-wchan/setup	2003-09-02 12:25:15.000000000 +1000
> -++++ procps-3.1.15/test/ps/unix-wchan/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,11 +0,0 @@
> -+-ARGS="-eowchan="
> -+-GOOD=0
> -+-EVALFN=1
> -+-
> -+-# Make sure we're getting back real wchan data,
> -+-# not just "WCHAN", "-", "0", "*", and hex digits.
> -+-# Assumes usage of letters [g-z].
> -+-
> -+-evalfn () {
> -+-  egrep '[g-z]' stdout>>  /dev/null
> -+-}
> -+diff -ruN procps-3.1.15.old/test/ps/y-needs-l/header procps-3.1.15/test/ps/y-needs-l/header
> -+--- procps-3.1.15.old/test/ps/y-needs-l/header	2003-10-02 12:10:34.000000000 +1000
> -++++ procps-3.1.15/test/ps/y-needs-l/header	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1 +0,0 @@
> -+-
> -+\ No newline at end of file
> -+diff -ruN procps-3.1.15.old/test/ps/y-needs-l/setup procps-3.1.15/test/ps/y-needs-l/setup
> -+--- procps-3.1.15.old/test/ps/y-needs-l/setup	2003-10-02 12:10:45.000000000 +1000
> -++++ procps-3.1.15/test/ps/y-needs-l/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,2 +0,0 @@
> -+-ARGS="-y"
> -+-GOOD=1
> -+diff -ruN procps-3.1.15.old/test/ps/y-needs-l/stderr procps-3.1.15/test/ps/y-needs-l/stderr
> -+--- procps-3.1.15.old/test/ps/y-needs-l/stderr	2003-10-02 12:10:56.000000000 +1000
> -++++ procps-3.1.15/test/ps/y-needs-l/stderr	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,23 +0,0 @@
> -+-ERROR: Modifier -y without format -l makes no sense.
> -+-********* simple selection *********  ********* selection by list *********
> -+--A all processes                      -C by command name
> -+--N negate selection                   -G by real group ID (supports names)
> -+--a all w/ tty except session leaders  -U by real user ID (supports names)
> -+--d all except session leaders         -g by session leader OR by group name
> -+--e all processes                      -p by process ID
> -+-T  all processes on this terminal     -s processes in the sessions given
> -+-a  all w/ tty, including other users  -t by tty
> -+-g  all, even group leaders!           -u by effective user ID (supports names)
> -+-r  only running processes             U  processes for specified users
> -+-x  processes w/o controlling ttys     t  by tty
> -+-*********** output format **********  *********** long options ***********
> -+--o,o user-defined  -f full            --Group --User --pid --cols --ppid
> -+--j,j job control   s  signal          --group --user --sid --rows
> -+--O,O preloaded -o  v  virtual memory  --cumulative --format --deselect
> -+--l,l long          u  user-oriented   --sort --tty --forest --version
> -+--F   extra full    X  registers       --heading --no-heading
> -+-                    ********* misc options *********
> -+--V,V show version       L  list format codes  f  ASCII art forest
> -+--m,m show threads       S  children in sum    -y change -l format
> -+--n,N set namelist file  c  true command name  n  numeric WCHAN,UID
> -+--w,w wide output        e  show environment   -H process hierarchy
> -+diff -ruN procps-3.1.15.old/test/ps/zombie-args/setup procps-3.1.15/test/ps/zombie-args/setup
> -+--- procps-3.1.15.old/test/ps/zombie-args/setup	2003-09-04 13:43:31.000000000 +1000
> -++++ procps-3.1.15/test/ps/zombie-args/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,18 +0,0 @@
> -+-ARGS="-H -C the_living_dead -o args"
> -+-GOOD=0
> -+-EVALFN=1
> -+-KILLFN=1
> -+-
> -+-# the -H is just to ensure predictable output ordering
> -+-
> -+-# assumes that the processes won't get swapped out before ps runs
> -+-
> -+-./the_living_dead
> -+-
> -+-evalfn () {
> -+-  diff -Naurd stdout $TESTNAME/stdout>>  /dev/null
> -+-}
> -+-
> -+-killfn () {
> -+-  killall -9 the_living_dead
> -+-}
> -+diff -ruN procps-3.1.15.old/test/ps/zombie-args/stdout procps-3.1.15/test/ps/zombie-args/stdout
> -+--- procps-3.1.15.old/test/ps/zombie-args/stdout	2003-09-04 13:44:01.000000000 +1000
> -++++ procps-3.1.15/test/ps/zombie-args/stdout	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,3 +0,0 @@
> -+-COMMAND
> -+-./the_living_dead
> -+-  [the_living_dead]<defunct>
> -+diff -ruN procps-3.1.15.old/test/ps/zombie-comm/setup procps-3.1.15/test/ps/zombie-comm/setup
> -+--- procps-3.1.15.old/test/ps/zombie-comm/setup	2003-09-04 13:43:44.000000000 +1000
> -++++ procps-3.1.15/test/ps/zombie-comm/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,16 +0,0 @@
> -+-ARGS="-H -C the_living_dead -o comm"
> -+-GOOD=0
> -+-EVALFN=1
> -+-KILLFN=1
> -+-
> -+-# the -H is just to ensure predictable output ordering
> -+-
> -+-./the_living_dead
> -+-
> -+-evalfn () {
> -+-  diff -Naurd stdout $TESTNAME/stdout>>  /dev/null
> -+-}
> -+-
> -+-killfn () {
> -+-  killall -9 the_living_dead
> -+-}
> -+diff -ruN procps-3.1.15.old/test/ps/zombie-comm/stdout procps-3.1.15/test/ps/zombie-comm/stdout
> -+--- procps-3.1.15.old/test/ps/zombie-comm/stdout	2003-09-04 13:44:12.000000000 +1000
> -++++ procps-3.1.15/test/ps/zombie-comm/stdout	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,3 +0,0 @@
> -+-COMMAND
> -+-the_living_dead
> -+-  the_living_dead<defunct>
> -+diff -ruN procps-3.1.15.old/test/ps/zombie-wchan/setup procps-3.1.15/test/ps/zombie-wchan/setup
> -+--- procps-3.1.15.old/test/ps/zombie-wchan/setup	2003-09-04 13:52:41.000000000 +1000
> -++++ procps-3.1.15/test/ps/zombie-wchan/setup	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,14 +0,0 @@
> -+-ARGS="-C the_living_dead -o wchan,stat,comm"
> -+-GOOD=0
> -+-EVALFN=1
> -+-KILLFN=1
> -+-
> -+-./the_living_dead
> -+-
> -+-evalfn () {
> -+-  egrep 'exit.*Z.*defunct' stdout>>  /dev/null
> -+-}
> -+-
> -+-killfn () {
> -+-  killall -9 the_living_dead
> -+-}
> -+diff -ruN procps-3.1.15.old/test/runtests procps-3.1.15/test/runtests
> -+--- procps-3.1.15.old/test/runtests	2003-09-03 12:09:08.000000000 +1000
> -++++ procps-3.1.15/test/runtests	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,4 +0,0 @@
> -+-#!/bin/bash
> -+-
> -+-export TESTME=${PSPROG:-../ps/ps}
> -+-for i in ps/*-* ; do ./onetest $i ; done
> -+diff -ruN procps-3.1.15.old/test/script-child procps-3.1.15/test/script-child
> -+--- procps-3.1.15.old/test/script-child	2003-09-04 14:43:28.000000000 +1000
> -++++ procps-3.1.15/test/script-child	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,10 +0,0 @@
> -+-#!/bin/bash
> -+-#
> -+-# usage:
> -+-# SHELL=/path/to/this/script script trashfile
> -+-
> -+-echo SCRIPT_PID=$PPID>  misc.tmp
> -+-echo SHELL_PID=$$>>  misc.tmp
> -+-echo SHELL_TTY=`/usr/bin/tty | colrm 1 5`>>  misc.tmp
> -+-mv misc.tmp ready.tmp   # atomic op
> -+-while /bin/true ; do sleep 42 ; done
> -+diff -ruN procps-3.1.15.old/test/sid-breaks-ttys.c procps-3.1.15/test/sid-breaks-ttys.c
> -+--- procps-3.1.15.old/test/sid-breaks-ttys.c	2003-09-08 13:28:24.000000000 +1000
> -++++ procps-3.1.15/test/sid-breaks-ttys.c	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,38 +0,0 @@
> -+-#include<sys/types.h>
> -+-#include<unistd.h>
> -+-#include<signal.h>
> -+-
> -+-static pid_t one;
> -+-
> -+-static void die(int signo){
> -+-  (void)signo;
> -+-  _exit(0);
> -+-}
> -+-
> -+-static void hang(void){
> -+-  for(;;) pause();
> -+-}
> -+-
> -+-int main(int argc, char *argv[]){
> -+-  (void)argc;
> -+-  (void)argv;
> -+-
> -+-  one = getpid();
> -+-  signal(SIGHUP,die);
> -+-  if(fork()) hang();    // parent later killed as readyness signal
> -+-
> -+-  // second one exits, to enable setsid(), and the resulting
> -+-  // zombie will be reaped by init after 1st process killed
> -+-  if(fork()) _exit(0);
> -+-
> -+-  if(setsid()==-1){
> -+-    kill(one,SIGKILL); // hopefully the shell will complain
> -+-    _exit(42); // kind of tough to report errors
> -+-  }
> -+-
> -+-  kill(one,SIGHUP); // let the shell know we're ready
> -+-
> -+-  hang();
> -+-
> -+-  return 0;
> -+-}
> -+diff -ruN procps-3.1.15.old/test/sidious.c procps-3.1.15/test/sidious.c
> -+--- procps-3.1.15.old/test/sidious.c	2003-09-08 13:58:20.000000000 +1000
> -++++ procps-3.1.15/test/sidious.c	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,77 +0,0 @@
> -+-// ps fTo sess,pgid,pid,tty,ppid,tpgid,args -C a.out
> -+-
> -+-#include<sys/types.h>
> -+-#include<unistd.h>
> -+-#include<signal.h>
> -+-#include<sys/stat.h>
> -+-#include<fcntl.h>
> -+-#include<stdlib.h>  // undocumented grantpt,unlockpt,ptsname,openpt,posix_openpt
> -+-//#include<pty.h>     // undocumented openpty,forkpty
> -+-
> -+-static pid_t one;
> -+-
> -+-static void die(int signo){
> -+-  (void)signo;
> -+-  _exit(0);
> -+-}
> -+-
> -+-//static void sigchld_handler(int signo){
> -+-//  (void)signo;
> -+-//  kill(one,SIGHUP);          // kill parent
> -+-//}
> -+-
> -+-static void hang(void){
> -+-  for(;;) pause();
> -+-}
> -+-
> -+-int main(int argc, char *argv[]){
> -+-  int master;
> -+-  int slave;
> -+-
> -+-  (void)argc;
> -+-  (void)argv;
> -+-
> -+-  one = getpid();
> -+-  signal(SIGHUP,die);
> -+-  if(fork()) hang();    // parent later killed as readyness signal
> -+-
> -+-  // second one exits, to enable setsid(), and the resulting
> -+-  // zombie will be reaped by init after 1st process killed
> -+-  if(fork()) _exit(0);
> -+-
> -+-
> -+-  master = open("/dev/ptmx", O_RDWR|O_NOCTTY);
> -+-
> -+-  // could fork, but don't bother
> -+-  // (won't be doing anything with the master side)
> -+-
> -+-  // could change child's UID, but don't bother
> -+-  // (would make the tests require running as root)
> -+-
> -+-  // not in the man pages!!!
> -+-  grantpt(master);
> -+-  unlockpt(master);
> -+-
> -+-  if(setsid()==-1){
> -+-    kill(one,SIGKILL); // hopefully the shell will complain
> -+-    _exit(42); // kind of tough to report errors
> -+-  }
> -+-
> -+-  slave = open(ptsname(master), O_RDWR);
> -+-#ifdef I_PUSH
> -+-  // push STREAMS tty stuff, just to have an example of it
> -+-  ioctl(slave, I_PUSH, "ptem");
> -+-  ioctl(slave, I_PUSH, "ldterm");
> -+-#endif
> -+-#ifdef TIOCSCTTY
> -+-  // On SysV, slave open got us a TTY. On BSD, we must do this:
> -+-  ioctl(fd, TIOCSCTTY, NULL);
> -+-#endif
> -+-
> -+-
> -+-  kill(one,SIGHUP); // let the shell know we're ready
> -+-
> -+-  hang();
> -+-
> -+-  return 0;
> -+-}
> -+diff -ruN procps-3.1.15.old/test/th.c procps-3.1.15/test/th.c
> -+--- procps-3.1.15.old/test/th.c	2003-09-14 01:35:42.000000000 +1000
> -++++ procps-3.1.15/test/th.c	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,16 +0,0 @@
> -+-#include<unistd.h>
> -+-#include<pthread.h>
> -+-
> -+-void *hanger(void *vp){
> -+-  (void)vp;
> -+-  for(;;) pause();
> -+-}
> -+-
> -+-int main(int argc, char *argv[]){
> -+-  pthread_t thread;
> -+-  (void)argc;
> -+-  (void)argv;
> -+-  pthread_create(&thread, NULL, hanger, NULL);
> -+-  hanger(NULL);
> -+-  return 0; // keep gcc happy
> -+-}
> -+diff -ruN procps-3.1.15.old/test/the_living_dead.c procps-3.1.15/test/the_living_dead.c
> -+--- procps-3.1.15.old/test/the_living_dead.c	2003-09-04 13:36:54.000000000 +1000
> -++++ procps-3.1.15/test/the_living_dead.c	1970-01-01 10:00:00.000000000 +1000
> -+@@ -1,39 +0,0 @@
> -+-#include<sys/types.h>
> -+-#include<unistd.h>
> -+-#include<signal.h>
> -+-
> -+-static pid_t one;
> -+-
> -+-static void die(int signo){
> -+-  (void)signo;
> -+-  _exit(0);
> -+-}
> -+-
> -+-static void sigchld_handler(int signo){
> -+-  (void)signo;
> -+-  kill(one,SIGHUP);          // kill parent
> -+-}
> -+-
> -+-static void hang(void){
> -+-  for(;;) pause();
> -+-}
> -+-
> -+-int main(int argc, char *argv[]){
> -+-  pid_t three;
> -+-
> -+-  (void)argc;
> -+-  (void)argv;
> -+-
> -+-  one = getpid();
> -+-  signal(SIGHUP,die);
> -+-  if(fork()) hang();    // parent later killed as readyness signal
> -+-
> -+-  three = fork();
> -+-  if(three){
> -+-    signal(SIGCHLD,sigchld_handler);
> -+-    kill(three,SIGHUP);   // create the zombie
> -+-  }
> -+-
> -+-  hang();
> -+-  return 0;
> -+-}
> ---- procps-3.1.15.orig/debian/control
> -+++ procps-3.1.15/debian/control
> -@@ -0,0 +1,31 @@
> -+Source: procps
> -+Section: base
> -+Priority: required
> -+Maintainer: Craig Small<csmall@debian.org>
> -+Build-Depends: debhelper (>>  4.1.1), libncurses5-dev, make (>= 3.78.1-8), dpatch
> -+Standards-Version: 3.6.0
> -+
> -+Package: procps
> -+Architecture: any
> -+Provides: watch
> -+Depends: ${shlibs:Depends}
> -+Conflicts: watch, libproc-dev (<<  1:1.2.6-2), w-bassman (<<  1.0-3), procps-nonfree, pgrep (<<  3.3-5)
> -+Replaces: watch, bsdutils (<<  2.9x-1)
> -+Recommends: psmisc
> -+Description: The /proc file system utilities
> -+ These are utilities to browse the /proc filesystem, which is not a real file
> -+ system but a way for the kernel to provide information about the status of
> -+ entries in its process table. (e.g. running, stopped or "zombie")
> -+ Both command line and full screen utilities are provided. Ncurses is needed
> -+ for the full screen utilities.  More information can be found at procps
> -+ website http://procps.sf.net/
> -+
> -+Package: libproc-dev
> -+Architecture: any
> -+Section: libdevel
> -+Priority: optional
> -+Depends: libc6-dev, procps (= ${Source-Version})
> -+Description: library for accessing process information from /proc
> -+ These are the header files for libproc. Some packages using libproc
> -+ to access process information from /proc need these to compile.
> -+
> ---- procps-3.1.15.orig/debian/rules
> -+++ procps-3.1.15/debian/rules
> -@@ -0,0 +1,99 @@
> -+#!/usr/bin/make -f
> -+# Sample debian/rules that uses debhelper.
> -+# GNU copyright 1997 to 1999 by Joey Hess.
> -+
> -+# Uncomment this to turn on verbose mode.
> -+#export DH_VERBOSE=1
> -+
> -+# Include dpatch stuff
> -+include /usr/share/dpatch/dpatch.make
> -+
> -+PACKAGE="procps"
> -+
> -+ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS)))
> -+	INSTALL_PROGRAM += -s
> -+endif
> -+
> -+
> -+build: build-stamp
> -+
> -+build-stamp: patch-stamp
> -+	dh_testdir
> -+
> -+	# Add here commands to compile the package.
> -+	mkdir static
> -+	SHARED=0 $(MAKE) proc/libproc.a
> -+	mv proc/libproc.a static
> -+	$(MAKE) clean
> -+	$(MAKE) W_SHOWFROM=\-DW_SHOWFROM
> -+
> -+	touch build-stamp
> -+
> -+clean: clean1 unpatch
> -+clean1:
> -+	dh_testdir
> -+	dh_testroot
> -+	rm -f build-stamp
> -+
> -+	# Add here commands to clean up after the build process.
> -+	-$(MAKE) clean
> -+	-rm -rf static
> -+
> -+	dh_clean
> -+
> -+install: build
> -+	dh_testdir
> -+	dh_testroot
> -+	dh_clean -k
> -+	dh_installdirs
> -+
> -+	# Add here commands to install the package into debian/procps.
> -+	$(MAKE) ln_f="ln -sf" ldconfig=echo DESTDIR=$(CURDIR)/debian/procps install
> -+	install --mode 644 -o root -g root debian/sysctl.conf $(CURDIR)/debian/procps/etc
> -+	# Rename w as there are two of them
> -+	(cd $(CURDIR)/debian/procps/usr/bin&&  mv w w.procps )
> -+	(cd $(CURDIR)/debian/procps/usr/share/man/man1&&  mv w.1 w.procps.1 )
> -+
> -+	# Work-around until proc includes fixed
> -+	(cp proc/*.h $(CURDIR)/debian/procps/usr/include/proc)
> -+	cp static/libproc.a $(CURDIR)/debian/libproc-dev/usr/lib
> -+
> -+	dh_movefiles --sourcedir=debian/procps
> -+	rmdir $(CURDIR)/debian/procps/usr/include/proc
> -+
> -+# Build architecture-independent files here.
> -+binary-indep: build install
> -+# We have nothing to do by default.
> -+
> -+# Build architecture-dependent files here.
> -+binary-arch: build install
> -+	dh_testdir
> -+	dh_testroot
> -+#	dh_installdebconf	
> -+	dh_installdocs
> -+	dh_installexamples
> -+	dh_installmenu
> -+#	dh_installlogrotate
> -+#	dh_installemacsen
> -+#	dh_installpam
> -+#	dh_installmime
> -+	dh_installinit --update-rcd-params='start 30 S .' --init-script='procps.sh'
> -+#	dh_installcron
> -+	dh_installman
> -+	dh_installinfo
> -+#	dh_undocumented
> -+	dh_installchangelogs NEWS
> -+	dh_link
> -+	dh_strip
> -+	dh_compress
> -+	dh_fixperms
> -+	dh_makeshlibs -V "procps (>= 3.1.14), procps (<<  3.1.15)"
> -+	dh_installdeb
> -+#	dh_perl
> -+	dh_shlibdeps -Lprocps -ldebian/procps/lib
> -+	dh_gencontrol
> -+	dh_md5sums
> -+	dh_builddeb
> -+
> -+binary: binary-indep binary-arch
> -+.PHONY: build clean binary-indep binary-arch binary install patch unpatch clean1
> ---- procps-3.1.15.orig/debian/changelog
> -+++ procps-3.1.15/debian/changelog
> -@@ -0,0 +1,743 @@
> -+procps (1:3.1.15-2) unstable; urgency=low
> -+
> -+  * Removed offending test directory Closes: #227933
> -+
> -+ -- Craig Small<csmall@debian.org>   Tue, 20 Jan 2004 10:20:44 +1100
> -+
> -+procps (1:3.1.15-1) unstable; urgency=low
> -+
> -+  * Now uses dpatch to handle the various patches
> -+  * New upstream release
> -+    - Supports SELINUX flags for kernel v2.6 Closes: #193648
> -+    - Hide kernel PID bug Closes: #217278, #219730, #217525, #224470
> -+    - Fixed top auto-margins problem Closes: #217559
> -+  * Fix top manual page Closes: #225089
> -+  * Patch so SELINUX flags work in v2.4 kernels
> -+  * Extra +s in ps.1 removed Closes: #218220
> -+  * Added patch so sysctl has quiet -q flag Closes: #189100
> -+
> -+ -- Craig Small<csmall@debian.org>   Fri, 26 Dec 2003 18:02:59 +1100
> -+
> -+procps (1:3.1.14-1) unstable; urgency=low
> -+
> -+  * New upstream release
> -+
> -+ -- Craig Small<csmall@debian.org>   Wed, 22 Oct 2003 11:59:53 +1000
> -+
> -+procps (1:3.1.13-1) unstable; urgency=low
> -+
> -+  * New upstream release
> -+
> -+ -- Craig Small<csmall@debian.org>   Wed, 24 Sep 2003 16:10:42 +1000
> -+
> -+procps (1:3.1.12-1) unstable; urgency=low
> -+
> -+  * New upstream release
> -+    ps: $PS_FORMAT works properly Closes: #201575
> -+    man page: /var/run/utmp, not /etc/utmp Closes: #206583
> -+    required flags moved out of CFLAGS Closes: #205429
> -+
> -+
> -+ -- Craig Small<csmall@debian.org>   Sat, 13 Sep 2003 21:11:09 +1000
> -+
> -+procps (1:3.1.11-2) unstable; urgency=low
> -+
> -+  * Made shlibs have a specific version Closes: #199118
> -+  * libproc.a is back in libproc-dev, use it
> -+  * Added README to libproc-dev for people who use the library
> -+
> -+ -- Craig Small<csmall@debian.org>   Wed, 20 Aug 2003 15:31:59 +1000
> -+
> -+procps (1:3.1.11-1) unstable; urgency=low
> -+
> -+  * 3.1.11 New upstream version
> -+    - handle GPLONLY_ symbols Closes: #143549, #188374
> -+  * freeproc now defined Closes: #189047
> -+  * warning in readproc.c fixed Closes: #197346
> -+  * Removed optarg and optind defines Closes: #197343
> -+  * Fixed saved_start_time warning Closes: #197342
> -+
> -+ -- Craig Small<csmall@debian.org>   Thu, 24 Jul 2003 17:02:36 +1000
> -+
> -+procps (1:3.1.9-1) unstable; urgency=low
> -+
> -+  * New upstream source
> -+  * memory sizes fixed for 64-bit w/ gcc 3.x Closes: #194376, #191933
> -+  * Doesn't segfault if /proc not mounted Closes: #172735
> -+  * No warning in top about memory key Closes: #188271
> -+  * More info in kill man page Closes: #182414
> -+  * Document the different oO options Closes: #169301
> -+  * Updated stabndards version to 3.5.9
> -+  * Changed disk to backing storage Closes: #175925
> -+
> -+ -- Craig Small<csmall@debian.org>   Mon,  2 Jun 2003 02:31:03 +1000
> -+
> -+procps (1:3.1.8-1) unstable; urgency=low
> -+
> -+  * New upstream release
> -+    watch man page fixed, Closes #182246
> -+  * Changed section for libproc-dev
> -+
> -+ -- Craig Small<csmall@debian.org>   Tue,  1 Apr 2003 10:19:05 +1000
> -+
> -+procps (1:3.1.6-1) unstable; urgency=low
> -+
> -+  * New upstream release
> -+    - watch has --no-title option Closes: #179862
> -+    - ps -C can compare very long names Closes: #178127
> -+  * Fixed descriptions in manual pages Closes: #179046
> -+  * w wont crash if /proc unreadable Closes: #169398
> -+
> -+ -- Craig Small<csmall@debian.org>   Sat, 22 Feb 2003 21:33:45 +1100
> -+
> -+procps (1:3.1.5-1) unstable; urgency=low
> -+
> -+  * New upstream version
> -+    - watch don't drop empty lines Closes: #171005
> -+    - top has old sort keys Closes: #167249
> -+    - now count Inact_laundry as needed Closes: #172163
> -+
> -+ -- Craig Small<csmall@debian.org>   Mon,  6 Jan 2003 13:49:32 +1100
> -+
> -+procps (1:3.1.3-1) unstable; urgency=low
> -+
> -+  * New upstream source
> -+
> -+ -- Craig Small<csmall@debian.org>   Fri, 13 Dec 2002 16:16:36 +1100
> -+
> -+procps (1:3.1.1-1) unstable; urgency=low
> -+
> -+  * New upstream source
> -+    - vmstats reports memort counts Closes: #169774
> -+
> -+ -- Craig Small<csmall@debian.org>   Wed,  4 Dec 2002 15:57:13 +1100
> -+
> -+procps (1:3.1.0-1) unstable; urgency=low
> -+
> -+  * New upstream version
> -+    - vmstat displays IO-wait time instead of bogus "w"
> -+    - when IO-wait hidden, count as idle, not as sys
> -+    - pmap command added (like Sun has)
> -+  * Manual pages cleaned up Closes: #165970, #164481
> -+
> -+ -- Craig Small<csmall@debian.org>   Mon, 11 Nov 2002 12:03:46 +1100
> -+
> -+procps (1:3.0.5-1) unstable; urgency=low
> -+
> -+  * New upstream version
> -+    - top tolerates super-wide displays Closes: #165497
> -+    - ELF note warning gone for some kernels Closes: #165900
> -+    - Fix ps and top man pages a bit, dropped bugs severity.
> -+
> -+ -- Craig Small<csmall@debian.org>   Tue, 29 Oct 2002 22:04:36 +1100
> -+
> -+procps (1:3.0.4-1) unstable; urgency=low
> -+
> -+  * New upstream version
> -+    - ELF note warning removed Closes: #165093, #165343
> -+    - top works for most TERM= settings Closes: #164864, #164956
> -+  * w has FROM column again by default Closes: #165252
> -+  * debhelper dependency version fixed Closes: #165083
> -+  * ps.1 looks a bit better now Closes: #16448
> -+
> -+ -- Craig Small<csmall@debian.org>   Mon, 21 Oct 2002 08:30:04 +1000
> -+
> -+procps (1:3.0.3-1) unstable; urgency=low
> -+
> -+  * New upstream version
> -+    - w works with KOI8 locale Closes: #153043
> -+    - fix top for non-SMP 2.2.xx and 2.0.xx Closes: #164231
> -+    - negative idle time fixed Closes: #126260
> -+    - sysctl handles new vlan interface Closes: #140386
> -+    - vmstat documentation update Closes: #157935, #155684
> -+    - "skill -n blah blah blah" lets you test options Closes: #158630
> -+    - fixed ps --sort crash Closes: #164226
> -+    - vmstat compiles with latest gcc-3.x Closes: #164348
> -+    - bad (int*) cast in top removed Closes: #164468
> -+    - Support new/improved statistics interfaces in 2.5 /proc Closes: #164013
> -+    - top defaults to old layout and sort by pid Closes: #164277
> -+    - rant moved out of top.1 man page Closes: #164520
> -+    - top runs much faster Closes: #87779
> -+
> -+ -- Craig Small<csmall@debian.org>   Sat, 12 Oct 2002 21:44:23 +1000
> -+
> -+procps (1:3.0.0-2) unstable; urgency=low
> -+
> -+  * Fixed pkill and skill, auto* is so broken. Closes: #163940, #163944
> -+  * Moved libproc.so.3 into /lib as it's needed early Closes: #163981,#163899
> -+
> -+ -- Craig Small<csmall@debian.org>   Thu, 10 Oct 2002 07:19:45 +1000
> -+
> -+procps (1:3.0.0-1) unstable; urgency=low
> -+
> -+  * New upstream source Closes: #163698
> -+    - top has SMP Closes: #162316, #62282, #94896, #98277, #117040, #117735
> -+    - SELINUX support Closes: #142892
> -+    - top defaults to signal 15 to kill pids with Closes: #72158
> -+    - 64-bit time reduces the overflow problem  Closes: #82382, #155908
> -+    - "w" program better at determining what a user is doing
> -+      Closes: #88758, 115529
> -+    - oldps is gone Closes: #101917
> -+    - Handles /proc/tty/drivers Closes: #108654, #154046
> -+    - Supports scanf where locale uses , for decimal point Closes: #126873
> -+    - uptime --help now calls itself uptime Closes: #128880
> -+    - ps faster Closes: #147731
> -+    - top calculates screen better Closes: #162296
> -+    - top allows sorts by pid or  swapped memory Closes: #79868, #159446
> -+    - support for s/390 Closes: #126295
> -+    - statm buffer size increased Closes: #145085
> -+    - new top has no typos Closes: #148918
> -+    - new top can handle lots of tasks Closes: #70900
> -+  * Fixed init.d file so it follows policy Closes: #121945
> -+
> -+ -- Craig Small<csmall@debian.org>   Tue,  8 Oct 2002 12:29:45 +1000
> -+
> -+procps (1:2.0.7-10) unstable; urgency=low
> -+
> -+  * Fixes ps crash when system.map is exact multiple of 1024
> -+    Thankyou Colin for the patch! Closes: #109237, #142292
> -+
> -+ -- Craig Small<csmall@eye-net.com.au>   Fri, 12 Apr 2002 21:02:04 +1000
> -+
> -+procps (1:2.0.7-9) unstable; urgency=low
> -+
> -+  * Sanity checking for Number of CPU Closes: #127561, #122617
> -+    This will keep the m68k and ARM boys happy.
> -+  * uptime usage fixed Closes: #138351
> -+  * kill man page NAME updated Closes: #119400
> -+  * Better explanation for load average in uptime(1) Closes: #140902
> -+  * utmp in correct location in w(1) Closes: #115725
> -+
> -+ -- Craig Small<csmall@eye-net.com.au>   Mon,  8 Apr 2002 14:18:20 +1000
> -+
> -+procps (1:2.0.7-8) unstable; urgency=low
> -+
> -+  * Removed -ggdb Closes: #117203
> -+
> -+ -- Craig Small<csmall@eye-net.com.au>   Sat, 27 Oct 2001 07:02:38 +1000
> -+
> -+procps (1:2.0.7-7) unstable; urgency=low
> -+
> -+  * Added os/390 patches Closes: #113494
> -+  * w manpage now gives correct location for utmp Closes: #110723
> -+  * watch wrap-around problem fixed Closes: #111759
> -+  * Programs are compilied -O2 Closes: #108652
> -+
> -+ -- Craig Small<csmall@eye-net.com.au>   Wed, 26 Sep 2001 08:08:43 +1000
> -+
> -+procps (1:2.0.7-6) unstable; urgency=low
> -+
> -+  * Re-fixed command line interpretation Closes: #103101
> -+
> -+ -- Craig Small<csmall@eye-net.com.au>   Tue, 10 Jul 2001 17:32:02 +1000
> -+
> -+procps (1:2.0.7-5) unstable; urgency=low
> -+
> -+  * watch now copys strings better. Closes: #95404, #97948, #99780
> -+  * skill.1 loads tbl Closes: #92242, #67899
> -+  * long usernames are shown Closes: #86205, #94957
> -+  * Remove /etc/rcS.d/S30procps with good ole rm Closes: #92184
> -+  * /etc/init.d/procps.sh calls itself that Closes: #93302
> -+  * Cannot write config in secure mode Closes: #93948
> -+
> -+ -- Craig Small<csmall@debian.org>   Sun, 29 Apr 2001 14:55:20 +1000
> -+
> -+procps (1:2.0.7-4) unstable; urgency=low
> -+
> -+  * watch doesnt crash with long command lines Closes: #88592, #87693
> -+  * bumped up a buffer in a proc read Closes: #85775
> -+  * Now we use 24 hour time Closes: #85640
> -+  * pgrep calls itself pgrep Closes: #86630
> -+  * Corrected symlink in libproc-dev Closes: #87865
> -+
> -+ -- Craig Small<csmall@debian.org>   Mon, 19 Mar 2001 10:13:27 +1100
> -+
> -+procps (1:2.0.7-3) unstable; urgency=low
> -+
> -+  * Conflicts with pgrep, so no more conflicts Closes: #82835
> -+  * Minor fixes to ps.1 manpage Closes: #81921
> -+  * watch highlighs correctly Closes: #77737
> -+  * top wont die with evil HOMEs, Closes: #81452
> -+  * removed reference to suidregister
> -+  * Remore -L reference in kill.1 Closes: #85913
> -+
> -+ -- Craig Small<csmall@debian.org>   Thu,  8 Feb 2001 12:44:58 +1100
> -+
> -+procps (1:2.0.7-2) unstable; urgency=medium
> -+
> -+  * Moved kill back again, dammit why is the makefile so broken
> -+    Closes: #82747
> -+  * Watch uses locale Closes: #82739
> -+  * top's scanf is protected from evil locale problems Closes: #82671, #69128
> -+    (Big thankyou to Guillaume for lending a test account)
> -+
> -+ -- Craig Small<csmall@debian.org>   Fri, 19 Jan 2001 09:15:36 +1100
> -+
> -+procps (1:2.0.7-1) unstable; urgency=medium
> -+
> -+  * New upstream version (010114)
> -+    - Merges 2.0.7 code from RedHat Closes: #80832
> -+    - Made note that Shared memory report will be junk due to kernel
> -+      Closes: #77818
> -+    - Remove html and null stuff from man page Closes: #81920
> -+    - vsize is kB in man page Closes: #82210
> -+    - man pages look better Closes: #70055, #70941
> -+    - vmstat increase Closes: #77886
> -+    - w tries harder to find things Closes: #24531
> -+    - 15 char user names Closes: #71211
> -+  * No HOME overflow in top Closes: 81452
> -+  * Added menu Hints Closes: #80051, #82324
> -+
> -+
> -+ -- Craig Small<csmall@debian.org>   Wed, 17 Jan 2001 08:57:24 +1100
> -+
> -+procps (1:2.0.6-9) unstable; urgency=medium
> -+
> -+  * added libncurses5-dev to build-depends, Closes: #67533
> -+  * Put kill back into /bin Closes #67580, #67582
> -+  * Put 2.0.6-7 ps.1 back in Closes: #67451
> -+
> -+ -- Craig Small<csmall@debian.org>   Tue, 25 Jul 2000 08:13:21 +1000
> -+
> -+procps (1:2.0.6-8) unstable; urgency=low
> -+
> -+  * New upstream source:
> -+  *  - sysctl EOF bug fixed Closes: #62877
> -+  *  - stop crashes with unmounted /proc Closes: #63512, #55177
> -+  *  - Versions checking tolerates RH /proc/ksyms Closes: #59798
> -+  *  - Top works better with SMP Closes: #34734, #56547, #59703
> -+
> -+ -- Craig Small<csmall@debian.org>   Fri, 14 Jul 2000 22:33:44 +1000
> -+
> -+procps (1:2.0.6-7) unstable; urgency=low
> -+
> -+  * Fixed missing version Closes: #62207, #62484, #59112
> -+  * Stop crashes with umounted /proc Closes: #63512, #55177
> -+  * Nicer man pages Closes: #63495, #59406
> -+  * Fixed sysctl eof bug Closes: #62877
> -+  * watch wraps properly Closes: #60913
> -+  * watch handles tabs Closes: #46213
> -+  * watch honors locale settings Closes: #63762
> -+  * now versioned replaces line for bsdutils
> -+
> -+ -- Craig Small<csmall@debian.org>   Mon, 29 May 2000 13:31:54 +1000
> -+
> -+procps (1:2.0.6-6) unstable; urgency=low
> -+
> -+  * New patchlevel (000221)
> -+  * ps 'f' ASCII art forest fixed. Closes: #57134, #58644
> -+  * let insane people run ps setuid. Closes: #56701
> -+  * note that kernel 2.3 is now faster. Closes: #49130
> -+  * top with WCHAN was leaking memory. Closes: #58172, #52257, #56889
> -+  * can show current CPU. Closes: #37023
> -+  * w looks better now. Closes: #55952
> -+  * init.d/procps removed if exists. Closes: #55137, #55852
> -+  * Fixed skill/snice man page (thanks man-db maint!) Closes: #53736, #46743
> -+  * Fixed ps man page Closes: #58365
> -+
> -+ -- Craig Small<csmall@debian.org>   Wed, 23 Feb 2000 10:31:37 +1100
> -+
> -+procps (1:2.0.6-5) unstable; urgency=low
> -+
> -+  * New upstream source
> -+  * kill "_R(smp_|smp2gig_|2gig_)?[0-9a-fA-F]{8,}"  Closes: #54394, #53208
> -+  * added type 'S' and scan past machine types  Closes: #54396
> -+  * Fixed w(1) manpage Closes: #54709
> -+  * top now agrees with ps for RSS Closes: #52679
> -+
> -+ -- Craig Small<csmall@debian.org>   Tue, 11 Jan 2000 08:23:56 +1100
> -+
> -+procps (1:2.0.6-4) unstable; urgency=low
> -+
> -+  * procps init.d script quietly dies if not /etc/default/rcS Closes:
> -+    #52839
> -+  * Put the NEWS changelog back in Closes: #52678
> -+  * Fixed that damn Rsmp annoying message bug Closes: #48686
> -+  * Remove /etc/init.d/procps Closes: #53818
> -+
> -+ -- Craig Small<csmall@debian.org>   Mon, 20 Dec 1999 11:14:53 +1100
> -+
> -+procps (1:2.0.6-3) unstable; urgency=low
> -+
> -+  * Patched ps so it complains if you chmod 711 /proc Closes: #52481
> -+  * Did the same for top.
> -+  * Ditto for oldps.
> -+  * Changed and int to a char* Closes: #52482
> -+  * sysctl.conf file references sysctl.conf (5) not 8 Closes: #52385
> -+  * props init.d script changed to procps.sh Closes: #52228
> -+
> -+ -- Craig Small<csmall@debian.org>   Mon, 13 Dec 1999 11:57:01 +1100
> -+
> -+procps (1:2.0.6-2) unstable; urgency=low
> -+
> -+  * Changed psmisc from reccomends to suggests
> -+  * %MEM now works, Closes: #50010 #50055 #50148 #50356
> -+  * top doesn't crash with>  204 processes Closes: #50055
> -+  * Another libproc fd leak fixed Closes: #45398
> -+  * ps silently ignores m and -m for future compatibility Closes: #48308
> -+  * Added a sysctl.conf and other files as suggested Closes: #51098
> -+  * Fix start field instability
> -+  * ps.1 fixed Closes: #35137
> -+
> -+ -- Craig Small<csmall@debian.org>   Tue,  7 Dec 1999 14:42:51 +1100
> -+
> -+procps (1:2.0.6-1) unstable; urgency=low
> -+
> -+  * New upstream
> -+  * sysctl crash fixed, Closes: #49015
> -+  * libproc file descriptor leak fixed, Closes: #45398
> -+  * False positive System.map mismatches killed, Closes: #49047
> -+  * Supports 64 Hz for StrongARM/Shark Closes: #47461
> -+  * pr_time fixed, Closes: #46223
> -+  * libc num cpu workaround back in, Closes: #49039
> -+  * Fixed kill manpage, Closes: #47018
> -+  * This version definitely, absolutely has kill, Closes: #46762
> -+
> -+
> -+ -- Craig Small<csmall@debian.org>   Fri,  5 Nov 1999 12:46:05 +1100
> -+
> -+procps (1:2.0.3-5) unstable; urgency=low
> -+
> -+  * Changed conflicts with replaces
> -+
> -+ -- Craig Small<csmall@debian.org>   Wed,  6 Oct 1999 14:36:48 +1000
> -+
> -+procps (1:2.0.3-4) unstable; urgency=low
> -+
> -+  * support SMP systems with versioned kernel modules Closes: #45621, #46465
> -+  * Added kill to this (it is removed from bsdutils).
> -+  * We now need kill manpage, Closes: #46004
> -+
> -+ -- Craig Small<csmall@debian.org>   Tue,  5 Oct 1999 10:28:01 +1000
> -+
> -+procps (1:2.0.3-3) unstable; urgency=low
> -+
> -+  * System.map support for non-i386 Closes: #45592, #45250
> -+  * Do not require /proc/ksyms Closes: #45128, #45132, #45619
> -+  * Alternative w.1 points to the right spot, Closes: #45331
> -+  * Copyright for skill and snice and ps fixed, Closes: #45119
> -+
> -+ -- Craig Small<csmall@debian.org>   Tue, 21 Sep 1999 16:31:59 +1000
> -+
> -+procps (1:2.0.3-2) unstable; urgency=medium
> -+
> -+  * Now with top! Closes: #45106
> -+
> -+ -- Craig Small<csmall@debian.org>   Wed, 15 Sep 1999 11:12:34 +1000
> -+
> -+procps (1:2.0.3-1) unstable; urgency=low
> -+
> -+  * New upstream source
> -+  * Debian personality does m flag Closes: #44832
> -+  * Corrected typo in top.1 Closes: #44836
> -+  * New improved watch Closes: #29970
> -+
> -+ -- Craig Small<csmall@debian.org>   Mon, 13 Sep 1999 16:59:16 +1000
> -+
> -+procps (1:2.0.2-4) unstable; urgency=high
> -+
> -+  * Fixed the nasty ps formatting problem (Bug #40859 #40856 #40839 )
> -+
> -+ -- Craig Small<csmall@debian.org>   Wed,  7 Jul 1999 08:41:54 +1000
> -+
> -+procps (1:2.0.2-3) unstable; urgency=low
> -+
> -+  * New upstream patches/source
> -+  * SMB Hz wierdness fixed (Bug #33023 #33284)
> -+  * non-tty output does not get chopped at 80 columns (bug #36688)
> -+  * BSD personalities set the default selection and output format (bug #36698)
> -+  * Fixed collumn spacing problem (Bug #35309)
> -+  * Work around for borken libs that return 0 processors (Bug #36902)
> -+  * skill now uses process name not command line (Bug #19208)
> -+
> -+ -- Craig Small<csmall@debian.org>   Mon,  5 Jul 1999 07:29:47 +1000
> -+
> -+procps (1:2.0.2-2) unstable; urgency=low
> -+
> -+  * Removed kill and manual page (Bug #36421 #36551 #36375)
> -+  * Put in patch for bogus sysconf return (Bug #36494 #36532 #36581)
> -+
> -+ -- Craig Small<csmall@debian.org>   Wed, 28 Apr 1999 09:04:59 +1000
> -+
> -+procps (1:2.0.2-1) unstable; urgency=low
> -+
> -+  * New upstream version (Bug #34394 #27291 #34250 #34956 #35240 #35247
> -+    #35520 #35756 #34580 )
> -+
> -+ -- Craig Small<csmall@debian.org>   Mon, 19 Apr 1999 13:26:48 +1000
> -+
> -+procps (1:2.0.0-1) unstable; urgency=low
> -+
> -+  * New upstream version (Bug #33083 23347 33462 10556 33266 33371 )
> -+
> -+
> -+ -- Craig Small<csmall@debian.org>   Mon, 15 Mar 1999 14:21:57 +1100
> -+
> -+procps (1:1.9.0-2) unstable; urgency=low
> -+
> -+  * top now resumes (Bug #32106 )
> -+  * debhelper text problem fixed in postinst (Bug #32963 #33122 #33003 33117 )
> -+  * oldps and ps now use alternatives (Bug #33083 )
> -+  * ps s format now not ugly (Bug #28266 )
> -+  * watch command line help and man page correct (Bug #31702 )
> -+  * sessreg removed from package (Bug #32294 )
> -+  * ps doesn't display extra spaces (Bug #27799 )
> -+  * top has spaces in command lines again (Bug #33060 )
> -+  * ps now has personality (Bug #22923 #18429 )
> -+  * moved non-free skill and snice to non-free package.
> -+
> -+ -- Craig Small<csmall@debian.org>   Tue,  9 Feb 1999 15:10:58 +1100
> -+
> -+procps (1:1.9.0-1) unstable; urgency=low
> -+
> -+  * New Upstream source
> -+
> -+ -- Craig Small<csmall@debian.org>   Thu,  4 Feb 1999 14:48:37 +1100
> -+
> -+procps (1:1.2.9-3) unstable; urgency=low
> -+
> -+  * Linked to ncurses4
> -+
> -+ -- Craig Small<csmall@debian.org>   Fri, 30 Oct 1998 14:13:02 +1100
> -+
> -+procps (1:1.2.9-2) unstable; urgency=low
> -+
> -+  * top now has spaces in between command lines (Bug #28178 )
> -+  * --version or -V now shows proper version.
> -+
> -+ -- Craig Small<csmall@debian.org>   Mon, 26 Oct 1998 08:55:59 +1100
> -+
> -+procps (1:1.2.9-1) unstable; urgency=low
> -+
> -+  * New upstream version (Bug #27573 )
> -+  * Menu entry changed from System to Menu/System (Bug #27438 )
> -+  * Char variables changed to int for powerpc (Bug #26624 )
> -+  * libproc now nulls allocated structure (Bug #26225 )
> -+  * No longer uses psdevtab (yay!) (Bug #25388 )
> -+  * ps doesn't double space command line parameters (Bug #25306 #24293 )
> -+  * ps now silently ignores g flag for those BSD heads (Bug #24075 )
> -+
> -+ -- Craig Small<csmall@debian.org>   Fri,  9 Oct 1998 09:15:11 +1000
> -+
> -+procps (1:1.2.7-2) unstable; urgency=low
> -+
> -+  * Top can suspend twice (or three times even) (Bug #22997 )
> -+  * Libraries properly built (Bug #20010 )
> -+
> -+ -- Craig Small<csmall@debian.org>   Mon,  1 Jun 1998 09:16:09 +1000
> -+
> -+procps (1:1.2.7-1) frozen unstable; urgency=high
> -+
> -+  * New upstream source, fixes security bug (Bug #21475)
> -+
> -+ -- Craig Small<csmall@debian.org>   Thu, 23 Apr 1998 08:04:54 +1000
> -+
> -+procps (1:1.2.6-2) unstable; urgency=low
> -+
> -+  * Fixed Shared library dependencies (bugs #18388 #18394 18392 )
> -+  * Conflicts with earlier versions of w-bassman (bug #18389 )
> -+
> -+ -- Craig Small<csmall@debian.org>   Mon, 23 Feb 1998 09:05:54 +1100
> -+
> -+procps (1:1.2.6-1) unstable; urgency=low
> -+
> -+  * New upstream source.
> -+  * xload is undiverted (Bug #17102 )
> -+  * ps_fields.7.gz removed (Bug #18090 )
> -+  * Colour patches removed, color-related bugs gone (Bug #18008 #17217 #18090 )
> -+  * POSIX patches removed, cmd line bugs gone (Bug #15537 )
> -+  * w is now an alternative w.procps (Bug #17960 )
> -+  * skill now works with process names (Bug #17087 )
> -+  * ps and top man pages have their field descriptions (Bug #17360 )
> -+  * ps u fixed (Bug #17313 )
> -+  * Source code is no longer FUBAR (Bug #17892 )
> -+  * top now redraws screen after config screen (Bug #11896 )
> -+  * Circular dependency removed (Bug #16966 )
> -+  * top does mess up screens with wrong cmd line (Bug #17230 )
> -+  * top suspends with ctrl-Z  (Bug #16703 )
> -+
> -+ -- Craig Small<csmall@debian.org>   Tue, 17 Feb 1998 08:31:21 +1100
> -+
> -+procps (1:1.2.5-2) unstable; urgency=low
> -+
> -+  * Moved /bin into /bin/ps (Bug #17001 )
> -+
> -+ -- Craig Small<csmall@debian.org>   Tue, 13 Jan 1998 07:50:43 +1100
> -+
> -+procps (1:1.2.5-1) unstable; urgency=low
> -+
> -+  * TTY selection works ( #16724 )
> -+  * top and ps now accept --colour and *_COLOURS
> -+  * xproc copyright file not compressed ( #14491 )
> -+  * All #include<proc/*.h>  now #include "proc/*.h" ( #13482 )
> -+  * Copyright doesn't mention psmisc now ( #16704 )
> -+  * Moved ps back into /bin ( #16737  #16705 )
> -+  * New upstream source ( #16795 )
> -+
> -+ -- Craig Small<csmall@debian.org>   Mon, 12 Jan 1998 08:35:10 +1100
> -+
> -+procps (1:1.2.2-1) unstable; urgency=low
> -+
> -+  * New maintainer
> -+  * Updated upstream source to 1.2.2 (instead of 1.2)
> -+  * Merged Helmut's color/command line patches into upstream.
> -+  * Copyright file is not compressed ( #14493 #14415 )
> -+  * psdatabase refreshed when installing ( #10693 )
> -+  * Fixed +/- line in free ( #10785 #10870 #11566 #12027 #12245 #12374 )
> -+  * w collumns corrected ( #10898 #13117 )
> -+  * top saves sort type ( #11553 )
> -+  * Linked to libc6 ( #11725 )
> -+  * top doesn't coredump with S option ( #11855 )
> -+  * skill works with given patch ( #12023 )
> -+  * libproc-dev has proper sym link ( #12697 )
> -+  * top -h doesn't change terminal settings ( #13513 )
> -+  * ps -s has "CAUGHT" not "CATCHED" ( #14342 )
> -+  * ps_colors.7 and ps_fields.7 reformatted ( #14109 #14544 #14545 )
> -+  * ps checks for tty before using colors ( #14596 )
> -+  * top sets stop signal handler later, stopping race ( #14769 )
> -+  * When using POSIX personality, processes show up ( #14780 )
> -+  * top checks for valid term type ( #15807 )
> -+  * xproc now Depends on procps-1.2.*-* ( #10762 #13347 )
> -+  * xproc dependencies fixed ( #12698 )
> -+
> -+ -- Craig Small<csmall@debian.org>   Tue, 30 Dec 1997 11:33:54 +1100
> -+
> -+procps (1.12.2.1) unstable; urgency=low
> -+
> -+  * Non-maintainer release, built for libc6.
> -+  * Added in free.c from new procps version 1.2.3 (from sunsite), seems to
> -+    fix all the problems with free reporting bogus valus.
> -+
> -+ -- Joey Hess<joeyh@master.debian.org>   Fri, 24 Oct 1997 13:34:35 -0400
> -+
> -+procps (1.12.2) stable unstable; urgency=low
> -+
> -+  * fixed meminfo handling again, as the fix wouldn't work on pre-2.1.x
> -+    kernels.
> -+  * fixed free to use the meminfo routines from libproc.
> -+
> -+ -- Helmut Geyer<Helmut.Geyer@iwr.uni-heidelberg.de>   Fri, 13 Jun 1997 22:42:14 +0200
> -+
> -+procps (1.12.1) stable unstable; urgency=low
> -+
> -+  * fixed several bugs
> -+  * replaced utmp handling to support wrappers.
> -+  * added /proc/meminfo support for 2.1.x kernels.
> -+
> -+ -- Helmut Geyer<Helmut.Geyer@iwr.uni-heidelberg.de>   Tue, 10 Jun 1997 23:59:41 +0200
> -+
> -+procps (1.11.6) frozen unstable; urgency=medium
> -+
> -+  * psmisc 1.14 : new upstream version (mainly bugfixes)
> -+  * added a lot of new serial device major numbers to the device lookup
> -+    code. Somehow it seems there are new serial devices every other week.
> -+  * fixed a bug in top: broken .toprc may cause a segmentation fault.
> -+
> -+ -- Helmut Geyer<Helmut.Geyer@iwr.uni-heidelberg.de>   Sun, 4 May 1997 09:50:30 +0200
> -+
> -+procps (1.11.5) frozen unstable; urgency=medium
> -+
> -+  * minor changes to make it compile with libc6
> -+  * fix top behaviour on machines having nonstandard NR_TASKS up to 4k
> -+    tasks
> -+
> -+ -- Helmut Geyer<Helmut.Geyer@iwr.uni-heidelberg.de>   Fri, 18 Apr 1997 02:07:46 +0200
> -+
> -+procps (1.11.4) unstable; urgency=medium
> -+
> -+  * strip libproc.so from unneeded symbols (Bug# 8311)
> -+  * fixed watch.1 example (Bug# 8169)
> -+  * partly fixed fuser sigsegv core dump (Bug# 8004)
> -+  * menu entries for xproc and procps (Bug# 8325)
> -+  * divertions for xmem and xload. (Bug# 7565)
> -+
> -+ -- Helmut Geyer<Helmut.Geyer@iwr.uni-heidelberg.de>   Sun, 13 Apr 1997 20:55:05 +0200
> -+
> -+procps (1.11.3) unstable; urgency=low
> -+
> -+  * fixed uptime again, minor Makefile changes
> -+
> -+ -- Helmut Geyer<Helmut.Geyer@iwr.uni-heidelberg.de>   Fri, 21 Feb 1997 16:22:04 +0100
> -+
> -+procps (1.11.2) unstable; urgency=medium
> -+
> -+  * fixed typo in ps_fields.7 (Bug#5457)
> -+  * fixed typo in debian/rules (Bug #5585)
> -+  * fixed bug in w introduced in 1.11.1 (Bugs #5489, #5694, #5695, #5705).
> -+  * added support for non-standard serial devices (long overdue - Bug
> -+    #5771).
> -+  * fixed uptime option handling (Bug #6099).
> -+  * fixed top problems with missing/corrupted utmp (Bug #5819).
> -+  * fixed manpage problems (Bug #5936).
> -+
> -+ -- Helmut Geyer<Helmut.Geyer@iwr.uni-heidelberg.de>   Wed, 19 Feb 1997 18:49:26 +0100
> -+
> -+procps (1.11.1) unstable; urgency=low
> -+
> -+  * fixed bug in w<username>
> -+  * automatic resize if field length is exceeded. This changed the shared
> -+    library, so popping the major number.
> -+  * fixed numeric WCHAN output on Alphas and stupid bug in ps (again,
> -+    thanks to H. Koenig).
> -+  * fixed top memory statistics for systems with more than 100M memory or
> -+    swap.
> -+
> -+ -- Helmut Geyer<Helmut.Geyer@iwr.uni-heidelberg.de>   Tue, 12 Nov 1996 02:57:18 +0100
> -+
> -+procps (1.10.1) unstable; urgency=low
> -+
> -+  * merged in ALPHA&  Sparc patches
> -+    (from ftp.azstarnet.com:/pub/linux/axp/glibc)
> -+  * fixed ps --deselect/-N for pid lists
> -+  * use shared libs from now on, install shlibs again
> -+  * manpages for libproc
> -+  * static lib compiled without -fPIC
> -+  * added libproc package for development installing libproc headers,
> -+    manpages and static library.
> -+  * fixed PROC_REAL bug when PROC_FILLSTATUS isn't set.
> -+  * fixed color bug in ps --forest
> -+  * added xproc package for xload, xmem, xidle, xcpustate
> -+    (XConsole left out as we use xconsole&  klogd on debian)
> -+  * adapted xload manpage for xidle and xmem
> -+  * fixed xmem to cope with newer kernels (where shared pages are counted
> -+    once for each additional reference)
> -+  * fixed top change_fields bug (a field needs 24, not 21 spaces)
> -+  * fixed several Alpha bugs (thanks to Harald Koenig)
> -+  * due to popular demand, the old format for time intervals is back.
> -+    for all program using this, a toggle command line option has been
> -+    provided. The default behaviour depends on the compile time option
> -+    NEW_TIME_DEFAULT (see main Makefile)
> -+
> -+ -- Helmut Geyer<Helmut.Geyer@iwr.uni-heidelberg.de>   Wed, 23 Oct 1996 21:30:54 +0200
> -+
> -+procps (1.09.2) unstable; urgency=low
> -+
> -+  * fixed cpu nice % in summary
> -+  * fixed topsetup initialisation in top.h I messed up in last revision
> -+  * fixed pipe output bug
> -+  * fixed --deselect bug in SVR4/POSIX mode
> -+
> -+ -- Helmut Geyer<Helmut.Geyer@iwr.uni-heidelberg.de>   Sun, 20 Oct 1996 13:57:11 +0200
> -+
> -+procps (1.09.1) unstable; urgency=low
> -+
> -+  * fixed ps -w bug displaying too many empty lines
> -+  * fixed SIGSEGV bug in ps -www
> -+  * fixed bug in top not calculating length of the command/args/env fields
> -+    at the field selection screen in some circumstances.
> -+  * fixed SIGSEGV bug when using environ field
> -+
> -+ -- Helmut Geyer<Helmut.Geyer@iwr.uni-heidelberg.de>   Sat, 12 Oct 1996 07:59:29 +0200
> -+
> -+procps (1.09) experimental; urgency=low
> -+
> -+  * This is an experimental release of the procps suite. A lot of features have
> -+    been added since the 1.01(a) release:
> -+     - support for both BSD and POSIX (SVR4) style command line options.
> -+     - completely configurable display of information.
> -+     - colour markup of processes exceeding limits or belonging to a user.
> -+    Please take a look at /usr/doc/procps/NEWS and the manpages for a concise
> -+    list. This is how the next upstream release of procps may look
> -+    (i.e. it will  look like this if there is not too much resistance).
> -+
> -+ -- Helmut Geyer<Helmut.Geyer@iwr.uni-heidelberg.de>   Sat, 5 Oct 1996 14:26:57 +0200
> ---- procps-3.1.15.orig/kill.1
> -+++ procps-3.1.15/kill.1
> -@@ -10,16 +10,11 @@
> - kill \- send a signal to a process
> -
> - .SH SYNOPSIS
> --.TS
> --l l.
> --kill pid ...	Send SIGTERM to every process listed.
> --kill -signal pid ...	Send a signal to every process listed.
> --kill -s signal pid ...	Send a signal to every process listed.
> --kill -l	List all signal names.
> --kill -L	List all signal names in a nice table.
> --kill -l signal	Convert a signal number into a name.
> --kill -V,--version	Show version of program
> --.TE
> -+\fBkill\fR [ -\fBsignal\fR | -s \fBsignal\fR ] \fBpid\fR ...
> -+.br
> -+\fBkill\fR [ -L | -V, --version ]
> -+.br
> -+\fBkill\fR -l  [ \fBsignal\fR ]
> -
> - .SH DESCRIPTION
> - The default signal for kill is TERM. Use -l or -L to list available signals.
> -@@ -105,7 +100,7 @@
> - .fi
> - .PP
> - .SH "SEE ALSO"
> --pkill(1) skill(1) kill(2) renice(1) nice(1) signal(7) killall(1)
> -+.BR pkill (1), skill (1), kill (2), renice (1), nice (1), signal (7), killall (1).
> -
> - .SH STANDARDS
> - This command meets appropriate standards. The -L flag is Linux-specific.
> ---- procps-3.1.15.orig/tload.c
> -+++ procps-3.1.15/tload.c
> -@@ -30,9 +30,6 @@
> - static int dly=5;
> - static jmp_buf jb;
> -
> --extern int optind;
> --extern char *optarg;
> --
> - static void alrm(int signo)
> - {
> -     (void)signo;
> ---- procps-3.1.15.orig/pgrep.c
> -+++ procps-3.1.15/pgrep.c
> -@@ -367,7 +367,8 @@
> - 	preg = do_regcomp ();
> -
> - 	if (opt_newest) saved_start_time =  0ULL;
> --	if (opt_oldest) saved_start_time = ~0ULL;
> -+    else
> -+	    saved_start_time = ~0ULL;
> - 	if (opt_newest) saved_pid = 0;
> - 	if (opt_oldest) saved_pid = INT_MAX;
> - 	
> ---- procps-3.1.15.orig/top.1
> -+++ procps-3.1.15/top.1
> -@@ -430,8 +430,8 @@
> - The number of\fB major\fR page faults that have occurred for a task.
> - A page fault occurs when a process attempts to read from or write to a virtual
> - page that is not currently present in its address space.
> --A major page fault is when disk access is involved in making that
> --page available.
> -+A major page fault is when backing storage access (such as a disk) is involved
> -+in making that page available.
> -
> - .TP 3
> - v:\fB nDRT\fR \*(EM Dirty Pages count
> diff --git a/recipes/procps/procps-3.2.1/install.patch b/recipes/procps/procps-3.2.1/install.patch
> deleted file mode 100644
> index 2d16c26..0000000
> --- a/recipes/procps/procps-3.2.1/install.patch
> +++ /dev/null
> @@ -1,16 +0,0 @@
> -
> -#
> -# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
> -#
> -
> ---- procps-3.1.15/Makefile~install	2003-12-24 03:01:55.000000000 +0100
> -+++ procps-3.1.15/Makefile	2004-02-11 00:45:59.000000000 +0100
> -@@ -147,7 +147,7 @@
> - ###### install
> -
> - $(BINFILES) : all
> --	$(install) --mode a=rx --strip $(notdir $@) $@
> -+	$(install) --mode a=rx $(notdir $@) $@
> -
> - $(MANFILES) : all
> - 	$(install) --mode a=r $(notdir $@) $@
> diff --git a/recipes/procps/procps-3.2.5/pagesz-not-constant.patch b/recipes/procps/procps-3.2.5/pagesz-not-constant.patch
> deleted file mode 100644
> index 8e9e1eb..0000000
> --- a/recipes/procps/procps-3.2.5/pagesz-not-constant.patch
> +++ /dev/null
> @@ -1,22 +0,0 @@
> -Index: procps-3.2.1/proc/devname.c
> -===================================================================
> ---- procps-3.2.1.orig/proc/devname.c	2004-03-18 05:43:50.000000000 +1100
> -+++ procps-3.2.1/proc/devname.c	2005-04-02 10:40:17.462138000 +1000
> -@@ -227,7 +227,7 @@
> -
> - /* number -->  name */
> - unsigned dev_to_tty(char *restrict ret, unsigned chop, dev_t dev_t_dev, int pid, unsigned int flags) {
> --  static char buf[PAGE_SIZE];
> -+  static char buf[4096];
> -   char *restrict tmp = buf;
> -   unsigned dev = dev_t_dev;
> -   unsigned i = 0;
> -@@ -249,7 +249,7 @@
> -   if((flags&ABBREV_TTY)&&  !strncmp(tmp,"tty",  3)&&  tmp[3]) tmp += 3;
> -   if((flags&ABBREV_PTS)&&  !strncmp(tmp,"pts/", 4)&&  tmp[4]) tmp += 4;
> -   /* gotta check before we chop or we may chop someone else's memory */
> --  if(chop + (unsigned long)(tmp-buf)<= sizeof buf)
> -+  if(chop + (unsigned long)(tmp-buf)<  sizeof buf)
> -     tmp[chop] = '\0';
> -   /* replace non-ASCII characters with '?' and return the number of chars */
> -   for(;;){
> diff --git a/recipes/procps/procps-3.2.7/install.patch b/recipes/procps/procps-3.2.7/install.patch
> deleted file mode 100644
> index 9f1ef69..0000000
> --- a/recipes/procps/procps-3.2.7/install.patch
> +++ /dev/null
> @@ -1,27 +0,0 @@
> ---- procps-3.2.5.virgin/Makefile	2005-01-26 05:55:26.000000000 +0100
> -+++ procps-3.2.5/Makefile	2005-08-03 04:55:26.346984488 +0200
> -@@ -30,7 +30,10 @@
> - install  := install -D --owner 0 --group 0
> -
> - # Lame x86-64 /lib64 and /usr/lib64 abomination:
> --lib64    := lib$(shell [ -d /lib64 ]&&  echo 64)
> -+# lib64    := lib$(shell [ -d /lib64 ]&&  echo 64)
> -+
> -+# Equally lame hack to work around makefile lameness when the host arch is 64bit, but the target is not.
> -+lib64      := lib
> -
> - usr/bin                  := $(DESTDIR)/usr/bin/
> - bin                      := $(DESTDIR)/bin/
> -@@ -211,10 +214,10 @@
> - ###### install
> -
> - $(BINFILES) : all
> --	$(install) --mode a=rx $(notdir $@) $@
> -+	$(install) -m 555 $(notdir $@) $@
> -
> - $(MANFILES) : all
> --	$(install) --mode a=r $(notdir $@) $@
> -+	$(install) -m 444 $(notdir $@) $@
> -
> - install: $(filter-out $(SKIP) $(addprefix $(DESTDIR),$(SKIP)),$(INSTALL))
> - 	cd $(usr/bin)&&  $(ln_f) skill snice
> diff --git a/recipes/procps/procps-3.2.7/pagesz-not-constant.patch b/recipes/procps/procps-3.2.7/pagesz-not-constant.patch
> deleted file mode 100644
> index 8e9e1eb..0000000
> --- a/recipes/procps/procps-3.2.7/pagesz-not-constant.patch
> +++ /dev/null
> @@ -1,22 +0,0 @@
> -Index: procps-3.2.1/proc/devname.c
> -===================================================================
> ---- procps-3.2.1.orig/proc/devname.c	2004-03-18 05:43:50.000000000 +1100
> -+++ procps-3.2.1/proc/devname.c	2005-04-02 10:40:17.462138000 +1000
> -@@ -227,7 +227,7 @@
> -
> - /* number -->  name */
> - unsigned dev_to_tty(char *restrict ret, unsigned chop, dev_t dev_t_dev, int pid, unsigned int flags) {
> --  static char buf[PAGE_SIZE];
> -+  static char buf[4096];
> -   char *restrict tmp = buf;
> -   unsigned dev = dev_t_dev;
> -   unsigned i = 0;
> -@@ -249,7 +249,7 @@
> -   if((flags&ABBREV_TTY)&&  !strncmp(tmp,"tty",  3)&&  tmp[3]) tmp += 3;
> -   if((flags&ABBREV_PTS)&&  !strncmp(tmp,"pts/", 4)&&  tmp[4]) tmp += 4;
> -   /* gotta check before we chop or we may chop someone else's memory */
> --  if(chop + (unsigned long)(tmp-buf)<= sizeof buf)
> -+  if(chop + (unsigned long)(tmp-buf)<  sizeof buf)
> -     tmp[chop] = '\0';
> -   /* replace non-ASCII characters with '?' and return the number of chars */
> -   for(;;){
> diff --git a/recipes/procps/procps-3.2.7/procmodule.patch b/recipes/procps/procps-3.2.7/procmodule.patch
> deleted file mode 100644
> index fabfaba..0000000
> --- a/recipes/procps/procps-3.2.7/procmodule.patch
> +++ /dev/null
> @@ -1,36 +0,0 @@
> -*** procps-3.2.5/proc/module.mk.orig	Sun Jul 24 11:53:49 2005
> ---- procps-3.2.5/proc/module.mk	Sun Jul 24 11:54:32 2005
> -***************
> -*** 96,102 ****
> -  #################### install rules ###########################
> -
> -  $(lib)$(SOFILE) : proc/$(SONAME)
> -! 	$(install) --mode a=rx $<  $@
> -
> -  ifneq ($(SOLINK),$(SOFILE))
> -  .PHONY: $(lib)$(SOLINK)
> ---- 96,102 ----
> -  #################### install rules ###########################
> -
> -  $(lib)$(SOFILE) : proc/$(SONAME)
> -! 	$(install) -m 555 $<  $@
> -
> -  ifneq ($(SOLINK),$(SOFILE))
> -  .PHONY: $(lib)$(SOLINK)
> -***************
> -*** 115,121 ****
> -  	$(ldconfig)
> -
> -  $(usr/lib)$(ANAME) : proc/$(ANAME)
> -! 	$(install) --mode a=r $<  $@
> -
> -  # Junk anyway... supposed to go in /usr/include/$(NAME)
> -  #INSTALL += $(addprefix $(include),$(HDRFILES))
> ---- 115,121 ----
> -  	$(ldconfig)
> -
> -  $(usr/lib)$(ANAME) : proc/$(ANAME)
> -! 	$(install) -m 444 $<  $@
> -
> -  # Junk anyway... supposed to go in /usr/include/$(NAME)
> -  #INSTALL += $(addprefix $(include),$(HDRFILES))
> diff --git a/recipes/procps/procps-3.2.7/psmodule.patch b/recipes/procps/procps-3.2.7/psmodule.patch
> deleted file mode 100644
> index f298c1c..0000000
> --- a/recipes/procps/procps-3.2.7/psmodule.patch
> +++ /dev/null
> @@ -1,21 +0,0 @@
> -*** procps-3.2.5/ps/module.mk.orig	Sun Jul 24 11:54:40 2005
> ---- procps-3.2.5/ps/module.mk	Sun Jul 24 11:55:02 2005
> -***************
> -*** 33,40 ****
> -
> -
> -  $(bin)ps: ps/ps
> -! 	$(install) --mode a=rx $<  $@
> -
> -  $(man1)ps.1 : ps/ps.1
> -! 	$(install) --mode a=r $<  $@
> -  	-rm -f $(DESTDIR)/var/catman/cat1/ps.1.gz $(DESTDIR)/var/man/cat1/ps.1.gz
> ---- 33,40 ----
> -
> -
> -  $(bin)ps: ps/ps
> -! 	$(install) -m 555 $<  $@
> -
> -  $(man1)ps.1 : ps/ps.1
> -! 	$(install) -m 444 $<  $@
> -  	-rm -f $(DESTDIR)/var/catman/cat1/ps.1.gz $(DESTDIR)/var/man/cat1/ps.1.gz
> diff --git a/recipes/procps/procps-3.2.5/install.patch b/recipes/procps/procps-3.2.8/install.patch
> similarity index 100%
> rename from recipes/procps/procps-3.2.5/install.patch
> rename to recipes/procps/procps-3.2.8/install.patch
> diff --git a/recipes/procps/procps-3.2.7/linux-limits.patch b/recipes/procps/procps-3.2.8/linux-limits.patch
> similarity index 100%
> rename from recipes/procps/procps-3.2.7/linux-limits.patch
> rename to recipes/procps/procps-3.2.8/linux-limits.patch
> diff --git a/recipes/procps/procps-3.2.1/pagesz-not-constant.patch b/recipes/procps/procps-3.2.8/pagesz-not-constant.patch
> similarity index 100%
> rename from recipes/procps/procps-3.2.1/pagesz-not-constant.patch
> rename to recipes/procps/procps-3.2.8/pagesz-not-constant.patch
> diff --git a/recipes/procps/procps-3.2.5/procmodule.patch b/recipes/procps/procps-3.2.8/procmodule.patch
> similarity index 100%
> rename from recipes/procps/procps-3.2.5/procmodule.patch
> rename to recipes/procps/procps-3.2.8/procmodule.patch
> diff --git a/recipes/procps/procps-3.2.7/procps.init b/recipes/procps/procps-3.2.8/procps.init
> similarity index 100%
> rename from recipes/procps/procps-3.2.7/procps.init
> rename to recipes/procps/procps-3.2.8/procps.init
> diff --git a/recipes/procps/procps-3.2.5/psmodule.patch b/recipes/procps/procps-3.2.8/psmodule.patch
> similarity index 100%
> rename from recipes/procps/procps-3.2.5/psmodule.patch
> rename to recipes/procps/procps-3.2.8/psmodule.patch
> diff --git a/recipes/procps/procps-3.2.7/sysctl.conf b/recipes/procps/procps-3.2.8/sysctl.conf
> similarity index 100%
> rename from recipes/procps/procps-3.2.7/sysctl.conf
> rename to recipes/procps/procps-3.2.8/sysctl.conf
> diff --git a/recipes/procps/procps.inc b/recipes/procps/procps.inc
> index 2de32d2..1db030d 100644
> --- a/recipes/procps/procps.inc
> +++ b/recipes/procps/procps.inc
> @@ -8,9 +8,64 @@ PRIORITY = "optional"
>   LICENSE = "GPL"
>   DEPENDS = "ncurses"
>
> -FILES_${PN} += "${base_libdir}/libproc-*.so"
> +INC_PR = "r9"
>
> -SRC_URI = "http://procps.sourceforge.net/procps-${PV}.tar.gz \
> +SRC_URI = "http://procps.sourceforge.net/procps-${PV}.tar.gz;name=tarball \
> +	   file://sysctl.conf \
> +	   file://procps.init \
>              file://install.patch;patch=1"
>
> -inherit autotools
> +inherit autotools update-rc.d
> +
> +INITSCRIPT_NAME = "procps.sh"
> +INITSCRIPT_PARAMS = "start 30 S ."
> +
> +FILES_${PN} += "${base_libdir}/libproc-*.so"
> +
> +FILES = "${bindir}/top.${PN} ${base_bindir}/ps.${PN} ${bindir}/uptime.${PN} ${base_bindir}/kill.${PN} \
> +	 ${bindir}/free.${PN} ${bindir}/w ${bindir}/watch ${bindir}/pgrep ${bindir}/pmap ${bindir}/pwdx \
> +	 ${bindir}/snice ${bindir}/vmstat ${bindir}/slabtop ${bindir}/pkill ${bindir}/skill ${bindir}/tload \
> +	 ${base_sbindir}/sysctl.${PN}"
> +
> +CONFFILES_${PN} = "${sysconfdir}/sysctl.conf"
> +
> +EXTRA_OEMAKE = "CFLAGS=-I${STAGING_INCDIR} \
> +                CPPFLAGS=-I${STAGING_INCDIR} \
> +                LDFLAGS="${LDFLAGS}" \
> +                CURSES=-lncurses \
> +                install='install -D' \
> +                ldconfig=echo"
> +
> +do_install_append () {
> +	install -d ${D}${sysconfdir}/init.d
> +	install -m 0644 ${WORKDIR}/sysctl.conf ${D}${sysconfdir}/sysctl.conf
> +	install -m 0755 ${WORKDIR}/procps.init ${D}${sysconfdir}/init.d/procps.sh
> +
> +	mv ${D}${bindir}/uptime ${D}${bindir}/uptime.${PN}
> +	mv ${D}${bindir}/top ${D}${bindir}/top.${PN}
> +	mv ${D}${base_bindir}/kill ${D}${base_bindir}/kill.${PN}
> +	mv ${D}${base_bindir}/ps ${D}${base_bindir}/ps.${PN}
> +	mv ${D}${bindir}/free ${D}${bindir}/free.${PN}
> +	mv ${D}${base_sbindir}/sysctl ${D}${base_sbindir}/sysctl.${PN}
> +	mv ${D}${bindir}/pkill ${D}${bindir}/pkill.${PN}
> +}
> +
> +pkg_postinst() {
> +	update-alternatives --install ${bindir}/top top top.${PN} 90
> +	update-alternatives --install ${bindir}/uptime uptime uptime.${PN} 90
> +	update-alternatives --install ${base_bindir}/ps ps ps.${PN} 90
> +	update-alternatives --install ${base_bindir}/kill kill kill.${PN} 90
> +	update-alternatives --install ${bindir}/free free free.${PN} 90
> +	update-alternatives --install ${base_sbindir}/sysctl sysctl sysctl.${PN} 90
> +	update-alternatives --install ${bindir}/pkill pkill pkill.${PN} 90
> +}
> +
> +pkg_postrm() {
> +	update-alternatives --remove top top.${PN}
> +	update-alternatives --remove ps ps.${PN}
> +	update-alternatives --remove uptime uptime.${PN}
> +	update-alternatives --remove kill kill.${PN}
> +	update-alternatives --remove free free.${PN}
> +	update-alternatives --remove sysctl sysctl.${PN}
> +	update-alternatives --remove pkill pkill.${PN}
> +}
> diff --git a/recipes/procps/procps_3.1.15.bb b/recipes/procps/procps_3.1.15.bb
> deleted file mode 100644
> index 01114e8..0000000
> --- a/recipes/procps/procps_3.1.15.bb
> +++ /dev/null
> @@ -1,9 +0,0 @@
> -require procps.inc
> -
> -SRC_URI += "file://procps_${PV}-2.diff;patch=1"
> -
> -EXTRA_OEMAKE = "CFLAGS=-I${STAGING_INCDIR} \
> -                LDFLAGS=-L${STAGING_LIBDIR} -Wl,--rpath-link,${STAGING_LIBDIR} \
> -                CURSES=-lncurses \
> -                install='install -D' \
> -                ldconfig=echo"
> diff --git a/recipes/procps/procps_3.2.1.bb b/recipes/procps/procps_3.2.1.bb
> deleted file mode 100644
> index 33df399..0000000
> --- a/recipes/procps/procps_3.2.1.bb
> +++ /dev/null
> @@ -1,11 +0,0 @@
> -require procps.inc
> -
> -PR = "r1"
> -
> -SRC_URI += "file://pagesz-not-constant.patch;patch=1"
> -
> -EXTRA_OEMAKE = "CFLAGS=-I${STAGING_INCDIR} \
> -                LDFLAGS=-L${STAGING_LIBDIR} -Wl,--rpath-link,${STAGING_LIBDIR} \
> -                CURSES=-lncurses \
> -                install='install -D' \
> -                ldconfig=echo"
> diff --git a/recipes/procps/procps_3.2.5.bb b/recipes/procps/procps_3.2.5.bb
> deleted file mode 100644
> index de7524b..0000000
> --- a/recipes/procps/procps_3.2.5.bb
> +++ /dev/null
> @@ -1,45 +0,0 @@
> -require procps.inc
> -
> -PR = "r5"
> -
> -SRC_URI += "file://procmodule.patch;patch=1 \
> -            file://psmodule.patch;patch=1"
> -
> -FILES = "${bindir}/top.${PN} ${base_bindir}/ps.${PN} ${bindir}/uptime.${PN} ${base_bindir}/kill.${PN} \
> -	 ${bindir}/free.${PN} ${bindir}/w ${bindir}/watch ${bindir}/pgrep ${bindir}/pmap ${bindir}/pwdx \
> -	 ${bindir}/snice ${bindir}/vmstat ${bindir}/slabtop ${bindir}/pkill ${bindir}/skill ${bindir}/tload \
> -	 ${base_sbindir}/sysctl.${PN}"
> -
> -EXTRA_OEMAKE = "CFLAGS=-I${STAGING_INCDIR} \
> -		CPPFLAGS=-I${STAGING_INCDIR} \
> -                LDFLAGS=-L${STAGING_LIBDIR} -Wl,--rpath-link,${STAGING_LIBDIR} \
> -                CURSES=-lncurses \
> -                install='install -D' \
> -                ldconfig=echo"
> -
> -do_install_append () {
> -	mv ${D}${bindir}/uptime ${D}${bindir}/uptime.${PN}
> -	mv ${D}${bindir}/top ${D}${bindir}/top.${PN}
> -	mv ${D}${base_bindir}/kill ${D}${base_bindir}/kill.${PN}
> -	mv ${D}${base_bindir}/ps ${D}${base_bindir}/ps.${PN}
> -	mv ${D}${bindir}/free ${D}${bindir}/free.${PN}
> -	mv ${D}${base_sbindir}/sysctl ${D}${base_sbindir}/sysctl.${PN}
> -}
> -
> -pkg_postinst() {
> -	update-alternatives --install ${bindir}/top top top.${PN} 90
> -	update-alternatives --install ${bindir}/uptime uptime uptime.${PN} 90
> -	update-alternatives --install ${base_bindir}/ps ps ps.${PN} 90
> -	update-alternatives --install ${base_bindir}/kill kill kill.${PN} 90
> -	update-alternatives --install ${bindir}/free free free.${PN} 90
> -	update-alternatives --install ${base_sbindir}/sysctl sysctl sysctl.${PN} 90
> -}
> -
> -pkg_postrm() {
> -	update-alternatives --remove top top.${PN}
> -	update-alternatives --remove ps ps.${PN}
> -	update-alternatives --remove uptime uptime.${PN}
> -	update-alternatives --remove kill kill.${PN}
> -	update-alternatives --remove free free.${PN}
> -	update-alternatives --remove sysctl sysctl.${PN}
> -}
> diff --git a/recipes/procps/procps_3.2.7.bb b/recipes/procps/procps_3.2.7.bb
> deleted file mode 100644
> index b31b683..0000000
> --- a/recipes/procps/procps_3.2.7.bb
> +++ /dev/null
> @@ -1,67 +0,0 @@
> -require procps.inc
> -
> -PR = "r9"
> -
> -inherit update-rc.d
> -
> -INITSCRIPT_NAME = "procps.sh"
> -INITSCRIPT_PARAMS = "start 30 S ."
> -
> -SRC_URI += "file://procmodule.patch;patch=1 \
> -            file://psmodule.patch;patch=1 \
> -	    file://linux-limits.patch;patch=1 \
> -	    file://sysctl.conf \
> -	    file://procps.init \
> -	    "
> -
> -FILES = "${bindir}/top.${PN} ${base_bindir}/ps.${PN} ${bindir}/uptime.${PN} ${base_bindir}/kill.${PN} \
> -	 ${bindir}/free.${PN} ${bindir}/w ${bindir}/watch ${bindir}/pgrep ${bindir}/pmap ${bindir}/pwdx \
> -	 ${bindir}/snice ${bindir}/vmstat ${bindir}/slabtop ${bindir}/pkill ${bindir}/skill ${bindir}/tload \
> -	 ${base_sbindir}/sysctl.${PN}"
> -
> -CONFFILES_${PN} = "${sysconfdir}/sysctl.conf"
> -
> -EXTRA_OEMAKE = "CFLAGS=-I${STAGING_INCDIR} \
> -                CPPFLAGS=-I${STAGING_INCDIR} \
> -		usr/bin=${D}${bindir}/ \
> -		bin=${D}${base_bindir}/ \
> -		usr/proc/bin=${D}${bindir}/ \
> -                LDFLAGS="${LDFLAGS}" \
> -                CURSES=-lncurses \
> -                install='install -D' \
> -                ldconfig=echo"
> -
> -do_install_append () {
> -	install -d ${D}${sysconfdir}
> -	install -m 0644 ${WORKDIR}/sysctl.conf ${D}${sysconfdir}/sysctl.conf
> -	install -d ${D}${sysconfdir}/init.d
> -	install -m 0755 ${WORKDIR}/procps.init ${D}${sysconfdir}/init.d/procps.sh
> -
> -	mv ${D}${bindir}/uptime ${D}${bindir}/uptime.${PN}
> -	mv ${D}${bindir}/top ${D}${bindir}/top.${PN}
> -	mv ${D}${base_bindir}/kill ${D}${base_bindir}/kill.${PN}
> -	mv ${D}${base_bindir}/ps ${D}${base_bindir}/ps.${PN}
> -	mv ${D}${bindir}/free ${D}${bindir}/free.${PN}
> -	mv ${D}${base_sbindir}/sysctl ${D}${base_sbindir}/sysctl.${PN}
> -	mv ${D}${bindir}/pkill ${D}${bindir}/pkill.${PN}
> -}
> -
> -pkg_postinst() {
> -	update-alternatives --install ${bindir}/top top top.${PN} 90
> -	update-alternatives --install ${bindir}/uptime uptime uptime.${PN} 90
> -	update-alternatives --install ${base_bindir}/ps ps ps.${PN} 90
> -	update-alternatives --install ${base_bindir}/kill kill kill.${PN} 90
> -	update-alternatives --install ${bindir}/free free free.${PN} 90
> -	update-alternatives --install ${base_sbindir}/sysctl sysctl sysctl.${PN} 90
> -	update-alternatives --install ${bindir}/pkill pkill pkill.${PN} 90
> -}
> -
> -pkg_postrm() {
> -	update-alternatives --remove top top.${PN}
> -	update-alternatives --remove ps ps.${PN}
> -	update-alternatives --remove uptime uptime.${PN}
> -	update-alternatives --remove kill kill.${PN}
> -	update-alternatives --remove free free.${PN}
> -	update-alternatives --remove sysctl sysctl.${PN}
> -	update-alternatives --remove pkill pkill.${PN}
> -}
> diff --git a/recipes/procps/procps_3.2.8.bb b/recipes/procps/procps_3.2.8.bb
> new file mode 100644
> index 0000000..22f54c3
> --- /dev/null
> +++ b/recipes/procps/procps_3.2.8.bb
> @@ -0,0 +1,11 @@
> +require procps.inc
> +
> +PR = "${INC_PR}.0"
> +
> +SRC_URI += "file://procmodule.patch;patch=1 \
> +            file://psmodule.patch;patch=1 \
> +	    file://linux-limits.patch;patch=1 \
> +	    "
> +
> +SRC_URI[tarball.md5sum] = "9532714b6846013ca9898984ba4cd7e0"
> +SRC_URI[tarball.sha256sum] = "11ed68d8a4433b91cd833deb714a3aa849c02aea738c42e6b4557982419c1535"



^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH][STABLE] procps: apply patch from Ubuntu to finally get rid of 'Unknown Hz value'
  2010-03-22 11:05 ` [PATCH][STABLE] procps: apply patch from Ubuntu to finally get rid of 'Unknown Hz value' Marcin Juszkiewicz
  2010-03-22 12:34   ` Koen Kooi
@ 2010-03-23  1:59   ` Philip Balister
  1 sibling, 0 replies; 13+ messages in thread
From: Philip Balister @ 2010-03-23  1:59 UTC (permalink / raw)
  To: openembedded-devel

Acked-by: Philip Balister <philip@balister.org>


On 03/22/2010 07:05 AM, Marcin Juszkiewicz wrote:
> Signed-off-by: Marcin Juszkiewicz<marcin@juszkiewicz.com.pl>
> ---
>   .../procps-3.2.8/60_linux_version_init.dpatch      |   61 ++++++++++++++++++++
>   recipes/procps/procps_3.2.8.bb                     |    3 +-
>   2 files changed, 63 insertions(+), 1 deletions(-)
>   create mode 100644 recipes/procps/procps-3.2.8/60_linux_version_init.dpatch
>
> diff --git a/recipes/procps/procps-3.2.8/60_linux_version_init.dpatch b/recipes/procps/procps-3.2.8/60_linux_version_init.dpatch
> new file mode 100644
> index 0000000..d99456a
> --- /dev/null
> +++ b/recipes/procps/procps-3.2.8/60_linux_version_init.dpatch
> @@ -0,0 +1,61 @@
> +#! /bin/sh /usr/share/dpatch/dpatch-run
> +## 60_linux_init.dpatch by<david.sugar@canonical.com>
> +##
> +## All lines beginning with `## DP:' are a description of the patch.
> +## DP: Fix Linux version detection which relied on elf loader side-effect.
> +## DP: This patch also depends on 40_gnu-kbsd-version, which modified
> +## DP: init_Linux_version().
> +
> +@DPATCH@
> +---
> + proc/sysinfo.c |    1 +
> + proc/version.c |    5 +++--
> + proc/version.h |    1 +
> + 3 files changed, 5 insertions(+), 2 deletions(-)
> +
> +--- procps-3.2.8.orig/proc/sysinfo.c
> ++++ procps-3.2.8/proc/sysinfo.c
> +@@ -210,10 +210,11 @@ static int check_for_privs(void){
> + }
> +
> + static void init_libproc(void) __attribute__((constructor));
> + static void init_libproc(void){
> +   have_privs = check_for_privs();
> ++  init_Linux_version(); // make sure we have version before continuing...
> +   // ought to count CPUs in /proc/stat instead of relying
> +   // on glibc, which foolishly tries to parse /proc/cpuinfo
> +   //
> +   // SourceForge has an old Alpha running Linux 2.2.20 that
> +   // appears to have a non-SMP kernel on a 2-way SMP box.
> +--- procps-3.2.8.orig/proc/version.c
> ++++ procps-3.2.8/proc/version.c
> +@@ -31,12 +31,13 @@ void display_version(void) {
> +
> + #define LINUX_VERSION(x,y,z)   (0x10000*(x) + 0x100*(y) + z)
> +
> + int linux_version_code;
> +
> +-static void init_Linux_version(void) __attribute__((constructor));
> +-static void init_Linux_version(void) {
> ++// cannot depend on this auto-running before libproc init...
> ++//static void init_Linux_version(void) __attribute__((constructor));
> ++void init_Linux_version(void) {
> +     static struct utsname uts;
> +     int x = 0, y = 0, z = 0;	/* cleared in case sscanf()<  3 */
> +
> +     if (uname(&uts) == -1)	/* failure implies impending death */
> + 	exit(1);
> +--- procps-3.2.8.orig/proc/version.h
> ++++ procps-3.2.8/proc/version.h
> +@@ -12,10 +12,11 @@
> +  * Copyright 2002 Albert Cahalan
> +  */
> +
> + EXTERN_C_BEGIN
> +
> ++extern void init_Linux_version(void);	/* initialize linux version */
> + extern void display_version(void);	/* display suite version */
> + extern const char procps_version[];		/* global buf for suite version */
> +
> + extern int linux_version_code;		/* runtime version of LINUX_VERSION_CODE
> + 					   in /usr/include/linux/version.h */
> diff --git a/recipes/procps/procps_3.2.8.bb b/recipes/procps/procps_3.2.8.bb
> index 22f54c3..f98b849 100644
> --- a/recipes/procps/procps_3.2.8.bb
> +++ b/recipes/procps/procps_3.2.8.bb
> @@ -1,10 +1,11 @@
>   require procps.inc
>
> -PR = "${INC_PR}.0"
> +PR = "${INC_PR}.1"
>
>   SRC_URI += "file://procmodule.patch;patch=1 \
>               file://psmodule.patch;patch=1 \
>   	    file://linux-limits.patch;patch=1 \
> +	    file://60_linux_version_init.dpatch;patch=1 \
>   	    "
>
>   SRC_URI[tarball.md5sum] = "9532714b6846013ca9898984ba4cd7e0"



^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2010-03-23  2:02 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-03-22 11:05 [STABLE] procps update Marcin Juszkiewicz
2010-03-22 11:05 ` [PATCH][STABLE] procps: adjust FILES so that libproc-*.so lands in ${PN} Marcin Juszkiewicz
2010-03-22 12:33   ` Koen Kooi
2010-03-23  1:58   ` Philip Balister
2010-03-22 11:05 ` [PATCH][STABLE] procps_3.2.7.bb: Fix compilation when usr/bin is same as /bin Marcin Juszkiewicz
2010-03-22 12:33   ` Koen Kooi
2010-03-23  1:58   ` Philip Balister
2010-03-22 11:05 ` [PATCH][STABLE] procps: added 3.2.8 and dropped older Marcin Juszkiewicz
2010-03-22 12:34   ` Koen Kooi
2010-03-23  1:59   ` Philip Balister
2010-03-22 11:05 ` [PATCH][STABLE] procps: apply patch from Ubuntu to finally get rid of 'Unknown Hz value' Marcin Juszkiewicz
2010-03-22 12:34   ` Koen Kooi
2010-03-23  1:59   ` Philip Balister

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.