-----------------------------------------------------------------------------
NOTE: This ChangeLog may generate confusion on how the changes affect
the behaviour of the program on the various systems on which it can be
compiled. To clear this situation: when there is nothing at the end of the
LogLine, the change affect all the systems on which the program is compiled;
when there is the name of one or more systems at the end of the described
change, the change affect only the systems listed in brackets.

             Riccardo Facchetti.
-----------------------------------------------------------------------------

* yamm 2.5.5 released ??/??/???? * (riccardo@cdc8g5)

- Prepared the binary package. It includes HP version of yamm and
  linux /proc version. No drv_yamm version is included because it is too
  much dependant from the kernel and the version itself of yamm.
- Updated the comments in pstat.c.skeleton
- Changed the inclusion of string.h: for linux compilation, include the
  linux/string.h (inlined assembler functions instead of the libc ones) (linux)
- Managed Makefiles and kversion.sh to work with HPUX. Now the
  compilation (at least with gcc) is clean. No check with HP's cc (HPUX)
- HPUX: this target is now okay! I have found the cause of previous
  errors. (HPUX)
- New target dist in main Makefile
- Can compile the drv_yamm module using the put(get)_user data transfer style.
  Have had to change the get_user() conflicting fn name too.
  (linux kernels >= 1.3.4)
- Corrected a long-living bug in command line arguments getopt string (main.c)
- Little bug in curses.c corrected
- minor cleanups to conf/*.c.*
- Revised Configure to better handle kernel directory search (it asks you :)
  (linux)
- revised kversion.sh to run under HP's /bin/sh (HPUX)


* yamm 2.5.4 released 11/04/1995 * (riccardo@cdc8g5)

- Now old README-<version> files are put in the doc/README file.
- Corrected a bug introduced in src/conf/pstat.c.HPUX
- Little adj. for 1.2.x kernels. (linux)
- Added %mem used in single-process informations.
- graph.c: added a new bar-chart load average display, to have a monitor
  of avg history (option -L or 'L', only in (n)curses compilation).
- Corrected a little mistake in drv_yamm, when asking infos for one
  task only. (linux)
- Code cleanup.
- Corrected the bug in regex package, when searching for /proc/<pid>
  now there is no more regex memory allocation in yamm.proc (linux)
- Updated the man page.
- Resolved the problem of long command line wrapping in main screen.
- Added a new character in status field ('<' for nice<0, 'N' if >0).
- Revised man page (man/yamm.1).
- Modified src/Configure to let you choose the fore/back ground colors.
- There is a bug in re_exec() routine of regexp package, which allocate
  memory without free it on exit. This is the reason of memory growth
  in yamm.proc and when using the command '/' (linux libc-4.6.27)
- user_info ('I' || -I) debugged and integrated with main body of yamm.
- Added a check on architecture in Configure (i486/pentium) (linux)
- Corrected a bug in bracket-enclosing of task names when swapped out. (linux)
- Added some macros in include/version.h for clearer messages when version
  errors. (linux)
- In src/Makefile, written two more targets: install_man and install_module
- Written at last a toplevel Makefile.
- Corrected a little bug in src/Configure. Save the old ncurses.h and restore it
  if we interrupt the Configure script.
- Applied the changes suggested by ?anonymous? in an
  unofficial yamm-2.5.1 release (customized for HPUX). He/She said that I was
  informed of these changes, but something obviously went wrong somewhere
  because I have received nothing about it. If the author of this changes,
  can contact me i would be happy to include him/her in my CREDITS file.
- Written an unique header file to be included by yamm sources: yamm.h
- Revised all the function prototypes.
- Tried the ELF compilation, and it works. You have to compile the ELF ncurses
  package too, if you want to use ncurses.

* yamm-2.5.3e-linux-1.1.85+.patch released 02/02/1995 * (riccardo@cdc8g5)

- Popped up a previously undocumented function: the 'I' (-I in command line)
  that display user infos.
- Compiled with NO_CURSES defined (ps like) to check it. Cleaned up and fixed
  this kind of compilation. (linux)
- More cleanups (mainly goto(s) and weird code)
- Fixed a buggy #ifdef/#endif in src/mpreprocess.c 

* yamm-2.5.3d-linux-1.1.85+.patch released 01/02/1995 * (riccardo@cdc8g5)

- Fixed the 'I' option in mpreprocess.c
- Some cleanups and little bug fixes.
- Rewritten getnexttask ioctl in drv_yamm: now there should be more
  solid with regard of race conditions.
- drv_yamm: added a sanity check in drv_yamm vs. yamm versions. If
  yamm version is != drv_yamm version, don't let yamm run.
- Found and fixed a bug in per-process info paging.
- Added more informations in the per-process infos:
  fsuid: only in modular version
  (linux)
- include/fakestat.h: pst_status structure, better reflecting the linux
  task_struct with regard of data types. No more 'all longs that is safer' :)
  (linux)
- Explanation of programmer's interface to drv_yamm.o in include/drv_yamm.h
- Better use of ioctl(s) in modular version.
- Better memory management in conf/pstat.c.linux. More memory saved.
  Warning: old drv_yamm.c is no more compatible. You have to compile
  the drv_yamm.c in the new distribution to use it with yamm-2.5.3d
  or above. (linux)
- Now in the single process analysis window, the task name is the entire
  command line with parameters if the task is not swapped; is only the
  command name enclosed in brackets if the task is swapped out.
  This thing is automagically enabled if you have the /proc filesystem
  compiled in kernel. (linux)
- MUCH more memory saving revising data structure of tasks. The target
  to hit is: be better than top in memory allocation/management too :) (linux)
- Added some comments to the code. Revised header files.

* yamm-2.5.3c-linux-1.1.85+.patch released 27/01/1995 * (riccardo@cdc8g5)

- Revised man/yamm.1 manual page.
- Fixed a bug in mpreprocess.c when using ask_curses. Now check
  when i ask for a PID, that the PID really exist!
- Revised src/lib/get_tty.c
  now when scandir for tty devices, I select and get only the tty devices
  and not all the /dev/*. This allow a lot of memory saving (more than
  200 Kb) (linux, but to be extended to hpux)
- Moved drv_yamm to support the new module dinamic loading strategy
  when you define the CONFIG_MODVERSIONS (linux)
- Resizing seems to work with ncurses-1.8.7
- The X11 version of yamm is definitely out. I think the (n)curses version can
  do the job.
- curses.c: now for linux GETSTR macro, I use the gets() clib fn instead of
  getstr ncurses fn because getstr seems not to work very well.
  Anyway gets() works very well. (linux)
  Note: ncurses-1.8.7 is showing this bug!
- Configure: FindNcurses adjusted to first search for standard ncurses
  installation in /usr/include/ncurses/. If this fail, search all the
  standard include directories for ncurses.h file. As for ncurses-1.8.7,
  there is no more ncurses.h file so the only thing i can do for it is
  search, and if nothing is found, ask to fix the problem.

* yamm-2.5.3b-linux-1.1.85+.patch released 25/01/1995 * (riccardo@cdc8g5)

- Moved the ncurses resizing switch in src/Configure where it asks you
  if you want to try the new code or not.
- Minor fixes here and there.

* yamm-2.5.3a-linux-1.1.85+.patch released 25/01/1995 * (riccardo@cdc8g5)

- The fixes below, are of some interest, for those who want compile yamm
  themself. So I have released the patch that allow the compilation with
  kernels 1.1.85 and above.
  Oops, I can't say that for sure ... Linus is playing the 'header' ballad
  this days :) (linux)
- drv_yamm.c now get its kernel_version from <linux/version.h>, so to compile
  this package with drv_yamm.o, you should

  make config
  make dep
  make include/linux/version.h

  in the kernel directory (usually /usr/src/linux/). (linux)
- Makefiles cleanup.
- New file src/kversion.sh:
  Yet another kernel dependent problem. Thanks to kversion.sh stolen from
  dosemu sources, now the recognition of kernel versions (for header inclusions
  and various version specific pieces of code) is automagic. (1.1.85)
  kversion.sh needs include/linux/version.h (linux)

* yamm 2.5.3 released 24/01/1995 * (riccardo@cdc8g5)

- Checked the hp-ux compilation. (hpux)
- ncurses-1.8.6: written the code that should fix the problem with memory.
  The fix is not really a great one. We will see with the next ncurses release.
  You can disable it #undef'ining the NCURSES_186 in src/curses.c
- ncurses-1.8.6: problems with memory allocation. Resize don't work very
  well(read: dumps the core). Written to zmbenhal@netcom.com to suggest a fix.
- Changed the pst struct allocation to 1 malloc of all the proctable because
  there's no point to realloc. When you have brk(), the memory is lost!
  Changed the MAX_PROC definition too. No more 512 entries, linux NR_PROCS
  is 128 so 1/4 of the needed memory is allocated: no more realloc overhead,
  so less %cpu eat (we are near the %cpu eaten by top :)
- Fixed a bug in curses initialization (found now because i don't use curses
  anymore :)
- Fixed the permissions when creating /etc/System.map
- Slightly changed the Copyright to reflect better the state of the software.
- Configure script have proved to work well. src/Makefile.std erased because
  out of date, FindNcurses moved to ../utils/ directory.
- Configure, Makefile.start.in and relevant sources:
  1.1.75->76 migration (linux)
- Corrected a little bug in Configure
- main.c: strtok broken in v1.1.76 kernel headers. (linux)
- The kernel includes, include the <linux/string.h>, so we must forget
  the <string.h>. Changes made in the following files:
  main.c, mpreprocess.c, conf/pstat.c.linux, module/drv_yamm.c
  curses.c (linux)
- Installed ncurses-1.8.6 on my system. Compiled and had a first try: it seems
  okay. There are one or two minor things to check... checked. (linux)
- Revised INSTALL
- Cleaned up drv_yamm.c, preparing for new code. (linux)
- I have removed the automatic .depend build. Now you MUST run a 'make dep'
  before doing the first compilation.
- Added a little warning if /etc/zSystem.map is invalid (corrupted) or non
  existent. (linux)
- Finally i have confirmed that my way to calculate %CPU is the right way.
  Added a little sanity check to avoid %CPU major of 100 or minor of 0. (linux)
- Added a new command that shows the GPL Copyright notice as required by
  GPL itself.
- Tested /etc/utmp code. It works fine for me. Checked with the small program
  you can find in utils/utmp_add_an_entry_test.c
  NOTE: the IP address 0.0.0.0 is localhost (127.0.0.1)
- NULL wchan format (0x0...) now matches the format of text lines (linux)
- Rewritten the do_chsize() routine. Now when using ncurses-1.8.5 (previous
  versions not tested) the SIGWINCH cause the change of yamm screen size, in
  a soft way, playing with ncurses. No more X11 version required, but desired:
  I will write it (the X11 v..) without hurry, when i will have the time
  (read this as: is there any volunteer than want to write an X11
  interface for yamm ? ... all the relevant, non console I/O, functions
  are in libyamm.a).
- created the libyamm.a, a library where you can find all the relevant
  system-specific functions.
- Reworked the directory tree, preparing the way to the X11 client of yamm.
  Made a src/lib directory where to find all generic non console-I/O funcs.
  Also src/module is splitted, containing drv_yamm.c
- Fixed the newline bug in Configure (HPUX)
- Revised all the code to try to clean up it a bit.
- Now the keypad (PGUP,PGDOWN,HOME,F1 key, ESC) works with help screen to.
- wchan now checks and compare /etc/zSystem.map and /usr/src/linux/zSystem.map
  trying to have a reliable /etc/zSystem.map (linux)

* yamm 2.5.2 released 09/09/1994 * (riccardo@cdc8g5)

- Changed the directory tree, why ? Boh!
- added a wchan field in main window if you use the '%' or COLS are > 90
- BugHunting here and there.
- curses_error now it is really useful, letting the user to see the message
  before refresh all the screen and delete it :)
- mpreprocess.c: found and corrected a little bug in signalling code (e.g. kill)
- signals.c: now it can be compiled with C preprocessors that do not support
  stringify operator #something -> "something", but this limits the signal
  code.
- Configure, more automagic tests to do the best choices
- Tested Configure and compiled under HPUX (from time to time i do also this :)
  It is still needed the gcc to compile under HPUX (HPUX)
- SIGWINCH is now working well, with a really bad trick (see the code in curses.c
  if you think you may help in writing a better do_chsize()).
- Now for module version /dev/yamm is opened at init and closed at exit to
  allocate the drv_yamm resource (no rmmod drv_yamm if resource is busy) (linux)
- Tested the Configure, seems to work but Murphy is there that laughs
- now also the modules version is supporting the wchan
  (linux kernel 1.1.49 and newest)
- Written a Configure shell script: it works ? Boh! :)
- Added keypad funtions
- Modified man page
- Updated my system ncurses package to 1.8.5: all seems to go well (for now)
- Added wchan function search. (linux)
- Added the 'W' state for tasks with no rss, a la ps and top. (linux)
- Added the (<pname>) for swapped processes (like top and ps under linux)

* yamm 2.5.1 released 26/07/1994 * (riccardo@cdc8g5)

- Put the program under GPL
- wrote FindNcurses script
- changed the typedef for SGTTY to avoid conflicts
- finished to write the code to handle drv_yamm
  i will mantain the old code that use the /proc filesystem because there
  may be ppl that use the 29 (major) device (aprop, the /dev/yamm will be the
  device to request infos from drv_yamm; it is /dev/yamm maj=29, min=0)
  new code should have better performances (less %CPU time) (linux)
- drv_yamm.o completed to return a single proc info or all the whole
  procs (linux)
- delay_time set to 4 seconds
- Added -D__KERNEL__ to CFLAGS: they have modified the <linux/*> (linux)
- calling sys_sysinfo (kernel) to get memory stats and load averages: no more
  fopen ... fclose, etc (linux)
- Started to write the drv_yamm.o kernel module (linux)
- #ifdef'd out redeclaration of (n)curses routines. If cc don't find it that's
  okay ... i'm sure the symbols are found in library so no need for them.
  Anyway if symbols are not found at link time , the (n)curses package you are
  using may have big problems or yamm may not work at all with (n)curses support

* yamm 2.5beta released 12/07/1994 * (riccardo@cdc8g5)

- Added support for dcurses package (for debugging purpouse)
- Updated the curses_help
- Added support for color change when using ncurses package
- Now you can choose from the two: curses or ncurses
- Started using ncurses, but no colors for now
- Added a correct memory usage analisys to the process analysis window. (linux)
  Now the real and swap memory used is gathered from /proc/<pid>/statm and the
  actual mem size used by the process is gathered from /proc/<pid>/stat (linux)
  From now on, the reported memory data is correct (linux)
- Deleted that annoying ratio entries in vm.c (linux)
- wrote some more hints in README.porting
- cleaned up signals.c
- corrected a little bug in process info 'paging' (linux)

* yamm 2.5alpha1 released 21/06/1994 * (riccardo@cdc8g5)

- Modified Makefile
- hpux curses support SIGWINCH, so i've leaved the SIGWINCH unhooked and
  that's it. No more SIGWINCH code needed. (hpux)
- corrected bug on curses echoing (hpux)

* yamm 2.5alpha released 20/06/1994 * (riccardo@cdc8g5)

- Cleaned the code for compiling under HPUX (hpux)
- Added the SIGWINCH handling. Need to be rewritten :)
- Created the pstat.c.skeleton
- Various modifications to Makefile
- Added profiling support
- Rewritten signals structure to be more compatible and to be easier to fill
- Cleaned the code for kill processes. Found and removed a weird bug in string
  comparision
- Dinamic memory allocation for process table. More that halfed the memory
  requirement
- added a while (KBHIT) getch(); at the end of mpreprocess function, to
  empty the stdin input buffer, to disable the typematic behaviour of stdin.
  This let the slidebar work properly even if you mantain pressed the command
  key ('j' or 'k') or type keys too fast. (linux)
- Line editing is now okay when the program ask for user input. (linux)
- Now i'm sure all the commands that require user input, don't scroll up
  the screen any more. (linux)
- Corrected a bug in ChangeLog and added the NOTE at the start of this
  file. ( hehe :)
- Added an info screen in machine configuration that tell what signals are
  recognized by the system.

* yamm 2.4b released 11/06/1994 * (riccardo@cdc8g5)

- Now the max number of tasks of the system is fetched from the right
  place. (linux)
- The max mumber of tasks allowed per user-id, is fetched with sysconf()
  so the number itself may be greather than the max number of tasks of the
  system. The limit is obviously this last number. (linux)
- Corrected a bug in SIZE (t + d + s) computation. (linux)
- Wrote a better routine to handle the %CPU usage. Now it is OK (linux)
- Wrote the man page yamm.1
- error reporting for setpriority() (linux)
- STIME was very unstable dancing around a medium value. The reason is that
  the start time of a process is in jiffies and the now time is in seconds
  got with a time(NULL) call. The problem of STIME dancing around is because
  the imprecision of using time(NULL) and lack of approssimation due to zapping
  the decimal values of seconds.
  Now STIME is more stable on the medium value, but it still dance sometimes.
  Please be patient and don't care the dance. (linux)
- Added memory buffers and shared memory to the dynamic infos (linux)
- Now when killing tasks you can specify the signal to send to the task
- Updated help screens and man page.
- Remove the problem with '\n' and screen scrolling. Now the screen is
  faster beacuse curses optimizations are now not skipped with refreshes
  here and there (linux)
- Added renice of process groups and users (linux)

* yamm 2.4a released 07/06/94 * (riccardo@cdc8g5)
- initial porting from yamm 2.4, see README-2.4a

* yamm 2.4 released by Andrea 'Marantz' Marangoni * (marangon@ghost)
