Changes in 21 (15-MAY-2002)
Changes in 21 (15-MAY-2002)
===========================
 - signames.h is cleaned no more wrong signal types
 - More translatable strings
 - Added Portuguese Language (thanks to Edesio Costa e Silva)
 - Added Italian Language (thanks to Daniele Pagano)
 - Added French Language (thanks to Marc L嶲er)
 - Added German Language (thanks to Wolfgang Schorer)
 - Added Swedish Language (thanks to Joakim Mared)

Changes in 20.2 (18-OCT-2001)
=============================
 - Added NLS/gettext
 - fuser no longer assume st_dev is 0 for sockets, needed for kernel 2.4.12
   and above, Thanks to Alexander Viro for the patch.
 - Search both IPv4 and IPv6 namespaces.
 - Added patch for pstree -u (SF Patch: #455932 )

Changes in 20.1 (31-MAR-2001)
=============================
 - command line -<num> put back in.
 - got rid of annoying "sending signal #" debug message
 - updated killall.1
 - updated killall usage 
 - verbose now tells you what signal it is killing with.
 
Changes from 19 to 20 (14-DEC-2000)
===================================
 - New maintainer
 - Uses automake/autoconf to determine things
 - License changed to GPL
 - signames.h generated better (suggested by Grant Erickson)
 - uses getopt() for better command line stuff
 - makes less assumptions about process name, closes Debian Bug #53337
 - Doesn't use losetup for loop devices in fuser.
 - Better selection of process name (thanks to David desJardins)

Changes from version 18 to 19 (25-OCT-1999)
===========================================

 - pstree: "static int" was only "static" (fix by Jeremy Buhler)
 - now uses cc -E instead of /lib/cpp (suggested by Kristofer Karas)
 - fuser: -s conflicted with -k (reported by David Hinds)
 - fuser: using -a with -s now yields an error
 - added a sanity check for signames.h (suggested by John Summerfield)
 - only "signals" < 100 are now added to signames.h, eliminating SIGSTKSZ


Changes from version 17 to 18 (1-NOV-1998)
==========================================

 - fuser: usage summary listed -s (silent) as -q
 - fuser: fuser x/y yielded confusing error message if x/y doesn't exist
   (reported by Tigran Aivazian)
 - fuser: new option -i for interactive killing (like killall -i)
 - killall: tried to print a NULL pointer if full process name was unavailable
   and killing failed
 - killall: new option -g to kill process group instead of process
 - killall: cosmetic PROC_BASE changes (by Florian La Roche)
 - pidof: new option -g to show PGID instead of PID (by Florian La Roche)
 - pstree: new option -H to highlight process specified by PID
 - added -D_GNU_SOURCE to CFLAGS for glibc 2 compatibility
 - Makefile should now also work with bash-2


Changes from version 16 to 17 (17-FEB-1998)
===========================================

 - fuser: now also handles /proc of recent 2.1 kernels (fix by Andreas Schwab;
   other fixed also proposed by Chris Wedgwood and Luca Berra)
 - pstree now properly handles init with PID = PPID = 1
 - fuser: no longer changes the name space for relative paths ending with the
   name of a name space (e.g. something/tcp)
 - fuser: now also reports mount points, swap files, and loop mounts
 - updated the fuser man page
 - killall: new option -w to wait for the killed processes to die
 - killall: didn't handle malloc failure


Changes from version 15 to 16 (28-JUL-1997)
===========================================

 - killall: now gets the list of all PIDs before killing processes, thereby
   avoiding race between readdir and /proc (found by Boris Zentner)
 - make install no longer changes BINDIR and MANDIR if they already exist
 - changed psmisc.<version>.lsm to psmisc-<version>.lsm for consistency


Changes from version 14 to 15 (16-JUN-1997)
===========================================

 - killall: killall -v didn't print the command name (fixed by Marty Leisner)
 - fuser: fuser -a <unix_domain_socket>  could crash (reported by Helmut Geyer)
 - fuser: fuser -m didn't consider UNIX domain sockets (fix based on a patch by
   Andries Brouwer)
 - fuser: fuser -a /a /a /b  no longer merges the first two entries
 - changed package name format from psmisc.<version> to psmisc-<version> to
   avoid annoyance messages from sunsite's archive scripts


Changes from version 13 to 14 (19-APR-1997)
===========================================

 - killall: command-line parser didn't accept -signal (fixed by Chris Wedgwood)
 - pidof: minor man page correction
 - Makefile: pidof is now only installed when running make install-pidof
 - added a file with installation instructions (INSTALL)


Changes from version 12 to 13 (16-APR-1997)
===========================================

 - fuser: didn't check for out of memory condition after malloc (oops !)
 - fuser: INET domain sockets can now be specified as
   [local_port][,[remote_host][,[remote_port]]]
 - fuser: now includes linux/kdev_t.h instead of linux/fs.h. This may break
   compilation with some ancient kernels.
 - killall: new option -q to suppress error message if no process was found
 - killall: man page didn't reset font properly
 - killall: now tries harder to handle very long names (> 15 characters)
   (proposed by Erik Thiele)
 - killall: new option -e to require exact name match
 - killall: now lists PIDs if invoked as "pidof" (proposed by Peter Daum)
 - minor Makefile change to eliminate need to patch for some versions of Linux


Changes from version 11 to 12 (7-APR-1996)
==========================================

 - fuser is now able to look up INET and UNIX domain sockets
 - pstree: new option -n to sort its output by PID
 - pstree: new option -G to use VT100 line drawing characters


Changes from version 10 to 11 (20-SEP-1995)
===========================================

 - added VERSION file
 - size of command name is now defined in comm.h - the old approach of
   obtaining values from linux/sched.h:struct task_struct doesn't work anymore)
 - signames.h is now generated from cpp output (linux/signals.h no longer
   defines them)
 - all commands now print the version number when invoked with the -V option
 - signames.h added to  make clean
 - removed use of {,} expansion in mkdist
 - various minor documentation fixes


Changes from version 9 to 10 (28-MAR-1995)
==========================================

 - fuser: now prints header before first path (used to be on same line)
 - fuser: fixed line wrapping for long paths (used to wrap too early)
 - fuser: fixed a NULL pointer dereference in add_file
 - pstree: now outputs strings obtained from termcap with tputs
 - some cosmetic changes (to avoid certain warnings if using -Wconversion)
 - updated e-mail address in README

Changes from version 8 to 9 (22-JAN-1995)
=========================================

 - fuser: now works with Plan 9 semantics (i.e. what recent kernels use;
   reported by Harald Koenig, Nick Simicich, and others)
 - fuser: now also scans /proc/*/maps
 - fuser: fixed NULL pointer dereferencing when processes are created while
   fuser is running (fix by Pauline Middelink)
 - fuser: now resets effective uid to real uid before killing, thereby making
   suid installation a smaller security risk
 - pstree: fixed process tree truncation (fix by Andreas Schwab)
 - pstree: added support for UTF-8 line drawing characters (adapted a patch by
   Johan Myreen)
 - killall.1 now warns about potential compatibility problems with killall
   on other systems (proposed by Christos Ricudis)
 - added a copyright notice
 - updated e-mail address

Changes from version 7 to 8 (11-OCT-1994)
=========================================

 - pstree: added -a to display command line arguments
 - pstree, fuser and killall: display an error message if /proc has
   no process entries (i.e. if it is not mounted)
 - killall: more detailed usage output
 - killall: added killing by file
 - fuser and killall: fixed generation of signal list to include SIGUSR[12]
 - fuser: now also accepts signal numbers
 - "make install": now also installs man pages; executable permissions changed
   from 755 to 555; now installs fuser in /bin, killall and pstree in /usr/bin
 - "make spotless": fixed typo
 - man pages: minor corrections and improvements

Changes from version 6 to 7
===========================

 - pstree: -h didn't work because of incorrect termcap usage
 - pstree: changed branch drawing from --- to -+-
\-     `-
 - pstree: fixed indentation inside compacted subtrees
 - fuser and killall: don't kill themselves
 - fuser: suppresses m(map) if file is e(xecuted)
 - mkdist now includes itself
 - minor updates on all man pages

Changes from version 5 to 6
===========================

 - pstree: unknown display width expressed as zero width (TIOCGWINSZ) is
   now correctly handled.
 - fuser: added -s for silent operation.
 - fuser: added non-zero return code if no processes using any file are
  found.
 - pstree and fuser: non-printable characters in command names (fuser: also
     in file names) are now shown as \nnn (octal). \ is shown as \\.
 - added "install" target to Makefile to install binaries in /usr/local/bin
 - minor updates on all man pages.

Changes from version 4 to 5
===========================

 - killall: added interactive and verbose modes (options -i and -v)
 - fuser: added 0.99pl11 support (changed /proc/*/lib to /proc/*/mmap)
 - fuser: mmap'ed files and shared libraries are now marked with "m"
          (shlibs were marked with "s" and mmap'ed files weren't marked
          at all)

Changes from version 3 to 4
===========================

 - killall and fuser: now accept signal numbers too.
 - pstree: added listing of process trees by user name.
 - pstree: compaction sometimes generated wrong output.
 - fuser: did only recognize the first occurrence of a file when using
   the options -u or -v.
 - changed Makefile to create stripped impure executables.