Changes revision 89751
1Thu Mar 30 2000 - wnl (3.5beta12)
2	Updated modules: m_aix41.c, m_aix43.c, m_mtxinu.c, m_sco5.c,
3	and m_ultrix4.c.
4	Included m_irixsgi.c from some source that's been floating around
5	SGI.  Don't yet know how it compares to m_irix62.
6
7Fri Mar 10 2000 - wnl (3.5beta11)
8	top.c: avoid potential loop if stdout gets closed, use macro
9	for p_active to avoid collision with system macros.
10	m_sunos5: widened some fields to accomodate 5.8.
11	m_decosf1: added ordering support
12	m_irix62_64: provides 64-bit module based on m_irix62.
13	m_irix62: skip bogus files in /proc directory
14	m_svr42MP and m_svr5: complete replacement with updated copies
15	m_mtxinu: complete replacement with updated copies
16	m_aix43: new module for 4.3
17	getans: replaced with a Bourne shell script
18
19Mon Mar  6 2000 - wnl (3.5beta10)
20	m_sunos5.c: workaround for curses bug: ensure that TERMINFO has
21	a value.
22
23Fri Jan 15 1999 - wnl (3.5beta10)
24	top.c: now check return code from read to avoid looping on eof.
25	top.c: delay of 0 now only valid for root.
26	decosf1.c: patches from Rainer Orth should fix most of the
27	problems with this module (including the display of certain
28	processes and runtime errors).
29	sunos5.c: Rainer insisted on putting the slash back in the
30	state field ("run/4") and widened the field to accomodate it.
31	aix.c: widened PID field for 6-digit pids (shortened NICE field)
32	module macosx added, thanks to Andrew Townley.
33
34Fri Dec 18 1998 - wnl (3.5beta9)
35	Configure checks status of "make" and complains if it fails.
36
37Thu Dec 17 1998 - wnl (3.5beta9)
38	Added module sco5 from Mike Hopkirk.
39	Added module netbsd132 from moto kawasaki.
40
41Sun Oct 25 1998 - wnl (3.5beta9)
42	Added Casper's patches for sunos5 for the following:
43	produce same results as swap -s (5.5 and higher),
44	don't use system_pages kstat when /dev/kmem can be opened,
45	skip . and .. when reading /proc, replace use of SOLARIS24
46	with OSREV.
47
48Fri Sep 11 1998 - wnl (3.5beta9)
49	Added workaround to getans for the absence of $< in SCO Unix.
50
51Wed Jul  1 1998 - wnl (3.5beta9)
52	Changed structure member "errno" to "errnum" in commands.c.
53	Replaced hpux10 module with one from John Haxby.
54
55Fri Apr 17 1998 - wnl (3.5beta8)
56	Moved definition of _KMEMUSER earlier in m_sunos5.c.  This should
57	fix the compilation problem with gnu 2.7.2.3, obviating the need
58	for the fixinc.svr4 patch, but hopefully will not affect anything
59	else.
60	Added -DORDER to m_sunos4mp.c
61
62Tue Nov 18 1997 - wnl (3.5beta7)
63	Added gcc 2.7.2.3 patch for fixinc.svr4 and changed INSTALL and
64	FAQ to refer to it.
65	Added NetBSD HP9000 fix.  Hopefully it doesn't break other 
66	NetBSD platforms.
67
68Fri Oct 24 1997 - wnl (3.5beta7)
69	Modified m_dcosx.c to change uses of procdir to xprocdir, avoiding
70	a name clash with an include file (Bryn Parrott)
71
72Sat Oct 11 1997 - wnl (3.5beta6)
73	Incorporated Casper's patches for Solaris 2.6 and for the multi-
74	processor bug ("kstat finds too many cpus").
75
76Sun Jan 20 1996 - wnl (3.5beta5)
77	Fixed Casper's m_sunos5 module: there was a poor interaction with 
78	his use of OSREV and SunOS 5.5.1.
79
80Fri Dec 20 1996 - wnl (3.5beta4)
81	Replaced m_sunos5 with a reworked version by Casper Dik.  This one
82	should work under 2.6 and may not require that top be run setuid
83	to root under 2.5 or 2.6.  This also fixed a bug in m_sunos5 that
84	was introduced in beta3.
85	Fixed calculation of OSREV in Configure.
86
87Wed Nov 20 1996 - wnl (3.5beta3)
88	Incorporated contributed fixes to:  bsdos2, irix62, freebsd20,
89	ultrix4, sunos5.  Changed calculation of swap area in sunos5 (now
90	uses swapctl).  sunos5 now understands idled processors.  Changed
91	Configure to determine os revision using uname (when available)
92	and adding it to machine.c compiliation in Makefile as -DOSREV.
93	Changed calls to "exit" in modules to use "quit" instead.
94
95Oct 20 1996 - wnl (3.5beta3)
96	Removed "time" from list of ordering choices:  there's no easy way
97	to get cpu time for all processes (it's in the u area).
98
99Fri Oct 18 1996 - wnl (3.5beta3)
100	hpux10 and hpux9: using a better means for determining when a
101	process is idle.
102	decosf1 now includes utils.h.
103
104Fri Sep 13 1996 - wnl (3.5beta2)
105	Fixed Configure to build Make.desc in such a way that doesn't
106	require a long argument to sed.
107
108Thu Sep 12 1996 - wnl (3.5beta2)
109	Fixed bug in display.c that affected empty cpustate names.
110	Created hpux1010 module - a variant of hpux10 that does not use
111	struct proc or struct user (suitable for HP/UX 10.10).
112
113Wed Sep 11 1996 - wnl (3.5beta2)
114	Changes to sunos5 module:  Removed WCPU column since it is meaningless
115	on a SVR4-based system.  Added THR column to show number of threads
116	for each process.  This was not straightforward: the information is
117	not stored in prpsinfo but rather in prstatus.
118
119Tue Sep 10 1996 - wnl (3.5beta1)
120	Added patches for sunos4mp to provide order support.
121	Added irix62 module.
122	Changed prime.c to include stdio.h for printf prototype.
123	Added conditional code to os.h and utils.c to handle systems
124	where sys_errlist is defined in stdio.h (such as NetBSD).
125
126Mon Sep 09 1996 - wnl (3.5beta1)
127	Removed tar and shar rules from Makefile.X -- don't need them anymore.
128	Added -v option to display version number.  Updated man page.
129
130Thu Aug 29 1996 - wnl (3.4)
131	Replaced modules (from Tim Pugh): next 32, next40.
132	Fixed bug in username.c: hashing negative uids.
133
134Thu Aug 22 1996 - wnl (3.4beta3)
135	Patched modules:  ultrix4, sunos4, sunos5, utek, decosf1, irix5.
136	Added modules: next40, next32.
137	Fixed procstates update bug in display.c.
138	Fixed divide by zero bug in utils.c.
139	Fixed bad number in layout.h
140	Minor fixes to Configure.
141	Complete overhaul of FAQ.
142
143Tue Feb 13 1996 - wnl (3.4beta3)
144	Added convex module from Warren Vosper (originally written by
145	William Jones).
146
147Tue Feb 13 1996 - wnl (3.4beta2)
148	Fixed format_k in utils.c to calculate K and M values correctly.
149	Added check for gigabyte values ('G').  Changed sumamry_format
150	in display.c to use format_k where appropriate.
151	Changed creation of distribution tar file to place everything in
152	a top level directory.
153
154Tue Jan 30 1996 - wnl (3.4beta2)
155	Added m_aix41 module.  Added new tag type to module comments:
156	TERMCAP, which defined the library to use for a termcap library.
157	If no TERMCAP tag is found in the module's initial comment, then
158	Configure will default to "-ltermcap".  AIX needs this since it
159	put all the termcap routines in libcurses(!)
160
161	Added m_bsdos2 (found lingering in my mailbox).
162	Updated m_svr4 to include support for NCR multiprocessors.
163	Fixed small bug in utils.c
164
165Thu Jan 25 1996 - wnl (3.4beta1)
166	Fixed m_sunos5 invocation of gettimeofday to include "NULL" as
167	second argument.  This provides compatability with the Posix-
168	compliant template provided with SunOS 5.5, but doesn't hurt
169	previous versions since they do bother with a template for that
170	function.
171
172	Made changes (recommended by net users) to hpux10, ultrix4,
173	netbsd10, aux3 (replaced aux31).  Added module for linux.
174
175Fri Oct 10 1995 - wnl (3.4beta1)
176	Added user-contributed modules for SCO Unix, IRIX 5, HP/UX 10,
177	Pyramid DC/OSX.  Changed Configure so that it runs in environments
178	whose c-shells have no 'eval'(!).  Added support for multiple sort
179	ordering methods via the -o switch.  This option requires support
180	from the machine dependent module: such support was added to
181	sunos5 (thus sunos54) and sunos4.
182
183	display.c:  Changed CPU states display line to shorten the leading
184	tag if the data won't fit in the current width.  Fixed a divide-by-
185	zero bug that affected ultrasparc servers (and potentially other
186	systems).
187
188	m_sunos5.c: Now asks the system for the correct pagesize rather than
189	assuming it is 4K.
190
191Thu Mar  2 1995 - wnl (3.3 RELEASE)
192	Added module netbsd10 and renamed netbsd to netbsd08.  Changed
193	Configure so that it does not use an initial default module name.
194	Made other compatability fixes to Configure.  Added comments to
195	decosf1 concerning optimizer bug.  Other documentation changes.
196	Added use of "prime.c" to Configure script.
197
198Tue Feb  7 1995 - wnl (3.3beta6)
199	Still one more beta....
200	Fixes for sunos5 2.4 gcc core dump (it was an alignment problem).
201	Fixed and improvements for decosf1 (including use of format_k
202	for proper SIZE column formatting).  Added modules freebsd20 and
203	ncr3000.
204
205Thu Feb  2 1995 - wnl (3.3beta5)
206	One more beta....
207	Fixed a few bugs in the sunos5 port pertaining to casting and
208	very large memory counts.  Added "ifndef HAVE_GETOPT" to getopt.c
209	to provide for conditional compilation of the getopt function.
210	Those systems that have getopt in libc can add -DHAVE_GETOPT to
211	the CFLAGS line in the module to prevent the function from being
212	compiled.  Added sunos54 module to accomodate SunOS 5.4
213	peculiarities.  Added module for aux3.1.
214
215Wed Jan  4 1995 - wnl (3.3beta4)
216	This is really taking too long......sigh.
217	Fixed SIGWINCH handling	once and for all.  It now remembers the
218        number of processes you	want displayed even thru window resizes.
219	Fixed buffer conflict in utils.c (itoa and itoa7).
220        Lots of small improvements to the various modules were made over
221	the past month: too numberous to list here.  SunOS 5 module made
222	more secure thru use of seteuid calls (other SVR4 modules should
223	be modified similarly).  One final MP fix to sunos5, too.  Module
224	for decosf1 was modified to accomodate V3.0.
225
226Mon Apr 18 1994 - wnl (3.3beta3)
227	I think I finally got a sunos5 module that will work on MP
228	machines.  Fixed cpu states figure in osmp41a so that 
229	percentages never exceed 100%.  Added shell script "install"
230	since Unix vendors can't seem to make up their minds on what
231	options they want to use for the one that comes with the OS.
232	Added netbsd modules from Christos.  Fixed lots of other little
233	things over the past few months that I have long since forgotten.
234
235Wed Dec 15 1993 - wnl (3.3beta2)
236	Added module patches from various users:  hpux9, sunos5.
237	Fixed bug with batch mode (screen_width wasn't getting set).
238	Changes to accomodate 64 bit machines.
239	Fixed some bugs in command parsing ("renice 19 " did something
240	unexpected).
241
242Mon Aug 30 1993 - wnl (3.3beta)
243	Added lots of little patches from various users.
244	Added routines to utils.c for intelligent formatting of kilobytes
245	and time.  These are intended to be used in the modules when
246	formatting a process line.  Added code to "summary_format" in
247	display.c to do intelligent formatting of memory quantities.
248	Redid display.c to allow for varying line widths and dynamic
249	reallocation of the screen buffer.
250	Added a SIGWINCH handler to top.c!
251	Added a constant, MAX_COLS, to top.h which defines the absolute
252	widest line we will ever allow.  Changed allocations of "char fmt"
253	in all machine modules to use this constant rather than an abitrary
254	number.
255
256Fri Aug 13 1993 - wnl (3.3)
257	Changed return value definition of time-related functions in top.c,
258	display.c, and m_ultrix4.c to time_t (stuart@coral.cs.jcu.edu.au).
259	Fixed bug in display.c: line_update when start != 0.
260
261Wed Aug  4 1993 - wnl (3.2 release)
262	Changes to Configure from Paul Vixie.  Added modules for hpux9 and
263	bsd386.
264
265Tue Jul 13 1993 - wnl (3.1 release)
266	More small changes and minor bug fixes.  Brought bsd44 up to date
267	and added a module for svr4.2.  Changed shar packaging to use Rich
268	Salz's cshar stuff.
269
270Wed Jul  7 1993 - wnl (3.1BETA)
271	More changes and bug fixes to Configure.  Applied some other
272	minor bug fixes and suggestions from the beta testers.  Added
273	the "metatop" shell script and the "installmeta" rule to the
274	Makefile to make handling multiple machine models and OS versions
275	easier.  Added INSTALL and FAQ files.
276
277Tue May 18 1993 - wnl (3.1BETA)
278	Changed Configure to be compatible with most SVR4 environments
279	(differing output from "ls -lg").  Also changed Configure,
280	Makefile.X, etc., to look for module files in the subdirectory
281	"machine" (thanks to Christos Zoulas).
282
283Tue Apr 20 1993 - wnl (3.1BETA)
284	Changed both occurences of "ls -1" in Configure to "ls".  This
285	SHOULD produce the same result, and has the advantage that it
286	doesn't produce an error on a system 5 machine.  Integrated other
287	changes recommended in the first round of beta testing.
288
289Wed Mar 10 1993 - wnl (3.1BETA)
290	MAJOR CHANGE:  I have added a required function to all machine
291	dependent modules, called proc_owner.  It takes a pid as an argument
292	and returns the uid of the process's owner.  Such capability is 
293	necessary for top to run securely as a set-uid program, something
294	that is needed for SVR4 implementations to read /proc.  I have
295	retrofitted all modules except dgux with this function, but was
296	not able to test most of them.  Top should now run securely as
297	a setuid program.  Added 386bsd and sunos5 modules.  Added sunos4mp
298	module for MP Suns.
299
300Sat Feb 20 1993 - wnl (3.1ALPHA)
301	Modified top.c and commands.c to compile correctly on System V
302	derived Unixes (especially SVR4), but in a way that doesn't rely
303	on an oracle-like declaration (that is, I don't use "ifdef SYSV").
304	Fixed some bugs in "Configure" and "getans".  Added inspection of
305	env variable "TOP" for options, and made -I default to showing
306	idle processes.  Added "u" command to change username restriction
307	on the fly.  Created shell script "suntop" for poor multi-version
308	SunOS folks (like myself).
309
310Wed Jun  3 1992 - wnl (3.0)
311	"max_topn" wasn't being used everywhere it was supposed to be
312	in top.c.  Many cosmetic changes, including copyright notices in
313	all the .c files.  Version number is now handled by version.c and
314	reflects the current patchlevel (which is initially set to 0).
315	Changed Configure and Makefile to allow configurable variables for
316	certain commands:  shell, cc, awk, install.  Updated README and
317	Porting.  Ready to release to the world!
318
319Mon May 18 1992 - wnl (2.9BETA)
320	Added modules provided by Christos Zoulas.  Replaced screen.c
321	with one modified by Christos and that will appropriately select
322	and handle the sgtty, termio, or termios system.  Integrated many
323	other changes recommended by Christos.  Fixed (I hope) the "-b"
324	batch mode display bug.  Had to change loadavg to load_avg to avoid
325	a conflict with 4.4BSD.  
326
327Mon Apr 27 1992 - wnl (2.8BETA)
328	Added modules provided by Daniel Trinkle.  Added patchlevel.h,
329	but the patch level is not yet reflected in the version number.
330	Cleaned up m_sunos4.c a little.
331
332Wed Apr 22 1992 - wnl (2.8BETA)
333	Major internal reorganization.  All of the system dependent stuff
334	is now really and truly separated from everything else.  The
335	system dependent functions are contained in a separate .c file
336	called a "module".  The Configure script knows how to find and
337	set up these modules, but the human installer still needs to tell
338	Configure which module to use (no automagic determination of 
339	machine type---sorry).  Added -U option to specify one user's
340	processes, but there is no corresponding command...yet.  Other
341	changes and improvements too numerous to mention here.  Currently
342	there are only two modules:  sunos4 and umax.  But after this beta
343	release is sent around, I expect more to be written.  I just hope
344	that the machine-dependent abstractions don't need to change in
345	the process.
346
347Thu Mar 26 1992 - wnl (2.7BETA)
348	Beta release with minimal architecture support.  Updated README
349	and added a first cut at a Porting guide.  Added ioctl TIOCGWINSZ
350	code from top2.5+ (courtesy of David MacKenzie).  I didn't even
351	try porting the Ultrix support since I don't have access to an
352	Ultrix machine.
353
354Fri Oct 11 1991 - wnl (2.6)
355	This version was not widely released.  It contained many changes.
356	Here are the major ones:
357
358	Put in Vixie's idle process hack.
359
360	Enhanced type field in new_message to handle delayed messages.
361
362	Changed u_process to automatically adjust for varying lines of
363	output.  Management of screenbuf should now be completely contained
364	in display.c.  Removed now extraneous code from CMD_number[12]
365	portion of command switch in top.c.  This was the stuff that dealt
366	with zeroing out lines in screenbuf.
367
368	Finally made it all work correctly on a 386i.  Problems I had to
369	overcome: kvm_nlist doesn't return 0 on success as advertised (it
370	returns 1 instead); the results of a kvm_nlist are different
371	(n_type can be zero even for a symbol that exists).
372
373	Serious rearrangement for processor dependent stuff.  All nlists
374	are now in separate files with the suffix ".nlist".  Most machine
375	specific code is in "machine.c" surrounded by appropriate ifdefs---
376	the goal is to eventually have all machine specific code in this
377	file.  Managed to find a way to detect SunOS 4.x at compile-time:
378	this is contained in the include file "sun.h".  Completely changed
379	the memory display line for SunOS 4.x---it now displays a far
380	more appropriate report.
381
382	Created the shell script "Configure" to aid in the configuration
383	step.
384
385	Fixed a bug in init_termcap:  it will now tolerate an environment
386	which does not have TERM defined (thanks to Sam Horrocks for
387	pointing this out).
388
389Tue Aug  9 1988 - wnl (2.5)
390	Added changes to make top work under version 4.0 of the Sun
391	operating system.  Changes were provided by Scott Alexander of the
392	University of Pennsylvania.  Thanks!  Compile with "-Dsunos4" to
393	get them.  Virtual memory statistics are not readily accessible
394	under 4.0, so they don't show up in the output.
395
396Thu Jul 31 1987 - wnl (2.4)
397	Fixed a problem with the 4.0 Pyramid code.  The label "cp_time"
398	doesn't exist in the 4.0 kernel anymore.  I think the code Carl
399	sent me wants "percpu" instead.  That is what I am using and it
400	appears to work.  375 code is still untested (at least by me).
401	Also picked a great deal of lint out of the source.  Lint now only
402	complains about a very few nitpicky things (there are far too many
403	calls to "printf" to put a "(void)" in front of!), at least under
404	SunOS.
405
406Tue Jul 28 1987 - wnl (2.4a)
407	Added changes for a Symmetrics Computer Systems s/375 machine.
408	Changes were provided by Paul Vixie.  Thanks!  According to Mr.
409	Vixie:  "These changes were not made at, by, or for SCS proper.
410	SCS would probably be interested in them, but so far only the
411	users' group has them.  They were made in February, 1987, to
412	version 2.1 of the program, by Paul Vixie
413	(dual!ptsfa!vixie!paul@ucbvax.Berkeley.EDU)."  His changes were
414	integrated into version 2.3 to make version 2.4.
415
416	The SCS peculiarities are summarized in Changes.scs.
417
418Tue Jun  9 1987 - wnl (2.3 for real)
419	Changed the includes for the extra code Carl sent me to only
420	compile on Version 4.0 Pyramid machines.  This makes top still
421	compilable on pre-4.0 Pyramids.  Specifically, this code is only
422	compiled when both "pyr" and "CPUFOUND" are defined.
423
424Wed Jun  3 1987 - wnl (2.3 with Pyramid additions)
425	It's been a month and I still haven't done anything about
426	distributing this version.  However, Carl Gutekunst from Pyramid
427	has sent me some extra patches for some of the Pyramid code.  I
428	just added those and will make them part of 2.3.  This fixes the
429	following Pyramid problems:  adds the inclusion of <sys/systm.h>,
430	uses the correct size for getting the kernel value _ccpu (this bug
431	affected the Vax version as well), sums the elements of the percpu
432	array to calculate a cp_time value (for OSx 4.0).
433
434Fri May  1 1987 - wnl (2.3)
435	I have finally finished all the changes for better support of
436	oddbal terminals.  Added the low-level routine "clear_eol" which
437	makes handling terminals without "ce" easy:  it uses spaces
438	instead.  All direct uses of "clear_line" outside of screen.c have
439	been changed to use this primitive.  A terminal with "os" is now
440	handled in such that all situations that need overwriting are
441	completely avoided (including several commands).  This required
442	some changes to the way commands are translated into action (in
443	"top.c").  Made several important changes to display.c to prevent
444	overflowing of any of the fields.  Specifically, more than 99
445	total processes and a cpu state that reaches 100%.  Had to make a
446	small change to two casts in top.c, because the Sun 3.2 compiler
447	was giving warnings on them.  Added the "-q" option which lets
448	root run top at a nice of -20 (in case he thinks he really needs it).
449
450Tue Dec 30 1986 - wnl (2.2)
451	I think I fixed a bug reported by Julian Onions at Nottingham.
452	Occasionally, top will core dump when the sprintf in either
453	i_process or u_process overflows due to an exceptionally
454	unrealistic time value.  I think it highly unlikely that top can
455	get a bad proc structure (although I suppose it is possible), but
456	the process time is read from the user structure, and that can
457	sometimes be part garbage.  So, "get_ucpu" checks the value it
458	returns to make sure its formatted form will not overflow the
459	sprintf.  If this doesn't fix the bug, then more drastic measures
460	will be necessary.  I plan to make this version the official
461	"top 2.2".  [[ This version was never distributed very widely. ]]
462
463Tue Dec  2 1986 - wnl (2.2c)
464	Added to top.c the notion of a "failed command".  When a command
465	produces a message (on the message line), an update does not
466	follow it.  Before, the message was written and a new display was
467	shown---purposefully not overwriting the message.  But the
468	improvements to handle overstriking terminals and terminals
469	without "ce" clear the screen before every display, which would
470	erase the message.  Now, the message is displayed and top waits
471	another full time interval before updating the display.  This
472	works much better all around.
473
474Mon Nov 24 1986 - wnl (2.2b)
475	Created a new file, utils.c, and made appropriate changes to
476	Makefile.  This new file holds all utility functions that can and
477	may be used by more than one "module".  Improved i_memory and
478	u_memory (display.c) so that screen updates for the values
479	displayed are only changed when necessary.  Also made the line
480	look better:  the last fixes made for a rather ugly display.
481	Added the locally defined constant "LoadMax" and added code to
482	top.c to send the cursor home after a space command is entered if
483	the load average is higher than "LoadMax".  This provides visual
484	feedback on loaded systems.
485
486Mon Nov  3 1986 - wnl (2.2a)
487	Widened the format for memory usage so that it can display 5
488	digits.  This makes that line look a little ugly---maybe I'll fix
489	that later.  Screen handling now understands "os" and a missing
490	"ce".  It treats them identically:  clear the screen between each
491	display.  Screen handling code now uses "cd" when appropriate
492	(i.e.:  when user has shortened the screen).  Made i_loadave clear
493	then screen and took out most of the explicit calls to "clear" in
494	top.c.  This method is cleaner, especially in conjunction with
495	"os" handling.  Added preprocessor variable "RANDOM_PW" for
496	systems that access the passwd file randomly (Sun's yp and 4.3).
497	With "RANDOM_PW" set, "getpwuid" is used instead of "getpwnam",
498	but uid->username mappings are still hashed internally (because
499	that is still faster than going to disk).
500
501Mon Oct  6 1986 - wnl (2.1)
502	A bug with the kill command was pointed out by "dciem!tim"---
503	specifying a signal by name did not work correctly.  This bug has
504	been fixed with a simple change to commands.c.  Another bug made
505	the cpu state percentages incorrect the first time they were
506	displayed.  This bug has also been fixed (changed top.c).
507
508Thu Sep  4 1986 - wnl (2.0, at last)
509	This is the version that will (hopefully) get released to the
510	world as top 2.0.
511	Added the "r" and "k" commands for renice and kill, respectively.
512	This required adding a way to handle system call errors, and the
513	addition of the "e" command.  Help screen and manual page were
514	changed to reflect this change.  Changed all "#ifdef SUN" directives
515	to "#ifdef sun", and changed all "#ifdef PYRAMID" directives to
516	"#ifdef pyr".  As much as I hate those choices of preprocessor
517	names (they too easily conflict with real variable names), it does
518	make automatic compilation possible---people don't have to change
519	the Makefile anymore for specific machines.  The manual page was
520	changed to automatically incorporate the defaults as set in the
521	Makefile (including an infinite value for TOPN) and the way the
522	manual page is generated by the Makefile was changed to make
523	maintenance of this information automatic.
524
525Mon Jul 28 1986 - wnl (still pre 2.0)
526	Real close now.  I put in a new definition for the macro "pagetok"
527	that does an explicit shift of a constant expression involving
528	PGSHIFT.  Appropriate checks are made if PGSHIFT is to small.
529	"pagetok" is now used exclusively everywhere to convert kernel
530	clicks to kilobytes.  I added a full blown interactive mode with
531	the ability to change some of the runtime parameters (how many to
532	display, time delay, etc.) while top is running.  I also
533	incorporated a few ideas from the net:  control characters in the
534	command name are replaced with '?'; the '-S' option makes the
535	swapper and pager visible; options have been added to control the
536	number of displays produced (this makes it easier to make
537	performance snapshots with top).  I have also added the notion of
538	"infinite" values for number of processes and number of displays.
539	I fixed a long-standing bug in the uid to username mapping code
540	that was only aggravated on the pyramids:  it was an ill-defined
541	expression (akin to i = i++).  I tweaked the proc_compar routine
542	for qsort slightly so that stopped processes were more likely to
543	show up.  Manual page was updated to reflect all changes
544	noticeable to the user.
545
546Tue Jul  1 1986 - wnl (pre 2.0 -- 1.9999?)
547	In the process of major revamping on the way to version 2.0.
548	I have completely done away with curses by adding my own screen
549	management routines in a separate file (screen.c).  The rationale
550	for this is that top knows a whole lot more about what is and is
551	not redundant on the screen and can compare simple integer values
552	where curses would have to compare strings.  This has turned out
553	to be a very big win speed-wise.  The proc_compar routine for
554	sorting has been rewritten to include several more keys.  I
555	decided this was necessary when I noticed that the "top" process
556	itself kept disappearing off the top 10 list on a Sun-3.  All the
557	processes had the same percentage (0%) and the sort wasn't really
558	doing anything worthwhile.  I changed the expression that computes
559	memory usage to use the ctob macro instead of just assuming that
560	pages were 512 bytes.  More work still needs to be done before
561	this version is usable.  I changed options-processing to use
562	getopt and added appropriate incantations to the Makefile.
563
564Wed Feb 20 1985 - wnl (still 1.8)
565	Put in the ifdef FOUR_ONE statements to make top still compilable
566	on a 4.1 system.  Apparently, there are some users out there that
567	need this functionality.  Oh well.  I don't guarantee any of it,
568	since I can't test it.  Made appropriate changes to README and
569	final installation related changes to Makefile.
570
571Sat Feb  2 1985 - wnl (1.8)
572	Removed all the ifdef FOUR_TWO statements and made "top" into a
573	4.2 only program.  If someone really wants to still run it on 4.1,
574	then they can do all the work.  We don't have a 4.1 machine
575	anymore, so I don't even know if the thing still works under 4.1.
576	Cleaned up the Makefile and the README.  Added installation rules
577	to the Makefile, as requested by several sites.  Fixed a very
578	obscure divide-by-zero bug.  Added a second "key" to the qsort
579	comparison function (proc_compar) so that comparisons are based on
580	cpu ticks if the percentages are equal (provided by Jonathon
581	Feiber at Sun).
582
583Tue Dec 11 1984 - wnl (1.7)
584	Added the virtual and real memory status line to the header area
585	(provided by Jonathon Feiber at Sun)
586
587Tue Nov 20 1984 - wnl (1.6)
588	Added an "exit" if sbrk's fail.  Added changes from Jonathon
589	Feiber at Sun:  ifdef SUN to make top work on Suns (they don't use
590	doubles in the proc structure), register declarations, check for
591	getting a user structure that has disappeared since the proc array
592	was read (it used to die, now it just shows the process as swapped).
593
594Tue Nov 13 1984 - wnl (1.5)
595	If the number of displayable processes ("active_procs") was less
596	than the number of requested processes ("topn"), top would
597	segmentation fault.  This bug has been fixed.  Thanks to Prentiss
598	Riddle at ut-sally for pointing out the existence of this bug.
599
600Tue Oct 23 1984 - wnl (1.4)
601	Finally fixed the hash table bug that caused processes owned by
602	root to sometimes appear with either no name or a different name
603	that had UID 0 (such as "operator").  Removed all the ifdef DEBUG
604	blocks to make top ready for distribution to the real world.
605
606Sun Apr  8 1984 - wnl (still 1.3)
607	Made some slight changes to the display format.  It now looks more
608	aesthetically pleasing.  Added some preprocessor constants so that
609	the two defaults (number of processes and seconds of delay) easier
610	to change.
611
612Thu Apr  5 1984 - wnl (1.3)
613	Changed the order in which things are done at initialization time.
614	This way, if an error occurs before starting the main loop, curses
615	will never get started.  Also changed other error handlers so that
616	endwin() is called before any flavor of exit.  Specifying a number
617	of processes that is more than the screen can handle is no longer
618	fatal.  It displays a warning message and pretends the user
619	specified the maximum for the screen.  Finally cured all the TSTP
620	blues (well, almost all).  I removed my TSTP handler and convinced
621	the system to always use the one that curses sets up.  Turns out
622	that "sleep" was stepping all over it during a pause.  So, I don't
623	use sleep anymore.  The only problem that remains with it now is
624	redrawing the old display before updating it after a pause.
625
626Tue Apr  3 1984 - wnl (from 1.0 to 1.2)
627	I changed the format of the TIME column from just "seconds" to
628	"minutes:seconds".  I also made pausing work correctly.  Screen
629	redraws with an up to date display.  For compatibility with 4.2, I
630	changed the name of the "zero" function to "bzero".  The makefile
631	has been altered to handle versions for 4.1 and 4.2, and README
632	has been updated to reflect these recent changes.
633