Index: Make.src
*** dist/ecu/Make.src	Sun Jul 11 22:02:50 1993
--- ecu3.24/Make.src	Mon Jul 12 14:51:27 1993
***************
*** 387,409 ****
  		cd ecuungetty; $(MAKE) -$(MAKEFLAGS) clobber; \
  	fi
  
  #regenerate .o:.h dependencies automatically
  depend:
! 	rm -f depend.tmp
! 	if test '$(SRC)' ;\
! 	then (grep '^#include' $(SRC) \
! 	| sed	-e 's?:[^<]*<\([^>]*\)>.*?: /usr/include/\1?'\
! 		-e 's?:[^"]*"\([^"]*\)".*?: \1?'\
! 		-e 's?\(.*\)\.c?\1.o?'\
! 	 >> depend.tmp) ;\
! 	fi
  
  	echo '/^# DO NOT DELETE THIS LINE' >eddep.tmp
  	echo '.+1,$$d' >>eddep.tmp
  	echo 'r depend.tmp' >> eddep.tmp
  	echo 'w' >> eddep.tmp
  	cp Makefile Makefile.new
! 	ed Makefile.new < eddep.tmp
  	rm eddep.tmp depend.tmp
  	echo '# DEPENDENCIES MUST END AT END OF FILE' >>Makefile.new
  	echo '# IF YOU PUT STUFF HERE IT WILL GO AWAY'>>Makefile.new
--- 387,414 ----
  		cd ecuungetty; $(MAKE) -$(MAKEFLAGS) clobber; \
  	fi
  
+ distclean: clobber
+ 	cd help; $(MAKE) -$(MAKEFLAGS) distclean
+ 	cd z; $(MAKE) -$(MAKEFLAGS) distclean
+ 	cd sea; $(MAKE) -$(MAKEFLAGS) distclean
+ 	if [ $(USE_ECUUNGETTY) = yes ]; then \
+ 		cd ecuungetty; $(MAKE) -$(MAKEFLAGS) distclean; \
+ 	fi
+ 	cd ecufriend; $(MAKE) -$(MAKEFLAGS) distclean
+ 	cd gendial; $(MAKE) -$(MAKEFLAGS) distclean
+ 	rm -f Makefile
+ 
  #regenerate .o:.h dependencies automatically
  depend:
! 	$(CC) -M $(CFLAGS) $(SRC) >>depend.tmp
  
  	echo '/^# DO NOT DELETE THIS LINE' >eddep.tmp
  	echo '.+1,$$d' >>eddep.tmp
  	echo 'r depend.tmp' >> eddep.tmp
  	echo 'w' >> eddep.tmp
+ 	echo 'q' >> eddep.tmp
  	cp Makefile Makefile.new
! 	ex Makefile.new < eddep.tmp || true
  	rm eddep.tmp depend.tmp
  	echo '# DEPENDENCIES MUST END AT END OF FILE' >>Makefile.new
  	echo '# IF YOU PUT STUFF HERE IT WILL GO AWAY'>>Makefile.new
Index: README.Linux
*** /dev/null	Sat Aug 29 16:48:28 1992
--- ecu3.24/README.Linux	Mon Jul 12 14:55:28 1993
***************
*** 0 ****
--- 1,22 ----
+ This is ecu 3.24 modified to work with Linux.
+ 
+ There are several files in this distribution.
+ ecu3.24src.tgz	- Source of ecu
+ ecu3.24bin.tgz	- Binaries of ecu compiled using gcc 2.4.3 shared libs 4.4.1
+ ecu.patch	- patch to original sources to make it work correctly under
+ 		  Linux.
+ 
+ I made the folowing changes to get it to work:
+ send init string esc [1;24r to set up console
+ when quiting send the termcap ll sequence, which in my termcap includes esc
+ 	[1;25r if yours does not, you will need to add it.
+ made some changes to get DEL to work like BS internally
+ changed the dial script timeout to 45 seconds (what modem could connect in 10
+ 	secs??)
+ changed the internal idea of screen size so it only uses 24 lines.
+ changed the wildcard globbing to use sh instead of csh
+ got make depend to work.  Used gcc builtin (-M flag) rather than their sed
+ 	script.  Also had to use ex rather than ed, since ed doesn't recognise
+ 	the ^ as the beginning of the line. (At least on my system, which is
+ 	probably like most other peoples)
+ 	
Index: config.c
*** dist/ecu/config.c	Sun Jul 11 17:21:41 1993
--- ecu3.24/config.c	Mon Jul 12 15:34:44 1993
***************
*** 83,88 ****
--- 83,89 ----
  #define S_SUN		2
  #define S_ISCSVR4	3
  #define S_ESIXSVR4	4
+ #define S_LINUX	5
  
  #define X_X286		0
  #define X_X386		1
***************
*** 200,207 ****
--- 201,212 ----
  #ifdef PEDANTIC
  	"\t-pedantic -ansi -O \\\n",		/* UH OH: see ecu README */
  #else
+ #ifdef linux
+ 	"\t-O2  \\\n",
+ #else
  	"\t-traditional -O \\\n",
  #endif
+ #endif
  #if defined(WHT) || defined(FORCE_DASH_G)
  	"\t-g \\\n",
  #endif
***************
*** 261,266 ****
--- 266,276 ----
  char *svr4_gcc_opts = "\t-DSVR4 -DSYSV \\\n";
  char *svr4_sigtype = "void";
  
+ char *linux_cc_opts	= "\t-m486 -DSYSV -Di386 -DNO_RDCHK \\\n";
+ char *linux_gcc_opts	= "\t-m486 -DSYSV -Di386 -DNO_RDCHK \\\n";
+ char *linux_sigtype	= "void";
+ 
+ 
  /*
   * LIBS
   */
***************
*** 284,289 ****
--- 294,301 ----
  
  char *svr4_libs = "-lcurses -lx -lmalloc";
  
+ char *linux_libs	= "-lcurses -ltermcap";
+ 
  char *sco_system[] = {
  	"XENIX/286",
  	"XENIX/386",
***************
*** 445,450 ****
--- 457,468 ----
  			fputs("\t-DSIGTYPE=$(SIGTYPE) \\\n",fpmake);
  			fputs("\t-DLOCK_DIR_NAME='\"/var/spool/locks\"' \\\n",fpmake);
  			break;
+ 		case S_LINUX:
+ 			fputs(linux_cc_opts,fpmake);
+ 			fputs("\t-DWORKING_SELECT \\\n",fpmake);
+ 			fputs("\t-DSIGTYPE=$(SIGTYPE) \\\n",fpmake);
+ 			fputs("\t-DLOCK_DIR_NAME='\"/usr/spool/uucp\"' \\\n",fpmake);
+ 			break;
  	}
  	fprintf(fpmake,"\t-DDEFAULT_TTY='\"/dev/%s\"' \\\n",tty);
  	fprintf(fpmake,"\t-DDEFAULT_BAUD_RATE=%s \\\n",baud);
***************
*** 507,512 ****
--- 525,536 ----
  			fputs("\t-DSIGTYPE=$(SIGTYPE) \\\n",fpmake);
  			fputs("\t-DLOCK_DIR_NAME='\"/var/spool/locks\"' \\\n",fpmake);
  			break;
+ 		case S_LINUX:
+ 			fputs(linux_cc_opts,fpmake);
+ 			fputs("\t-DWORKING_SELECT \\\n",fpmake);
+ 			fputs("\t-DSIGTYPE=$(SIGTYPE) \\\n",fpmake);
+ 			fputs("\t-DLOCK_DIR_NAME='\"/usr/spool/uucp\"' \\\n",fpmake);
+ 			break;
  	}
  	if(have_gcc_140)
  		fputs("\t-DGCC140 \\\n",fpmake);
***************
*** 571,576 ****
--- 595,609 ----
  }
  
  void
+ gen_linux_ldflags()
+ {
+ 	fputs("LDFLAGS = \\\n",fpmake);
+ 	fputs("\t-s $(SYMBOLIC) $(LDFLAGS_EXTRA)\n\n",fpmake);
+ 
+ 	fprintf(fpmake,"LIBS = %s\n\n",linux_libs);
+ }
+ 
+ void
  generate_config(mdir)
  char *mdir;
  {
***************
*** 646,651 ****
--- 679,687 ----
  		case S_ESIXSVR4:
  			fprintf(fpmake,"SIGTYPE = %s\n\n",svr4_sigtype);
  			break;
+ 		case S_LINUX:
+ 			fprintf(fpmake,"SIGTYPE = %s\n\n",linux_sigtype);
+ 			break;
  	}
  
  	switch(compiler)
***************
*** 675,680 ****
--- 711,719 ----
  		case S_ESIXSVR4:
  			gen_svr4_ldflags();
  			break;
+ 		case S_LINUX:
+ 			gen_linux_ldflags();
+ 			break;
  	}
  
  	fprintf(fpmake,"LBIN = %s\n",bindir);
***************
*** 709,714 ****
--- 748,758 ----
  			fputs("HDBLIBDIR = /etc/uucp\n",fpmake);
  			use_ecuungetty = "no";
  			break;
+ 		case S_LINUX:
+ 			fputs("SYSTEM = Linux\n",fpmake);
+ 			fputs("HDBLIBDIR = /usr/lib/uucp\n",fpmake);
+ 			use_ecuungetty = "no";
+ 			break;
  	}
  
  
***************
*** 751,757 ****
  	setbuf(stdin,NULL);
  	setbuf(stdout,NULL);
  
! 	while((itmp = getopt(argc,argv,"dsiS234ugcT:B:P:b:l:")) != -1)
  	{
  		switch(itmp)
  		{
--- 795,801 ----
  	setbuf(stdin,NULL);
  	setbuf(stdout,NULL);
  
! 	while((itmp = getopt(argc,argv,"dsiSL234ugcT:B:P:b:l:")) != -1)
  	{
  		switch(itmp)
  		{
***************
*** 762,767 ****
--- 806,812 ----
  			case 'S': sys = S_SUN; break;
  			case 'I': sys = S_ISCSVR4; break;
  			case 'E': sys = S_ESIXSVR4; break;
+ 			case 'L': sys = S_LINUX; break;
  
  			case '2': sco_type = X_X286; break;
  			case '3': sco_type = X_X386; break;
***************
*** 837,842 ****
--- 882,891 ----
  #ifdef sun
  	itmp = 'S';
  #endif
+ #ifdef linux
+ 	itmp = 'L';
+ 	compiler = C_GCC;
+ #endif
  
  	if(sys < 0)
  	{
***************
*** 847,854 ****
                  S  SunOS 4.1,\n\
                  I  ISC SVR4 or\n\
                  E  ESIX SVR4 system\n\
  ",
! 			"siSIE",itmp))
  		{
  			case 's':  
  				sys = S_SCO; 
--- 896,904 ----
                  S  SunOS 4.1,\n\
                  I  ISC SVR4 or\n\
                  E  ESIX SVR4 system\n\
+                 L  Linux 0.99p10\n\
  ",
! 			"siSIEL",itmp))
  		{
  			case 's':  
  				sys = S_SCO; 
***************
*** 872,877 ****
--- 922,931 ----
  				sys = S_ESIXSVR4; 
  				tty = "tty00";
  				break;
+ 			case 'L':
+ 				sys = S_LINUX;
+ 				tty = "cua0";
+ 				break;
  		}
  	}
  
***************
*** 1004,1009 ****
--- 1058,1064 ----
  						case S_SUN:
  						case S_ISCSVR4:
  						case S_ESIXSVR4:
+ 						case S_LINUX:
  							can_pipe = 1; /* native as reads from stdin ok */
  							break;
  						default:
Index: ecucurses.h
*** dist/ecu/ecucurses.h	Sun Jul 11 17:22:25 1993
--- ecu3.24/ecucurses.h	Wed Jul  7 16:11:17 1993
***************
*** 38,44 ****
  # include <tinfo.h>
  #endif /* M_TERMCAP */
  #else /* !M_SYSV */
! #if defined(sun)
  # include <curses.h>
  #else
  /*
--- 38,44 ----
  # include <tinfo.h>
  #endif /* M_TERMCAP */
  #else /* !M_SYSV */
! #if defined(sun) || defined(linux)
  # include <curses.h>
  #else
  /*
Index: ecufork.c
*** dist/ecu/ecufork.c	Sun Jul 11 17:22:47 1993
--- ecu3.24/ecufork.c	Mon Jul 12 15:17:15 1993
***************
*** 424,430 ****
--- 424,435 ----
  		close(stderr_pipe[P_WRITE]);
  		close(null);
  		child_signals();
+ #ifdef linux
+ 		/* Most Linux systems don't have a csh */
+ 		execl("/bin/sh","sh","-c",echo_cmd,(char *)0);
+ #else
  		execl("/bin/csh","csh","-e","-f","-c",echo_cmd,(char *)0);
+ #endif
  		_exit(255);
  	}
  
Index: ecufriend/Make.src
*** dist/ecu/ecufriend/Make.src	Sun Jul 11 17:21:03 1993
--- ecu3.24/ecufriend/Make.src	Mon Jul 12 13:49:16 1993
***************
*** 33,35 ****
--- 33,37 ----
  clobber: clean
  	rm -f $(PROGRAM)
  
+ distclean: clobber
+ 	rm -f Makefile
Index: ecugrabbag.c
*** dist/ecu/ecugrabbag.c	Sun Jul 11 17:22:55 1993
--- ecu3.24/ecugrabbag.c	Mon Jul  5 17:50:03 1993
***************
*** 595,603 ****
--- 595,607 ----
  #endif
  		case SIGFPE:	cptr = "SIGFPE"; break;
  		case SIGKILL:	cptr = "SIGKILL"; break;
+ #ifdef SIGBUS		
  		case SIGBUS:	cptr = "SIGBUS"; break;
+ #endif
  		case SIGSEGV:	cptr = "SIGSEGV"; break;
+ #ifdef SIGSYS
  		case SIGSYS:	cptr = "SIGSYS"; break;
+ #endif
  		case SIGPIPE:	cptr = "SIGPIPE"; break;
  		case SIGALRM:	cptr = "SIGALRM"; break;
  		case SIGTERM:	cptr = "SIGTERM"; break;
Index: ecuicmhelp.c
*** dist/ecu/ecuicmhelp.c	Sun Jul 11 17:23:11 1993
--- ecu3.24/ecuicmhelp.c	Sat Jul 10 18:11:15 1993
***************
*** 33,38 ****
--- 33,40 ----
  #include "ecuxkey.h"
  #include "pc_scr.h"
  
+ extern int tcap_LINES;
+ 
  #define PDAT	"ecuhelp.data"
  
  void help_right_column();
***************
*** 146,152 ****
  int x;
  
  	touchwin(stdscr);
! 	wmove(stdscr,LINES - 1,0);
  	wstandout(stdscr);
  	waddstr(stdscr,prompt);
  	getyx(stdscr,y,x);
--- 148,154 ----
  int x;
  
  	touchwin(stdscr);
! 	wmove(stdscr,tcap_LINES - 1,0);
  	wstandout(stdscr);
  	waddstr(stdscr,prompt);
  	getyx(stdscr,y,x);
***************
*** 311,324 ****
  #endif
  		}
  		y++;
! 		if(y >= LINES - 3)
  		{
  			y = 2;
  			x = right_column;
  		}
  		pcmd++;
  	}
! 	wmove(stdscr,LINES - 2,0);
  	wstandout(stdscr);
  	waddstr(stdscr,
  "Capitalized portion of listed command sufficient for command recognition");
--- 313,326 ----
  #endif
  		}
  		y++;
! 		if(y >= tcap_LINES - 3)
  		{
  			y = 2;
  			x = right_column;
  		}
  		pcmd++;
  	}
! 	wmove(stdscr,tcap_LINES - 2,0);
  	wstandout(stdscr);
  	waddstr(stdscr,
  "Capitalized portion of listed command sufficient for command recognition");
***************
*** 354,360 ****
  		{
  			if(!*cptr)
  				goto DISPLAY_MENU;
! 			wmove(stdscr,LINES - 1,0);
  			wclrtoeol(stdscr);
  			wrefresh(stdscr);
  			help_display_on_stderr(cptr);
--- 356,362 ----
  		{
  			if(!*cptr)
  				goto DISPLAY_MENU;
! 			wmove(stdscr,tcap_LINES - 1,0);
  			wclrtoeol(stdscr);
  			wrefresh(stdscr);
  			help_display_on_stderr(cptr);
Index: eculine.c
*** dist/ecu/eculine.c	Sun Jul 11 17:23:25 1993
--- ecu3.24/eculine.c	Mon Jul 12 15:40:57 1993
***************
*** 384,390 ****
  			tval.tv_sec = lrwt->to1 / 1000L;
  			tval.tv_usec = (lrwt->to1 % 1000L) * 1000L;
  		}
! 		if(select(shm->Liofd + 1,&fdmask,(int *)0,(int *)0,&tval) != 1)
  		{
  			if(errno == EINTR)
  				continue;
--- 384,390 ----
  			tval.tv_sec = lrwt->to1 / 1000L;
  			tval.tv_usec = (lrwt->to1 % 1000L) * 1000L;
  		}
! 		if(select(shm->Liofd + 1,&fdmask,NULL,NULL,&tval) != 1)
  		{
  			if(errno == EINTR)
  				continue;
***************
*** 489,495 ****
  	tval.tv_sec = msec / 1000L;
  	tval.tv_usec = (msec % 1000L) * 1000L;
  	fdmask = 1 << shm->Liofd; /* Liofd will always be <= 31, right? */
! 	if(select(shm->Liofd + 1,&fdmask,(int *)0,(int *)0,&tval) < 1)
  		return(-1);
  	if(!lrdchk_xmtr())
  		return(-1);
--- 489,495 ----
  	tval.tv_sec = msec / 1000L;
  	tval.tv_usec = (msec % 1000L) * 1000L;
  	fdmask = 1 << shm->Liofd; /* Liofd will always be <= 31, right? */
! 	if(select(shm->Liofd + 1,&fdmask,NULL,NULL,&tval) < 1)
  		return(-1);
  	if(!lrdchk_xmtr())
  		return(-1);
Index: ecuphdir.c
*** dist/ecu/ecuphdir.c	Sun Jul 11 17:23:52 1993
--- ecu3.24/ecuphdir.c	Sat Jul 10 18:12:40 1993
***************
*** 105,110 ****
--- 105,112 ----
  #include "esd.h"
  #include "var.h"
  
+ extern int tcap_LINES;
+ 
  char *find_procedure();
  char *make_char_graphic();
  char *linst_err_text();
***************
*** 115,121 ****
  void dirw_cmd_line_setup();
  
  /* window definitions */
! #define DIRW_LINES		(LINES - 1)
  #define DIRW_COLS		(80)
  #define DIRW_TOP_LINES	2
  #define DIRW_BOT_LINES	4
--- 117,123 ----
  void dirw_cmd_line_setup();
  
  /* window definitions */
! #define DIRW_LINES		(tcap_LINES - 1)
  #define DIRW_COLS		(80)
  #define DIRW_TOP_LINES	2
  #define DIRW_BOT_LINES	4
Index: ecurcvr.c
*** dist/ecu/ecurcvr.c	Sun Jul 11 17:24:06 1993
--- ecu3.24/ecurcvr.c	Sun Jul 11 23:09:24 1993
***************
*** 1344,1349 ****
--- 1344,1350 ----
  				break;
  
  			case BS:
+ 			case DEL:
  				if(shm->cursor_x)
  					shm->cursor_x--;
  				break;
***************
*** 1422,1428 ****
  			LOGPUTC(rchar,rcvr_log_fp);
  		}
  		/* back if log file if not raw and char is backspace */
! 		else if(!rcvr_log_raw && (rchar == BS))
  		{
  		long logpos = 0;
  			if(logpos = ftell(rcvr_log_fp))
--- 1423,1429 ----
  			LOGPUTC(rchar,rcvr_log_fp);
  		}
  		/* back if log file if not raw and char is backspace */
! 		else if(!rcvr_log_raw && ((rchar == BS)||(rchar == DEL)))
  		{
  		long logpos = 0;
  			if(logpos = ftell(rcvr_log_fp))
Index: ecusighdl.c
*** dist/ecu/ecusighdl.c	Sun Jul 11 22:03:03 1993
--- ecu3.24/ecusighdl.c	Mon Jul 12 11:20:03 1993
***************
*** 358,363 ****
--- 358,366 ----
  		restore_initial_colors();
  		kill(xmtr_pid,SIGHUP);
  	}
+ #ifdef linux
+ 	tcap_restore_con();
+ #endif
  	exit(code);
  	/*NOTREACHED*/
  
***************
*** 504,510 ****
  SIGTYPE
  xmtr_SIGCLD_handler()
  {
! 
  WAIT:
  	errno = 0;
  	if((last_child_wait_pid = wait(&last_child_wait_status)) < 0)
--- 507,515 ----
  SIGTYPE
  xmtr_SIGCLD_handler()
  {
! #if defined(FORK_DEBUG)
! 	char s40[40];
! #endif
  WAIT:
  	errno = 0;
  	if((last_child_wait_pid = wait(&last_child_wait_status)) < 0)
Index: ecutcap.c
*** dist/ecu/ecutcap.c	Sun Jul 11 17:24:32 1993
--- ecu3.24/ecutcap.c	Mon Jul 12 14:15:38 1993
***************
*** 70,75 ****
--- 70,76 ----
  static char *tc_underscore_on = "";
  static char *tc_underscore_off = "";
  static char *tc_vbell = "";
+ static char *tc_lastline = "";
  static char tc_strbuf[768];		/* absolutely blunderous overkill */
  static int tc_standout_width;
  
***************
*** 100,105 ****
--- 101,110 ----
  	{
  		tcap_LINES = tgetnum("li");
  		tcap_COLS = tgetnum("co");
+ #ifdef linux
+ 		if((tcap_LINES == 25) && (strcmp(ttype,"console")==0))
+ 			tcap_LINES = 24;
+ #endif
  		if(cptr = getenv("LINES"))			/* environment override ... */
  			tcap_LINES = atoi(cptr);		/* ... for termcap systems */
  		if(cptr = getenv("COLUMNS"))
***************
*** 120,125 ****
--- 125,131 ----
  		tc_insline          = tgetstr("al",&cptr);
  		tc_move             = tgetstr("cm",&cptr);
  		tc_vbell            = tgetstr("vb",&cptr);
+ 		tc_lastline         = tgetstr("ll",&cptr);
  		tc_underscore_on    = tgetstr("us",&cptr);
  		tc_underscore_off   = tgetstr("ue",&cptr);
  		if(!tc_underscore_on || !tc_underscore_off)
***************
*** 539,544 ****
--- 545,568 ----
  	rcvrdisp_actual2();
  
  }	/* end of tcap_clear_area_char */
+ 
+ #ifdef linux
+ /*+-------------------------------------------------------------------------
+    tcap_restore_con()
+    Linux normally has a screen size of 25, this does not work with ecu's
+    vt100 emulation, so the init sequence esc [1;24r must be in the funckeymap
+    file.  However this needs to be changed back before we leave, or else the
+    system doesn't work.  The lastline (ll) termcap entry includes this
+    sequence, so we do not need to check terminal type.  Going to the last
+    line will not hurt on other terminal types.
+ --------------------------------------------------------------------------*/
+ void
+ tcap_restore_con()
+ {
+ 	if(*tc_lastline) 
+ 		fputs(tc_lastline,stderr);
+ }	/* end of tcap_restore_con */
+ #endif /* Linux */
  
  /* end of ecutcap.c */
  /* vi: set tabstop=4 shiftwidth=4: */
Index: ecuungetty/Make.src
*** dist/ecu/ecuungetty/Make.src	Sun Jul 11 17:21:05 1993
--- ecu3.24/ecuungetty/Make.src	Mon Jul 12 14:51:36 1993
***************
*** 60,65 ****
--- 60,68 ----
  clobber: clean
  	rm -f $(PROGRAM)
  
+ distclean: clobber
+ 	rm -f Makefile
+ 
  ../bamboozle.o: ../bamboozle.c
  	cd ..;make bamboozle.o
  
***************
*** 78,97 ****
  #regenerate .o:.h dependencies automatically
  depend:
  	rm -f depend.tmp
! 	if test '$(SRC)' ;\
! 	then (grep '^#include' $(SRC) \
! 	| sed	-e 's?:[^<]*<\([^>]*\)>.*?: /usr/include/\1?'\
! 		-e 's?:[^"]*"\([^"]*\)".*?: \1?'\
! 		-e 's?\(.*\)\.c?\1.o?'\
! 	 >> depend.tmp) ;\
! 	fi
  
  	echo '/^# DO NOT DELETE THIS LINE' >eddep.tmp
  	echo '.+1,$$d' >>eddep.tmp
  	echo 'r depend.tmp' >> eddep.tmp
  	echo 'w' >> eddep.tmp
  	cp Makefile Makefile.new
! 	ed Makefile.new < eddep.tmp
  	rm eddep.tmp depend.tmp
  	echo '# DEPENDENCIES MUST END AT END OF FILE' >>Makefile.new
  	echo '# IF YOU PUT STUFF HERE IT WILL GO AWAY'>>Makefile.new
--- 81,95 ----
  #regenerate .o:.h dependencies automatically
  depend:
  	rm -f depend.tmp
! 	then $(CC) -M $(CFLAGS) $(SRC) >>depend.tmp
  
  	echo '/^# DO NOT DELETE THIS LINE' >eddep.tmp
  	echo '.+1,$$d' >>eddep.tmp
  	echo 'r depend.tmp' >> eddep.tmp
  	echo 'w' >> eddep.tmp
+ 	echo 'q' >> eddep.tmp
  	cp Makefile Makefile.new
! 	ex Makefile.new < eddep.tmp || true
  	rm eddep.tmp depend.tmp
  	echo '# DEPENDENCIES MUST END AT END OF FILE' >>Makefile.new
  	echo '# IF YOU PUT STUFF HERE IT WILL GO AWAY'>>Makefile.new
Index: ecuwinutil.c
*** dist/ecu/ecuwinutil.c	Sun Jul 11 17:25:12 1993
--- ecu3.24/ecuwinutil.c	Mon Jul 12 14:16:04 1993
***************
*** 48,53 ****
--- 48,54 ----
  #endif
  
  extern int tty_is_multiscreen;
+ extern int tcap_LINES;
  
  #ifdef M_SYSV
  unsigned char sTL = at_TL;
***************
*** 172,178 ****
  	endwin();
  */
  	if(botleft_flag)
! 		tcap_cursor(LINES - 1,0);
  	ttymode(ttymode_before_window_start);
  	windows_active = 0;
  }	/* end of windows_end */
--- 173,179 ----
  	endwin();
  */
  	if(botleft_flag)
! 		tcap_cursor(tcap_LINES - 1,0);
  	ttymode(ttymode_before_window_start);
  	windows_active = 0;
  }	/* end of windows_end */
***************
*** 326,331 ****
--- 327,333 ----
  					goto RETURN;
  
  				case BS:
+ 				case DEL:
  					if(count)
  					{
  						if(count == pos)
Index: expresp.c
*** dist/ecu/expresp.c	Sun Jul 11 17:25:36 1993
--- ecu3.24/expresp.c	Mon Jul 12 13:17:09 1993
***************
*** 14,19 ****
--- 14,20 ----
   \r - carriage return
   \c - no new-line
   \n - send new-line
+  \s - send space
   \nnn - send octal number
   \\ - send backslash
   \m### - sleep ### (decimal) milliseconds (non-standard)
***************
*** 49,55 ****
  #define MAX_FIELDS	50	/* max fields in a chat script */
  #define MAX_EXPRESP	511	/* max length of a chat script */
  #define MAX_EXPECT	63	/* max length of expect string */
! #define DEFAULT_TIMEOUT_MSECS (10*1000L)
  
  #define ERDEBUG(verb,str,arg) if(expresp_verbosity >= verb) \
  	pprintf(str,arg)
--- 50,56 ----
  #define MAX_FIELDS	50	/* max fields in a chat script */
  #define MAX_EXPRESP	511	/* max length of a chat script */
  #define MAX_EXPECT	63	/* max length of expect string */
! #define DEFAULT_TIMEOUT_MSECS (45*1000L)
  
  #define ERDEBUG(verb,str,arg) if(expresp_verbosity >= verb) \
  	pprintf(str,arg)
***************
*** 196,201 ****
--- 197,206 ----
  					break;
  				case '~':
  					*parsed++ = '~';
+ 					remaining--;
+ 					break;
+ 				case 's':
+ 					*parsed++ = ' ';
  					remaining--;
  					break;
  				default:
Index: gendial/Make.src
*** dist/ecu/gendial/Make.src	Sun Jul 11 17:21:07 1993
--- ecu3.24/gendial/Make.src	Mon Jul 12 14:51:40 1993
***************
*** 90,112 ****
  clobber: clean
  	rm -f dialg*
  
  #regenerate .o:.h dependencies automatically
  depend:
  	rm -f depend.tmp
! 	if test '$(SRC)' ;\
! 	then (grep '^#include' $(SRC) \
! 	| sed	-e 's?:[^<]*<\([^>]*\)>.*?: /usr/include/\1?'\
! 		-e 's?:[^"]*"\([^"]*\)".*?: \1?'\
! 		-e 's?\(.*\)\.c?\1.o?'\
! 	 >> depend.tmp) ;\
! 	fi
  
  	echo '/^# DO NOT DELETE THIS LINE' >eddep.tmp
  	echo '.+1,$$d' >>eddep.tmp
  	echo 'r depend.tmp' >> eddep.tmp
  	echo 'w' >> eddep.tmp
  	cp Makefile Makefile.new
! 	ed Makefile.new < eddep.tmp
  	rm eddep.tmp depend.tmp
  	echo '# DEPENDENCIES MUST END AT END OF FILE' >>Makefile.new
  	echo '# IF YOU PUT STUFF HERE IT WILL GO AWAY'>>Makefile.new
--- 90,110 ----
  clobber: clean
  	rm -f dialg*
  
+ distclean: clobber
+ 	rm -f Makefile
+ 
  #regenerate .o:.h dependencies automatically
  depend:
  	rm -f depend.tmp
! 	then $(CC) -M $(CFLAGS) $(SRC) >>depend.tmp
  
  	echo '/^# DO NOT DELETE THIS LINE' >eddep.tmp
  	echo '.+1,$$d' >>eddep.tmp
  	echo 'r depend.tmp' >> eddep.tmp
  	echo 'w' >> eddep.tmp
+ 	echo 'q' >> eddep.tmp
  	cp Makefile Makefile.new
! 	ex Makefile.new < eddep.tmp || true
  	rm eddep.tmp depend.tmp
  	echo '# DEPENDENCIES MUST END AT END OF FILE' >>Makefile.new
  	echo '# IF YOU PUT STUFF HERE IT WILL GO AWAY'>>Makefile.new
Index: help/Make.src
*** dist/ecu/help/Make.src	Sun Jul 11 17:21:10 1993
--- ecu3.24/help/Make.src	Mon Jul 12 14:57:20 1993
***************
*** 58,63 ****
--- 58,66 ----
  clobber: clean
  	rm -f $(PROGRAM) ecuhelp.data ecuhelp.doc
  
+ distclean: clobber
+ 	rm -f Makefile
+ 
  #MSC -Zg is broken and even my kludge mechanism can't make this one
  #anymore.  Decommitted until some future day.
  #protos: $(PROGRAM).fls
***************
*** 69,88 ****
  #
  depend:
  	rm -f depend.tmp
! 	if test '$(SRC)' ;\
! 	then (grep '^#include' $(SRC) \
! 	| sed	-e 's?:[^<]*<\([^>]*\)>.*?: /usr/include/\1?'\
! 		-e 's?:[^"]*"\([^"]*\)".*?: \1?'\
! 		-e 's?\(.*\)\.c?\1.o?'\
! 	 >> depend.tmp) ;\
! 	fi
! 
  	echo '/^# DO NOT DELETE THIS LINE' >eddep.tmp
  	echo '.+1,$$d' >>eddep.tmp
  	echo 'r depend.tmp' >> eddep.tmp
  	echo 'w' >> eddep.tmp
  	cp Makefile Makefile.new
! 	ed Makefile.new < eddep.tmp
  	rm eddep.tmp depend.tmp
  	echo '# DEPENDENCIES MUST END AT END OF FILE' >>Makefile.new
  	echo '# IF YOU PUT STUFF HERE IT WILL GO AWAY'>>Makefile.new
--- 72,85 ----
  #
  depend:
  	rm -f depend.tmp
! 	$(CC) -M $(CFLAGS) $(SRC) >> depend.tmp
  	echo '/^# DO NOT DELETE THIS LINE' >eddep.tmp
  	echo '.+1,$$d' >>eddep.tmp
  	echo 'r depend.tmp' >> eddep.tmp
  	echo 'w' >> eddep.tmp
+ 	echo 'q' >> eddep.tmp
  	cp Makefile Makefile.new
! 	ex Makefile.new < eddep.tmp || true
  	rm eddep.tmp depend.tmp
  	echo '# DEPENDENCIES MUST END AT END OF FILE' >>Makefile.new
  	echo '# IF YOU PUT STUFF HERE IT WILL GO AWAY'>>Makefile.new
Index: models/funckeymap
*** dist/ecu/models/funckeymap	Sun Jul 11 22:02:56 1993
--- ecu3.24/models/funckeymap	Sat Jul 10 15:37:37 1993
***************
*** 536,538 ****
--- 536,566 ----
      CUL:CUL:        esc [ D
      CUR:CUR:        esc [ C
  
+ # Linux Console keyboard.  More or less vt100
+ console
+ con80x25
+        IS:1:        esc [ 1 ; 2 4 r
+     F1:F1:          esc [ [ A 
+     F2:F2:          esc [ [ B 
+     F3:F3:          esc [ [ C 
+     F4:F4:          esc [ [ D 
+     F5:F5:          esc [ [ E 
+     F6:F6:          esc [ 1 7 ~
+     F7:F7:          esc [ 1 8 ~
+     F8:F8:          esc [ 1 9 ~
+     F9:F9:          esc [ 2 0 ~
+     F10:F10:        esc [ 2 1 ~
+     F11:F11:        esc [ 2 3 ~
+ #   F12:F12:        esc [ 2 4 ~
+     Home:Home:      esc [ 1 ~
+     End:End:        esc [ 4 ~
+     PgUp:PgUp:      esc [ 5 ~
+     PgDn:PgDn:      esc [ 6 ~
+     CUU:CUU:        esc [ A 
+     CUL:CUL:        esc [ D 
+     CU5:CU5:        esc [ G 
+     CUR:CUR:        esc [ C 
+     CUD:CUD:        esc [ B 
+     Ins:Ins:        esc [ 2 ~
+     BkTab:F12:      esc [ 2 4 ~
+ 
Index: sea/Make.src
*** dist/ecu/sea/Make.src	Sun Jul 11 17:21:12 1993
--- ecu3.24/sea/Make.src	Mon Jul 12 15:03:21 1993
***************
*** 65,70 ****
--- 65,73 ----
  clobber: clean
  	rm -f $(PROGRAM)
  
+ distclean: clobber
+ 	rm -f Makefile
+ 
  $(PROGRAM).fls: Makefile
  	ls $(SRC) >$(PROGRAM).fls
  
***************
*** 75,94 ****
  #regenerate .o:.h dependencies automatically
  depend:
  	rm -f depend.tmp
! 	if test '$(SRC)' ;\
! 	then (grep '^#include' $(SRC) \
! 	| sed	-e 's?:[^<]*<\([^>]*\)>.*?: /usr/include/\1?'\
! 		-e 's?:[^"]*"\([^"]*\)".*?: \1?'\
! 		-e 's?\(.*\)\.c?\1.o?'\
! 	 >> depend.tmp) ;\
! 	fi
! 
  	echo '/^# DO NOT DELETE THIS LINE' >eddep.tmp
  	echo '.+1,$$d' >>eddep.tmp
  	echo 'r depend.tmp' >> eddep.tmp
  	echo 'w' >> eddep.tmp
  	cp Makefile Makefile.new
! 	ed Makefile.new < eddep.tmp
  	rm eddep.tmp depend.tmp
  	echo '# DEPENDENCIES MUST END AT END OF FILE' >>Makefile.new
  	echo '# IF YOU PUT STUFF HERE IT WILL GO AWAY'>>Makefile.new
--- 78,91 ----
  #regenerate .o:.h dependencies automatically
  depend:
  	rm -f depend.tmp
! 	$(CC) -M $(CFLAGS) $(SRC) >>depend.tmp
  	echo '/^# DO NOT DELETE THIS LINE' >eddep.tmp
  	echo '.+1,$$d' >>eddep.tmp
  	echo 'r depend.tmp' >> eddep.tmp
  	echo 'w' >> eddep.tmp
+ 	echo 'q' >> eddep.tmp
  	cp Makefile Makefile.new
! 	ex Makefile.new < eddep.tmp || true
  	rm eddep.tmp depend.tmp
  	echo '# DEPENDENCIES MUST END AT END OF FILE' >>Makefile.new
  	echo '# IF YOU PUT STUFF HERE IT WILL GO AWAY'>>Makefile.new
Index: z/Make.src
*** dist/ecu/z/Make.src	Sun Jul 11 17:21:16 1993
--- ecu3.24/z/Make.src	Mon Jul 12 14:59:15 1993
***************
*** 89,94 ****
--- 89,97 ----
  clobber: clean
  	rm -f ecusz ecurz
  
+ distclean: clobber
+ 	rm -f Makefile
+ 
  comsrc.fls: Makefile
  	ls $(COM_SRC) > comsrc.fls
  
***************
*** 107,126 ****
  #
  depend:
  	rm -f depend.tmp
! 	if test '$(COM_SRC)' ;\
! 	then (grep '^#include' $(COM_SRC) \
! 	| sed	-e 's?:[^<]*<\([^>]*\)>.*?: /usr/include/\1?'\
! 		-e 's?:[^"]*"\([^"]*\)".*?: \1?'\
! 		-e 's?\(.*\)\.c?\1.o?'\
! 	 >> depend.tmp) ;\
! 	fi
! 
  	echo '/^# DO NOT DELETE THIS LINE' >eddep.tmp
  	echo '.+1,$$d' >>eddep.tmp
  	echo 'r depend.tmp' >> eddep.tmp
  	echo 'w' >> eddep.tmp
  	cp Makefile Makefile.new
! 	ed Makefile.new < eddep.tmp
  	rm eddep.tmp depend.tmp
  	echo '# DEPENDENCIES MUST END AT END OF FILE' >>Makefile.new
  	echo '# IF YOU PUT STUFF HERE IT WILL GO AWAY'>>Makefile.new
--- 110,123 ----
  #
  depend:
  	rm -f depend.tmp
! 	$(CC) -M $(CFLAGS) $(COM_SRC) >>depend.tmp
  	echo '/^# DO NOT DELETE THIS LINE' >eddep.tmp
  	echo '.+1,$$d' >>eddep.tmp
  	echo 'r depend.tmp' >> eddep.tmp
  	echo 'w' >> eddep.tmp
+ 	echo 'q' >> eddep.tmp
  	cp Makefile Makefile.new
! 	ex Makefile.new < eddep.tmp || true
  	rm eddep.tmp depend.tmp
  	echo '# DEPENDENCIES MUST END AT END OF FILE' >>Makefile.new
  	echo '# IF YOU PUT STUFF HERE IT WILL GO AWAY'>>Makefile.new
