1993-10-23 - version 0.1

1993-11-28 - version 0.2
- doesn't assume existence of any device (volume, bass, etc)
- some minor bug fixes
- some bug fixes to work correctly with SB Pro
- should now work correctly when multiple copies are run simultaneously

1996-08-23 - version 1.0
- added command-line interface

1996-09-02 - version 1.1
- fewer colors and no border to simplify full-screen interface
- knobs are highlighted as you move to them, then brighten and
  leave a trail behind when you adjust them
- horizontal knobs drawn with same characters as vertical ones
- vertical controls spaced more closely so they fit in 80 columns
- use of "<" and ">" for cursor motion, and "q" to quit program
- use of tab, "+" and "-" keys shown on help line
- added "h" option for command line

1996-09-07 - version 1.2
- two banks of horizontal controls, no special treatment of
  volume, bass, and treble (layout idea borrowed from CAM), so
  labels don't have to be jammed together
- record/play indicators now show the letters "R" and "P"
  rather than just a red or green square, so they should be
  more self-explanatory and more monochrome-friendly
- added use of "[" and "]" keys to set controls to 0% or 100%

1996-09-13 - version 1.3
- added gpm mouse support by incorporating code from rmev.c by
  Alessandro Rubini (packaged with gpm)
- added Quit button for use with mouse
- changed color of controls from white to cyan/green so the gpm
  cursor would be more visible
- added keys "Q" and ctrl-D to quit from program
- removed use of two different graphic characters to show controls in use
  or not in use

1996-12-02 - version 1.4
- added -b, -t, -s, and -m options (K.H. and D.F.)
- moved printf statements after the ioctl call, since this makes more
  sense if the ioctl fails (K.H.)
- changed layout to allow for balance controls, and added them (T.J.)
- eliminated "level" array: levels are now read by ioctl so changes by other
  processes system-wide will be properly reflected (T.J.)
- conditional compilation: GPM now optional, and interactive mode can be
  disabled entirely (T.J.)

1996-12-06 - version 1.5
- "q" options for command line to print settings without changing (J.S.)
- command-line section modularized for compactness (T.J.)
- widened controls in interactive mode for greater precision in setting and
  reading (T.J.)
- balance controls get redrawn after levels adjusted (T.J.)
- added command-line options for imix, PCM2, reclev, igain, ogain, line1,
  line2 and line3 (T.J.)

1996-12-15 - version 1.6
- ability to save settings to a file and load them in again
- option to use a restricted character set in interactive mode, when IBM
  graphic characters are not available
- support for second mixer
- changed meaning of "<" and ">" keys (now same as Tab or Enter)
- "," and "." function synonymously with "<" and ">" so users need not shift
  when using US keyboard
- prettified device names removed, to save space and to allow for future
  changes to the sound driver
- added labels for banks of level and balance controls
- record/play information updated more often
- record/play information gets printed on query

1996-12-17 - version 1.6.1
- fixed problem with conditional compilation

1997-05-30 - version 1.7
- more efficient code for handling options (J.S.)
- in full-screen mode, balance/level legend no longer so dim (H.S.)
- try to load settings from alternate file if ~/.aumixrc can't be opened (T.J.)
- continue gracefully if settings file refers to nonexistent devices (T.J.)
- don't set balance controls to center when adjusting levels from the
  keyboard (work is still needed here) (T.J.)

1997-09-24
- use ACS_ macros for special characters (R.C.)
- don't use A_ALTCHARSET (R.C.) 
- build with GNU autoconf (from example by A.R.)
- use fputs() in Usage() (T.J.)
- use bold attribute less (T.J.)
- don't leave cursor on balance controls when adjusting levels (T.J.)

1997-09-28
- reorganize documentation to be more GNUish (T.J.)
- use automake (T.J.)
- change layout for new sound driver (T.J.)
- change LoadSettings for new sound driver (T.J.)

1997-10-07
- About menu item for diagnostic info (T.J.)
- Keys menu item to save space on main screen (T.J.)
- position cursor better for xterm (T.J.)
- change routines for loading and saving settings, for new sound driver (T.J.)
- don't use ACS_ macros, just use ASCII characters (T.J.)

1997-10-11
- added muting function (T.J.)
- move cursor back by a space when setting record/play, levels or balance
  (T.J.) 

1997-10-12 - version 1.8
- update man page and README (T.J.)

1997-12-27
- small fixes to muting function (T.J.)
- declare optarg so as to compile cleanly with gcc -ansi -pedantic (T.J.)
- restore getch() as an alternative to Gpm_Getch() and add some #ifdef GPM
  statements (T.J.) 
- now compiles cleanly under FreeBSD 2.2.5
- print usage info along with "error opening /dev/mixer" message (T.J.) 
- added version[] and copyright[] arrays for the "what" utility (T.J.)
- removed AboutBox() until it has more useful info to display (T.J.)

1997-12-28
- only display the mixer channels that really exist (T.J.)
- fixed a bug where invalid mixer channels could be passed from MouseHandler()
  and AdjustBalance() would try to adjust them (T.J.)
- volume now gets updated when adjusting balance with the mouse (T.J.)
- split DrawLevel() out of AdjustLevel() (T.J.)
- show left and right levels with "L" and "R" -- looks a bit busy (T.J.)
- removed DrawHandles() (T.J.)
- started work on making level controls wider and balance controls narrower
  (T.J.)
- automatically refresh display of channels another program has changed (T.J.)

1998-01-26
- code contributed by Alessandro Rubini to simulate ncurses' halfdelay mode 
  with Gpm_Getch() (A.R.) 
- fixed two problems in muting function (one caused by new
  RefreshNewSettings()) (T.J.)

1998-02-04
- tidied up MouseHandler() (T.J.)
- moved ncurses and gpm routines to separate header files (T.J.)

1998-07-12 - version 1.9
- got the separate files to compile (T.J.)

1998-07-19 - version 1.9.1
- fixed problem with "aumix -q" not giving output (J.D.)
- fixed problem in adjusting levels (H.K.) 
- removed the hack for keeping controls from getting stuck (T.J.)
- tidied up comments in gpm-xterm.h (T.J.)
- updated AUTHORS file (T.J.)
- fixed problem with -L option not initializing mixer (T.J.)

1998-07-19 - version 1.9.2
- removed Redraw function (T.J.)
- widened level controls (T.J.)
- KeysBox fixed, but only when using gpm (T.J.)

1998-07-20 - version 1.9.3
- corrected problem in moptindx that was causing wrong channels to be adjusted
  when using command-line options (P.C.)
- write out words in usage text instead of abbreviating (T.J.)
- minor updates to man page (T.J.)

1998-07-26 - version 1.9.4
- removed some extra characters from version[] (T.J.)
- changed LoadSettings() so it can read comma- or semicolon-delimited rc files
  (G.B.)
- fixed bug where mixer wasn't initialized when running with the -S option only
  (G.B.)

1998-08-05 - version 1.10
- in KeysBox(), use getch() when not compiling with gpm (J.A.) 
- add #ifdef GPM to aumix_gpm.c (J.A.)
- "L" and "R" markings in different color than "O" in interactive screen (T.J.)
- new configure.in largely generated by autoscan--shouldn't stumble on systems
  which have curses.h but not ncurses.h (T.J.)
- changed #ifdef GPM and #ifdef NCURSES to #if HAVE_LIBGPM and 
  #if HAVE_LIBNCURSES (T.J.)
- remove colors from KeysBox() (T.J.)
- added "R" and "P" options for toggling record/play from command line (T.J.)

1998-08-11 - version 1.11
- don't show usage on errors (T.J.)
- kludged Makefile.in for people who don't have automake (T.J.)
- LoadSettings(), SaveSettings(), InitMixer() and SetShowNoninter() changed
  from void to int, with return value used for error messages (G.B.) 
- printing of error messages moved from InitMixer() to new ExitIfError() (G.B.)
- InitMixer() renamed to InitializeMixer() (T.J.)
- new MixerStatus() function (G.B.)
- new ReadWriteMixer() function (G.B.)
- new OpenDefaultFile() function (G.B.)
- minor addition to KeysBox() display (T.J.)

1998-08-11
- internationalization (A.M.)
- text for the Polish language (A.M.)

1998-08-22 - version 1.12
- calling refresh() without initializing screen gives segfault--fixed (B.N.)
- change getopt() string to avoid "option requires an argument -- S" error
  (D.R.)
- remove some special cases from InitializeMixer() (T.J.)

1998-08-25
- rewrote internationalization (A.M.)
- fixed -d option (A.M.)
- print usage when called as "aumix -" or "aumix nonsense" (A.M.)

1998-08-26
- further fixes to -d option (was still giving segfault) (A.M.)
- Inter() rewritten as ReadInteractiveKeys() (A.M.)
- fixed ReadInteractiveKeys() when called as "aumix -some_good_options -I"
  (A.M.)

1998-08-30
- updated BUGS, TODO, and README (A.M.)
- fixed problem with KeysBox() returning without waiting when gpm support is
  compiled in but program is run remotely (A.M.)
- unmuting "hardware mute" in ALSA driver support (A.M.)
- checking if alsa-lib is available automatically (A.M.)
- gettext detection via configure script (A.M.)
- added --without-gpm and --without-ncurses options to configure script (A.M.)
- modifications for compiling without NLS and without ALSA (A.M.)
- don't list -I option in usage screen when compiled without ncurses (A.M.)

1998-09-02
- use alsa-lib >= 0.1.0 (A.M.)

1998-09-05 - version 1.13
- tidy up a few typos (T.J.)
- don't compile ReadWriteMixer() because it's not being used yet. (T.J.) 

1998-09-10
- added German translation (J.T.)
- use if rather than switch in ExitIfError() (J.T.)
- added EXIT_SUCCESS and EXIT_FAILURE macros (J.T.)
- reorganized, with new doc, intl, and src directories (J.T.) 
- revamped configuration system so "make dist" and versioning work (J.T.)
- corrected compilation warnings (J.T.)

1998-10-04 - version 1.14
- added Makefile.manual for systems on which the automatic configuration
  system doesn't work (T.J.)
- only #include <getopt.h> on Linux systems (T.J.)

1999-01-07 - version 1.14.1
- added Brazilian Portuguese (pt_BR) translation (A.C.)
- added Spanish (es) translation (P.G.) 

1999-01-30 - version 1.15
- tweaked to compile under NetBSD 1.3.3 with Makefile.manual (T.J.)
- added ability to increment or decrement levels from command line (P.G.)
- added Russian (ru) and Ukrainian (ua) translations (G.V.)
- fixed "option requires an argument" bug (T.J.)

1999-02-05 - version 1.16
- added -f option to specify file for saving and loading settings (M.S.)
- added aumix.spec file for Red Hat Linux (M.S.)

1999-02-06 - version 1.17
- added signal handler so periodic updates (in case another process adjusts
  the mixer) work (T.J.)

1999-02-19 - version 1.18
- fixed .po files broken by added text about new options (T.J.)
- added ability to increment or decrement levels by a specified amount from
  the command line (P.G.)
- cast PACKAGE to char * for textdomain() and bindtextdomain() (P.G.)

1999-02-20 - version 1.18.1
- renamed SignalHandler() to AumixSignalHandler() to avoid namespace conflict
  that could happen on Linux with libc 5 (E.W.)
- reset signal after its handler has been called (E.W.)
- in RefreshNewSettings(), move cursor out of way so it looks better in an
  xterm (T.J.)

1999-02-23 - version 1.18.2
- updates to Russian and Ukrainian .po files (G.V.)
- Russian and Ukrainian translations in the .spec file (G.V.)
- remove unnecessary cast to int of signal handler (E.H.)

1999-05-04 - version 1.18.3
- removed duplicate lines from po/POTFILES to avoid compilation error (T.J.)
- added MAXLEVEL macro to replace magic numbers 49, 50 and 100 (T.J.)
- added installation instructions for Red Hat Linux (T.J.)

1999-05-20 - version 1.18.4
- in configure.in, change "==" to "=" (P.G.)
- in src/aumix_curses.c, sleep for 50 microseconds to disguise the Debian
  "potato" busy-waiting problem (T.J.)
- add cast to char * on line 87 of src/aumix.c to please egcs (T.J.)
- in ExitIfError use printf() rather than perror() so we don't print "Success"
  in error messages (T.J.)
- in OpenDefaultFile(), don't close mixer_fd (fixes problem with 
  trying to load in non-existent settings file in interactive mode) (T.J.)

1999-05-31 - version 1.19
- renamed Alsa_Anty_Mute() to Alsa_Unmute() (T.J.)
- cosmetic touches to Makefile.manual (T.J.)
- added "only" (solo) and "un-only" features (T.J.)
- busy-waiting bug--misused timeout()--fixed properly (T.J.)
- in aumix.h, include <string.h> instead of <strings.h> (T.J.)
- removed unused fd_set in Inter() (T.J.)

1999-06-05 - version 1.20
- with timeout(-1), mouse does not work, so use timeout(1000) instead (V.K.)
- add global current_dev to keep track of current device (T.J.)
- add Undo (to undo all muting) to menu (T.J.)
- fixed bug where command-line option to increase or decrease levels by a given
  amount would change them by one more unit than requested:  for example "aumix
  -m+0" would increase microphone level by one (T.J.)
- during inactivity, move the cursor out of the way of the menu (T.J.) 

1999-06-08 - version 1.21
- added option to load color schemes from files (T.J.)
- fixed bug in ExitIfError for errors in the range 2 to 11 (T.J.)

1999-06-10 - version 1.22
- digits 1 to 9 set level at 10% to 90% (T.J.)

1999-06-19 - version 1.22.1
- renamed aumix_gpm.c to aumix-gpm.c and similarly with aumix_curses.c and
  aumix_curses.h so they will be easier to type and easier to read when
  underlined (T.J.)
- add return values back to MouseHandler() (T.J.)
- set CFLAGS in Makefile.manual (T.J.)
- in aumix-curses.c, #include <ctype.h> for tolower() (T.J.)
- use = rather than == for assignment on that same line with tolower (T.J.)
- in MixerStatus() and InitializeMixer() use macros rather than numbers for
  return values (T.J.)
- use EFINDDEVICE instead of ENODEV to avoid namespace conflict (T.J.) 
- in ExitIfError(), avoid "Success" error messages (T.J.)

1999-10-04 - version 1.23
- more renamings:  aumix-gpm.c to gpm.c, aumix-curses.c to curses.c, 
  aumix-curses.h to curses.h, aumix.c to common.c, aumix.h to common.h, and
  schemes/ to data/ (T.J.) 
- new interactive.c and interactive.h files (T.J.)
- added aumix.xpm icon (C.S.)
- in configure.in, check for string.h instead of strings.h and only check once
  (T.J.)
- don't treat it as an error when ioctls return values that are neither 0 nor
  -1 (R.S.)
- added .indent.pro:  we stylin'! (T.J.)
- updated and prettified man page (T.J.)
- changes to src/Makefile.in for FreeBSD--how to put them in Makefile.am? (C.P.)
- untested attempt at compatibility with OpenBSD, based on looking at the
  patches to xmix and xmmix in the ports collection (T.J.)

1999-10-06 - version 1.23.1
- declare copyright and version strings as const static char to avoid a warning
  (P.S.)
- in common.c, #include "interactive.h" (P.S.)
- add one of the FreeBSD changes to src/Makefile.am (T.J.)

1999-10-26 - version 1.24
- rewrote InitColors to allow "-" to represent black as the background or white
  as the foreground (P.S.)
- added miniature icon (P.S.)
- added xaumix script for running aumix in a terminal emulator under X (P.S.) 
- have xaumix use "which" utility rather than checking hard-coded /usr/X11 path
  (T.J.)
- have xaumix check for "konsole" terminal emulator (T.J.)

1999-10-31 - version 1.25
- find soundcard.h on BSDI (T.J.)
- disable ALSA hardware muting, since it seems to have been removed from
  current ALSA drivers (T.J.)
- when in ncurses mode, paint spaces at right of screen, to fill gaps by
  selection arrow and level controls (T.J.) 
- added Galician (gl_ES) translation (J.A.)
- added src/interactive.c to po/POTFILES (J.A.)

1999-11-01 - version 1.25.1
- in po/Makefile.in.in, add --keyword=LOCAL_TEXT for .pot target (J.A.)
- in xaumix, don't use hard-coded path to aumix (T.J.)
- in xaumix, use double quotes so tests will work (C.W.)
- in aclocal.m4, added stuff from GIMP (O.T.)
- paint spaces at left of screen too (T.J.)
- mention -C option in Usage() summary when compiled with ncurses (T.J.)

1999-11-03 - version 1.26
- updated Polish (pl) translation (P.C.)
- in de, es, pt_BR, ru and ua translations, corrected names of rc files (T.J.)
- in header files, replace some preprocessor directives with constants (T.J.)
- in InitScreenCurses(), use loop instead of cookie cutter to print menu (T.J.)
- replace magic numbers with R_P_WIDTH, LEVEL_WIDTH, ARROW_WIDTH, LABEL_WIDTH,
  and BALANCE_WIDTH constants (T.J.)
- added src/interactive.c to po/POTFILES.in (J.A.)
- adjust width of level track at startup, according to number of columns
  available (T.J.)
- paint whole screen, except last line, with spaces (T.J.)

1999-11-09 - version 1.27
- added gettext_noop (P.C.)
- updated Polish translation again (P.C.)
- renamed INCREMENT to level_increment, BALANCE_INCREMENT to balance_increment,
  LEVEL_WIDTH to level_width, and BALANCE_WIDTH to balance_width (T.J.)
- adjust width of balance tracks according to number of columns available (T.J.)
- when left and right levels are the same, don't go through the motions of
  trying to display "L" and "R" on level tracks (P.S.) 
- use mnemonics for return values (T.J.)
- read mixer before toggling record, for compatibility with ALSA 0.3.0 (D.S.)
- cosmetic changes to comments in gpm-xterm.h (T.J.)

1999-11-13 - version 1.27.1
- really updated Polish translation (maintainer forgot to make change in
  version 1.27) (P.C.)
- updated Galician translation (J.A.)
- updated Spanish translation (J.A.)
- rename po/gl_ES.po to po/gl.po (J.A.)
- in doc/aumix.1, merge MAINTAINER section into BUGS (T.J.)
- translate "amount" as "cantidad" and "mix monitor" as "monitor del mezclador"
  in po/es.po (T.J.)
- attempt to update po/de.po, using Babel Fish (T.J.)
- attempt to update po/ru.po, po/ua.po, and po/pt_BR.po, leaving text from
  recent changes untranslated (T.J.)
- in po/gl.po, line up spaces in menu (T.J.) 
- find soundcard.h on Solaris (untested) (T.J.)

1999-11-19 - version 1.27.2
- change code for Ukrainian locale from ua to uk (P.S.)
- in xaumix, comment out konsole, since it needs different options than xterm
  and it gives an error message (T.J.) 
- in xaumix, add comment about gnome-terminal (T.J.)
- reimplement "which" in xaumix because standalone "which" utility can
  give different output than shell built-in, and "type -p" substitute gives
  different output in ksh versus bash (T.J.)
- in xaumix, make sure IFS contains a tab, not spaces (C.W.)
- in xaumix, remove unneeded double quotes around IFS stuff (C.W.)
- in xaumix, don't use "which" to find aumix (R.R.)

1999-11-23 - version 1.27.3
- refresh screen when user presses control-L (C.W.)
- use ncurses mv* functions (T.J.)
- change declaration of copyright and version strings again (T.J.)
- in LoadSettings(), don't do RefreshAllSettings() because it can cause a
  segfault (T.J.)

1999-11-24 - version 1.27.4
- in common.h, include <sys/time.h> once instead of twice (T.J.)
- use "static int" instead of "const static int" (T.J.)
- move gpm initialization from main() in common.c to StartGPM() in gpm.c (T.J.)
- in KeysBoxCurses, change ncurses timeout to -1, to wait indefinitely for
  input (T.J.)
- disable gpm while in KeysBoxCurses (T.J.)
- put ReadWriteMixer() in #if 0 again (T.J.)
- in main(), replace 0 with EXIT_SUCCESS as exit value (T.J.)
- in KeysBoxCurses, use w_panel rather than w_keys (T.J.)
- in MouseHandler(), use local mouse_dev instead of current_dev, to avoid
  segfault in Inter() (T.J.)
- in MouseHandler(), use event->x instead of "temp" variable (T.J.)
- make levelbalmode global so we can draw the level/balance arrow from
  KeysBoxCurses() (T.J.)
- add HighlightLabelCurses() to highlight label when returning from KeysBox()
  (T.J.)
- in InitScreenCurses(), use wbkgdset() rather than painting spaces to set
  background color (T.J.)
- in README, add URL for archives of mailing list (T.J.)

1999-11-27 - version 1.28
- change src/Makefile.am so /usr/local/lib/libintl can be found on FreeBSD
  (C.W.)
- add gpm-xterm.c, ersatz gpm client for non-Linux xterm-only mouse support
  (A.R.)
- remove most instances of "#if HAVE_LIBGPM", since, when we have ncurses,
  we always have either gpm or gpm-xterm (C.W.) 
- fix comment in curses.c (^L is NP, not NL) (C.W.)
- enable use of mouse to leave from KeysBox() (C.W.)
- use anonymous enums for errors and color pairs (T.J.)
- in  Inter(), use balance_increment rather than level_increment with
  AdjustBalance() (C.W.)
- in Inter(), simplify handling of +/-/right/left (C.W.) 
- in Inter(), don't use atoi() on an unterminated string (C.W.)
- in RedrawBalanceCurses(), use balance_increment instead of old hard-coded
  value (C.W.)
- in InitScreenCurses(), center the labels of the level and balance tracks
  (C.W.)
- in MouseHandler(), don't use hard-coded co-ordinates (C.W.)
- in xaumix, set height of terminal to match the height needed by aumix (C.W.)
- in xaumix, allow different title options for gnome-terminal and konsole, so
  they may be used (T.J.)
- in xaumix, use single quotes for GEOMETRY for gnome-terminal and konsole, to
  leave LINES unexpanded (C.W.)
- in xaumix, check for files left by previous sessions of gnome-terminal and
  konsole as a clue about whether we should run those emulators (T.J.)
- in xaumix, only use 79 columns (T.J.)
- in xaumix, add aterm and Eterm (T.J.)
- in xaumix, don't show scrollbars for aterm, rxvt, or xterm (T.J.)
- disable use of escape key for quitting, because escape sequences can
  sometimes be broken up (maybe by Nagle's algorithm) and confused with it 
  (T.J.)
- add dummy.c to simulate a sound driver when one isn't present in the
  kernel (C.W.)

1999-11-30 - version 1.29
- in xaumix, test for panel or kpanel processes to see whether user is running
  GNOME or KDE (T.J.)
- in xaumix, don't use "a" option to ps, so we only see current user's
  processes (C.W.)
- in common.c, don't use parentheses for return values (T.J.)
- in aumix.spec, change "./configure --prefix=/usr --without-alsa" to
  "%configure --without-alsa" (C.W.)
- in StartGPM, don't grab mouse events that have a modifier key set (C.W.) 
- add WriteLevel(), ReadLevel(), WriteRecSrc() and ReadRecSrc() to do most
  ioctls (T.J.)
- in configure.in, check for both curses.h and ncurses.h so our own curses.h
  can use the system's curses.h (T.J.)
- in configure.in, check for awk and some other things suggested by autoscan,
  and remove some tests it didn't suggest (T.J.)
- shuffle into our own curses.h a few things that pertain to ncurses and gpm
  (T.J.)
- in curses.c, add support for use_default_colors, and change the default
  colors to work better with this (T.J.)
- add ncurses mouse support, so mouse will work in an xterm on Linux (C.W.)
- in gpm.c, move most mouse handling from MouseHandler() into new DoMouse()
  (C.W.)
- remove unused function GpmHalfdelay() (C.W.)
- enable ncurses mouse support in StartGPM() (C.W.)
- rename StartGPM to StartMouse() (C.W.)
- rename gpm.c to mouse.c (C.W.)
- in curses.h, add prototype for DoMouse() (C.W.)
- in Inter(), handle KEY_MOUSE, get event, and call DoMouse() (C.W.)
- in curses.c, don't use w_panel, but just draw on stdscr, to avoid bug in
  ncurses (T.J.)
- in curses.c, add preliminary support for resizing screen (T.J.)
- in configure.in, check for getmouse() and use_default_colors() in ncurses
  library; define HAVE_GETMOUSE and HAVE_USEDEFAULT if present (T.J.)

1999-12-06 - version 1.30
- in xaumix, use test -z (T.J.)
- in aumix.1, mention implication of -I option by -C (T.J.)
- in curses.c, add PlaceCursor() to move cursor to right of "aumix" (T.J.)
- use curs_set(0) to make cursor invisible, on terminals which have that
  capability (C.W.)
- remove empty src/gpm.c (C.W.)
- in xaumix, use xprop rather than ps to detect GNOME and KDE (C.W.)
- in xaumix, check for GNOME_SM_PROXY and "Unnamed Desktop" to find GNOME and
  KDE (T.J.)
- in xaumix, check whether $DISPLAY is set and if not, don't run an emulator
  (C.W.)
- in xaumix, no "x" needed with test -z (C.W.)
- in xaumix, if no $XTERM, send error message to stderr (C.W.)
- in InitCurses(), add meta(stdscr, TRUE) because it is not default everywhere
  and mouse position is truncated to 7 bits otherwise (C.W.)
- in gpm-xterm.c, make mdata unsigned char to avoid misreporting of coordinates
  as negative (C.W.)
- have autoconf generate a test program to check for _use_keypad in WINDOW
  structure (C.W.)
- in curses.h, add CTRL() macro to map 'X' to ^X (C.W.)
- in Inter(), use CTRL() for control keys in switch statement (C.W.)
- move CTRL() checks to end of switch cascade (C.W.)
- check whether CTRL is already defined, and leave it alone if it is (C.W.)
- return ^D to its former exit function (C.W.)
- in StartMouse(), add function pointer Wgetch to indirects wgetch calls to
  one of Sysm_Wgetch, Gpm_Wgetch, or wgetch (C.W.)
- add #define Getch(), to prettify (*Wgetch)() call (C.W.)
- replace Gpm_Getch() with Getch() (C.W.)
- in StartMouse(), initialize Wgetch to Gpm_Wgetch or plain wgetch (C.W.)
- in Inter(), join two consecutive switch(key) statements (C.W.)
- in curses.c, use HighlightLabelCurses() in more places (C.W.)
- in Inter(), do HighlightLabelCurses() so label is in right color when ^L
  is used (C.W.)
- update gl.po and es.po (J.A.)
- in gpm-xterm.c, fix select() loop (C.W.)
- in configure.in, move checks for headers before ncurses checks (C.W.)
- in StartMouse(), get character cell width and height, since FreeBSD sysmouse
  coordinates are in pixels (C.W.)
- have sysmouse send us SIGUSR2 for mouse state changes, and if successful,
  register signal handler and our wgetch() replacement (C.W.)
- add SysmouseHandler(), signal handler for SIGUSR2 which retrieves mouse
  coordinates and converts pixels to character cell units (C.W.)
- in mouse.c, add Sysm_Wgetch(), derived from Gpm_Wgetch() (C.W.)
- add autoconf test for sysmouse (C.W.)
- center balance when second mouse button is pressed over balance track (C.W.)
- make DoMouse() take an argument specifying buttons (C.W.)
- have mouse coordinates start from (0, 0) instead of (1, 1) (C.W.)
- create mouse.h, mostly from bits of curses.h (C.W.)
- added acconfig.h (T.J.)
- added AM_CONFIG_HEADER(config.h) to configure.in and ran aclocal to pull the
  macro into aclocal.m4 (T.J.) 
- added xaumix man page (P.S.)
- added --enable-own-labels option to configure script, to permit translation
  of dev_label array (T.J.)
- made include/ and moved headers from src/ into it, to avoid automake
  misfeature (T.J.)
- in gpm-xterm.h, #define SELECT_TIME (C.W.)
- fix some prototyping problems (C.W.)

1999-12-19 - version 1.30.1
- in src/Makefile.am, specify DEFS to override automake's defaults (T.T.)
- move headers back to src/ (T.J.)
- update pl.po (P.C.)
- update ru.po (M.V.)
- fix bug where mouse could toggle nonexistent record/play (C.W.)
- in SysmouseHandler(), work around cosmetic bug in syscons.c on FreeBSD
  3.3/3.4 (T.J.)
- on NetBSD and OpenBSD, use _oss_ioctl (C.W.)
- find libcurses on OpenBSD (T.J.)
- fix test for libcurses (C.W.)
- use unsigned long as type for second argument of dummy_ioctl, for
  compatibility with OpenBSD/alpha (C.W.)
- fix typo in src/gpm-xterm.h (C.W.)
- prettify printf formatting in src/gpm-xterm.h (C.W.)
- in PlaceCursor(), use A_NORMAL to lessen compiler bug on OpenBSD/sparc (T.J)
- in AumixSignalHandler(), redraw level/balance indicator after resizing
  window (C.W.)
- in xaumix, don't leave blank line when calculating size of terminal, because
  it is no longer needed (C.W.)
- fix bug where record/play could be toggled for a nonexistent channel, using
  the mouse (C.W.)
- in common.h, add prototype for dummy_ioctl (C.W.)
- in configure --help text, don't capitalize the first letter, in order to
  match configure's built-in descriptions (C.W.)
- in configure --help text, line up descriptions (T.J.)
- in InitCurses(), when running in an xterm, set DISPLAY if it isn't already
  set, to trick ncurses into processing mouse events (C.W.)
- in configure.in, only test for _use_keypad, getmouse and use_default_colors
  when $CURSLIB is set (C.W.)
