         Technical notes on my code submission of 05 Dec 00
                        Kern Sibbald

General:
- Fixed Win32 to work with simple signalling UPSes.
- Upgraded Win32 to CGYWIN 1.1.5.
- Fixed an Alpha Tru64 64/32 bit problem.
- Fixed the random incorrect on battery timers (I think).
- Upgraded to latest version of gcc 
- Do much better argument checking in the .cgi programs. This
  improves security (at least psychologically).

Changes submitted this submission:
- The new version of gcc caused a number of problems especially with
  the #defines and varargs. As a consequence, all the error_aborts()
  were changed.  You must now explicitly put the number of message
  substitutions on the Error_abortN() subroutine call.
- Added a make depend to the main Makefile in case the automatic
  dependencies fails.
- Added a Makefile rule to build the apctest program for Windows.
- Moved the powerfail and logonfail to apcaction.c as Riccardo did
  in 4.0.  This required adding these subroutines to apctest.
- Removed the static declarations in apcaction.c in preparation for
  4.0.
- Added the ups variable as the first argument to log_event() in
  preparation for 4.0.
- Added the ups argument to do_action().
- Moved a number of static variables to the ups structure.
- Corrected a problem with the on battery timers where the
  last time on battery was not set because there was not a full
  confirmation of on battery (i.e. a power outage of less than
  5 seconds or a self test).
- Reindented apcstatus.c a bit so that the code can be more easily
  read on an 80 character wide screen.
- Implemented a very crude form of serial port line status ioctl()
  for Win32 to support simple signalling UPSes.  Despite the limitations
  of the Win32 API, it seems to work and implements most features for
  most UPS/cable combinations.
- Enhancements to the manual.
