-------------------------- general ------------------------

The main Makefile is broken. Try 'touch top.h' to see.
The Makefile is too clever, so it's still not fixed.

Don't these really belong in the procps package?
         killall   pstree   fuser   lsof   who
(no, these are maintained elsewhere.  The psmisc stuff used
to be included, but as it was maintained quite separately
procps was generally behind the latest psmisc release.)

Cache results of dev_to_tty.

---------------------- kernel -------------------------

Mark threads, and supply a list of other threads.

Supply data for the ADDR and JOBC fields.

Support & supply data for SL and RE.

Add a /proc/*/tty symlink to eliminate guessing when /proc/*/fd is
not accessable.

Put unique ID at the top of System.map and in /proc, to make sure
there is never a mismatch.

The kernel should provide a "current CPU number" indication for SMP. Maybe
use "last CPU number" if not currently running, since processor affinity
will tend to put the process back on the same CPU it had before.

The kernel should report these task_struct members:
    has_cpu
    processor
    last_processor     Only used by PowerPC!?!? Bug?

---------------------- w --------------------------

The LOGIN@ column sometimes has a space in it. This makes correct
scripting difficult.

Verify that DNS control does not give a user the power to specify
arbitrary data for the FROM column. (could set root's VGA color map!)

---------------------- watch --------------------------

Should catch SIGWINCH and adjust as needed.
Tell 29970@bugs.debian.org when done.

---------------------- vmstat --------------------------

Extract /proc/stat parsing from vmstat into libproc somewhere.

--------------------- libproc ----------------------

Remove pre-2.0 /proc/meminfo support from proc/sysinfo.c to simplify the code.
(no, I want to support old versions for a long time when possible. -mkj)
Parse the 2.0 format in a better manner, perhaps like ps does long options.

Stop storing fields with duplicate info (often different
units: kB and pages, seconds and jiffies) in the proc_t struct.

---------------------- top -------------------------

Share more stuff with ps.

-------------------- skill ------------------------

Use the library more? The tty output is bad.

---------------- ps for now, maybe move to libproc ------------------

With forest output and a tty named /dev/this_is_my_tty, the position
of the command name gets messed up. (we print too many spaces)

Fix missing stuff for these formats: FB_j FB_l FB_v HP_f HP_*_ HP_fl JFMT OL_m
(jobc,cpu,sl,re,cpu,prmgrp,cp,m_size,m_swap,m_share,vm_lib,m_dt)
Note that "cpu" has two meanings.

Add Beowulf support. This is ugly, since the current patches use a
daemon to collect info and add a HOST field after the PID field.

Query optimizer, put cheap/required process selection first.

Avoid reading both /proc/*/status and /proc/*/stat. Actually, avoid
reading lots of stuff! Avoidance got disabled. (at least don't read the
environment!!!)

Maybe ps should put a 'C' in front of fields when they are affected
by cumulative mode. Debian does that. (move flag to common.h...)
(not sure I like that -mkj)

Support printing the client hostname (the FROM that w(1) uses) in place
of a pty. Maybe do this when PS_PERSONALITY=linux.

Disgusting color support, for completeness.
(No, leave that to things like gtop and so forth. -mkj)

Disambiguate narrow tty info. (/dev/tty7 == /dev/pts/7 now)
1------8     1--4
ttyS2        S2
ttyI31       I31
pts/7        7        Short form could be /999.
pts/9999     9999     Short form could just be trunctuated to /999.
tty7         7        Short form could be vc-7.
tty63        63       Short form could be vc63.

Internationalization, as specified by XPG3, Volume 1, Commands and Utilities.
(and suggested by Unix98) LC_TIME affects date format.

----------------------- ps -----------------------

Improve long sort/format specifiers documentation and fill in the missing
code as much as the kernel can support. Make sure that memory amounts are in
pages when they should be and in kB when they should be, not backwards.

output encoding: UTF8 --nul --null --html

Make BSD formats use non-standard BSD time format, at least when it
doesn't violate the "no whitespace" rule.

Adjust default selection for BSD-like personalities and for the
automatic personalities when BSD options are used.

Try to make -fl, -jl, and maybe even -flj fit in 80 columns.
Do we need more than 1000 pty devices, 9 flag bits, etc.?

When not in strict Unix98 mode, let foo=8 specify that foo is 8
characters wide. Debian does that. Then foo=8=bar and foo=bar=8
could change both header and width.

Better unmangling of '?' as a tty. The shell destroys '?' when there
is a filename that matches. If the argument seems like garbage,
check for a file that might have screwed up the '?'.

If the 'O' option is given something already implied by 'O',
assume the user wanted a sorting option.

Conflict:
Digital THREAD is user,pcpu,pri,scnt,wchan,usertime,systime
AIX     THREAD is uname,pid,ppid,tid,S,C,PRI,scount,WCHAN,F,tty,bnd,comm
AIX looks like this:
         USER   PID  PPID  TID S  C PRI SC   WCHAN   FLAG   TTY BND  CMD
