From decwrl!wyse!mips!zaphod.mps.ohio-state.edu!uakari.primate.wisc.edu!aplcen!uunet!allbery Sat May 19 20:36:45 PDT 1990
Article 1583 of comp.sources.misc:
Path: decwrl!wyse!mips!zaphod.mps.ohio-state.edu!uakari.primate.wisc.edu!aplcen!uunet!allbery
From: wht%n4hgf@gatech.edu (Warren Tucker)
Newsgroups: comp.sources.misc
Subject: v12i101: ECU patch 1 part 01/02
Message-ID: <89107@uunet.UU.NET>
Date: 17 May 90 00:39:30 GMT
Sender: allbery@uunet.UU.NET
Lines: 1125
Approved: allbery@uunet.UU.NET (Brandon S. Allbery - comp.sources.misc)

Posting-number: Volume 12, Issue 101
Submitted-by: wht%n4hgf@gatech.edu (Warren Tucker)
Archive-name: ecu2.80/patch01

This patch fixes two make bugs for 286 systems and adds features
requested by folks who sent me mail.  Assuming this patch fixes
the 286 make problems and there are no other bugs uncovered, this
will be the only patch issued during the near term.  If you have
suggestions for improvements or changes, PLEASE contact me by e-mail.

The patch procedure:

1) unshar both patch parts.  patchlevel.h, is shorter than a patch
   to correct it, so it is replaced. 
2) type APPLY.P01 ... The patches will be applied.
3) My version of patch (patchlevel 11) refused to apply one hunk of the patch
   to ecuhayes.c.  The diffs look okay to me and I made several attempts
   at correcting the problem, but with no success.  The reject file
   had ("Hunk #7 failed at 384."):
>***************
>*** 382,388
>  			if((itmp = lgetc_timeout(500L)) < 0)
>  			{
>  				if(interrupt)
>! 					return(-1);
>  				pputs("missed reading \r\n");
>  				retries++;
>  				goto INIT_LOOP;
>
>--- 384,390 -----
>  			if((itmp = lgetc_timeout(500L)) < 0)
>  			{
>  				if(interrupt)
>! 					goto ERROR_RETURN;
>  				pputs("missed reading \r\n");
>  				retries++;
>  				goto INIT_LOOP;
   You may have to apply this patch by hand.  Please e-mail me if
   you can sleuth this one out.
4) Look over the first screenful and the last section of the README
   as patched by this procedure. XENIX 286 users take note of the
   suggestions to use makeL (I would cp /bin/makeL /bin/make, myself).
5) Makefile changes pertinent to <<286>> users occurred, so if you
   are using the program under XENIX 286, recopy Make.ecu to Makefile
   and edit to your specifications.
6) type make and wait
7) su (if needed) and type make install

#!/bin/sh
# This is ecu2.80/patch01, a shell archive (shar 3.26)
# made 05/16/1990 06:12 UTC by wht@n4hgf
# Source directory /u1/src/ecu
#
# existing files WILL be overwritten
#
# This shar contains:
# length  mode       name
# ------ ---------- ------------------------------------------
#     28 -rwxr-xr-x APPLY.P01
#  29752 -rwxr-xr-x ECU280.P1.01
#  37036 -rwxr-xr-x ECU280.P1.02
#     17 -rw-r--r-- help/helpgen.fls
#     38 -rw-r--r-- patchlevel.h
#
if touch 2>&1 | fgrep '[-amc]' > /dev/null
 then TOUCH=touch
 else TOUCH=true
fi
# ============= APPLY.P01 ==============
echo "x - extracting APPLY.P01 (Text)"
sed 's/^X//' << 'SHAR_EOF' > APPLY.P01 &&
X:
XECU280.P1.01
XECU280.P1.02
SHAR_EOF
$TOUCH -am 0516014690 APPLY.P01 &&
chmod 0755 APPLY.P01 ||
echo "restore of APPLY.P01 failed"
# ============= ECU280.P1.01 ==============
echo "x - extracting ECU280.P1.01 (Text)"
sed 's/^X//' << 'SHAR_EOF' > ECU280.P1.01 &&
X:
X#-------------------------------------------------------
X# ECU280.P1.01
X# created by gendiff x1.03 on 16 May 1990 06:09 UTC
X#-------------------------------------------------------
Xsed -e 's/^P//' << DIFF_EOF | patch -p
XP*** /u4/ecurel/Make.ecu	Wed May  9 10:07:00 1990
XP--- Make.ecu	Wed May 16 01:13:03 1990
XP***************
XP*** 212,218
XP  	touch check_tools
XP  
XP  ecuhelp: check_tools
XP! 	cd help;make all
XP  
XP  ecuz: check_tools
XP  	cd z;make
XP
XP--- 212,218 -----
XP  	touch check_tools
XP  
XP  ecuhelp: check_tools
XP! 	cd help;make
XP  
XP  ecuz: check_tools
XP  	cd z;make
XP***************
XP*** 343,349
XP  eculine.o: ecu.h
XP  eculine.o: ecukey.h
XP  eculine.o: ecuhangup.h
XP- eculine.o: /usr/include/sys/select.h
XP  eculock.o: ecu.h
XP  eculock.o: utmpstatus.h
XP  ecuicmaux.o: ecu.h
XP
XP--- 343,348 -----
XP  eculine.o: ecu.h
XP  eculine.o: ecukey.h
XP  eculine.o: ecuhangup.h
XP  eculock.o: ecu.h
XP  eculock.o: utmpstatus.h
XP  ecuicmaux.o: ecu.h
XP*** /u4/ecurel/README	Wed May  9 09:58:00 1990
XP--- README	Wed May 16 01:11:57 1990
XP***************
XP*** 1,4
XP! ECU README - last revised Sun Apr 15 19:47:01 EDT 1990
XP  Changes since previous versions appear at the bottom of this file
XP  --------------------------------------------------------------------
XP  
XP
XP--- 1,4 -----
XP! ECU README - last revised Mon May 14 17:11:29 EDT 1990
XP  Changes since previous versions appear at the bottom of this file
XP  Also, 286 users, reread the section on making below.
XP  --------------------------------------------------------------------
XP***************
XP*** 1,5
XP  ECU README - last revised Sun Apr 15 19:47:01 EDT 1990
XP  Changes since previous versions appear at the bottom of this file
XP  --------------------------------------------------------------------
XP  
XP  This is ECU revision 2.80.  ECU is a asynchronous communications
XP
XP--- 1,6 -----
XP  ECU README - last revised Mon May 14 17:11:29 EDT 1990
XP  Changes since previous versions appear at the bottom of this file
XP+ Also, 286 users, reread the section on making below.
XP  --------------------------------------------------------------------
XP  
XP  This is ECU revision 2.80.01.  ECU is a asynchronous communications
XP***************
XP*** 2,8
XP  Changes since previous versions appear at the bottom of this file
XP  --------------------------------------------------------------------
XP  
XP! This is ECU revision 2.80.  ECU is a asynchronous communications
XP  program for SCO UNIX System V/386 or XENIX System V/286 or 386 on
XP  AT-class computer systems.  It incorporates typical interactive
XP  communications capabilities with a rich procedure language, an extended
XP
XP--- 3,9 -----
XP  Also, 286 users, reread the section on making below.
XP  --------------------------------------------------------------------
XP  
XP! This is ECU revision 2.80.01.  ECU is a asynchronous communications
XP  program for SCO UNIX System V/386 or XENIX System V/286 or 386 on
XP  AT-class computer systems.  It incorporates typical interactive
XP  communications capabilities with a rich procedure language, an extended
XP***************
XP*** 28,33
XP  4.   If your username is root or you have write access to your
XP  5.   local bin directory (LBIN in Makefile) just type 'make tools'
XP       If needed, su to root, 'make tools', then exit the root shell.  
XP  6.   Type 'make'.  Wait and watch a while.  This is a good time to
XP       be reading over doc/ecu.  man.  Less does a pretty job of making
XP       the underlined stuff appear in standout mode.  
XP
XP--- 29,42 -----
XP  4.   If your username is root or you have write access to your
XP  5.   local bin directory (LBIN in Makefile) just type 'make tools'
XP       If needed, su to root, 'make tools', then exit the root shell.  
XP+         Just a note: on 286 systems you make have to use makeL, since
XP+         make is a small model (medium?) and makeL is a large model
XP+         program.  marks@msge reported that
XP+ 
XP+               make -n tools | sh
XP+ 
XP+         worked.  It has been a while since I had a 286 to check this
XP+         out on. Please let me know what works for you.
XP  6.   Type 'make'.  Wait and watch a while.  This is a good time to
XP       be reading over doc/ecu.  man.  Less does a pretty job of making
XP       the underlined stuff appear in standout mode.  
XP***************
XP*** 31,36
XP  6.   Type 'make'.  Wait and watch a while.  This is a good time to
XP       be reading over doc/ecu.  man.  Less does a pretty job of making
XP       the underlined stuff appear in standout mode.  
XP  8.   Su to root, if not already and type 'make install'.
XP  9.   Create a subdirectory in your home directory called '.ecu' (~/.ecu).
XP  10.  Copy models/* to ~/.ecu.
XP
XP--- 40,46 -----
XP  6.   Type 'make'.  Wait and watch a while.  This is a good time to
XP       be reading over doc/ecu.  man.  Less does a pretty job of making
XP       the underlined stuff appear in standout mode.  
XP+         On a 286, try 'makeL' or 'makeL -n | sh'.
XP  8.   Su to root, if not already and type 'make install'.
XP  9.   Create a subdirectory in your home directory called '.ecu' (~/.ecu).
XP  10.  Copy models/* to ~/.ecu.
XP***************
XP*** 281,283
XP      edit the old entry as desired, and then press Enter. (see #8 above).
XP      Users of ksh will find this a familiar feature.
XP  
XP
XP--- 291,333 -----
XP      edit the old entry as desired, and then press Enter. (see #8 above).
XP      Users of ksh will find this a familiar feature.
XP  
XP+ --------------------------------------------------------------------
XP+ 
XP+ Changes and fixes since '2.80'
XP+ 
XP+ 1.  It was not possible to interrupt the built-in modem dialer
XP+     modem initialization sequence.  SIGINT will do it now.
XP+ 
XP+ 2.  A Zmodem window size may now be specified when sending files.
XP+     The file transfer status screen shows the number of unacknowleged
XP+     bytes which have been sent.  If full streaming is allowed (window
XP+     size of zero), then this size will match the file position until
XP+     the transfer is complete or the receiver sends a ZRPOS.
XP+ 
XP+ 3.  Output generated by procedures is now written to any active receiver
XP+     log file in addition to any active procedure log file.
XP+ 
XP+ 4.  Just a note: on 286 systems you make have to use makeL, since
XP+     make is a small model (medium?) and makeL is a large model
XP+     program.
XP+ 
XP+ 5.  The dependency of eculine.c on sys/select.h has been removed.
XP+     If you re-'make depend', you probably won't have this problem
XP+     show up again (a side effect of make depend is that it misses
XP+     '# include' and I have patched eculine.c to use this).
XP+ 
XP+ 6.  A new command, xon, has been added (both interactive and procedure
XP+     versions).  The format is:
XP+          xon <arg>
XP+     where <arg> is on    input and output flow control
XP+                    off   no flow control
XP+                    in    input flow control
XP+                    out   output flow control
XP+     If <arg> is omitted from the interactive command, the current
XP+     flow control status is displayed.  This command is documented in
XP+     the patched built-in help file and nroff txt files, but no pre-
XP+     printed manual changes were issued with this release.
XP+ 
XP+ 7.  If you are not using a 43-line screen, the list of commands
XP+     displayed by the interactive 'help' command is truncated.  I
XP+     apologize; this problem will be solved Real Soon Now.
XP*** /u4/ecurel/doc/_icmd.txt	Fri Apr 20 00:45:00 1990
XP--- doc/_icmd.txt	Wed May 16 01:34:04 1990
XP***************
XP*** 774,779
XP  and two-character control character identifier.
XP  
XP  
XP  .*s 2 "! : execute shell"
XP  .DS L
XP  usage: !
XP
XP--- 774,791 -----
XP  and two-character control character identifier.
XP  
XP  
XP+ .*s 2 "XON : xon/xoff flow control"
XP+ .DS L
XP+ usage: xon [<arg>]
XP+ where <arg> is on    input and output flow control
XP+                off   no flow control
XP+                in    input flow control
XP+                out   output flow control
XP+ .DE
XP+ 
XP+ This command enables or disables xon/xoff flow control.
XP+ If the argument is omitted, the current flow control state is displayed.
XP+ 
XP  .*s 2 "! : execute shell"
XP  .DS L
XP  usage: !
XP*** /u4/ecurel/doc/_p_cmd.txt	Tue Apr 10 17:22:00 1990
XP--- doc/_p_cmd.txt	Wed May 16 01:32:08 1990
XP***************
XP*** 1485,1487
XP  and many other examples throughout the document,
XP  for examples of how the command is used.
XP  
XP
XP--- 1485,1505 -----
XP  and many other examples throughout the document,
XP  for examples of how the command is used.
XP  
XP+ .*s 3 "xon"
XP+ .DS L
XP+ usage: xon <arg>
XP+ where <arg> is on    input and output flow control
XP+                off   no flow control
XP+                in    input flow control
XP+                out   output flow control
XP+ .DE
XP+ 
XP+ This command enables or disables xon/xoff flow control.
XP+ 
XP+ .DS L
XP+ Examples:
XP+ 
XP+     hangup
XP+     dial 'mysys'
XP+     ifi %conn != 0 parity none;xon on
XP+ .DE
XP*** /u4/ecurel/doc/_top.txt	Mon May  7 23:59:00 1990
XP--- doc/_top.txt	Wed May 16 01:36:56 1990
XP***************
XP*** 27,33
XP  .sp 1i
XP  .ce 100
XP  Technical Description
XP! Revision 1.22 (ecu 2.80)
XP  \n(mo/\n(dy/\n(yr
XP  .ce 0
XP  .ls 1
XP
XP--- 27,33 -----
XP  .sp 1i
XP  .ce 100
XP  Technical Description
XP! Revision 1.23 (ecu 2.80.01)
XP  \n(mo/\n(dy/\n(yr
XP  .ce 0
XP  .ls 1
XP*** /u4/ecurel/ecu.c	Mon May  7 23:33:00 1990
XP--- ecu.c	Wed May 16 00:54:08 1990
XP***************
XP*** 1,4
XP! /* CHK=0x4253 */
XP  /*+-----------------------------------------------------------------------
XP  	ecu.c
XP  	wht%n4hgf@gatech.edu
XP
XP--- 1,4 -----
XP! /* CHK=0x130C */
XP  /*+-----------------------------------------------------------------------
XP  	ecu.c
XP  	wht%n4hgf@gatech.edu
XP***************
XP*** 9,14
XP  
XP  ------------------------------------------------------------------------*/
XP  /*+:EDITS:*/
XP  /*:05-07-1990-21:23-wht@n4hgf---- 2.80 --- */
XP  /*:04-19-1990-03:07-wht@n4hgf-GCC run found unused vars -- rm them */
XP  /*:03-27-1990-15:18-wht@n4hgf-overhaul for/wait/SIGCLD handling */
XP
XP--- 9,15 -----
XP  
XP  ------------------------------------------------------------------------*/
XP  /*+:EDITS:*/
XP+ /*:05-10-1990-16:44-wht@n4hgf-move patchlevel to hello_str from ecuicmd.c */
XP  /*:05-07-1990-21:23-wht@n4hgf---- 2.80 --- */
XP  /*:04-19-1990-03:07-wht@n4hgf-GCC run found unused vars -- rm them */
XP  /*:03-27-1990-15:18-wht@n4hgf-overhaul for/wait/SIGCLD handling */
XP***************
XP*** 27,32
XP  #include "ecukey.h"
XP  #include "ecuxkey.h"
XP  #include "ecuhangup.h"
XP  
XP  char *getenv();
XP  
XP
XP--- 28,34 -----
XP  #include "ecukey.h"
XP  #include "ecuxkey.h"
XP  #include "ecuhangup.h"
XP+ #include "patchlevel.h"
XP  
XP  char *getenv();
XP  
XP***************
XP*** 139,146
XP  	ftime(&starting_timeb);	/* get startup time */
XP  
XP  /* get this off quick, cause we'll be busy for a little while on 286 */
XP! 	sprintf(hello_str,"ecu %s%s by wht@n4hgf (pid %d)",
XP! 		numeric_revision,revision_modifier,xmtr_pid);
XP  	ff(se,"%s\n",hello_str);
XP  
XP  /* if we are root (as we should be on 286 versions), nice to very bad
XP
XP--- 141,148 -----
XP  	ftime(&starting_timeb);	/* get startup time */
XP  
XP  /* get this off quick, cause we'll be busy for a little while on 286 */
XP! 	sprintf(hello_str,"ecu %s.%02d%s by wht@n4hgf (pid %d)",
XP! 		numeric_revision,PATCHLEVEL,revision_modifier,xmtr_pid);
XP  	ff(se,"%s\n",hello_str);
XP  
XP  /* if we are root (as we should be on 286 versions), nice to very bad
XP***************
XP*** 198,203
XP  	shm->Ladd_nl_outgoing = 0;		/* dont add nl to outgoing cr */
XP  	shm->Lfull_duplex = 1;			/* assume full duplex */
XP  	shm->Lmodem_already_init = 0;	/* modem has not been initialized */
XP  	shm->xmtr_pid = getpid();
XP  	shm->xmtr_ppid = getppid();
XP  	shm->xmtr_pgrp = getpgrp(0);
XP
XP--- 200,206 -----
XP  	shm->Ladd_nl_outgoing = 0;		/* dont add nl to outgoing cr */
XP  	shm->Lfull_duplex = 1;			/* assume full duplex */
XP  	shm->Lmodem_already_init = 0;	/* modem has not been initialized */
XP+ 	shm->Lxonxoff = IXON | IXOFF;	/* default to xon/xoff protocol */
XP  	shm->xmtr_pid = getpid();
XP  	shm->xmtr_ppid = getppid();
XP  	shm->xmtr_pgrp = getpgrp(0);
XP*** /u4/ecurel/ecucmd.h	Mon May  7 23:33:00 1990
XP--- ecucmd.h	Tue May 15 22:32:00 1990
XP***************
XP*** 4,9
XP  	wht%n4hgf@gatech.edu
XP  --------------------------------------------------------------------------*/
XP  /*+:EDITS:*/
XP  /*:05-07-1990-21:24-wht@n4hgf---- 2.80 --- */
XP  /*:04-05-1990-14:29-wht@n4hgf-sort/renumber CT tokens */
XP  /*:03-25-1990-14:11-wht@n4hgf------ x2.70 ------- */
XP
XP--- 4,10 -----
XP  	wht%n4hgf@gatech.edu
XP  --------------------------------------------------------------------------*/
XP  /*+:EDITS:*/
XP+ /*:05-15-1990-22:31-wht@n4hgf-add xon command */
XP  /*:05-07-1990-21:24-wht@n4hgf---- 2.80 --- */
XP  /*:04-05-1990-14:29-wht@n4hgf-sort/renumber CT tokens */
XP  /*:03-25-1990-14:11-wht@n4hgf------ x2.70 ------- */
XP***************
XP*** 70,75
XP  #define CTtty           52
XP  #define CTxa            53
XP  #define CTxlog          54
XP  
XP  #define TOKEN_QUAN	128		/* for help package */
XP  
XP
XP--- 71,77 -----
XP  #define CTtty           52
XP  #define CTxa            53
XP  #define CTxlog          54
XP+ #define CTxon           55
XP  
XP  #define TOKEN_QUAN	128		/* for help package */
XP  
XP***************
XP*** 156,161
XP  int cmd_vidrev() Z
XP  int cmd_whilei() Z
XP  int cmd_whiles() Z
XP  
XP  typedef struct p_cmd
XP  { 
XP
XP--- 158,164 -----
XP  int cmd_vidrev() Z
XP  int cmd_whilei() Z
XP  int cmd_whiles() Z
XP+ int cmd_xon() Z
XP  
XP  typedef struct p_cmd
XP  { 
XP***************
XP*** 276,281
XP  	{ "whiles",	0,0,		"",								cmd_whiles },
XP  	{ "xa",		2,CTxa,		"hex to ascii char",			0 },
XP  	{ "xlog",	2,CTxlog,	"",								0 },
XP  	{ "!",		1,CTshell,	"execute shell",				0 },
XP  	{ "",		0,-1,"",	0 },		/* list ends with token value of -1 */
XP  };
XP
XP--- 279,285 -----
XP  	{ "whiles",	0,0,		"",								cmd_whiles },
XP  	{ "xa",		2,CTxa,		"hex to ascii char",			0 },
XP  	{ "xlog",	2,CTxlog,	"",								0 },
XP+ 	{ "xon",	2,CTxon,	"control xon/xoff flow control",cmd_xon },
XP  	{ "!",		1,CTshell,	"execute shell",				0 },
XP  	{ "",		0,-1,"",	0 },		/* list ends with token value of -1 */
XP  };
XP*** /u4/ecurel/ecufkey.c	Mon May  7 23:33:00 1990
XP--- ecufkey.c	Thu May 10 17:26:07 1990
XP***************
XP*** 349,355
XP  char cfmt2[32];
XP  int clen3 = 0;
XP  char cfmt3[32];
XP! char cfmt4[4];
XP  
XP  	if(!keyset_name[0])
XP  	{
XP
XP--- 349,355 -----
XP  char cfmt2[32];
XP  int clen3 = 0;
XP  char cfmt3[32];
XP! char cfmt4[8];
XP  
XP  	if(!keyset_name[0])
XP  	{
XP*** /u4/ecurel/ecuhayes.c	Mon May  7 23:33:00 1990
XP--- ecuhayes.c	Thu May 10 16:42:13 1990
XP***************
XP*** 1,4
XP! /* CHK=0xAF99 */
XP  /* #define USE_S7 */
XP  /*+-------------------------------------------------------------------------
XP  	ecuhayes.c
XP
XP--- 1,4 -----
XP! /* CHK=0x2B18 */
XP  /* #define USE_S7 */
XP  /*+-------------------------------------------------------------------------
XP  	ecuhayes.c
XP***************
XP*** 23,28
XP  
XP  --------------------------------------------------------------------------*/
XP  /*+:EDITS:*/
XP  /*:05-07-1990-21:23-wht@n4hgf---- 2.80 --- */
XP  /*:04-26-1990-17:20-wht@n4hgf-xbell alarm on connect if enabled */
XP  /*:04-19-1990-03:07-wht@n4hgf-GCC run found unused vars -- rm them */
XP
XP--- 23,29 -----
XP  
XP  --------------------------------------------------------------------------*/
XP  /*+:EDITS:*/
XP+ /*:05-10-1990-15:55-wht@n4hgf-provide for SIGINT during hayes_modem_init */
XP  /*:05-07-1990-21:23-wht@n4hgf---- 2.80 --- */
XP  /*:04-26-1990-17:20-wht@n4hgf-xbell alarm on connect if enabled */
XP  /*:04-19-1990-03:07-wht@n4hgf-GCC run found unused vars -- rm them */
XP***************
XP*** 321,326
XP  int retries = 0;
XP  char *cmd;
XP  char *cptr;
XP  
XP  	if(shm->Lmodem_already_init)
XP  		return(0);
XP
XP--- 322,328 -----
XP  int retries = 0;
XP  char *cmd;
XP  char *cptr;
XP+ int old_ttymode = get_ttymode();
XP  
XP  	if(shm->Lmodem_already_init)
XP  		return(0);
XP***************
XP*** 336,342
XP  	{
XP  INIT_LOOP:
XP  		if(retries > 3)
XP! 			return(-1);
XP  
XP  		if(interrupt)
XP  			return(-1);
XP
XP--- 338,344 -----
XP  	{
XP  INIT_LOOP:
XP  		if(retries > 3)
XP! 			goto ERROR_RETURN;
XP  
XP  		if(interrupt)
XP  			goto ERROR_RETURN;
XP***************
XP*** 339,345
XP  			return(-1);
XP  
XP  		if(interrupt)
XP! 			return(-1);
XP  
XP  		if(retries)
XP  		{
XP
XP--- 341,347 -----
XP  			goto ERROR_RETURN;
XP  
XP  		if(interrupt)
XP! 			goto ERROR_RETURN;
XP  
XP  		if(retries)
XP  		{
XP***************
XP*** 362,368
XP  			if((itmp = lgetc_timeout(500L)) < 0)
XP  			{
XP  				if(interrupt)
XP! 					return(-1);
XP  				retries++;
XP  				goto INIT_LOOP;
XP  			}
XP
XP--- 364,370 -----
XP  			if((itmp = lgetc_timeout(500L)) < 0)
XP  			{
XP  				if(interrupt)
XP! 					goto ERROR_RETURN;
XP  				retries++;
XP  				goto INIT_LOOP;
XP  			}
XP***************
XP*** 382,388
XP  			if((itmp = lgetc_timeout(500L)) < 0)
XP  			{
XP  				if(interrupt)
XP! 					return(-1);
XP  				pputs("missed reading \\r\n");
XP  				retries++;
XP  				goto INIT_LOOP;
XP
XP--- 384,390 -----
XP  			if((itmp = lgetc_timeout(500L)) < 0)
XP  			{
XP  				if(interrupt)
XP! 					goto ERROR_RETURN;
XP  				pputs("missed reading \\r\n");
XP  				retries++;
XP  				goto INIT_LOOP;
XP***************
XP*** 394,400
XP  			if(!strcmp(cptr,interrupted_string))
XP  			{
XP  				interrupt = 1;
XP! 				return(-1);
XP  			}
XP  			pprintf("unexpected result: '%s'\n",cptr);
XP  			retries++;
XP
XP--- 396,402 -----
XP  			if(!strcmp(cptr,interrupted_string))
XP  			{
XP  				interrupt = 1;
XP! 				goto ERROR_RETURN;
XP  			}
XP  			pprintf("unexpected result: '%s'\n",cptr);
XP  			retries++;
XP***************
XP*** 403,408
XP  		shm->Lmodem_already_init = 1;
XP  	}
XP  
XP  	return(0);
XP  
XP  }	/* end of hayes_modem_init */
XP
XP--- 405,411 -----
XP  		shm->Lmodem_already_init = 1;
XP  	}
XP  
XP+ 	ttymode(old_ttymode);
XP  	return(0);
XP  
XP  ERROR_RETURN:
XP***************
XP*** 404,409
XP  	}
XP  
XP  	return(0);
XP  
XP  }	/* end of hayes_modem_init */
XP  
XP
XP--- 407,416 -----
XP  
XP  	ttymode(old_ttymode);
XP  	return(0);
XP+ 
XP+ ERROR_RETURN:
XP+ 	ttymode(old_ttymode);
XP+ 	return(-1);
XP  
XP  }	/* end of hayes_modem_init */
XP  
XP*** /u4/ecurel/ecuicmaux.c	Mon May  7 23:33:00 1990
XP--- ecuicmaux.c	Sun May 13 16:24:23 1990
XP***************
XP*** 12,17
XP  
XP  --------------------------------------------------------------------------*/
XP  /*+:EDITS:*/
XP  /*:05-07-1990-21:23-wht@n4hgf---- 2.80 --- */
XP  /*:04-10-1990-17:34-wht@n4hgf-provisions for ecu xmtr logging when rcvr dead */
XP  /*:03-25-1990-14:11-wht@n4hgf------ x2.70 ------- */
XP
XP--- 12,18 -----
XP  
XP  --------------------------------------------------------------------------*/
XP  /*+:EDITS:*/
XP+ /*:05-13-1990-16:21-wht@n4hgf-log -s got stuck, rcvr_log_append now set to 1 */
XP  /*:05-07-1990-21:23-wht@n4hgf---- 2.80 --- */
XP  /*:04-10-1990-17:34-wht@n4hgf-provisions for ecu xmtr logging when rcvr dead */
XP  /*:03-25-1990-14:11-wht@n4hgf------ x2.70 ------- */
XP***************
XP*** 258,263
XP  				ff(se,"\r\n");
XP  				return(eFATAL_ALREADY);
XP  			}
XP  		}	/* end of if argument to command */
XP  
XP  RECORD_REPORT:
XP
XP--- 259,265 -----
XP  				ff(se,"\r\n");
XP  				return(eFATAL_ALREADY);
XP  			}
XP+ 			rcvr_log_append = 1;
XP  		}	/* end of if argument to command */
XP  
XP  RECORD_REPORT:
XP*** /u4/ecurel/ecuicmd.c	Wed May  9 10:06:00 1990
XP--- ecuicmd.c	Wed May 16 01:12:31 1990
XP***************
XP*** 1,4
XP! /* CHK=0x6A03 */
XP  /*+-----------------------------------------------------------------------
XP  	ecuicmd.c
XP  	wht%n4hgf@gatech.edu
XP
XP--- 1,4 -----
XP! /* CHK=0x1504 */
XP  /*+-----------------------------------------------------------------------
XP  	ecuicmd.c
XP  	wht%n4hgf@gatech.edu
XP***************
XP*** 10,15
XP  
XP  ------------------------------------------------------------------------*/
XP  /*+:EDITS:*/
XP  /*:05-07-1990-21:23-wht@n4hgf---- 2.80 --- */
XP  /*:04-17-1990-15:26-wht@n4hgf-add icmd call to icmd_history_add */
XP  /*:03-31-1990-16:12-wht@n4hgf-search_cmd_list fix for pcmds similar to icmds */
XP
XP--- 10,16 -----
XP  
XP  ------------------------------------------------------------------------*/
XP  /*+:EDITS:*/
XP+ /*:05-10-1990-16:44-wht@n4hgf-move patchlevel to ecu.c hello_str */
XP  /*:05-07-1990-21:23-wht@n4hgf---- 2.80 --- */
XP  /*:04-17-1990-15:26-wht@n4hgf-add icmd call to icmd_history_add */
XP  /*:03-31-1990-16:12-wht@n4hgf-search_cmd_list fix for pcmds similar to icmds */
XP***************
XP*** 122,127
XP  long rcvr_chars;
XP  long rcvr_chars_this_connect;
XP  char *find_procedure();
XP  
XP  	icmd_history_add(icmd_cmd);		/* add to history list */
XP  	strcpy(cmd,icmd_cmd);			/* get local copy of cmd string */
XP
XP--- 123,129 -----
XP  long rcvr_chars;
XP  long rcvr_chars_this_connect;
XP  char *find_procedure();
XP+ char *xon_status();
XP  
XP  	icmd_history_add(icmd_cmd);		/* add to history list */
XP  	strcpy(cmd,icmd_cmd);			/* get local copy of cmd string */
XP***************
XP*** 437,443
XP  		case CTrev:
XP  		fputs("\r\n",se);
XP  		fputs(hello_str,se);
XP- 		ff(se," patch level %d\n",PATCHLEVEL);
XP  		fputs("\r\n",se);
XP  		ff(se,"%s\r\n",makedate);
XP  		break;
XP
XP--- 439,444 -----
XP  		case CTrev:
XP  		fputs("\r\n",se);
XP  		fputs(hello_str,se);
XP  		fputs("\r\n",se);
XP  		ff(se,"%s\r\n",makedate);
XP  		break;
XP***************
XP*** 573,578
XP  		}
XP  		ff(se,"  protocol packet logging %s\r\n",
XP  			(protocol_log_packets) ? "on" : "off");
XP  		break;
XP  
XP  		case CTsgr:
XP
XP--- 574,591 -----
XP  		}
XP  		ff(se,"  protocol packet logging %s\r\n",
XP  			(protocol_log_packets) ? "on" : "off");
XP+ 		break;
XP+ 
XP+ 		case CTxon:
XP+ 		if(narg > 1)
XP+ 		{
XP+ 			if(set_xon_xoff_by_arg(arg[1]))
XP+ 				ff(se,"  argument error\r\n");
XP+ 			else
XP+ 				ff(se,"\r\n");
XP+ 			break;
XP+ 		}
XP+ 		ff(se,"  xon/xoff flow control: %s\r\n",xon_status());
XP  		break;
XP  
XP  		case CTsgr:
XP*** /u4/ecurel/eculine.c	Mon May  7 23:33:00 1990
XP--- eculine.c	Wed May 16 00:58:14 1990
XP***************
XP*** 4,9
XP   wht%n4hgf@gatech.edu
XP  
XP    Defined functions:
XP  	lbreak()
XP  	lclear_xmtr_xoff()
XP  	lclose()
XP
XP--- 4,10 -----
XP   wht%n4hgf@gatech.edu
XP  
XP    Defined functions:
XP+ 	lRTSCTS_control(flag)
XP  	lbreak()
XP  	lclear_xmtr_xoff()
XP  	lclose()
XP***************
XP*** 27,33
XP  	lset_parity(ioctl_flag)
XP  	ltoggle_dtr()
XP  	lxon_xoff(flag)
XP- 	valid_baud_rate(baud)
XP  	process_xmtr_rcvd_char(rchar,echo)
XP  
XP  ------------------------------------------------------------------------*/
XP
XP--- 28,33 -----
XP  	lset_parity(ioctl_flag)
XP  	ltoggle_dtr()
XP  	lxon_xoff(flag)
XP  	process_xmtr_rcvd_char(rchar,echo)
XP  	set_xon_xoff_by_arg(arg)
XP  	valid_baud_rate(baud)
XP***************
XP*** 29,34
XP  	lxon_xoff(flag)
XP  	valid_baud_rate(baud)
XP  	process_xmtr_rcvd_char(rchar,echo)
XP  
XP  ------------------------------------------------------------------------*/
XP  /*+:EDITS:*/
XP
XP--- 29,37 -----
XP  	ltoggle_dtr()
XP  	lxon_xoff(flag)
XP  	process_xmtr_rcvd_char(rchar,echo)
XP+ 	set_xon_xoff_by_arg(arg)
XP+ 	valid_baud_rate(baud)
XP+ 	xon_status()
XP  
XP  ------------------------------------------------------------------------*/
XP  /*+:EDITS:*/
XP***************
XP*** 53,59
XP  #include "ecukey.h"
XP  #include "ecuhangup.h"
XP  #if !defined(NO_SELECT)
XP! #include <sys/select.h>
XP  #endif
XP  
XP  extern int rcvr_pid;
XP
XP--- 56,62 -----
XP  #include "ecukey.h"
XP  #include "ecuhangup.h"
XP  #if !defined(NO_SELECT)
XP! # include <sys/select.h>
XP  #endif
XP  
XP  extern int rcvr_pid;
XP***************
XP*** 691,696
XP  			Ltermio.c_cflag &= ~RTSFLOW;
XP  			break;
XP  	}
XP  	ioctl(shm->Liofd,TCSETA,(char *)&Ltermio);
XP  
XP  }	/* end of lRTSCTS_control */
XP
XP--- 694,700 -----
XP  			Ltermio.c_cflag &= ~RTSFLOW;
XP  			break;
XP  	}
XP+ 	shm->Lxonxoff = Ltermio.c_iflag & (IXON|IXOFF);
XP  	ioctl(shm->Liofd,TCSETA,(char *)&Ltermio);
XP  
XP  }	/* end of lRTSCTS_control */
XP***************
XP*** 801,807
XP  	else
XP  	{
XP  		ioctl(shm->Liofd,TCGETA,(char *) &Ltermio);
XP! 		Ltermio.c_iflag = (IGNPAR | IGNBRK | IXOFF );
XP  		Ltermio.c_oflag = 0;
XP  		Ltermio.c_cflag |= (CLOCAL | CREAD | HUPCL);
XP  		Ltermio.c_lflag = 0;
XP
XP--- 805,811 -----
XP  	else
XP  	{
XP  		ioctl(shm->Liofd,TCGETA,(char *) &Ltermio);
XP! 		Ltermio.c_iflag = (IGNPAR | IGNBRK | shm->Lxonxoff);
XP  		Ltermio.c_oflag = 0;
XP  		Ltermio.c_cflag |= (CLOCAL | CREAD | HUPCL);
XP  		Ltermio.c_lflag = 0;
XP***************
XP*** 863,868
XP  	else
XP  		Ltermio.c_iflag &= ~IXOFF;
XP  
XP  	ioctl(shm->Liofd,TCSETA,(char *)&Ltermio);
XP  
XP  }	/* end of lxon_xoff */
XP
XP--- 867,873 -----
XP  	else
XP  		Ltermio.c_iflag &= ~IXOFF;
XP  
XP+ 	shm->Lxonxoff = Ltermio.c_iflag & (IXON|IXOFF);
XP  	ioctl(shm->Liofd,TCSETA,(char *)&Ltermio);
XP  
XP  }	/* end of lxon_xoff */
XP***************
XP*** 878,883
XP  	*ixon  = Ltermio.c_iflag & IXON;
XP  	*ixoff = Ltermio.c_iflag & IXOFF;
XP  }	/* end of lget_xon_xoff */
XP  
XP  /*+-------------------------------------------------------------------------
XP  	lopen_err_text(lerr)
XP
XP--- 883,929 -----
XP  	*ixon  = Ltermio.c_iflag & IXON;
XP  	*ixoff = Ltermio.c_iflag & IXOFF;
XP  }	/* end of lget_xon_xoff */
XP+ 
XP+ /*+-------------------------------------------------------------------------
XP+ 	set_xon_xoff_by_arg(arg)
XP+ --------------------------------------------------------------------------*/
XP+ int
XP+ set_xon_xoff_by_arg(arg)
XP+ char *arg;
XP+ {
XP+ 	if(ulcmpb(arg,"on") < 0)
XP+ 		shm->Lxonxoff = IXON | IXOFF;
XP+ 	else if(ulcmpb(arg,"off") < 0)
XP+ 		shm->Lxonxoff = 0;
XP+ 	else if(ulcmpb(arg,"out") < 0)
XP+ 		shm->Lxonxoff = IXON;
XP+ 	else if(ulcmpb(arg,"in") < 0)
XP+ 		shm->Lxonxoff = IXOFF;
XP+ 	else
XP+ 		return(-1);
XP+ 
XP+ 	Ltermio.c_iflag &= ~(IXON|IXOFF);
XP+ 	Ltermio.c_iflag |= shm->Lxonxoff;
XP+ 	ioctl(shm->Liofd,TCSETA,(char *)&Ltermio);
XP+ 	return(0);
XP+ 
XP+ }	/* end of set_xon_xoff_by_arg */
XP+ 
XP+ /*+-------------------------------------------------------------------------
XP+ 	xon_status()
XP+ --------------------------------------------------------------------------*/
XP+ char *
XP+ xon_status()
XP+ {
XP+ 	switch(shm->Lxonxoff)
XP+ 	{
XP+ 		case 0            : return("off");
XP+ 		case IXON         : return("in off, out on");
XP+ 		case        IXOFF : return("in on, out off");
XP+ 		case IXON | IXOFF : return("on");
XP+ 	}
XP+ 	return("logic error");
XP+ }	/* end of xon_status */
XP  
XP  /*+-------------------------------------------------------------------------
XP  	lopen_err_text(lerr)
XP*** /u4/ecurel/ecunumrev.c	Wed May  9 10:01:00 1990
XP--- ecunumrev.c	Wed May 16 00:38:13 1990
XP***************
XP*** 16,22
XP  #endif
XP  
XP  #ifdef WHT
XP! char *numeric_revision = "twx0.80";
XP  #else
XP  #ifdef SCO
XP  char *numeric_revision = "sco2.80";
XP
XP--- 16,22 -----
XP  #endif
XP  
XP  #ifdef WHT
XP! char *numeric_revision = "twx280.04";
XP  #else
XP  #ifdef SCO
XP  char *numeric_revision = "sco2.80";
XP*** /u4/ecurel/ecusetup.c	Mon May  7 23:33:00 1990
XP--- ecusetup.c	Thu May 10 17:10:00 1990
XP***************
XP*** 43,48
XP  /*:06-24-1989-16:53-wht-flush edits --- ecu 1.95 */
XP  
XP  #include <curses.h>
XP  
XP  #define STDIO_H_INCLUDED
XP  #define OMIT_TERMIO_REFERENCES
XP
XP--- 43,49 -----
XP  /*:06-24-1989-16:53-wht-flush edits --- ecu 1.95 */
XP  
XP  #include <curses.h>
XP+ #include "patchlevel.h"
XP  
XP  #define STDIO_H_INCLUDED
XP  #define OMIT_TERMIO_REFERENCES
XP***************
XP*** 367,373
XP  static char use_input_delim[] = {TAB,NL,END,CTL_D};
XP  
XP  	windows_start();
XP! 	sprintf(s64,"ecu %s%s",numeric_revision,revision_modifier);
XP  	setw = window_create(s64,-3,SETW_TLY,SETW_TLX,SETW_LINES,SETW_COLS);
XP  	setup_display_screen(1);
XP  
XP
XP--- 368,374 -----
XP  static char use_input_delim[] = {TAB,NL,END,CTL_D};
XP  
XP  	windows_start();
XP! 	sprintf(s64,"ecu %s.%02d%s",numeric_revision,PATCHLEVEL,revision_modifier);
XP  	setw = window_create(s64,-3,SETW_TLY,SETW_TLX,SETW_LINES,SETW_COLS);
XP  	setup_display_screen(1);
XP  
XP*** /u4/ecurel/ecushm.h	Mon May  7 23:33:00 1990
XP--- ecushm.h	Wed May 16 00:51:03 1990
XP***************
XP*** 1,5
XP  /* CHK=0x4F27 */
XP! #define SHM_REV	0x0CDEF0005L	/* high 16-bits unique, low=revision */
XP  /*+-------------------------------------------------------------------------
XP  	ecushm.h -- ecu XENIX shared data segment
XP  	wht%n4hgf@gatech.edu
XP
XP--- 1,5 -----
XP  /* CHK=0x4F27 */
XP! #define SHM_REV	0x0CDEF0006L	/* high 16-bits unique, low=revision */
XP  /*+-------------------------------------------------------------------------
XP  	ecushm.h -- ecu XENIX shared data segment
XP  	wht%n4hgf@gatech.edu
XP***************
XP*** 5,10
XP  	wht%n4hgf@gatech.edu
XP  --------------------------------------------------------------------------*/
XP  /*+:EDITS:*/
XP  /*:05-07-1990-21:24-wht@n4hgf---- 2.80 --- */
XP  /*:03-25-1990-14:11-wht@n4hgf------ x2.70 ------- */
XP  /*:03-12-1990-04:22-wht@n4hgf-add Lrname */
XP
XP--- 5,11 -----
XP  	wht%n4hgf@gatech.edu
XP  --------------------------------------------------------------------------*/
XP  /*+:EDITS:*/
XP+ /*:05-16-1990-00:36-wht@n4hgf-add Lxonxoff */
XP  /*:05-07-1990-21:24-wht@n4hgf---- 2.80 --- */
XP  /*:03-25-1990-14:11-wht@n4hgf------ x2.70 ------- */
XP  /*:03-12-1990-04:22-wht@n4hgf-add Lrname */
XP***************
XP*** 70,75
XP  	char Lrname[64];		/* logical name of remote (settable) */
XP  	long Loff_hook_time;	/* time() at connect */
XP  	char Ltelno[20];		/* telephone number for remote or null */
XP  	int xmtr_pid;			/* transmitter process pid */
XP  	int xmtr_ppid;			/* transmitter process' parent's pid */
XP  	int xmtr_pgrp;			/* transmitter process group */
XP
XP--- 71,77 -----
XP  	char Lrname[64];		/* logical name of remote (settable) */
XP  	long Loff_hook_time;	/* time() at connect */
XP  	char Ltelno[20];		/* telephone number for remote or null */
XP+ 	ushort Lxonxoff;		/* status of line IXON and IXOFF */
XP  	int xmtr_pid;			/* transmitter process pid */
XP  	int xmtr_ppid;			/* transmitter process' parent's pid */
XP  	int xmtr_pgrp;			/* transmitter process group */
XDIFF_EOF
Xexit 0
X#end of ECU280.P1.01
SHAR_EOF
$TOUCH -am 0516021090 ECU280.P1.01 &&
chmod 0755 ECU280.P1.01 ||
echo "restore of ECU280.P1.01 failed"
echo "End of part 1, continue with part 2"
exit 0

---------------------------------------------------------------------
Warren Tucker, TuckerWare    gatech!n4hgf!wht or wht%n4hgf@gatech.edu
Ker-au'-lo-phon.   An  8-foot  partial  flue-stop, having metal pipes
surmounted by adjustable rings, and with a hole bored near the top of
each pipe.  Tone soft and "reedy".


