- v1.5
Tue Jan 19 21:46:17 CET 1999
* Automated lsm generation.
* Minor updates. Deleted doc/MANUAL: it was just an old formatted man page.
* New environment variable: MDMFILE. This env. var. permit to set in shell the
  modems description file. If unset, the default hardcoded value is
  /etc/modems while if set the default value is the shell value $MDMFILE
* Sync with all the minor glitches I have made with 1.4.
* Added __BEGIN(END)_DECLS for clean C++ linking.

- v1.4 (interim release)
Mon Dec 21 19:15:40 GMT 1998
* Minor updates to documentation.
* Compile into shared library the major version (-soname to linker).

- v1.3
Sun Dec 20 14:12:48 GMT 1998
* Now libmodem supports the 'RINGING' messages from modems. You can,
  with setmdmdata(), set the number of rings you want to wait for the line to
  be picked up by the called modem.
* Updated documentation.
* Cleaned up a lot line parameters setting. Now we do not do output processing
  and input processing (c_oflag and c_iflag = 0) and we do not buffer more
  than 1 char at a time (buffering disabled. This is due to the fact that we
  want to be the more generic we can be: if you want buffering, you have to
  activate it by yourself (t.c_cc[VMIN]  = Num_char_to_buffer).

- v1.2
Tue Dec 15 13:59:58 GMT 1998
* Corrected a bug in hangup procedures when setting B0 speed.

Sun Nov  8 16:25:52 MET 1998
* Applied Angelo's patch for reading a char at a time from modem.
* Applied Philippe's patch for sending AT commands to modems.

- v1.1
Tue Nov 18 11:03:52 MET 1997
* Updated documentation.
* Little change to call.c: now phone number is no more hardcoded.

Thu Oct 30 20:19:42 MET 1997
* Added support for data/parity/stop

Wed Oct 22 19:07:36 MET DST 1997
* New "connected" member in modem struct.
* Hangup sequence is now done only if connected, otherwise we fall down to
  just termios hangup.

Tue Oct 21 22:14:12 MET DST 1997
* Removed mdm_unlock() before hangup(): be sure to remove line lock after the
  modem line is no more in use.

Tue Oct  7 20:23:20 MET DST 1997
* Now lock directory is set up in CONFIG.MAKE

Wed Sep 17 21:32:00 MET DST 1997
* Fixed (b)dial()
* Corrected Makefile
* Rewritten get_command()
* Cleaned up talk_to_modem()
* Better handling of modem response messages: now unknown modem reply are
  detected and the correct error is returned.

Mon Sep 15 21:39:07 MET DST 1997
* mdm_lock fixed "dir exist" bug. Now it returns a specific error number.

Thu Aug 28 22:48:49 MET DST 1997
* Restored DTR toggle when opening the modem.
* Revamping of tty line parameters code.
* Some bugs fixed.

- v1.0.0
Tue Aug 26 17:14:22 MET DST 1997
* Modified Makefile to compile libmodem as shared library.

Thu Jul 10 00:23:43 MET DST 1997
* New variable in modem structure: bdi. It is the baud number corresponding to
  bd B* value.

Sun Jun 29 16:04:05 MET DST 1997
* log file is now a CONFIG.MAKE option. No more syslog logging.
* mdm_cycle is now a "max number of times" variable. 0 means no cycling.

Mon Jun 16 22:54:24 MET DST 1997
* Now libmodem don't use any more static or stack buffers: only malloc/free.

Sun Jun 15 21:48:11 MET DST 1997
* When DEBUG is defined, log modem activity in /var/adm/libmodem.log (see
  mdmlog.c)
* reset mdm_read_retries on a successful read.

Thu Jun 12 20:51:16 MET DST 1997
* Finished adding all modem responses

Wed Jun 11 21:39:00 MET DST 1997
* Added some modem responses
* Corrected a bug in modem selection.

Mon Jun  9 21:01:11 MET DST 1997
* write in mdmlock.c tests if the lock is correctly written.

Thu Jun  5 19:46:05 MET DST 1997
* Cosmetic to the read() in mdmlock.c

Fri May 23 20:59:18 MET DST 1997
* Updated the man page.
* Added a new global variable (mdm_cycle) to let the user (of the library)
  cycle all the modems (until the last is encountered) if the previuos have
  returned error (this let the user to be sure all the efforts are be done to
  try to make the call): of course, under unknown/config/busy errors, the call
  is not repeated.

Fri Apr 25 17:49:06 MET DST 1997
* Specified usec field in tmout struct in select
* Corrected error message (number 23)

Mon Apr 14 22:38:05 MET DST 1997
* Don't open/closelog() because this is a library and the user program may
  want to syslog: we cannot interfere.

Wed Apr  9 22:09:36 MET DST 1997
* Corrected an error in mdmerror #define list in dial/mdmerrno.h
* Reverting FD set size from 1 to FDSET_SIZE in select (line_manage.c)
* Corrected a bug (buffer -> mdmstr) in demangle_modem_entry.
* Added baudnum to baud translation in modems.c
* Trying to #ifdef linux-specific code.
* Changed definition of LOCKDIR in dial/modems.h

Tue Mar 25 08:43:32 MET 1997
* Better syslog messages.

Thu Mar 13 16:29:58 MET 1997
* Updated man page.
* Corrected the problem with modem stalling on read (5 retries and then go out).

Fri Feb 28 23:23:39 MET 1997
* Added a new field in /etc/modems file (dp: dial prefix)

Fri Feb  7 10:07:23 MET 1997
* Changed the killing signal for PID check from SIGUSR1 to 0.

Thu Feb  6 23:10:03 MET 1997
* Cancel O_NDELAY after +++ath
* libmodem->line_manage->select can wait on 1 fd only (just read from modem).

Fri Jan 10 14:45:23 MET 1997
* hangup: first drop DTR, then send escape sequence.
* Hangup escape sequence is sent with NDELAY because we don't want the write
  block in hangup.

Fri Nov 29 10:48:50 MET 1996
* Added drop of DTR when opening the modem device.

Thu Nov 14 23:21:26 MET 1996
* Rewritten the talk_to_modem to be more robust (but I suppose need some more
  rewriting).
* Encountered a problem opening the modem device in blocking mode. Now I open
  it in non-blocking and then restore blocking.

Wed May 17 14:55:10 GMT-0100 1995
* libmodem-0.99.2 released
* Corrected a bug in modem read. Appended the '\0' char in
  read buffer.

Tue May  2 20:42:03 MET DST 1995
* better handling of alarm timeout on device open.
* contitional compilation for MDM_CHECK_DEVICES
* int clean_line(int fd, int waittime) new function (stolen from mgetty)
  to clear an opened line.

Sat Apr 29 19:07:05 MET DST 1995
* savetty: de-erased, period.
* Now call.c do something useful. It works.

Sat Apr 29 12:31:56 MET DST 1995
* FLOW_* bug in testing the kind.

Sun Apr  9 23:10:30 MET DST 1995
* Erased the savetty from line_manage code. We can't reset the fd
  before close because it is alredy set up to work well.
* new function close_nohangup(fd) to close the modem fd without hangup the
  modem connection.

Wed Jan  4 16:02:12 MET 1995
* New functions:
  hangup_nodev() if mdmopendevice is NULL.
  getopenmodem() to get the struct modems structure of the currently opened
  modem.
* Some new error checking with line. Now you have to use a cua line. The
  library force you to use it even if you have specified a ttyS line. This
  is okay because we are a callout and callouts are cua ones.

Mon Jan  2 20:11:30 MET 1995
* prepared libmodem for release.

Fri Dec 23 10:37:59 MET 1994
* libmodem is now a separate package.
* added an MDMERROR for when the modem return ERROR
* now dial and bdial scans all the modem lines until found a free line.
* no more CLOCAL in line setup.
* new file: mdmlog.c, new routines for syslog.

Sun Dec  4 14:41:59 MET 1994
* First tries of libmodem.
* New management of open() with longjump and alarm
* debugging: libmodem now works quite well.

Sun Nov  6 16:45:29 MET 1994
* libmodem.a:
  The End.
  Debugging.

Sun Nov  6 00:10:21 MET 1994
* libmodem.a:
  written down near all the management functions. Mainly open,
  line setup, modem initialization and modem dialing.

Sat Nov  5 00:10:50 MET 1994
* Continue the libmodem.a
  Ended the configuration file section.
  written down a starting point for mdmerrno.
  Started low level routines (dial/undial/hangup)

Fri Nov  4 00:06:13 MET 1994
* libmodemcap definitely out.
* written down the basis of a library of modem management. The modems
  configuration will be in /etc/modems and there will be all the characteristics
  of modems. This library will be a front-end for the programmer.
  There will be exported functions like:

  int fd = dial(char *phonenum)
  int fd = ldial (char *phonenum, char *line)
  int fd = bdial( char *phonenum, int baud)
  int fd = bldial(char *phonenum, char *line, int baud)
