🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.sources.d
Article #1254

ecu 3.20 patch 3

#1254
From: Warren H. Tucker
Date: Mon, 05 Oct 1992 17:30
903 lines
32928 bytes
This went to Kent yesterday, but several would like this ASAP.

Submitted-by: wht@n4hgf.Mt-Park.GA.US (Warren Tucker)
Archive-name: ecu/patch03
Environment: SCO,XENIX,ISC,SUNOS,SYSVR4,HDB,Curses
Patch-To: ecu: Volume 32, Issue 36-75

This is patch 3 to ECU 3.20.

To apply this patch, extract the shell archive below in the ECU
distribution directory, creating one new file (PATCH03) and
overlaying two README files with new versions.  Then patch by

    patch -p0 < PATCH03

Then, Configure, make, su root, make install.

-------------------------------------------------------------.
| I lost a week of bug reports/suggestion lists.  If you have |
| a bug or suggestion you have mailed me that is not fixed in |
| here, please resend.  Thanks.                               |
`-------------------------------------------------------------'

>From CHANGES:
7.  Information on tty "Device busy" errors and color support
have been added to README.Q-and-A.  Obsolete information was
removed.

8. The -l switch was added to the fkmap commands:
       fkmap -l <name>
The -l form reads an entire funckeymap definition matching <name>
from ~/.ecu/funckeymap (if not found there, in a file by the same
name in the library directory).  This form behaves exactly
in the same manner as the command line switch -F.
Due to the drastic nature of this command, if it fails to
execute properly, ECU terminates itself.  Note that
improper use of this form of the command can still render
ECU an albatross (with Home unrecognizable).

9.  The original high-bit character space assignments for Alt-A
through Alt-Z that I chose for ECU made good sense ...  to a
parochial American.  Michael Traub <emory!btcs.bt.co.uk!traub>
sets me straight, but mapkey/README was incorrect.  Each hex
value was off by one.

10.  If the console has parity enabled, the interactive stat
command now reports <7-bit kbd>.  Knowing this can be important
if you are using Alt-[A-Z].  Or if you are trying for some kind
of unlikely tandem 8-bit transparent path (telnet to a box, run
ecu to call home, login, use ECU there to talk to your amateur
radio PK-232/MBX TNC over 14 MHz AMTOR to the UK to a Kantronics
TNC hooked to an SCO box, login, make an ECU call to a certain
Universal Import-Export ...  uh, hi -- I seem to have dozed off).

11.  At least one ISC SVR3 user had a Devices entry with the
modem control ",M" suffix I thought was only used in SVR4 UUCP.
The suffix presence is now detected on all platforms.


#!/bin/sh
# This is ecu/patch03, a shell archive (shar 3.461)
# made 09/28/1992 18:23 UTC by wht@n4hgf.Mt-Park.GA.US
# Source directory /u1/src/ecu
#
# existing files will NOT be overwritten unless -c is specified
#
# This shar contains:
# length  mode       name
# ------ ---------- ------------------------------------------
#  20515 -rw-r--r-- PATCH03
#   2906 -rw-r--r-- README.Q-and-A
#   2774 -rw-r--r-- mapkey/README
#
# ============= PATCH03 ==============
if test -f 'PATCH03' -a X"$1" != X"-c"; then
	echo 'x - skipping PATCH03 (File already exists)'
else
echo 'x - extracting PATCH03 (Text)'
sed 's/^X//' << 'SHAR_EOF' > 'PATCH03' &&
X#-------------------------------------------------------
X# PATCH03 - miscellaneous patches
X# see CHANGES notes 7-12
X# created by gendiff x1.30 on 28 Sep 1992 18:01 UTC
X#-------------------------------------------------------
XPreqreq: 22
X*** ../ecu-3.22/patchlevel.h	Wed Sep 16 11:38:49 1992
X--- patchlevel.h	Wed Sep 16 14:11:32 1992
X***************
X*** 1 ****
X! #define PATCHLEVEL 22
X--- 1 ----
X! #define PATCHLEVEL 23
X*** ../ecu-3.22/Make.src	Tue Sep 15 19:43:26 1992
X--- Make.src	Sun Sep 27 12:29:09 1992
X***************
X*** 160,165 ****
X--- 160,166 ----
X  SHARFLS = \
X  	README \
X  	README.* \
X+ 	CHANGES \
X  	HISTORY \
X  	OLD-HISTORY-* \
X  	ESOTERIC \
X*** ../ecu-3.22/doc/_icmd.txt	Tue Sep 15 19:53:24 1992
X--- doc/_icmd.txt	Wed Sep 16 13:44:11 1992
X***************
X*** 449,454 ****
X--- 449,455 ----
X  usage: fkmap 
X         fkmap <keyname>
X         fkmap <keyname> <keylist>
X+        fkmap -l <name>
X         fkmap -r
X         fkmap -s <file>
X  .DE
X***************
X*** 475,483 ****
X--- 476,495 ----
X  is installed immediately.  If incorrect mapping of the HOME
X  key is requested, you may lose control of ECU.
X  
X+ The -l form reads an entire funckeymap definition matching <name>
X+ from ~/.ecu/funckeymap (if not found there, in a file by the same
X+ name in the library directory).  This form behaves exactly
X+ in the same manner as the command line switch -F.
X+ Due to the drastic nature of this command, if it fails to
X+ execute properly, ECU terminates itself.  Note that
X+ improper use of this form of the command can still render
X+ ECU an albatross (with Home unrecognizable).
X+ 
X  The -r form rereads the original funckeymap definition (as
X  at program invocation), reseting the mapping.  The -s switch
X  saves the current mapping to <file>.
X+ 
X+ Switches may not be combined.  Only one switch may appear.
X  
X  .DS L
X  Examples:
X*** ../ecu-3.22/doc/_p_cmd.txt	Tue Sep 15 19:53:35 1992
X--- doc/_p_cmd.txt	Wed Sep 16 13:44:31 1992
X***************
X*** 777,782 ****
X--- 777,783 ----
X  usage: fkmap 
X         fkmap <keyname>
X         fkmap <keyname> <keylist>
X+        fkmap -l <name>
X         fkmap -r
X         fkmap -s <file>
X  .DE
X***************
X*** 802,807 ****
X--- 803,817 ----
X  is installed immediately.  If incorrect mapping of the HOME
X  key is requested, you may lose control of ECU.
X  
X+ The -l form reads an entire funckeymap definition matching <name>
X+ from ~/.ecu/funckeymap (if not found there, in a file by the same
X+ name in the library directory).  This form behaves exactly
X+ in the same manner as the command line switch -F.
X+ Due to the drastic nature of this command, if it fails to
X+ execute properly, ECU terminates itself.  Note that
X+ improper use of this form of the command can still render
X+ ECU an albatross (with Home unrecognizable).
X+ 
X  The -r form rereads the original funckeymap definition (as
X  at program invocation), reseting the mapping.  The -s switch
X  saves the current mapping to <file>.
X***************
X*** 808,813 ****
X--- 818,824 ----
X  
X  Note: the fkmap command line must contain literal text.
X  No variable or expression expansions are not done.
X+ Switches may not be combined.  Only one switch may appear.
X  
X  .DS L
X  Examples:
X*** ../ecu-3.22/ecu.c	Tue Sep 15 19:43:56 1992
X--- ecu.c	Thu Sep 17 06:29:03 1992
X***************
X*** 63,69 ****
X  extern char kbdintr;		/* current input INTR */
X  extern char kbdkill;		/* current input KILL */
X  extern char kbdquit;		/* current input QUIT */
X- extern char kbd_is_7bit;	/* keyboard has parity */
X  extern uint tcap_LINES;
X  extern uint tcap_COLS;
X  extern ulong colors_current;
X--- 63,68 ----
X*** ../ecu-3.22/ecuicmd.c	Wed Sep 16 11:38:26 1992
X--- ecuicmd.c	Thu Sep 17 06:30:08 1992
X***************
X*** 9,14 ****
X--- 9,15 ----
X  
X  ------------------------------------------------------------------------*/
X  /*+:EDITS:*/
X+ /*:09-17-1992-06:27-wht@n4hgf-add <7-bit kbd> to stat */
X  /*:09-13-1992-12:52-wht@n4hgf-show tty_is_scoterm during stat */
X  /*:09-10-1992-13:58-wht@n4hgf-ECU release 3.20 */
X  /*:08-30-1992-23:15-wht@n4hgf-add fkmap */
X***************
X*** 49,54 ****
X--- 50,56 ----
X  
X  char *bell_notify_text();
X  
X+ extern char kbd_is_7bit;	/* keyboard has parity */
X  extern KDE keyset_table[];
X  extern char *makedate;
X  extern char curr_dir[CURR_DIRSIZ];
X***************
X*** 665,670 ****
X--- 667,674 ----
X  		if(tty_is_pts)
X  			ff(se,"<pts> ");
X  #endif /* METROLINK_X11R4_PTS */
X+ 		if(kbd_is_7bit)
X+ 			ff(se,"<7-bit kbd> ");
X  		ff(se,"\r\n");
X  
X  #if defined(USE_ECUUNGETTY)
X*** ../ecu-3.22/ecunumrev.c	Tue Sep 15 19:45:06 1992
X--- ecunumrev.c	Wed Sep 16 14:13:17 1992
X***************
X*** 9,14 ****
X--- 9,15 ----
X  
X  ------------------------------------------------------------------------*/
X  /*+:EDITS:*/
X+ /*:09-16-1992-14:13-wht@n4hgf-add M and F version qualifiers */
X  /*:09-10-1992-13:58-wht@n4hgf-ECU release 3.20 */
X  /*:08-22-1992-15:38-wht@n4hgf-ECU release 3.20 BETA */
X  /*:11-16-1991-17:05-wht@n4hgf-better development "x" rev numbering */
X***************
X*** 124,129 ****
X--- 125,136 ----
X  #endif
X  #endif /*  */
X  
X+ #ifdef MORSE
X+ 	strcat(s128,"M");
X+ #endif /* WHT */
X+ #ifdef FASI
X+ 	strcat(s128,"F");
X+ #endif /* WHT */
X  #ifdef WHT
X  	strcat(s128,"*");
X  #endif /* WHT */
X*** ../ecu-3.22/ecusighdl.c	Tue Sep 15 19:45:45 1992
X--- ecusighdl.c	Wed Sep 16 13:46:05 1992
X***************
X*** 29,34 ****
X--- 29,35 ----
X  
X  ------------------------------------------------------------------------*/
X  /*+:EDITS:*/
X+ /*:09-16-1992-13:29-wht@n4hgf-add TERMECU_UNRECOVERABLE text */
X  /*:09-10-1992-13:59-wht@n4hgf-ECU release 3.20 */
X  /*:08-22-1992-15:38-wht@n4hgf-ECU release 3.20 BETA */
X  /*:08-17-1992-04:55-wht@n4hgf-keep rcvr pid in shm for friend code */
X***************
X*** 235,243 ****
X  		case TERMECU_SHM_ABL: return("SHM ABL error");
X  		case TERMECU_SHM_RTL: return("SHM RTL error");
X  		case TERMECU_TTYIN_READ_ERROR: return("keyboard read error");
X  		case TERMECU_USAGE: return("usage");
X  		case TERMECU_XMTR_FATAL_ERROR: return("detected XMTR FATAL ERROR");
X- 		case TERMECU_XMTR_WRITE_ERROR: return("line write error");
X  		default:
X  			sprintf(errant,"code %u?",code);
X  			return(errant);
X--- 236,244 ----
X  		case TERMECU_SHM_ABL: return("SHM ABL error");
X  		case TERMECU_SHM_RTL: return("SHM RTL error");
X  		case TERMECU_TTYIN_READ_ERROR: return("keyboard read error");
X+ 		case TERMECU_UNRECOVERABLE: return("unrecoverable error");
X  		case TERMECU_USAGE: return("usage");
X  		case TERMECU_XMTR_FATAL_ERROR: return("detected XMTR FATAL ERROR");
X  		default:
X  			sprintf(errant,"code %u?",code);
X  			return(errant);
X*** ../ecu-3.22/ecutty.c	Wed Sep 16 11:38:50 1992
X--- ecutty.c	Tue Sep 15 18:52:23 1992
X***************
X*** 83,88 ****
X--- 83,89 ----
X  
X  --------------------------------------------------------------------------*/
X  /*+:EDITS:*/
X+ /*:09-15-1992-18:52-wht@n4hgf-left some debug code in patch01 dammit */
X  /*:09-13-1992-12:52-wht@n4hgf-add tty_is_scoterm */
X  /*:09-10-1992-13:59-wht@n4hgf-ECU release 3.20 */
X  /*:08-30-1992-07:42-wht@n4hgf-implement USE_COLOR+turn off ESIX color for now */
X*** ../ecu-3.22/ecuusage.c	Tue Sep 15 19:46:13 1992
X--- ecuusage.c	Wed Sep 16 13:56:26 1992
X***************
X*** 3,8 ****
X--- 3,9 ----
X  	wht@n4hgf.Mt-Park.GA.US
X  
X    Defined functions:
X+ 	fkmap_cmd_usage()
X  	general_usage(uptr)
X  	log_cmd_usage()
X  	usage()
X***************
X*** 9,14 ****
X--- 10,16 ----
X  
X  ------------------------------------------------------------------------*/
X  /*+:EDITS:*/
X+ /*:09-16-1992-13:54-wht@n4hgf-add fkmap usage */
X  /*:09-10-1992-13:59-wht@n4hgf-ECU release 3.20 */
X  /*:08-22-1992-15:38-wht@n4hgf-ECU release 3.20 BETA */
X  /*:04-24-1992-21:07-wht@n4hgf-put defaults back into cmd line usage */
X***************
X*** 63,68 ****
X--- 65,81 ----
X  	(char *)0		/* terminated with null pointer */
X  };
X  
X+ char *fkmap_cmd_usage_text[] = 
X+ {
X+ "usage: fkmap \n",
X+ "       fkmap <keyname>\n",
X+ "       fkmap <keyname> <keylist>\n",
X+ "       fkmap -l <name>\n",
X+ "       fkmap -r\n",
X+ "       fkmap -s <file>\n",
X+ 	(char *)0		/* terminated with null pointer */
X+ };
X+ 
X  /*+-----------------------------------------------------------------------
X  	general_usage(uptr)
X  ------------------------------------------------------------------------*/
X***************
X*** 96,100 ****
X--- 109,122 ----
X  {
X  	general_usage(log_cmd_usage_text);
X  }	/* end of log_cmd_usage */
X+ 
X+ /*+-------------------------------------------------------------------------
X+ 	fkmap_cmd_usage()
X+ --------------------------------------------------------------------------*/
X+ void
X+ fkmap_cmd_usage()
X+ {
X+ 	general_usage(fkmap_cmd_usage_text);
X+ }	/* end of fkmap_cmd_usage */
X  
X  /* vi: set tabstop=4 shiftwidth=4: */
X*** ../ecu-3.22/ecuxkey.h	Tue Sep 15 19:46:37 1992
X--- ecuxkey.h	Thu Sep 17 05:17:56 1992
X***************
X*** 7,12 ****
X--- 7,13 ----
X  unadvisable.
X  --------------------------------------------------------------------------*/
X  /*+:EDITS:*/
X+ /*:09-17-1992-05:16-wht@n4hgf-finally, 0xE1-0xFA as promised in 3.10  */
X  /*:09-10-1992-13:59-wht@n4hgf-ECU release 3.20 */
X  /*:08-22-1992-15:38-wht@n4hgf-ECU release 3.20 BETA */
X  /*:03-27-1992-16:21-wht@n4hgf-re-include protection for all .h files */
X***************
X*** 60,66 ****
X   * extended ALT+[a-z] codes
X   */
X  #define XF_ALTA	0xE1			/* depends on /usr/lib/keyboard keys ... */
X! #define XF_ALTZ	((unsigned)(0xE0+'z'-'a'))	/* ... mapping ALT-a to 0xE0, etc */
X  
X  #endif /* _ecuxkey_h */
X  
X--- 61,67 ----
X   * extended ALT+[a-z] codes
X   */
X  #define XF_ALTA	0xE1			/* depends on /usr/lib/keyboard keys ... */
X! #define XF_ALTZ	((unsigned)(0xE1+'z'-'a'))	/* ... mapping ALT-a to 0xE0, etc */
X  
X  #endif /* _ecuxkey_h */
X  
X*** ../ecu-3.22/funckeymap.c	Tue Sep 15 19:47:00 1992
X--- funckeymap.c	Wed Sep 16 14:07:39 1992
X***************
X*** 14,19 ****
X--- 14,20 ----
X  
X  ------------------------------------------------------------------*/
X  /*+:EDITS:*/
X+ /*:09-16-1992-13:33-wht@n4hgf-add fkmap -l name */
X  /*:09-10-1992-13:59-wht@n4hgf-ECU release 3.20 */
X  /*:08-30-1992-23:06-wht@n4hgf-add fkmap_command */
X  /*:08-22-1992-15:38-wht@n4hgf-ECU release 3.20 BETA */
X***************
X*** 234,240 ****
X  		{
X  			ff(stderr,"'funckeymap' not in ~/.ecu or %s; unable to proceed\r\n",
X  				eculibdir);
X! 			termecu(TERMECU_CONFIG_ERROR);
X  		}
X  	}
X  
X--- 235,241 ----
X  		{
X  			ff(stderr,"'funckeymap' not in ~/.ecu or %s; unable to proceed\r\n",
X  				eculibdir);
X! 			termecu(TERMECU_UNRECOVERABLE);
X  		}
X  	}
X  
X***************
X*** 254,260 ****
X  	{
X  		ff(stderr,"terminal type '%s'\r\n",name);
X  		ff(stderr,"not found in %s; unable to proceed\r\n",ecukeys_name);
X! 		termecu(TERMECU_CONFIG_ERROR);
X  	}
X  
X  /* read past any other funckeymap names matching this set */
X--- 255,261 ----
X  	{
X  		ff(stderr,"terminal type '%s'\r\n",name);
X  		ff(stderr,"not found in %s; unable to proceed\r\n",ecukeys_name);
X! 		termecu(TERMECU_UNRECOVERABLE);
X  	}
X  
X  /* read past any other funckeymap names matching this set */
X***************
X*** 272,278 ****
X  		ff(stderr,
X  			"terminal type '%s' has null entry in %s; unable to proceed\r\n",
X  			name,ecukeys_name);
X! 		termecu(TERMECU_CONFIG_ERROR);
X  	}
X  
X  /* we found the definition ... process it */
X--- 273,279 ----
X  		ff(stderr,
X  			"terminal type '%s' has null entry in %s; unable to proceed\r\n",
X  			name,ecukeys_name);
X! 		termecu(TERMECU_UNRECOVERABLE);
X  	}
X  
X  /* we found the definition ... process it */
X***************
X*** 304,310 ****
X  		errstat = 2;
X  	}
X  	if((errstat == 2) || (errstat && tty_not_char_special))
X! 		termecu(TERMECU_CONFIG_ERROR);
X  
X  	if(errstat)
X  	{
X--- 305,311 ----
X  		errstat = 2;
X  	}
X  	if((errstat == 2) || (errstat && tty_not_char_special))
X! 		termecu(TERMECU_UNRECOVERABLE);
X  
X  	if(errstat)
X  	{
X***************
X*** 316,323 ****
X  			return;
X  		}
X  		ff(stderr,"NO\r\n");
X! 		termecu(TERMECU_CONFIG_ERROR);
X! 		/*NOTREACHED*/
X  	}
X  
X  }	/* end of funckeymap_read */
X--- 317,323 ----
X  			return;
X  		}
X  		ff(stderr,"NO\r\n");
X! 		termecu(TERMECU_UNRECOVERABLE);
X  	}
X  
X  }	/* end of funckeymap_read */
X***************
X*** 487,492 ****
X--- 487,498 ----
X  			case 'r': /* reset */
X  				if(err)
X  					break;
X+ 				if(iargv != (argc - 1))
X+ 				{
X+ 					pputs("no arguments allowed for -r\n");
X+ 					err = 1;
X+ 					break;
X+ 				}
X  				if(dash_f_funckeytype)
X  					ftype =	dash_f_funckeytype;
X  				else
X***************
X*** 495,502 ****
X  					funckeymap_read((ftype) ? ftype : ttype);
X  				if(!proc_level || proctrace)
X  					pputs("funckeymap reset to startup configuration\n");
X- 				if(iargv != (argc - 1))
X- 					pputs("extra arguments ignored\n");
X  				return(0);
X  
X  			case 's': /* save in file */
X--- 501,506 ----
X***************
X*** 505,511 ****
X  				if(iargv != (argc - 2))
X  				{
X  					pputs("exactly one argument required for -s\n");
X! 					return(eFATAL_ALREADY);
X  				}
X  				iargv++;
X  				if(!(fp = fopen(argv[iargv],"a")))
X--- 509,516 ----
X  				if(iargv != (argc - 2))
X  				{
X  					pputs("exactly one argument required for -s\n");
X! 					err = 1;
X! 					break;
X  				}
X  				iargv++;
X  				if(!(fp = fopen(argv[iargv],"a")))
X***************
X*** 519,524 ****
X--- 524,542 ----
X  					pprintf("current mapping saved in %s\n",argv[iargv]);
X  				return(0);
X  
X+ 			case 'l': /* load entire */
X+ 				if(err)
X+ 					break;
X+ 				if(iargv != (argc - 2))
X+ 				{
X+ 					pputs("exactly one argument required for -l\n");
X+ 					err = 1;
X+ 					break;
X+ 				}
X+ 				iargv++;
X+ 				funckeymap_read(argv[iargv]);
X+ 				return(0);
X+ 
X  			default:
X  				pprintf("unknown switch -%c\n",*arg);
X  				err = 1;
X***************
X*** 527,533 ****
X--- 545,554 ----
X  	}
X  
X  	if(err)
X+ 	{
X+ 		fkmap_cmd_usage();
X  		return(eFATAL_ALREADY);
X+ 	}
X  
X  	if(iargv == argc)
X  	{
X*** ../ecu-3.22/gendial/dialer.h	Tue Sep 15 19:51:32 1992
X--- gendial/dialer.h	Mon Sep 28 14:01:16 1992
X***************
X*** 5,12 ****
X  /*+:EDITS:*/
X  /*:09-10-1992-13:59-wht@n4hgf-ECU release 3.20 */
X  /*:08-22-1992-15:38-wht@n4hgf-ECU release 3.20 BETA */
X! /*:03/29/92:12:47:49-cma-added <sys/filio.h> */
X! /*:03/29/92:12:30:01-cma-added <sys/time.h> */
X  /*:01-26-1992-15:30-wht@n4hgf-gendial 1.2 for ecu 3.20- better hangup */
X  /*:07-25-1991-12:58-wht@n4hgf-ECU release 3.10 */
X  /*:03-12-1991-19:11-wht@n4hgf-if ecu dialing, show complete call progress */
X--- 5,12 ----
X  /*+:EDITS:*/
X  /*:09-10-1992-13:59-wht@n4hgf-ECU release 3.20 */
X  /*:08-22-1992-15:38-wht@n4hgf-ECU release 3.20 BETA */
X! /*:03-29-1992:12:47-cma@ifsbd-added <sys/filio.h> */
X! /*:03-29-1992:12:30-cma@ifsbd-added <sys/time.h> */
X  /*:01-26-1992-15:30-wht@n4hgf-gendial 1.2 for ecu 3.20- better hangup */
X  /*:07-25-1991-12:58-wht@n4hgf-ECU release 3.10 */
X  /*:03-12-1991-19:11-wht@n4hgf-if ecu dialing, show complete call progress */
X*** ../ecu-3.22/hdbintf.c	Wed Sep 16 11:38:33 1992
X--- hdbintf.c	Mon Sep 28 10:15:22 1992
X***************
X*** 626,631 ****
X--- 626,632 ----
X  DVE *
X  getdvent()
X  {
X+ 	int itmp;
X  #define MAX_DV_TOKENS 9
X  	char *tokens[MAX_DV_TOKENS];
X  	int ntokens;
X***************
X*** 725,738 ****
X  	dve.type = tokens[0];
X  	dve.line = tokens[1];
X  
X! #if defined(SVR4)
X! 	{ /* get rid of possible SVR4 ",M" modem control suffix */
X! 		int itmp;
X! 		itmp = strlen(dve.line);
X! 		if((itmp > 2) && !strcmp(dve.line + itmp - 2,",M"))
X! 		  dve.line[itmp - 2] = 0;
X! 	}
X! #endif /* SVR4 */
X  
X  	dve.dialer = tokens[2];
X  	if(!strcmpi(tokens[3],"Any"))
X--- 726,737 ----
X  	dve.type = tokens[0];
X  	dve.line = tokens[1];
X  
X! 	/*
X! 	 * get rid of possible SVR4 ",M" modem control suffix
X! 	 */
X! 	itmp = strlen(dve.line);
X! 	if((itmp > 2) && !strcmp(dve.line + itmp - 2,",M"))
X! 	  dve.line[itmp - 2] = 0;
X  
X  	dve.dialer = tokens[2];
X  	if(!strcmpi(tokens[3],"Any"))
X*** ../ecu-3.22/help/ecuhelp.src	Tue Sep 15 19:49:32 1992
X--- help/ecuhelp.src	Wed Sep 16 14:56:05 1992
X***************
X*** 221,226 ****
X--- 221,227 ----
X  Usage: fkmap                           display current mapping
X         fkmap <keyname>                 display single key mapping
X         fkmap <keyname> <keylist>       modify a key's mapping
X+        fkmap -l <name>
X         fkmap -r                        reset to original mapping
X         fkmap -s <file>                 append current to file
X  
X***************
X*** 238,243 ****
X--- 239,246 ----
X  WARNING: If found to be syntactically correct, a mapping change is
X  installed immediately.  If incorrect mapping of the HOME key is requested,
X  you may lose control of ECU.
X+ 
X+ For a description of the other options, see the manual.
X  #--------------------------------------------------------------------
X  %hangup
X  Usage: hangup
X*** ../ecu-3.22/models/funckeymap	Tue Sep 15 19:54:17 1992
X--- models/funckeymap	Wed Sep 16 13:22:01 1992
X***************
X*** 470,472 ****
X--- 470,538 ----
X      CUL:CUL:        esc [ D
X      CUR:CUR:        esc [ C
X  
X+ #+-------------------------------------------------------------------
X+ # funckeymap definition for TERM='xterm' 
X+ # ODT 2.0 + Roell x386 1.1b + Sun OW2 + Sun MIT combined
X+ #
X+ # XTerm*VT100*Translations: #override\
X+ #      <Key>Home:       string(0x1b) string("[H") \n \
X+ #      <Key>KP_Home:    string(0x1b) string("[H") \n \
X+ #      <Key>F27:        string(0x1b) string("[H") \n \
X+ #      <Key>End:        string(0x1b) string("[F") \n \
X+ #      <Key>KP_End:     string(0x1b) string("[F") \n \
X+ #      <Key>R13:        string(0x1b) string("[F") \n \
X+ #      <Key>Prior:      string(0x1b) string("[I") \n \
X+ #      <Key>F29:        string(0x1b) string("[I") \n \
X+ #      <Key>Next:       string(0x1b) string("[G") \n \
X+ #      <Key>KP_Next:    string(0x1b) string("[G") \n \
X+ #      <Key>F35:        string(0x1b) string("[G") \n \
X+ #      <Key>KP_Begin:   string(0x1b) string("[E") \n \
X+ #      <Key>Begin:      string(0x1b) string("[E") \n \
X+ #      <Key>F31:        string(0x1b) string("[E") \n \
X+ #      <Key>KP_Insert:  string(0x1b) string("[L") \n \
X+ #      <Key>Insert:     string(0x1b) string("[L") \n \
X+ #      Shift <Key>Tab:  string(0x1b) string("[Z") \n 
X+ #
X+ # OW2/nEwS doesn't include F11 or F12 in its limited domaine, xev for both:
X+ # state 0x0, keycode 16 (keysym 0x1005ff10, (no name)), same_screen YES,
X+ # XLookupString gives 0 characters:  ""
X+ # (keycode 16 for F11, 18 for F12)
X+ #
X+ # built by kbdtest3 3.21 Wed Sep 16 12:58:06 1992
X+ # keyboard parity required = even
X+ # stty -a at kbdtest3 execution time:
X+ # speed 9600 baud;   ispeed 9600 baud;   ospeed 9600 baud; 
X+ # line = 0; intr = ^C; quit = ^\; erase = ^H; kill = ^U; eof = ^D; eol = ^@; 
X+ # swtch = ^@;susp = ^Z;start = ^Q;stop = ^S;
X+ # parenb -parodd cs8 -cstopb hupcl cread -clocal -loblk -crtsfl -ctsflow -rtsflow 
X+ # -ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl -iuclc 
X+ # ixon -ixany -ixoff 
X+ # isig icanon -xcase echo echoe echok -echonl -noflsh -iexten -tostop -xclude 
X+ # opost -olcuc onlcr -ocrnl -onocr -onlret -ofill -ofdel 
X+ # -isscancode 
X+ #--------------------------------------------------------------------
X+ xterm
X+     BkTab:BkTab:    esc [ Z
X+     CU5:CU5:        esc [ E
X+     F1:F1:          esc [ 1 1 ~
X+     F2:F2:          esc [ 1 2 ~
X+     F3:F3:          esc [ 1 3 ~
X+     F4:F4:          esc [ 1 4 ~
X+     F5:F5:          esc [ 1 5 ~
X+     F6:F6:          esc [ 1 7 ~
X+     F7:F7:          esc [ 1 8 ~
X+     F8:F8:          esc [ 1 9 ~
X+     F9:F9:          esc [ 2 0 ~
X+     F10:F10:        esc [ 2 1 ~
X+     F11:F11:        esc [ 2 3 ~
X+     F12:F12:        esc [ 2 4 ~
X+     Ins:Ins:        esc [ L
X+     Home:Home:      esc [ H
X+     End:End:        esc [ F
X+     PgUp:PgUp:      esc [ I
X+     PgDn:PgDn:      esc [ G
X+     CUU:CUU:        esc [ A
X+     CUD:CUD:        esc [ B
X+     CUL:CUL:        esc [ D
X+     CUR:CUR:        esc [ C
X+ 
X*** ../ecu-3.22/termecu.h	Tue Sep 15 19:49:10 1992
X--- termecu.h	Wed Sep 16 13:30:04 1992
X***************
X*** 6,11 ****
X--- 6,12 ----
X    193 - 223 reserved for procedure 'exit' codes
X  --------------------------------------------------------------------------*/
X  /*+:EDITS:*/
X+ /*:09-16-1992-13:29-wht@n4hgf-add TERMECU_UNRECOVERABLE */
X  /*:09-10-1992-14:00-wht@n4hgf-ECU release 3.20 */
X  /*:08-22-1992-15:39-wht@n4hgf-ECU release 3.20 BETA */
X  /*:03-27-1992-16:21-wht@n4hgf-re-include protection for all .h files */
X***************
X*** 36,41 ****
X--- 37,43 ----
X  #define TERMECU_LOGIC_ERROR			144
X  #define TERMECU_GEOMETRY			145
X  #define TERMECU_IPC_ERROR			146
X+ #define TERMECU_UNRECOVERABLE		147
X  
X  #define TERMECU_INIT_PROC_ERROR		192
X  
SHAR_EOF
chmod 0644 PATCH03 ||
echo 'restore of PATCH03 failed'
Wc_c="`wc -c < 'PATCH03'`"
test 20515 -eq "$Wc_c" ||
	echo 'PATCH03: original size 20515, current size' "$Wc_c"
fi
# ============= README.Q-and-A ==============
if test -f 'README.Q-and-A' -a X"$1" != X"-c"; then
	echo 'x - skipping README.Q-and-A (File already exists)'
else
echo 'x - extracting README.Q-and-A (Text)'
sed 's/^X//' << 'SHAR_EOF' > 'README.Q-and-A' &&
XPrevious contents were deleted.
X-----------------------------------------------------------------------
XWhy do I get "Device busy" on trying to open a line I know
Xno one is using?
X
XIf you are using FAS or a driver of a similar discipline,
XEBUSY can be returned if (from fas.c):
X"If the device is already open and another open uses a different
Xopen mode or if a getty open waits for carrier and doesn't allow
Xparallel dialout opens, return with EBUSY error."
X
XGetty can disallow parallel dialouts if it opens a line whose
X"magic number" contains 11 in the the 0xC0 position.
XFrom the fas README:
X
X   Bitmap:   m m f f x x x x
X      `m m' are the mode bits as follows:
X       ...
X       1 0   The device is carrier controlled. It blocks on open if
X             there is no carrier.
X       1 1   Same as mode `1 0', but a parallel non-blocking open
X             is possible while waiting for carrier.
X
XUsing 11 in the mm bit positions are the correct choice for ISC
Xto mimic the ISC asy driver behavior.  On SCO, you should set
Xthese bits to 10 for the "modem" or "getty" (uppercase) name to
Xmimic the sio driver behavior.  There are other mechanisms for
Xhandling use collisions.
X
XIf you are using some other driver, the ISC behavior may
Xbe the only option available.
X-----------------------------------------------------------------------
XOne thing that I would like to see is some sort of side utility
Xfor changing colors in a shell like ecu does when I run it...it
Xleaves the colors permanent for me.  Love the blues and yellows
Xthat I have set up for trn...makes things actually easier on the
Xeyes to read.
X
XColor is supported fully on SCO and partially on ISC.  Code for
XSVR4 has been turned off (I had reports it was "broken").  Since
Xxterms are the only things that make sense on the Sun (who uses
Xthe console?  shelltool/cmdtool?  barf/vomit/just-say-no), color
Xhas not been attempted there.  Does anyone know about a working
X"colxterm." I tried long and relatively hard a couple of years
Xago to port it to SCO with no joy.
X
XSCO has an ioctl(screen_file_descriptor,GIO_ATTR,&character) that
Xreturns a 6845-style attribute byte (foreground and background
Xnibble pair).  I use that at initialization time (ecutty.c
Xget_initial_colors()) by asserting reverse video and reading the
Xcolors, then setting normal and reading those colors.  (On SCO,
X"reverse" and "normal" can be set to arbitrary pairs of colors,
Xnot just flipped from each other).  These values safely
Xsquirrelled away, ECU or the user can do what they want.  When
XECU exits (ecutty.c restore_initial_colors()).
X
XThis save/restore feature is turned on only for SCO (#ifdef M_SYSV).
XPerhaps it should be #ifdef GIO_ATTR, but SCO only included the
Xidentifier in sys/console.h recently.  I have no idea who else
Xhas it (oh yes I do ... ISC sys/kd.h has it).
X
XIf anybody wants to look into this, I'm sure there are many who
Xwould appreciate it.
SHAR_EOF
chmod 0644 README.Q-and-A ||
echo 'restore of README.Q-and-A failed'
Wc_c="`wc -c < 'README.Q-and-A'`"
test 2906 -eq "$Wc_c" ||
	echo 'README.Q-and-A: original size 2906, current size' "$Wc_c"
fi
# ============= mapkey/README ==============
if test ! -d 'mapkey'; then
    echo 'x - creating directory mapkey'
    mkdir 'mapkey'
fi
if test -f 'mapkey/README' -a X"$1" != X"-c"; then
	echo 'x - skipping mapkey/README (File already exists)'
else
echo 'x - extracting mapkey/README (Text)'
sed 's/^X//' << 'SHAR_EOF' > 'mapkey/README' &&
X
X#+:EDITS:*/
X#:09-17-1992-05:33-wht@n4hgf-0xE0 should read 0xE1
X#:09-10-1992-13:59-wht@n4hgf-ECU release 3.20
X#:08-22-1992-15:39-wht@n4hgf-ECU release 3.20 BETA
X#:05-02-1991-01:57-wht@n4hgf-alt-[a-z] range moved from 0x80-0x99 to 0xe0-0xf9
X
XThis file contains information necessary to map ALT-A through ALT-Z
Xin accordance with ecuxkey.h to produce unique codes so that
XALT-[a-z] can cause ECU to execute procedures with a single keystroke.
X
XBeginning with ECU 3.23, the key code range changed:
X      128 through 153 (0x80 through 0x99)     to
X      229 through 249 (0xE1 through 0xFA)
X
XModify your /usr/lib/keyboard/keys value for the ALT values for
Xkey codes matching keys [a-z] as follows.  If you have made no 
Xother changes to your key file, use the supplied keys.usa.ecu
X
XMy apologies to those caught by having already done something
Xsimilar for EMACS or CRISP.
X
XThese are the necessary differences:
X
X                                ALT-unshifted
X                                     |
X                                     V
X    16  'q'    'Q'    dc1    dc1    0xf1   'Q'    dc1    dc1     C
X    17  'w'    'W'    etb    etb    0xf7   'W'    etb    etb     C
X    18  'e'    'E'    enq    enq    0xe5   'E'    enq    enq     C
X    19  'r'    'R'    dc2    dc2    0xf2   'R'    dc2    dc2     C
X    20  't'    'T'    dc4    dc4    0xf4   'T'    dc4    dc4     C
X    21  'y'    'Y'    em     em     0xf9   'Y'    em     em      C
X    22  'u'    'U'    nak    nak    0xf5   'U'    nak    nak     C
X    23  'i'    'I'    ht     ht     0xe9   'I'    ht     ht      C
X    24  'o'    'O'    si     si     0xef   'O'    si     si      C
X    25  'p'    'P'    dle    dle    0xf0   'P'    dle    dle     C
X    30  'a'    'A'    soh    soh    0xe1   'A'    soh    soh     C
X    31  's'    'S'    dc3    dc3    0xf3   'S'    dc3    dc3     C
X    32  'd'    'D'    eot    eot    0xe4   'D'    eot    eot     C
X    33  'f'    'F'    ack    ack    0xe6   'F'    ack    ack     C
X    34  'g'    'G'    bel    bel    0xe7   'G'    bel    bel     C
X    35  'h'    'H'    bs     bs     0xe8   'H'    bs     bs      C
X    36  'j'    'J'    nl     nl     0xea   'J'    nl     nl      C
X    37  'k'    'K'    vt     vt     0xeb   'K'    vt     vt      C
X    38  'l'    'L'    np     np     0xec   'L'    np     np      C
X    44  'z'    'Z'    sub    sub    0xfa   'Z'    sub    sub     C
X    45  'x'    'X'    can    can    0xf8   'X'    can    can     C
X    46  'c'    'C'    etx    etx    0xe3   'C'    etx    etx     C
X    47  'v'    'V'    syn    syn    0xf6   'V'    syn    syn     C
X    48  'b'    'B'    stx    stx    0xe2   'B'    stx    stx     C
X    49  'n'    'N'    so     so     0xee   'N'    so     so      C
X    50  'm'    'M'    cr     cr     0xed   'M'    cr     cr      C
X
SHAR_EOF
chmod 0644 mapkey/README ||
echo 'restore of mapkey/README failed'
Wc_c="`wc -c < 'mapkey/README'`"
test 2774 -eq "$Wc_c" ||
	echo 'mapkey/README: original size 2774, current size' "$Wc_c"
fi
exit 0

---------------------------------------------------------------------------
Warren Tucker, TuckerWare, Roswell, GA              wht@n4hgf.Mt-Park.GA.US
"Given any new technology for transmitting information, we seem bound to
use it for great quantities of small talk.  We are only saved by music
from being overwhelmed by nonsense." -- Lewis Thomas, _The Lives of a Cell_
Technical Details
Message-ID: <BvnsML.LrD@tridom.com>
Path: arc1-ca.pugleaf.net!sparky!uunet!gumby!wupost!emory!tridom!wht

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!sparky!uunet!gumby!wupost!emory!tridom!wht
From: wht@tridom (Warren H. Tucker)
Newsgroups: comp.sources.d
Subject: ecu 3.20 patch 3
Message-ID: <BvnsML.LrD@tridom.com>
Date: 5 Oct 92 17:30:20 GMT
Sender: news@tridom.com
Organization: Tridom Corporation, Marietta GA
Lines: 903
Nntp-Posting-Host: tridom.eng.tridom.com
X-Newsreader: Tin 1.1 PL4