[comp.sources.misc] v13i002: ECU 2.80 patch 2

wht@gatech.edu@n4hgf.UUCP (Warren Tucker) (05/26/90)

Posting-number: Volume 13, Issue 2
Submitted-by: wht@gatech.edu@n4hgf.UUCP (Warren Tucker)
Archive-name: ecu2.80/patch02

This patch overhauls the help system, enabling a user
on a 25-line screen full access to the built-in help facility.
Also, the help data itself has been updated.

Apply the patch by unsharing this package and typing APPLY.P02.
Patch 1 must have been appled (including the manual correction
for the failed hunk #7 of ecuhayes.c).  You may wish to apply
patch 3 (released at the same time as this one) before proceeding.
Then, make
      su
      make install

#!/bin/sh
# This is ecu2.80/patch02, a shell archive (shar 3.27)
# made 05/23/1990 10:28 UTC by wht%n4hgf@gatech.edu
# Source directory /u1/src/ecu
#
# existing files WILL be overwritten
#
# This shar contains:
# length  mode       name
# ------ ---------- ------------------------------------------
#    441 -rwxr-xr-x APPLY.P02
#  30384 -rw-r--r-- ECU280.P02
#  10682 -rw-r--r-- ecucmd.h
#
if touch 2>&1 | fgrep 'mmdd' > /dev/null
 then TOUCH=touch
 else TOUCH=true
fi
# ============= APPLY.P02 ==============
echo "x - extracting APPLY.P02 (Text)"
sed 's/^X//' << 'SHAR_EOF' > APPLY.P02 &&
X:
X#--------------------------------------------------------------
X# APPLY.P02 - ensure patch 1 already applied and apply patch 2
X#--------------------------------------------------------------
Xif fgrep 'PATCHLEVEL 1' patchlevel.h > /dev/null 2>&1
X   then
X       echo 'Applying patch 2';
X   else
X       echo 'You must apply patch 1 first (or patch 2 already applied)';
X       exit 1;
Xfi
Xpatch -p < ECU280.P02
Xcat > patchlevel.h << PLEOF
X#define PATCHLEVEL 2
XPLEOF
Xexit 0
SHAR_EOF
$TOUCH -am 0523062690 APPLY.P02 &&
chmod 0755 APPLY.P02 ||
echo "restore of APPLY.P02 failed"
# ============= ECU280.P02 ==============
echo "x - extracting ECU280.P02 (Text)"
sed 's/^X//' << 'SHAR_EOF' > ECU280.P02 &&
X#-------------------------------------------------------
X# ECU280.P02 - help system overhaul
X# created by gendiff x1.03 on 23 May 1990 10:04 UTC
X#-------------------------------------------------------
X*** /u4/ecurel/Make.ecu	Wed May 23 06:01:44 1990
X--- Make.ecu	Sat May 19 17:23:09 1990
X***************
X*** 318,323
X  ecu.o: ecukey.h
X  ecu.o: ecuxkey.h
X  ecu.o: ecuhangup.h
X  ecuLCK.o: ecu.h
X  ecuLCK.o: utmpstatus.h
X  ecuchdir.o: ecu.h
X
X--- 318,324 -----
X  ecu.o: ecukey.h
X  ecu.o: ecuxkey.h
X  ecu.o: ecuhangup.h
X+ ecu.o: patchlevel.h
X  ecuLCK.o: ecu.h
X  ecuLCK.o: utmpstatus.h
X  ecuchdir.o: ecu.h
X***************
X*** 379,384
X  ecuscrdump.o: ecu.h
X  ecuscrdump.o: pc_scr.h
X  ecusetup.o: /usr/include/curses.h
X  ecusetup.o: ecu.h
X  ecusetup.o: ecukey.h
X  ecusetup.o: ecuxkey.h
X
X--- 380,386 -----
X  ecuscrdump.o: ecu.h
X  ecuscrdump.o: pc_scr.h
X  ecusetup.o: /usr/include/curses.h
X+ ecusetup.o: patchlevel.h
X  ecusetup.o: ecu.h
X  ecusetup.o: ecukey.h
X  ecusetup.o: ecuxkey.h
X*** /u4/ecurel/README	Wed May 23 06:01:45 1990
X--- README	Mon May 21 01:57:57 1990
X***************
X*** 331,333
X  7.  If you are not using a 43-line screen, the list of commands
X      displayed by the interactive 'help' command is truncated.  I
X      apologize; this problem will be solved Real Soon Now.
X
X--- 331,343 -----
X  7.  If you are not using a 43-line screen, the list of commands
X      displayed by the interactive 'help' command is truncated.  I
X      apologize; this problem will be solved Real Soon Now.
X+ 
X+ Changes since ecu 2.80 patchlevel 1
X+ 
X+ 1.  The built-in help system was reworked.  Interactive commands are
X+     now divided into four categories: general, communications-related,
X+     transfer-related and procedure-related.  The help command asks for
X+     a category and displays the appropriate subset.
X+ 
X+ 2.  The built-in help file (ecuhelp.data) was revised.
X+ 
X*** /u4/ecurel/ecufinsert.c	Mon May  7 23:33:00 1990
X--- ecufinsert.c	Mon May 21 01:22:56 1990
X***************
X*** 140,146
X  		ff(se,"    (P)aced transmission (20 msec/schar)\r\n");
X  		ff(se,"    (Q)uit (or ESC):             ");
X  		xmit_mode = ttygetc(0) & 0x7F;
X! 		fputs(make_char_graphic(xmit_mode,0),se);
X  		fputs("\r\n",se);
X  	}
X  
X
X--- 140,147 -----
X  		ff(se,"    (P)aced transmission (20 msec/schar)\r\n");
X  		ff(se,"    (Q)uit (or ESC):             ");
X  		xmit_mode = ttygetc(0) & 0x7F;
X! 		if(xmit_mode > 0x20)
X! 			fputs(make_char_graphic(xmit_mode,0),se);
X  		fputs("\r\n",se);
X  	}
X  
X*** /u4/ecurel/ecuicmd.c	Wed May 23 06:02:14 1990
X--- ecuicmd.c	Sun May 20 17:34:44 1990
X***************
X*** 443,467
X  		ff(se,"%s\r\n",makedate);
X  		break;
X  
X- #if !defined(M_XENIX) || defined(M_UNIX)
X- 		case CTte:
X- 		if(narg > 1)
X- 		{
X- 			if(sscanf(arg[1],"%x",&cmd_escape) && (cmd_escape < 0x7F))
X- 				ff(se,"   tty escape set to "); 
X- 			else
X- 			{
X- 				ff(se,"  invalid parameter must be 01 to 7E: setting to ");
X- 				cmd_escape = '%';
X- 			}
X- 		}
X- 		else
X- 			ff(se,"   tty escape is ");
X- 
X- 		ff(se,"0x%02x (%s)\r\n",cmd_escape,make_char_graphic(cmd_escape,1));
X- 		break;
X- #endif
X- 
X  		case CTtime:
X  		get_tod(4,cmd);
X  		ff(se,": %s\r\n",cmd);
X
X--- 443,448 -----
X  		ff(se,"%s\r\n",makedate);
X  		break;
X  
X  		case CTtime:
X  		get_tod(4,cmd);
X  		ff(se,": %s\r\n",cmd);
X*** /u4/ecurel/ecuicmhelp.c	Mon May  7 23:33:00 1990
X--- ecuicmhelp.c	Mon May 21 01:37:38 1990
X***************
X*** 181,187
X  		return(cmd);
X  }	/* end of help_get_cmd */
X  
X- 
X  /*+-------------------------------------------------------------------------
X  	display_help_screen()
X  --------------------------------------------------------------------------*/
X
X--- 181,186 -----
X  		return(cmd);
X  }	/* end of help_get_cmd */
X  
X  /*+-------------------------------------------------------------------------
X  	display_help_screen()
X  get user command section choice and display that group of commands
X***************
X*** 184,189
X  
X  /*+-------------------------------------------------------------------------
X  	display_help_screen()
X  --------------------------------------------------------------------------*/
X  void
X  display_help_screen()
X
X--- 183,189 -----
X  
X  /*+-------------------------------------------------------------------------
X  	display_help_screen()
X+ get user command section choice and display that group of commands
X  --------------------------------------------------------------------------*/
X  int
X  display_help_screen()
X***************
X*** 185,191
X  /*+-------------------------------------------------------------------------
X  	display_help_screen()
X  --------------------------------------------------------------------------*/
X! void
X  display_help_screen()
X  {
X  register itmp;
X
X--- 185,191 -----
X  	display_help_screen()
X  get user command section choice and display that group of commands
X  --------------------------------------------------------------------------*/
X! int
X  display_help_screen()
X  {
X  register itmp;
X***************
X*** 189,195
X  display_help_screen()
X  {
X  register itmp;
X! register P_CMD *pcmd = icmd_cmds;
X  register y = 1;
X  register x = 0;
X  char s80[80];
X
X--- 189,195 -----
X  display_help_screen()
X  {
X  register itmp;
X! register P_CMD *pcmd;
X  register y = 1;
X  register x = 0;
X  short cmdclass;
X***************
X*** 192,197
X  register P_CMD *pcmd = icmd_cmds;
X  register y = 1;
X  register x = 0;
X  char s80[80];
X  
X  	wclear(stdscr);
X
X--- 192,198 -----
X  register P_CMD *pcmd;
X  register y = 1;
X  register x = 0;
X+ short cmdclass;
X  char s80[80];
X  char **cpptr;
X  static char *list[] =
X***************
X*** 193,198
X  register y = 1;
X  register x = 0;
X  char s80[80];
X  
X  	wclear(stdscr);
X  	wmove(stdscr,0,0);
X
X--- 194,210 -----
X  register x = 0;
X  short cmdclass;
X  char s80[80];
X+ char **cpptr;
X+ static char *list[] =
X+ {
X+ 	"g   - general commands",
X+ 	"c   - communications-related commands",
X+ 	"t   - transfer-related commands",
X+ 	"p   - procedure-related commands",
X+     "Esc - exit help",
X+ 	(char *)0
X+ };
X+ static char keylist[] = {'g','c','t','p',ESC,0};
X  
X  
X  	wclear(stdscr);
X***************
X*** 194,199
X  register x = 0;
X  char s80[80];
X  
X  	wclear(stdscr);
X  	wmove(stdscr,0,0);
X  	wstandout(stdscr);
X
X--- 206,212 -----
X  };
X  static char keylist[] = {'g','c','t','p',ESC,0};
X  
X+ 
X  	wclear(stdscr);
X  	wmove(stdscr,0,0);
X  	wstandout(stdscr);
X***************
X*** 197,204
X  	wclear(stdscr);
X  	wmove(stdscr,0,0);
X  	wstandout(stdscr);
X! 	waddstr(stdscr,
X! " ecu command list    (capitalized portion sufficient for cmd recognition)");
X  	getyx(stdscr,y,x);
X  	for(itmp = x; itmp < COLS-1; itmp++)
X  		waddch(stdscr,' ');
X
X--- 210,216 -----
X  	wclear(stdscr);
X  	wmove(stdscr,0,0);
X  	wstandout(stdscr);
X! 	waddstr(stdscr,"Interactive Command Help");
X  	getyx(stdscr,y,x);
X  	for(itmp = x; itmp < COLS-1; itmp++)
X  		waddch(stdscr,' ');
X***************
X*** 204,209
X  		waddch(stdscr,' ');
X  	wstandend(stdscr);
X  
X  	pcmd = icmd_cmds;
X  	y = 1;
X  	x = 0;
X
X--- 216,239 -----
X  		waddch(stdscr,' ');
X  	wstandend(stdscr);
X  
X+ 	itmp = 6;
X+ 	cpptr = list;
X+ 	while(*cpptr)
X+ 	{
X+ 		wmove(stdscr,itmp++,4);
X+ 		waddstr(stdscr,*cpptr++);
X+ 	}
X+ 	wmove(stdscr,19,4);
X+ 	waddstr(stdscr,"---- press a key -------");
X+ 	switch(winget_single(stdscr,"",keylist) & 0x7F)
X+ 	{
X+ 		case 'g': cmdclass = ccG; break;
X+ 		case 'c': cmdclass = ccC; break;
X+ 		case 't': cmdclass = ccT; break;
X+ 		case 'p': cmdclass = ccP; break;
X+ 		case ESC: return(1); /* <=================== */
X+ 	}
X+ 
X  	pcmd = icmd_cmds;
X  	y = 1;
X  	x = 0;
X***************
X*** 207,212
X  	pcmd = icmd_cmds;
X  	y = 1;
X  	x = 0;
X  	while(pcmd->token != -1)
X  	{
X  		if(!*pcmd->descr)
X
X--- 237,244 -----
X  	pcmd = icmd_cmds;
X  	y = 1;
X  	x = 0;
X+ 	wmove(stdscr,y,x);
X+ 	wclrtobot(stdscr);
X  	while(pcmd->token != -1)
X  	{
X  		if(!*pcmd->descr || (pcmd->cmdclass != cmdclass))
X***************
X*** 209,215
X  	x = 0;
X  	while(pcmd->token != -1)
X  	{
X! 		if(!*pcmd->descr)
X  		{
X  			pcmd++;
X  			continue;
X
X--- 241,247 -----
X  	wclrtobot(stdscr);
X  	while(pcmd->token != -1)
X  	{
X! 		if(!*pcmd->descr || (pcmd->cmdclass != cmdclass))
X  		{
X  			pcmd++;
X  			continue;
X***************
X*** 235,240
X  		}
X  		pcmd++;
X  	}
X  
X  }	/* end of display_help_screen */
X  
X
X--- 267,281 -----
X  		}
X  		pcmd++;
X  	}
X+ 	wmove(stdscr,LINES - 2,0);
X+ 	wstandout(stdscr);
X+ 	waddstr(stdscr,
X+ "Capitalized portion of listed command sufficient for command recognition");
X+ 	getyx(stdscr,y,x);
X+ 	for(itmp = x; itmp < COLS-1; itmp++)
X+ 		waddch(stdscr,' ');
X+ 	wstandend(stdscr);
X+ 	return(0);
X  
X  }	/* end of display_help_screen */
X  
X***************
X*** 254,261
X  	calculate_help_right_column();
X  	windows_start();
X  	scrollok(stdscr,0);
X! 	display_help_screen();
X! 	while(cptr = help_get_cmd())
X  	{
X  		wmove(stdscr,LINES - 1,0);
X  		wclrtoeol(stdscr);
X
X--- 295,301 -----
X  	calculate_help_right_column();
X  	windows_start();
X  	scrollok(stdscr,0);
X! 	if(!display_help_screen())
X  	{
X  		while(cptr = help_get_cmd())
X  		{
X***************
X*** 257,269
X  	display_help_screen();
X  	while(cptr = help_get_cmd())
X  	{
X! 		wmove(stdscr,LINES - 1,0);
X! 		wclrtoeol(stdscr);
X! 		wrefresh(stdscr);
X! 		display_help_stderr(cptr);
X! 		ff(se,"press return:  ");
X! 		ttygetc(1);
X! 		display_help_screen();
X  	}
X  	wmove(stdscr,LINES - 1,0);
X  	wclrtoeol(stdscr);
X
X--- 297,313 -----
X  	scrollok(stdscr,0);
X  	if(!display_help_screen())
X  	{
X! 		while(cptr = help_get_cmd())
X! 		{
X! 			wmove(stdscr,LINES - 1,0);
X! 			wclrtoeol(stdscr);
X! 			wrefresh(stdscr);
X! 			display_help_stderr(cptr);
X! 			ff(se,"\r\npress return:  ");
X! 			ttygetc(1);
X! 			if(display_help_screen())
X! 				break;
X! 		}
X  	}
X  	windows_end(stdscr);
X  	redisplay_rcvr_screen();
X***************
X*** 265,272
X  		ttygetc(1);
X  		display_help_screen();
X  	}
X- 	wmove(stdscr,LINES - 1,0);
X- 	wclrtoeol(stdscr);
X  	windows_end(stdscr);
X  	redisplay_rcvr_screen();
X  	if(rcvr_active)
X
X--- 309,314 -----
X  				break;
X  		}
X  	}
X  	windows_end(stdscr);
X  	redisplay_rcvr_screen();
X  	if(rcvr_active)
X*** /u4/ecurel/ecunumrev.c	Wed May 23 06:02:17 1990
X--- ecunumrev.c	Mon May 21 01:32:36 1990
X***************
X*** 16,22
X  #endif
X  
X  #ifdef WHT
X! char *numeric_revision = "twx280.04";
X  #else
X  #ifdef SCO
X  char *numeric_revision = "sco2.80";
X
X--- 16,22 -----
X  #endif
X  
X  #ifdef WHT
X! char *numeric_revision = "twx280.07";
X  #else
X  #ifdef SCO
X  char *numeric_revision = "sco2.80";
X*** /u4/ecurel/ecuwinutil.c	Mon May  7 23:33:00 1990
X--- ecuwinutil.c	Fri May 18 14:28:06 1990
X***************
X*** 290,295
X  					continue;
X  
X  				default:
X  					wrefresh(win);
X  					return(-1);
X  			}	/* end of switch(*delim) */
X
X--- 290,296 -----
X  					continue;
X  
X  				default:
X+ 					*(buf + pos) = 0;
X  					wrefresh(win);
X  					return(-1);
X  			}	/* end of switch(*delim) */
X*** /u4/ecurel/ecuxfer.c	Wed May 23 06:02:33 1990
X--- ecuxfer.c	Mon May 21 15:50:38 1990
X***************
X*** 36,41
X  
X  --------------------------------------------------------------------------*/
X  /*+:EDITS:*/
X  /*:05-14-1990-13:28-wht@n4hgf-add window size choice to sz */
X  /*:05-07-1990-21:24-wht@n4hgf---- 2.80 --- */
X  /*:04-19-1990-03:07-wht@n4hgf-GCC run found unused vars -- rm them */
X
X--- 36,42 -----
X  
X  --------------------------------------------------------------------------*/
X  /*+:EDITS:*/
X+ /*:05-19-1990-17:12-wht@n4hgf-fix interaction between file list and windw */
X  /*:05-14-1990-13:28-wht@n4hgf-add window size choice to sz */
X  /*:05-07-1990-21:24-wht@n4hgf---- 2.80 --- */
X  /*:04-19-1990-03:07-wht@n4hgf-GCC run found unused vars -- rm them */
X***************
X*** 455,460
X  int used_argv = 0;
X  char execcmd[256];
X  char s80[80];
X  uchar delim;	/* important to be unsigned to avoid sign extension */
X  WINDOW *window_create();
X  char bottom_label[64];
X
X--- 456,462 -----
X  int used_argv = 0;
X  char execcmd[256];
X  char s80[80];
X+ char flst[80];
X  uchar delim;	/* important to be unsigned to avoid sign extension */
X  WINDOW *window_create();
X  char bottom_label[64];
X***************
X*** 518,524
X  	waddstr(xfrw," dir: ");
X  	if(strlen(curr_dir) > (xfrw_cols - 32))
X  	{
X- 	char s80[80];
X  		strncpy(s80,curr_dir,xfrw_cols - 32);
X  		s80[xfrw_cols - 32] = 0;
X  		waddstr(xfrw,s80);
X
X--- 520,525 -----
X  	waddstr(xfrw," dir: ");
X  	if(strlen(curr_dir) > (xfrw_cols - 32))
X  	{
X  		strncpy(s80,curr_dir,xfrw_cols - 32);
X  		s80[xfrw_cols - 32] = 0;
X  		waddstr(xfrw,s80);
X***************
X*** 526,531
X  	else
X  		waddstr(xfrw,curr_dir);
X  	waddch(xfrw,' ');
X  
X  REENTER_INPUT_LOOP:
X  	input_done = 0;
X
X--- 527,533 -----
X  	else
X  		waddstr(xfrw,curr_dir);
X  	waddch(xfrw,' ');
X+ 	flst[0] = 0;
X  
X  REENTER_INPUT_LOOP:
X  	input_done = 0;
X***************
X*** 538,544
X  CASE_0_AGAIN:
X  				if(used_argv || (argc == 1))
X  				{
X! 					itmp = wingets(xfrw,SNDW_FILE_Y,SNDW_FILE_X,s80,
X  						SNDW_FILE_LEN + 1,&delim,(p_filelist[0] != 0));
X  				}
X  				else
X
X--- 540,546 -----
X  CASE_0_AGAIN:
X  				if(used_argv || (argc == 1))
X  				{
X! 					itmp = wingets(xfrw,SNDW_FILE_Y,SNDW_FILE_X,flst,
X  						SNDW_FILE_LEN + 1,&delim,(p_filelist[0] != 0));
X  				}
X  				else
X***************
X*** 544,550
X  				else
X  				{
X  					used_argv = 1;
X! 					s80[0] = 0;
X  					utmp = 0;
X  					for(itmp = 1; itmp < argc; itmp++)
X  					{
X
X--- 546,552 -----
X  				else
X  				{
X  					used_argv = 1;
X! 					flst[0] = 0;
X  					utmp = 0;
X  					for(itmp = 1; itmp < argc; itmp++)
X  					{
X***************
X*** 548,554
X  					utmp = 0;
X  					for(itmp = 1; itmp < argc; itmp++)
X  					{
X! 						if((strlen(s80) + strlen(argv[itmp]) + 1) > sizeof(s80))
X  						{
X  							xfrw_bot_msg("arguments too long ... reenter list");
X  							ring_bell();
X
X--- 550,556 -----
X  					utmp = 0;
X  					for(itmp = 1; itmp < argc; itmp++)
X  					{
X! 						if((strlen(flst) + strlen(argv[itmp]) + 1) > sizeof(flst))
X  						{
X  							xfrw_bot_msg("arguments too long ... reenter list");
X  							ring_bell();
X***************
X*** 554,560
X  							ring_bell();
X  							goto CASE_0_AGAIN;
X  						}
X! 						strcat(s80,argv[itmp]);
X  						if(itmp != (argc - 1))
X  							strcat(s80," ");
X  					}
X
X--- 556,562 -----
X  							ring_bell();
X  							goto CASE_0_AGAIN;
X  						}
X! 						strcat(flst,argv[itmp]);
X  						if(itmp != (argc - 1))
X  							strcat(flst," ");
X  					}
X***************
X*** 556,562
X  						}
X  						strcat(s80,argv[itmp]);
X  						if(itmp != (argc - 1))
X! 							strcat(s80," ");
X  					}
X  					delim = CR;
X  				}
X
X--- 558,564 -----
X  						}
X  						strcat(flst,argv[itmp]);
X  						if(itmp != (argc - 1))
X! 							strcat(flst," ");
X  					}
X  					delim = NL;
X  				}
X***************
X*** 558,564
X  						if(itmp != (argc - 1))
X  							strcat(s80," ");
X  					}
X! 					delim = CR;
X  				}
X  				if(delim == ESC)
X  					break;
X
X--- 560,566 -----
X  						if(itmp != (argc - 1))
X  							strcat(flst," ");
X  					}
X! 					delim = NL;
X  				}
X  				if(delim == ESC)
X  					break;
X***************
X*** 562,568
X  				}
X  				if(delim == ESC)
X  					break;
X! 				if(strlen(s80))
X  				{
X  					strcpy(p_filelist,s80);
X  					xfrws_display_name();
X
X--- 564,570 -----
X  				}
X  				if(delim == ESC)
X  					break;
X! 				if(strlen(flst))
X  				{
X  					strcpy(p_filelist,flst);
X  					xfrws_display_name();
X***************
X*** 564,570
X  					break;
X  				if(strlen(s80))
X  				{
X! 					strcpy(p_filelist,s80);
X  					xfrws_display_name();
X  					if(find_shell_chars(p_filelist))
X  					{
X
X--- 566,572 -----
X  					break;
X  				if(strlen(flst))
X  				{
X! 					strcpy(p_filelist,flst);
X  					xfrws_display_name();
X  					if(find_shell_chars(p_filelist))
X  					{
X***************
X*** 583,588
X  					}
X  				}
X  				break;
X  			case 1:		/* binary */
X  				xfrw_bot_msg("Y: no conversion, N: NLs converted to CR/LF");
X  				wmove(xfrw,SNDW_BIN_Y,SNDW_BIN_X);
X
X--- 585,591 -----
X  					}
X  				}
X  				break;
X+ 
X  			case 1:		/* binary */
X  				xfrw_bot_msg("Y: no conversion, N: NLs converted to CR/LF");
X  				wmove(xfrw,SNDW_BIN_Y,SNDW_BIN_X);
X***************
X*** 659,665
X  			case 5:		/* window size */
X  
X  				xfrw_bot_msg(
X! 				"window size (bytes transferred before ACK) 0 = stream");
X  				sprintf(s80,"%d",zwindw_size);
X  				itmp = wingets(xfrw,SNDW_ZWINDW_Y,SNDW_ZWINDW_X,s80,
X  					SNDW_ZWINDW_LEN + 1,&delim,1);
X
X--- 662,669 -----
X  			case 5:		/* window size */
X  
X  				xfrw_bot_msg(
X! 				"window size (max bytes sent before ACK required) 0 = stream");
X! CASE_5_AGAIN:
X  				sprintf(s80,"%d",zwindw_size);
X  				clear_area(xfrw,SNDW_ZWINDW_Y,SNDW_ZWINDW_X,
X  					SNDW_ZWINDW_LEN + 10);
X***************
X*** 661,666
X  				xfrw_bot_msg(
X  				"window size (bytes transferred before ACK) 0 = stream");
X  				sprintf(s80,"%d",zwindw_size);
X  				itmp = wingets(xfrw,SNDW_ZWINDW_Y,SNDW_ZWINDW_X,s80,
X  					SNDW_ZWINDW_LEN + 1,&delim,1);
X  				if(delim == ESC)
X
X--- 665,672 -----
X  				"window size (max bytes sent before ACK required) 0 = stream");
X  CASE_5_AGAIN:
X  				sprintf(s80,"%d",zwindw_size);
X+ 				clear_area(xfrw,SNDW_ZWINDW_Y,SNDW_ZWINDW_X,
X+ 					SNDW_ZWINDW_LEN + 10);
X  				itmp = wingets(xfrw,SNDW_ZWINDW_Y,SNDW_ZWINDW_X,s80,
X  					SNDW_ZWINDW_LEN + 1,&delim,1);
X  				if((delim == ESC))
X***************
X*** 663,669
X  				sprintf(s80,"%d",zwindw_size);
X  				itmp = wingets(xfrw,SNDW_ZWINDW_Y,SNDW_ZWINDW_X,s80,
X  					SNDW_ZWINDW_LEN + 1,&delim,1);
X! 				if(delim == ESC)
X  					break;
X  				if(strlen(s80))
X  				{
X
X--- 669,675 -----
X  					SNDW_ZWINDW_LEN + 10);
X  				itmp = wingets(xfrw,SNDW_ZWINDW_Y,SNDW_ZWINDW_X,s80,
X  					SNDW_ZWINDW_LEN + 1,&delim,1);
X! 				if((delim == ESC))
X  					break;
X  				if( ((itmp = atoi(s80)) != 0) &&
X  					((itmp < 256) || (itmp > 65536)))
X***************
X*** 665,671
X  					SNDW_ZWINDW_LEN + 1,&delim,1);
X  				if(delim == ESC)
X  					break;
X! 				if(strlen(s80))
X  				{
X  					if(((itmp = atoi(s80)) < 0) ||
X  						((itmp < 256) || (itmp > 65536)))
X
X--- 671,678 -----
X  					SNDW_ZWINDW_LEN + 1,&delim,1);
X  				if((delim == ESC))
X  					break;
X! 				if( ((itmp = atoi(s80)) != 0) &&
X! 					((itmp < 256) || (itmp > 65536)))
X  				{
X  					ring_bell();
X  					xfrw_bot_msg(
X***************
X*** 667,685
X  					break;
X  				if(strlen(s80))
X  				{
X! 					if(((itmp = atoi(s80)) < 0) ||
X! 						((itmp < 256) || (itmp > 65536)))
X! 					{
X! 						ring_bell();
X! 						xfrw_bot_msg(
X! 							"window size must be 0 or 256 <= w <= 65536");
X! 						continue;
X! 					}
X! 					zwindw_size = atoi(s80);
X! 					sprintf(s80,"%d",zwindw_size);
X! 					clear_area(xfrw,SNDW_ZWINDW_Y,SNDW_ZWINDW_X,
X! 						SNDW_ZWINDW_LEN);
X! 					waddstr(xfrw,s80);
X  				}
X  				break;
X  		}
X
X--- 674,683 -----
X  				if( ((itmp = atoi(s80)) != 0) &&
X  					((itmp < 256) || (itmp > 65536)))
X  				{
X! 					ring_bell();
X! 					xfrw_bot_msg(
X! 						"window size must be 0 or 256 <= w <= 65536");
X! 					goto CASE_5_AGAIN;
X  				}
X  				zwindw_size = (itmp / 64) * 64;
X  				sprintf(s80,"%d%s",zwindw_size,
X***************
X*** 681,686
X  						SNDW_ZWINDW_LEN);
X  					waddstr(xfrw,s80);
X  				}
X  				break;
X  		}
X  
X
X--- 679,690 -----
X  						"window size must be 0 or 256 <= w <= 65536");
X  					goto CASE_5_AGAIN;
X  				}
X+ 				zwindw_size = (itmp / 64) * 64;
X+ 				sprintf(s80,"%d%s",zwindw_size,
X+ 					(zwindw_size != itmp) ? " adjusted" : "" );
X+ 				clear_area(xfrw,SNDW_ZWINDW_Y,SNDW_ZWINDW_X,
X+ 					SNDW_ZWINDW_LEN + 10);
X+ 				waddstr(xfrw,s80);
X  				break;
X  		}
X  
X*** /u4/ecurel/help/ecuhelp.src	Wed May 23 06:02:35 1990
X--- help/ecuhelp.src	Mon May 21 01:41:59 1990
X***************
X*** 1,8
X! # ecu help ,source file
X! /*+:EDITS:*/
X! /*:11-03-1989-16:21-wht------ unet2 ----- */
X! /*:06-17-1988-11:10-wht-add 'exit' command */
X! /*:06-13-1988-15:38-wht-creation */
X  #--------------------------------------------------------------------
X  %ax
X  Usage: ax [<param>]
X
X--- 1,8 -----
X! # ecu help source file
X! #+:EDITS:
X! #:11-03-1989-16:21-wht------ unet2 -----
X! #:06-17-1988-11:10-wht-add 'exit' command
X! #:06-13-1988-15:38-wht-creation
X  #--------------------------------------------------------------------
X  %ax
X  Usage: ax [<param>]
X***************
X*** 481,485
X  Similarly,
X    '$' causes the communications line to be stdin and stdout
X        for the spawned shell
X!   '>' causes spawned shell to receive exactly sames files as ecu
X  #--------------------------------------------------------------------
X
X--- 481,488 -----
X  Similarly,
X    '$' causes the communications line to be stdin and stdout
X        for the spawned shell
X!   '-' is similar to '>', except the command is executed directly
X!       without going through a shell.
X  #--------------------------------------------------------------------
X  %$
X  Usage: $
X***************
X*** 483,485
X        for the spawned shell
X    '>' causes spawned shell to receive exactly sames files as ecu
X  #--------------------------------------------------------------------
X
X--- 484,569 -----
X    '-' is similar to '>', except the command is executed directly
X        without going through a shell.
X  #--------------------------------------------------------------------
X+ %$
X+ Usage: $
X+        $<command>
X+ 
X+ The '$' command is a shell escape causing the communications line to be
X+ the stand input and output.  The environment variable SHELL is read to
X+ determine what shell program to execute (e.g., /bin/sh, etc).  If '$' is
X+ entered by itself, an interactive shell is started; a ^D received from
X+ the communications line causes the shell to terminate and control to be
X+ passed back to ecu.  If <command> is supplied, it is executed by the
X+ shell with an immediate return to ecu.
X+ #--------------------------------------------------------------------
X+ %-
X+ Usage: -<command>
X+ 
X+ The '-' command causes <command> to be executed directly without
X+ passing through a shell (no wildcard expansion or other shell
X+ processing occurs).  Standard input, output and error all are
X+ opened to the console.  In addition, all other files (including
X+ the communications line) opened by ecu remain open.
X+ #--------------------------------------------------------------------
X+ %?
X+ Usage: ?
X+ 
X+ This is an alias for the help command.
X+ #--------------------------------------------------------------------
X+ %clrx
X+ Usage: clrx
X+ 
X+ The 'clrx' command simulates receipt of an XON by ECU.  It is useful
X+ in the rare circumstances that an XOFF is received by ECU from a 
X+ remote system and no later XON is received.
X+ #--------------------------------------------------------------------
X+ %pcmd
X+ Usage: pcmd <procedure command>
X+ 
X+ The 'pcmd' command allows a procedure command to be issued from the
X+ interactive command prompt.  It is primarily intended for debugging
X+ procedure commands, but it is available for any use.
X+ #--------------------------------------------------------------------
X+ %plog
X+ Usage: plog [<filename> | off | ]
X+ 
X+ The 'plog' command turns on or off procedure logging.  If the
X+ argument to the command is 'off', logging is turned off, otherwise
X+ logging is started on the specified file.  If no argument is specified,
X+ the status of procedure logging is displayed.
X+ #--------------------------------------------------------------------
X+ %rtscts
X+ Usage: rtscts [ y | n | ]
X+ 
X+ This experimental command turns on or off the driver RTS and CTS
X+ flow control.  As of this writing, the driver does not properly
X+ handle RTS/CTS flow control.
X+ #--------------------------------------------------------------------
X+ %sdname
X+ Usage: sdname [<filename> | ]
X+ 
X+ This command sets or displays the current screen dump filename.
X+ Until the command is issued, screen dump data is placed in
X+ ~/.ecu/screen.dump.
X+ #--------------------------------------------------------------------
X+ %sgr
X+ Usage: sgr mode cmd
X+ 
X+ This experimental command is used to test the timed read primitive
X+ used by ECU.  The command <cmd> is sent to the line and a timed
X+ read is performed.  The data returned is displayed in hexadecimal
X+ format on the console. Refer to source module ecuxenix.c, function
X+ send_get_response() for details.
X+ #--------------------------------------------------------------------
X+ %ts
X+ Usage: ts
X+ 
X+ This experimental command displays raw termio structure information
X+ for the console and the tty.  It is primarily used in debugging ECU.
X+ #--------------------------------------------------------------------
X+ %xlog
X+ Usage: xlog [y | n]
X+ 
X+ This experimental command controls exhaustive logging by the X, Y, and
X+ ZMODEM file transfer protocols to files named /tmp/szNNNNN.log or
X+ /tmp/rzNNNNN.log where NNNNN is the process id of the transfer process.
X*** /u4/ecurel/help/helpgen.c	Mon May  7 23:33:00 1990
X--- help/helpgen.c	Wed May 23 05:53:56 1990
X***************
X*** 48,55
X  #define PFITXT	"../doc/ecufi.txt"
X  #define PFSTXT	"../doc/ecufs.txt"
X  
X! long	start_pos[TOKEN_QUAN];
X! int		token_line[TOKEN_QUAN];
X  FILE	*fpsrc;		/* help source file */
X  FILE	*fpdat;		/* help data file */
X  FILE	*fpdoc;		/* help doc file */
X
X--- 48,55 -----
X  #define PFITXT	"../doc/ecufi.txt"
X  #define PFSTXT	"../doc/ecufs.txt"
X  
X! long start_pos[TOKEN_QUAN];
X! int token_line[TOKEN_QUAN];
X  FILE	*fpsrc;		/* help source file */
X  FILE	*fpdat;		/* help data file */
X  FILE	*fpdoc;		/* help doc file */
X***************
X*** 55,62
X  FILE	*fpdoc;		/* help doc file */
X  FILE	*fptxt;		/* help nroff file */
X  P_CMD	*pcmd;
X! int		src_line = 0;
X! char	buf[128];
X  
X  /*+-------------------------------------------------------------------------
X  	usage()
X
X--- 55,62 -----
X  FILE	*fpdoc;		/* help doc file */
X  FILE	*fptxt;		/* help nroff file */
X  P_CMD	*pcmd;
X! int src_line = 0;
X! char buf[128];
X  
X  /*+-------------------------------------------------------------------------
X  	usage()
X***************
X*** 79,85
X  --------------------------------------------------------------------------*/
X  P_CMD *
X  search_cmd_list(cmd)
X! register char	*cmd;
X  {
X  register P_CMD	*cmd_list = icmd_cmds;
X  
X
X--- 79,85 -----
X  --------------------------------------------------------------------------*/
X  P_CMD *
X  search_cmd_list(cmd)
X! register char *cmd;
X  {
X  register P_CMD	*cmd_list = icmd_cmds;
X  
X***************
X*** 109,115
X  register int longest_descr = 0;
X  register int cmd_count = 0;
X  register int nl_flag = 0;
X! char	s80[80];
X  P_CMD *longest_cmd_p = 0;
X  P_CMD *longest_descr_p = 0;
X  
X
X--- 109,115 -----
X  register int longest_descr = 0;
X  register int cmd_count = 0;
X  register int nl_flag = 0;
X! char s80[80];
X  P_CMD *longest_cmd_p = 0;
X  P_CMD *longest_descr_p = 0;
X  
X***************
X*** 183,188
X  {
X  register int itmp;
X  register char *cptr;
X  	printf("\nBuilding %s\n",PDAT);
X  	for(itmp = 0; itmp < TOKEN_QUAN; itmp++)
X  	{
X
X--- 183,189 -----
X  {
X  register int itmp;
X  register char *cptr;
X+ 
X  	printf("\nBuilding %s\n",PDAT);
X  
X  /* use proc cmd entry for flag */
X***************
X*** 184,189
X  register int itmp;
X  register char *cptr;
X  	printf("\nBuilding %s\n",PDAT);
X  	for(itmp = 0; itmp < TOKEN_QUAN; itmp++)
X  	{
X  		start_pos[itmp] = 0L;
X
X--- 185,199 -----
X  register char *cptr;
X  
X  	printf("\nBuilding %s\n",PDAT);
X+ 
X+ /* use proc cmd entry for flag */
X+ 	pcmd = icmd_cmds;
X+ 	while(pcmd->token != -1)
X+ 	{
X+ 		pcmd->proc = (PFI)0;
X+ 		pcmd++;
X+ 	}
X+ 
X  	for(itmp = 0; itmp < TOKEN_QUAN; itmp++)
X  	{
X  		start_pos[itmp] = 0L;
X***************
X*** 241,246
X  			fputs("   ",fpdat);
X  			cptr = &buf[1];	/* command text */
X  			itmp = 0;
X  			while(*cptr)		/* show cmd and min chars required */
X  			{
X  				if(itmp < pcmd->min)
X
X--- 251,257 -----
X  			fputs("   ",fpdat);
X  			cptr = &buf[1];	/* command text */
X  			itmp = 0;
X+ 			pcmd->proc = (PFI)1;	/* indicate we save command info */
X  			while(*cptr)		/* show cmd and min chars required */
X  			{
X  				if(itmp < pcmd->min)
X***************
X*** 260,266
X  
X  	fseek(fpdat,0L,0);	/* back to position table */
X  	fwrite((char *)start_pos,sizeof(long),	/* write actual table */
X! 			TOKEN_QUAN,fpdat);
X  	fclose(fpsrc);
X  	fputs("\n",fpdat);	/* terminate last command */
X  	fclose(fpdat);
X
X--- 271,277 -----
X  
X  	fseek(fpdat,0L,0);	/* back to position table */
X  	fwrite((char *)start_pos,sizeof(long),	/* write actual table */
X! 		TOKEN_QUAN,fpdat);
X  	fclose(fpsrc);
X  	fputs("\n",fpdat);	/* terminate last command */
X  	fclose(fpdat);
X***************
X*** 264,269
X  	fclose(fpsrc);
X  	fputs("\n",fpdat);	/* terminate last command */
X  	fclose(fpdat);
X  }	/* end of build_ecuhelp */
X  
X  /*+-------------------------------------------------------------------------
X
X--- 275,291 -----
X  	fclose(fpsrc);
X  	fputs("\n",fpdat);	/* terminate last command */
X  	fclose(fpdat);
X+ 
X+ /* say which commands weren't in the help source */
X+ 	pcmd = icmd_cmds;
X+ 	while(pcmd->token != -1)
X+ 	{
X+ 		if(pcmd->min && !pcmd->proc)
X+ 			fprintf(stderr,"'%s' not in help source\n",pcmd->cmd);
X+ 		pcmd++;
X+ 	}
X+ 
X+ 
X  }	/* end of build_ecuhelp */
X  
X  /*+-------------------------------------------------------------------------
X***************
X*** 442,450
X  	main(argc,argv,envp)
X  --------------------------------------------------------------------------*/
X  main(argc,argv,envp)
X! int		argc;
X! char	**argv;
X! char	**envp;
X  {
X  register int itmp;
X  register char *cptr;
X
X--- 464,472 -----
X  	main(argc,argv,envp)
X  --------------------------------------------------------------------------*/
X  main(argc,argv,envp)
X! int argc;
X! char **argv;
X! char **envp;
X  {
X  register int itmp;
X  register char *cptr;
X***************
X*** 448,460
X  {
X  register int itmp;
X  register char *cptr;
X! int		iargv;
X! int		b_flag = 0;
X! int		s_flag = 0;
X! int		t_flag = 0;
X! int		f_flag = 0;
X! int		d_flag = 0;
X! int		n_flag = 0;
X  
X  	setbuf(stdout,NULL);
X  	setbuf(stderr,NULL);
X
X--- 470,482 -----
X  {
X  register int itmp;
X  register char *cptr;
X! int iargv;
X! int b_flag = 0;
X! int s_flag = 0;
X! int t_flag = 0;
X! int f_flag = 0;
X! int d_flag = 0;
X! int n_flag = 0;
X  
X  	setbuf(stdout,NULL);
X  	setbuf(stderr,NULL);
X*** /u4/ecurel/lint_args.h	Mon May  7 23:33:00 1990
X--- lint_args.h	Mon May 21 00:31:23 1990
X***************
X*** 85,91
X  char *help_get_cmd(void );
X  struct p_cmd *search_cmd_list_pcmd(char *);
X  void calculate_help_right_column(void );
X! void display_help_screen(void );
X  void display_help_stderr(char *);
X  void help_cmd_line_setup(char *);
X  void icmd_help(int ,char **);
X
X--- 85,91 -----
X  char *help_get_cmd(void );
X  struct p_cmd *search_cmd_list_pcmd(char *);
X  void calculate_help_right_column(void );
X! int display_help_screen(void );
X  void display_help_stderr(char *);
X  void help_cmd_line_setup(char *);
X  void icmd_help(int ,char **);
SHAR_EOF
$TOUCH -am 0523062790 ECU280.P02 &&
chmod 0644 ECU280.P02 ||
echo "restore of ECU280.P02 failed"
set `wc -c ECU280.P02`;Wc_c=$1
if test "$Wc_c" != "30384"; then
	echo original size 30384, current size $Wc_c
fi
# ============= ecucmd.h ==============
echo "x - extracting ecucmd.h (Text)"
sed 's/^X//' << 'SHAR_EOF' > ecucmd.h &&
X/* CHK=0xBB62 */
X/*+-------------------------------------------------------------------------
X	ecucmd.h -- command definitions
X	wht%n4hgf@gatech.edu
X--------------------------------------------------------------------------*/
X/*+:EDITS:*/
X/*:05-20-1990-17:56-wht@n4hgf-classify interactive commands */
X/*:05-15-1990-22:31-wht@n4hgf-add xon command */
X/*:05-07-1990-21:24-wht@n4hgf---- 2.80 --- */
X/*:04-05-1990-14:29-wht@n4hgf-sort/renumber CT tokens */
X/*:03-25-1990-14:11-wht@n4hgf------ x2.70 ------- */
X/*:03-18-1990-15:33-wht@n4hgf-add popen and pclose */
X/*:03-12-1990-04:44-wht@n4hgf-add rname */
X/*:12-21-1989-21:49-wht-add 'rtscts' */
X/*:11-20-1989-16:05-wht-add 'getf' and 'putf' */
X/*:07-03-1989-22:57-wht------ x2.00 ----- */
X/*:06-24-1989-16:53-wht-flush edits --- ecu 1.95 */
X
X/* interactive command tokens */
X
X#define CTax             1
X#define CTbaud           2
X#define CTbn             3
X#define CTbreak          4
X#define CTcd             5
X#define CTclrx           6
X#define CTda             7
X#define CTdial           8
X#define CTdo             9
X#define CTduplex        10
X#define CTexit          11
X#define CTfi            12
X#define CTfkey          13
X#define CTgetf          14
X#define CThangup        15
X#define CThelp          16
X#define CTllp           17
X#define CTloff          18
X#define CTlog           19
X#define CTnl            21
X#define CTnlin          22
X#define CTnlout         23
X#define CToa            24
X#define CTparity        25
X#define CTpcmd          26
X#define CTpid           27
X#define CTplog          28
X#define CTptrace        29
X#define CTputf          30
X#define CTpwd           31
X#define CTredial        32
X#define CTrev           33
X#define CTrk            34
X#define CTrs            35
X#define CTrtscts        36
X#define CTrx            37
X#define CTry            38
X#define CTrz            39
X#define CTsdname        40
X#define CTsgr           41
X#define CTsk            43
X#define CTss            44
X#define CTstat          45
X#define CTsx            46
X#define CTsy            47
X#define CTsz            48
X#define CTtime          50
X#define CTts            51
X#define CTtty           52
X#define CTxa            53
X#define CTxlog          54
X#define CTxon           55
X
X#define CTdummy1       120
X#define CTdummy2       121
X#define CTdummy3       122
X#define CTdummy4       123
X
X#define TOKEN_QUAN	128		/* for help package */
X
Xtypedef int (*PFI)();
X
X#if defined(HELPGEN)
X#define Z {;}
X#else
X#define Z ;
X#endif
X
Xint cmd_baud() Z
Xint cmd_break() Z
Xint cmd_cd() Z
Xint cmd_clrx() Z
Xint cmd_cls() Z
Xint cmd_color() Z
Xint cmd_continue() Z
Xint cmd_cursor() Z
Xint cmd_delline() Z
Xint cmd_dial() Z
Xint cmd_do() Z
Xint cmd_duplex() Z
Xint cmd_echo() Z
Xint cmd_eeol() Z
Xint cmd_else() Z
Xint cmd_exit() Z
Xint cmd_expresp() Z
Xint cmd_getf() Z
Xint cmd_fchmod() Z
Xint cmd_fclose() Z
Xint cmd_fgetc() Z
Xint cmd_fgets() Z
Xint cmd_fkey() Z
Xint cmd_flush() Z
Xint cmd_fopen() Z
Xint cmd_fputc() Z
Xint cmd_fputs() Z
Xint cmd_fread() Z
Xint cmd_fseek() Z
Xint cmd_fdel() Z
Xint cmd_fwrite() Z
Xint cmd_goto() Z
Xint cmd_gotob() Z
Xint cmd_hangup() Z
Xint cmd_hexdump() Z
Xint cmd_home() Z
Xint cmd_icolor() Z
Xint cmd_insline() Z
Xint cmd_ifi() Z
Xint cmd_ifs() Z
Xint cmd_lbreak() Z
Xint cmd_lgets() Z
Xint cmd_logevent() Z
Xint cmd_lookfor() Z
X/* int cmd_mkdir() Z */
Xint cmd_mkvar() Z
Xint cmd_nap() Z
Xint cmd_parity() Z
Xint cmd_pclose() Z
Xint cmd_plog() Z
Xint cmd_popen() Z
Xint cmd_prompt() Z
Xint cmd_ptrace() Z
Xint cmd_putf() Z
Xint cmd_return() Z
Xint cmd_rk() Z
Xint cmd_rname() Z
Xint cmd_rs() Z
Xint cmd_rx() Z
Xint cmd_ry() Z
Xint cmd_rz() Z
Xint cmd_scrdump() Z
Xint cmd_send() Z
Xint cmd_set() Z
Xint cmd_sk() Z
Xint cmd_ss() Z
Xint cmd_sx() Z
Xint cmd_sy() Z
Xint cmd_system() Z
Xint cmd_sz() Z
Xint cmd_vidcolor() Z
Xint cmd_vidnorm() Z
Xint cmd_vidrev() Z
Xint cmd_whilei() Z
Xint cmd_whiles() Z
Xint cmd_xon() Z
X
X/* command classification */
X#define ccG  1	/* general command */
X#define ccC  2	/* comm command */
X#define ccT  3	/* transfer command */
X#define ccP  4	/* procedure-related command */
X
Xtypedef struct p_cmd
X{ 
X	char *cmd;		/* command string */
X	short min;		/* min chars for match (0 if not interactive) */
X	short token;	/* command number (if interactive) */
X	char *descr;	/* command description (if interactive) */
X	PFI proc;		/* procedure cmd handler (or 0) */
X	short cmdclass;	/* cc{C,G,P,X} or 0 (for help processor) */
X}	P_CMD;
X
X#if !defined(DECLARE_P_CMD)
X#if defined(NEED_P_CMD)
Xextern P_CMD icmd_cmds[];
X#endif
X#else
XP_CMD icmd_cmds[] =
X{
X	{ "ax",		2,CTax,		"ascii char to hex/oct/dec",	0,			ccG},
X	{ "baud",	2,CTbaud,	"set/display line baud rate",	cmd_baud,	ccC},
X	{ "bn",		2,CTbn,		"all console event alarm",		0,			ccG},
X	{ "break",	2,CTbreak,	"send break to remote",			cmd_break,	ccC},
X	{ "cd",		2,CTcd,		"change current directory",		cmd_cd,		ccG},
X	{ "clrx",	2,CTclrx,	"simulate XON from remote",		cmd_clrx,	ccC},
X	{ "cls",	0,0,		"",								cmd_cls,	0  },
X	{ "color",	0,0,		"",								cmd_color,	0  },
X	{ "continue",0,0,		"",								cmd_continue,0 },
X	{ "cursor",	0,0,		"",								cmd_cursor, 0  },
X	{ "da",		2,CTda,		"decimal to ascii char",		0,          ccG},
X	{ "dial",	1,CTdial,	"dial remote destination",		cmd_dial,   ccC},
X	{ "delline",0,0,		"",								cmd_delline,0  },
X	{ "do",		2,CTdo,		"perform procedure",			cmd_do,     ccP},
X	{ "duplex",	2,CTduplex,	"set/display duplex",			cmd_duplex, ccC},
X	{ "echo",	0,0,		"",								cmd_echo,   0  },
X	{ "eeol",	0,0,		"",								cmd_eeol,   0  },
X	{ "else",	0,0,		"",								cmd_else,   0  },
X	{ "exit",	2,CTexit,	"hang up, exit program",		cmd_exit,   ccG},
X	{ "expresp",0,0,		"",								cmd_expresp,0  },
X	{ "fchmod",	0,0,		"",								cmd_fchmod, 0  },
X	{ "fclose",	0,0,		"",								cmd_fclose, 0  },
X	{ "fdel",	0,0,		"",								cmd_fdel,   0  },
X	{ "fgetc",	0,0,		"",								cmd_fgetc,  0  },
X	{ "fgets",	0,0,		"",								cmd_fgets,  0  },
X	{ "fi",		2,CTfi,		"send text file to line",		0,          ccG},
X	{ "fkey",	2,CTfkey,	"function key definition",		cmd_fkey,   ccG},
X	{ "flush",	0,0,		"",								cmd_flush,  0  },
X	{ "fopen",	0,0,		"",								cmd_fopen,  0  },
X	{ "fputc",	0,0,		"",								cmd_fputc,  0  },
X	{ "fputs",	0,0,		"",								cmd_fputs,  0  },
X	{ "fread",	0,0,		"",								cmd_fread,  0  },
X	{ "fseek",	0,0,		"",								cmd_fseek,  0  },
X	{ "fwrite",	0,0,		"",								cmd_fwrite, 0  },
X	{ "getf",	0,0,		"",								cmd_getf,   0  },
X	{ "goto",	0,0,		"",								cmd_goto,   0  },
X	{ "gotob",	0,0,		"",								cmd_gotob,  0  },
X	{ "hangup",	2,CThangup,	"hang up modem",				cmd_hangup, ccC},
X	{ "help",	2,CThelp,	"invoke help",					0,          ccG},
X	{ "hexdump",0,0,		"",								cmd_hexdump,0  },
X	{ "home",	0,0,		"",								cmd_home,   0  },
X	{ "icolor",	0,0,		"",								cmd_icolor, 0  },
X	{ "ifi",	0,0,		"",								cmd_ifi,    0  },
X	{ "ifs",	0,0,		"",								cmd_ifs,    0  },
X	{ "insline",0,0,		"",								cmd_insline,0  },
X	{ "lbreak",	0,0,		"",								cmd_lbreak, 0  },
X	{ "llp",	2,CTllp,	"set session log to /dev/lp",	0,          ccG},
X	{ "lgets",	0,0,		"",								cmd_lgets,  0  },
X	{ "loff",	3,CTloff,	"turn off session logging",		0,          ccG},
X	{ "log",	3,CTlog,	"session logging control",		0,          ccG},
X	{ "logevent",0,0,		"",								cmd_logevent,0 },
X	{ "lookfor",0,0,		"",								cmd_lookfor,0  },
X/*	{ "mkdir",	3,CTmkdir,	"mkdir <dirname>",				cmd_mkdir,  ccG}, */
X	{ "mkvar",	0,0,		"",								cmd_mkvar,  0  },
X	{ "nap",	0,0,		"",								cmd_nap,    0  },
X	{ "nl",		2,CTnl,		"display CR/LF mapping",		0,          ccC},
X	{ "nlin",	3,CTnlin,	"set receive CR/LF mapping",	0,          ccC},
X	{ "nlout",	3,CTnlout,	"set transmit CR/LF mapping",	0,          ccC},
X	{ "oa",		2,CToa,		"octal to ascii char",			0,          ccG},
X	{ "parity",	3,CTparity,	"set/display line parity",		cmd_parity, ccC},
X	{ "pclose",	0,0,		"",								cmd_pclose, 0  },
X	{ "pcmd",	2,CTpcmd,	"execute a procedure command",	0,          ccP},
X	{ "pid",	2,CTpid,	"display process ids",			0,          ccG},
X	{ "plog",	2,CTplog,	"control procedure logging",	cmd_plog,   ccP},
X	{ "popen",	0,0,		"",								cmd_popen,  0  },
X	{ "prompt",	0,0,		"",								cmd_prompt, 0  },
X	{ "ptrace",	2,CTptrace,	"control procedure trace",		cmd_ptrace, ccP},
X	{ "putf",	0,0,		"",								cmd_putf,   0  },
X	{ "pwd",	2,CTpwd,	"print working directory",		0,          ccG},
X	{ "redial",	3,CTredial,	"redial last number",			0,          ccC},
X	{ "return",	0,0,		"",								cmd_return, 0  },
X	{ "rev",	3,CTrev,	"ecu revision/make date",		0,          ccG},
X	{ "rk",		2,CTrk,		"receive via C-Kermit",			cmd_rk,     ccT},
X	{ "rname",	0,0,		"",								cmd_rname,  0  },
X	{ "rs",		2,CTrs,		"receive via SEAlink",			cmd_rs,     ccT},
X	{ "rtscts",	3,CTrtscts,	"control RTS/CTS flow control",	0,          ccC},
X	{ "rx",		2,CTrx,		"receive via XMODEM/CRC",		cmd_rx,     ccT},
X	{ "ry",		2,CTry,		"receive via YMODEM Batch",		cmd_ry,     ccT},
X	{ "rz",		2,CTrz,		"receive via ZMODEM/CRC32",		cmd_rz,     ccT},
X	{ "scrdump",0,0,		"",								cmd_scrdump,0  },
X	{ "sdname",	3,CTsdname,	"select screen dump name",		0,          ccC},
X	{ "send",	0,0,		"",								cmd_send,   0  },
X	{ "set",	0,0,		"",								cmd_set,    0  },
X	{ "sgr",	2,CTsgr,	"send command/get response",	0,          ccC},
X	{ "sk",		2,CTsk,		"send via C-Kermit",			cmd_sk,     ccT},
X	{ "ss",		2,CTss,		"send via SEAlink",				cmd_ss,     ccT},
X	{ "stat",	2,CTstat,	"general status",				0,          ccG},
X	{ "sx",		2,CTsx,		"send via XMODEM/CRC",			cmd_sx,     ccT},
X	{ "sy",		2,CTsy,		"send via YMODEM Batch",		cmd_sy,     ccT},
X	{ "system",	0,CTsy,		"",								cmd_system, 0  },
X	{ "sz",		2,CTsz,		"send via ZMODEM/CRC32",		cmd_sz,     ccT},
X	{ "time",	2,CTtime,	"time of day",					0,          ccG},
X	{ "ts",		2,CTts,		"termio display",				0,          ccC},
X	{ "tty",	2,CTtty,	"console tty name",				0,          ccG},
X	{ "vidcolor",0,0,		"",								cmd_vidcolor,0 },
X	{ "vidnorm",0,0,		"",								cmd_vidnorm,0  },
X	{ "vidrev",	0,0,		"",								cmd_vidrev, 0  },
X	{ "whilei",	0,0,		"",								cmd_whilei, 0  },
X	{ "whiles",	0,0,		"",								cmd_whiles, 0  },
X	{ "xa",		2,CTxa,		"hex to ascii char",			0,          ccG},
X	{ "xlog",	2,CTxlog,	"protocol packet logging",		0,          ccT},
X	{ "xon",	2,CTxon,	"control xon/xoff flow control",cmd_xon,    ccC},
X/* these cmds are interecepted by special code in ecucmd.h and appear
X * here only so they will be picked up by the help system.
X */
X	{ "!",		1,CTdummy1,	"execute shell (tty)",			0,          ccG},
X	{ "$",		1,CTdummy2,	"execute shell (comm line)",	0,          ccG},
X	{ "-",		1,CTdummy3,	"execute program",				0,          ccG},
X	{ "?",		1,CTdummy4,	"get help",						0,          ccG},
X	{ "",		0,-1,"",0,0 }	/* list ends with token value of -1 */
X};
X#endif
X
X/* end of ecucmd.h */
X/* vi: set tabstop=4 shiftwidth=4: */
SHAR_EOF
$TOUCH -am 0521014290 ecucmd.h &&
chmod 0644 ecucmd.h ||
echo "restore of ecucmd.h failed"
set `wc -c ecucmd.h`;Wc_c=$1
if test "$Wc_c" != "10682"; then
	echo original size 10682, current size $Wc_c
fi
exit 0