[comp.sources.amiga] v90i138: vt100 2.9b - diffs to vt100 2.9a terminal emulator, Part01/01

Amiga-Request@cs.odu.edu (Amiga Sources/Binaries Moderator) (04/15/90)

Submitted-by: acs@pccuts.pcc.amdahl.com (Tony Sumrall)
Posting-number: Volume 90, Issue 138
Archive-name: comm/vt100-2.9b/part01

Enclosed are the context diffs which, when applied to the VT100 2.9A
source, will bring it up to the 2.9B level.  2.9B fixes a few problems
which were present in 2.9A and adds 2 new commands: OVERSCAN and CLOSE.
CLOSE allows the user to close the VT100 Info/Xfer Status window via script
or AREXX command.  When using a custom screen (SCREEN CUSTOM specified in
vt100.init), OVERSCAN directs VT100 to ignore the system's suggested limit
on screen size and use, instead, the value computed from the LINES command.
See the updated vt100.doc for more information.

You can apply these patches by hand or use patch version 2.0 from Fish
disk # 129 or patch from Fish disk # 296 (personally, I recommend the one
from Fish 296).

To install the patches using patch:
* cd to a directory containing VT100 2.9A source
* make a copy of the source (for safekeeping)
* say
     patch < patchfile
  where "patchfile" is the name of the file containing the patches
* rebuild VT100.

If you encounter any problems, please let me know.

#!/bin/sh
# This is a shell archive.  Remove anything before this line, then unpack
# it by saving it into a file and typing "sh file".  To overwrite existing
# files, type "sh file -c".  You can also feed this as standard input via
# unshar, or by typing "sh <file", e.g..  If this archive is complete, you
# will see the following message at the end:
#		"End of archive 1 (of 1)."
# Contents:  2.9a-2.9b.diffs
# Wrapped by tadguy@xanth on Sat Apr 14 16:54:16 1990
PATH=/bin:/usr/bin:/usr/ucb ; export PATH
if test -f '2.9a-2.9b.diffs' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'2.9a-2.9b.diffs'\"
else
echo shar: Extracting \"'2.9a-2.9b.diffs'\" \(23541 characters\)
sed "s/^X//" >'2.9a-2.9b.diffs' <<'END_OF_FILE'
XIndex: vt100.h
XPrereq: 1.4
X*** ../29A/vt100.h	Mon Mar 19 09:44:24 1990
X--- ./vt100.h	Mon Mar 19 09:44:35 1990
X***************
X*** 1,3 ****
X! #define HRCSID "$RCSfile: vt100.h,v $ $Revision: 1.4 $"
X  
X  /*********************************************************************
X--- 1,3 ----
X! #define HRCSID "$RCSfile: vt100.h,v $ $Revision: 1.6 $"
X  
X  /*********************************************************************
X***************
X*** 6,9 ****
X--- 6,16 ----
X   *
X   * $Log:	vt100.h,v $
X+  * Revision 1.6  90/03/13  21:34:10  acs
X+  * Update VERSION to 2.9B.
X+  * 
X+  * Revision 1.5  90/02/18  16:54:48  acs
X+  * 1) New script routines cmd_overscan() and cmd_close().
X+  * 2) New p_ variable: p_overscan.
X+  * 
X   * Revision 1.4  90/02/12  20:23:52  acs
X   * 1) Update date stamp in VERSION for the release of 2.9A.
X***************
X*** 39,43 ****
X  
X  /********* major version (used for title of terminal window) *********/
X! #define	VERSION	"VT100 (V2.9A ACS 900212) Terminal Window"
X  
X  /*********** ########  define the compiler type here ######## ********/
X--- 46,50 ----
X  
X  /********* major version (used for title of terminal window) *********/
X! #define	VERSION	"VT100 (V2.9B ACS 900313) Terminal Window"
X  
X  /*********** ########  define the compiler type here ######## ********/
X***************
X*** 276,280 ****
X  extern UBYTE	*BeepWave;
X  extern UBYTE	Audio_AllocMap[4];
X! extern int	p_baud,p_screen,p_interlace,p_depth,p_buffer,p_wbcolors;
X  extern int	p_foreground,p_background,p_bold,p_cursor,p_lines,p_mode;
X  extern int	p_parity,p_volume,p_wrap,p_echo,p_keyapp,p_curapp,p_bs_del;
X--- 283,288 ----
X  extern UBYTE	*BeepWave;
X  extern UBYTE	Audio_AllocMap[4];
X! extern int	p_baud,p_screen,p_overscan,p_interlace,p_depth,p_buffer;
X! extern int	p_wbcolors;
X  extern int	p_foreground,p_background,p_bold,p_cursor,p_lines,p_mode;
X  extern int	p_parity,p_volume,p_wrap,p_echo,p_keyapp,p_curapp,p_bs_del;
X***************
X*** 328,333 ****
X  extern int	cmd_bkg(), cmd_bold(), cmd_buf(), cmd_cursor(), cmd_depth(),
X  		cmd_device(), cmd_display(), cmd_fore(), cmd_font(),
X! 		cmd_fonts(), cmd_inter(), cmd_lines(), cmd_screen(),
X! 		cmd_unit(), cmd_volume(), cmd_wb(), cmd_null(),
X  
X  		/* script commands */
X--- 336,341 ----
X  extern int	cmd_bkg(), cmd_bold(), cmd_buf(), cmd_cursor(), cmd_depth(),
X  		cmd_device(), cmd_display(), cmd_fore(), cmd_font(),
X! 		cmd_fonts(), cmd_inter(), cmd_lines(), cmd_overscan(),
X! 		cmd_screen(), cmd_unit(), cmd_volume(), cmd_wb(), cmd_null(),
X  
X  		/* script commands */
X***************
X*** 339,344 ****
X  		/* init and script commands */
X  		cmd_ac(), cmd_appcur(), cmd_baud(), cmd_bt(), cmd_conv(),
X! 		cmd_echo(), cmd_exit(), cmd_ext(), cmd_fnc(), cmd_key(),
X! 		cmd_kmode(), cmd_kmaxpk(), cmd_mode(), cmd_mouse(),
X  		cmd_numkey(), cmd_parity(), cmd_strip(), cmd_share(),
X  		cmd_short(), cmd_swap(), cmd_wrap(), cmd_xbeep(),
X--- 347,352 ----
X  		/* init and script commands */
X  		cmd_ac(), cmd_appcur(), cmd_baud(), cmd_bt(), cmd_conv(),
X! 		cmd_close(), cmd_echo(), cmd_exit(), cmd_ext(), cmd_fnc(),
X! 		cmd_key(), cmd_kmode(), cmd_kmaxpk(), cmd_mode(), cmd_mouse(),
X  		cmd_numkey(), cmd_parity(), cmd_strip(), cmd_share(),
X  		cmd_short(), cmd_swap(), cmd_wrap(), cmd_xbeep(),
XIndex: ReleaseNotes
X*** ../29A/ReleaseNotes	Mon Mar 19 09:44:20 1990
X--- ./ReleaseNotes	Mon Mar 19 09:44:32 1990
X***************
X*** 1,4 ****
X--- 1,38 ----
X  Release Notes:
X  --------------
X+ v2.9B Hilights and fixes:
X+ 	- New command OVERSCAN which will allow the user to define, via the
X+ 	  LINES command, how large the CUSTOM screen should be.  OVERSCAN OFF
X+ 	  will constrain a custom screen to be the same size or smaller than
X+ 	  the Workbench screen while OVERSCAN ON will allow the screen to be
X+ 	  large enough to accomodate the specified number of lines.
X+ 
X+ 	  NOTE: If you are NOT using a custom screen you are still constrained
X+ 	  to the size of the Workbench screen.  OVERSCAN won't help you in
X+ 	  this situation.
X+ 
X+ 	- New command CLOSE which closes the VT100 Info/Xfer status window.
X+ 	  If CLOSE is executed you get no confirmation that a script or AREXX
X+ 	  macro has completed.  The close flag is reset at the end of each
X+ 	  script/AREXX macro.
X+ 	- Clean up returned values in script.c.
X+ 	- cleanup() code in vt100.c wouldn't always free ExtXfer array.
X+ 	- Include 2.9A hilights in this file (ReleaseNotes).
X+ v2.9A Hilights and fixes:
X+ 	- New menu item STRIP to strip parity of inbound serial data destined
X+ 	  for display.
X+ 	- Clean up menu-handling code.
X+ 	- "Classic" kermit routines weren't always freeing memory.
X+ 	- Saybye() in classic kermit didn't always work effectively disabling
X+ 	  KERMIT Bye.
X+ 	- Beep after transfers which use an external protocol.
X+ 	- File transferrs wouldn't always prompt for filename.
X+ 	- Squashed a few more bugs where I'd hard-coded the size of the font.
X+ 	- While executing a script, don't poll the serial port unless the
X+ 	  script is waiting or delaying.
X+ 	- req() in window.c would sometimes miss events.
X+ 	- Use LONG for byte count in xmodem transfers.
X+ 	- Revised menu handling.
X+ 	- Add RCS info.
X  v2.9 ?????? ACS - Many changes.  Highlights:
X  	- Open information window at far right of main window.
XIndex: init.c
XPrereq: 1.4
X*** ../29A/init.c	Mon Mar 19 09:44:21 1990
X--- ./init.c	Mon Mar 19 09:44:33 1990
X***************
X*** 1,3 ****
X! static char rcsid[] = "$RCSfile: init.c,v $ $Revision: 1.4 $";
X  
X  /***************************************************************
X--- 1,3 ----
X! static char rcsid[] = "$RCSfile: init.c,v $ $Revision: 1.6 $";
X  
X  /***************************************************************
X***************
X*** 6,9 ****
X--- 6,23 ----
X   *
X   * $Log:	init.c,v $
X+  * Revision 1.6  90/03/11  14:29:43  acs
X+  * 1) If user wants OVERSCAN and a CUSTOM SCREEN then *any* value for
X+  *    LINES is valid and we compute the  screen  size  based  on  the
X+  *    LINES  value.   Note  that  this  allows the user to specify an
X+  *    arbitrarily large (or small) screen.  This was the overwhelming
X+  *    response from USENET when I put it to a vote.  If  OVERSCAN  or
X+  *    SCREEN  wasn't  specified  then we still restrict the user to a
X+  *    screen size maximum of GfxBase->NormalDisplayRows.
X+  * 2) Compute  customfudge   earlier   so  it  can  be  used  in  the
X+  *    calculations used to implement 1, above.
X+  * 
X+  * Revision 1.5  90/02/18  17:07:03  acs
X+  * Honor OVERSCAN ON/OFF setting.
X+  * 
X   * Revision 1.4  89/12/12  22:13:56  acs
X   * 1) Strip excess blanks from the rest of the menu items.
X***************
X*** 367,373 ****
X      /* Now set up all the screen info as necessary */
X  
X!     maxrows = GfxBase->NormalDisplayRows;
X! 
X!     /*   If user wants to use the current interlace setting then set p_interlace
X      ** according to what the ViewLord says it is. */
X      if(p_interlace == 2)
X--- 381,385 ----
X      /* Now set up all the screen info as necessary */
X  
X!     /* If user wants to use the current interlace setting then set p_interlace
X      ** according to what the ViewLord says it is. */
X      if(p_interlace == 2)
X***************
X*** 376,383 ****
X  	p_interlace = 0;
X  
X!     if(p_interlace)
X! 	maxrows *= 2;
X  
X!     customfudge = (p_screen == 1) ? 4 : 0;
X  
X      /*   See if user wants to use everything available (specified LINES 0).If
X--- 388,400 ----
X  	p_interlace = 0;
X  
X!     customfudge = p_screen ? 4 : 0;
X  
X!     if(p_overscan && p_screen && p_lines)
X! 	maxrows = (p_lines * Ysize) + customfudge + Ysize + 2;
X!     else {
X! 	maxrows = GfxBase->NormalDisplayRows;
X! 	if(p_interlace)
X! 	    maxrows *= 2;
X!     }
X  
X      /*   See if user wants to use everything available (specified LINES 0).If
XIndex: rexx.c
XPrereq: 1.2
X*** ../29A/rexx.c	Mon Mar 19 09:44:22 1990
X--- ./rexx.c	Mon Mar 19 09:44:34 1990
X***************
X*** 1,3 ****
X! static char rcsid[] = "$RCSfile: rexx.c,v $ $Revision: 1.2 $";
X  
X  /*************************************************************
X--- 1,3 ----
X! static char rcsid[] = "$RCSfile: rexx.c,v $ $Revision: 1.3 $";
X  
X  /*************************************************************
X***************
X*** 6,9 ****
X--- 6,12 ----
X   *
X   * $Log:	rexx.c,v $
X+  * Revision 1.3  90/02/18  17:03:45  acs
X+  * Don't write termination msg if CLOSE has been executed.
X+  * 
X   * Revision 1.2  89/12/19  20:38:59  acs
X   * Added RCS id and change log.
X***************
X*** 23,26 ****
X--- 26,31 ----
X  extern char *extension;			/* in vt100.c		*/
X  
X+ extern int closed_info;			/* in script.c		*/
X+ 
X  #define AREXXCOMMAND 2
X  /*   Derived from:
X***************
X*** 124,130 ****
X  
X  	if(arg1 == (char *)AREXXCOMMAND) {
X! 	    if(RexxReplies == 0 && command) {
X  		LONG memlen = strlen(MacDone) + strlen(command) + 1;
X  
X  		if(message = AllocMem(memlen, MEMF_PUBLIC | MEMF_CLEAR)) {
X  		    strcpy(message, MacDone);
X--- 129,136 ----
X  
X  	if(arg1 == (char *)AREXXCOMMAND) {
X! 	    if(RexxReplies == 0 && command && !closed_info) {
X  		LONG memlen = strlen(MacDone) + strlen(command) + 1;
X  
X+ 		closed_info = 0;
X  		if(message = AllocMem(memlen, MEMF_PUBLIC | MEMF_CLEAR)) {
X  		    strcpy(message, MacDone);
XIndex: script.c
XPrereq: 1.5
X*** ../29A/script.c	Mon Mar 19 09:44:23 1990
X--- ./script.c	Mon Mar 19 09:44:34 1990
X***************
X*** 1,3 ****
X! static char rcsid[] = "$RCSfile: script.c,v $ $Revision: 1.5 $";
X  
X  /*************************************************************
X--- 1,3 ----
X! static char rcsid[] = "$RCSfile: script.c,v $ $Revision: 1.7 $";
X  
X  /*************************************************************
X***************
X*** 6,9 ****
X--- 6,20 ----
X   *
X   * $Log:	script.c,v $
X+  * Revision 1.7  90/02/22  20:58:45  acs
X+  * 1) Remove unneeded parens from return statements.
X+  * 2) Return CMDOK instead of 0 from routines whose rc counts.
X+  * 3) New routines cmd_overscan() and cmd_close() need to return a value
X+  *    (CMDOK).
X+  * 
X+  * Revision 1.6  90/02/18  16:57:10  acs
X+  * 1) Support new cmds OVERSCAN and CLOSE with cmd_overscan() and
X+  *    cmd_close().
X+  * 2) Move setvar() closer to the beginning of the file.
X+  * 
X   * Revision 1.5  89/12/14  20:32:10  acs
X   * Wasn't beeping after a transfer using external protocols.
X***************
X*** 73,76 ****
X--- 84,88 ----
X  
X  extern long atol();
X+ extern void KillReq();			/* In window.c	*/
X  
X  #if MANX
X***************
X*** 100,103 ****
X--- 112,116 ----
X  char		golabel[20];	     /* label we are looking for in goto */
X  char		on_cmd[20];	     /* command to execute when on matchs*/
X+ int		closed_info = 0;     /* info window was closed		 */
X  int		onsize;		     /* size of on_string		 */
X  int		waitsize;	     /* size of wait_string		 */
X***************
X*** 126,129 ****
X--- 139,143 ----
X  cmd_cap,	"capture",	3, SCRIPT,	/* ascii capture on/off		*/
X  cmd_cd,		"cd",		2, SCRIPT,	/* change directory		*/
X+ cmd_close,	"close",	2, INIT|SCRIPT,	/* close the info window	*/
X  cmd_conv,	"convert",	4, INIT|SCRIPT,	/* convert fn to lowercase	*/
X  cmd_cursor,	"cursor",	3, INIT,	/* set cursor color		*/
X***************
X*** 156,159 ****
X--- 170,174 ----
X  cmd_numkey,	"numkey",	6, INIT|SCRIPT,	/* turn numeric kpad on/off	*/
X  cmd_on,		"on",		2, SCRIPT,	/* on a 'string' do a cmd	*/
X+ cmd_overscan,	"overscan",	2, INIT,	/* Overscan OK on custom screen	*/
X  cmd_parity,	"parity",	6, INIT|SCRIPT,	/* Set Parity			*/
X  cmd_recf,	"recfile",	4, SCRIPT,	/* receive a file from host	*/
X***************
X*** 425,429 ****
X  		} else
X  		    InfoMsg2Line("Script:", errmsg);
X! 	    return(cmdrc);
X  	}
X      }
X--- 440,444 ----
X  		} else
X  		    InfoMsg2Line("Script:", errmsg);
X! 	    return cmdrc;
X  	}
X      }
X***************
X*** 433,437 ****
X  	cmdrc = cmd_rx(p);
X  	implied_rexx = 0;
X! 	return(cmdrc);
X      }
X  #endif /* AREXX */
X--- 448,452 ----
X  	cmdrc = cmd_rx(p);
X  	implied_rexx = 0;
X! 	return cmdrc;
X      }
X  #endif /* AREXX */
X***************
X*** 453,460 ****
X      label = lbase;
X      while(label != NULL) {
X! 	if (strcmp(label->name, lname) == 0) return (label);
X  	label = label->next;
X      }
X!     return(NULL);
X  }
X  
X--- 468,476 ----
X      label = lbase;
X      while(label != NULL) {
X! 	if (strcmp(label->name, lname) == 0)
X! 	    return label;
X  	label = label->next;
X      }
X!     return NULL;
X  }
X  
X***************
X*** 482,486 ****
X  	}
X  	exe_cmd(p,l);
X! 	return(0);
X      }
X      script_wait = FALSE;
X--- 498,502 ----
X  	}
X  	exe_cmd(p,l);
X! 	return CMDOK;
X      }
X      script_wait = FALSE;
X***************
X*** 487,491 ****
X  
X      if(CmdFromRexx)
X! 	return 0;
X  
X      while(fgets(line,256,sf) != NULL) {
X--- 503,507 ----
X  
X      if(CmdFromRexx)
X! 	return CMDOK;
X  
X      while(fgets(line,256,sf) != NULL) {
X***************
X*** 518,522 ****
X  	if (*p)
X  	    exe_cmd(p,l);
X! 	return(0);
X      }		    /* end of while */
X      if (stat == GOTOLABEL)
X--- 534,538 ----
X  	if (*p)
X  	    exe_cmd(p,l);
X! 	return CMDOK;
X      }		    /* end of while */
X      if (stat == GOTOLABEL)
X***************
X*** 537,541 ****
X  	WaitIO((struct IORequest *)&Script_Timer); /* Get my reply back */
X      }
X!     InfoMsg1Line("Script: terminated");
X      script_on = FALSE;
X      script_wait = TRUE;
X--- 553,560 ----
X  	WaitIO((struct IORequest *)&Script_Timer); /* Get my reply back */
X      }
X!     if(!closed_info) {
X! 	InfoMsg1Line("Script: terminated");
X! 	closed_info = 0;
X!     }
X      script_on = FALSE;
X      script_wait = TRUE;
X***************
X*** 548,552 ****
X      if (reqwinup && ((reqwindow->Flags) & WINDOWACTIVE))
X  	ActivateWindow(mywindow);
X!     return 0;
X  }
X  
X--- 567,571 ----
X      if (reqwinup && ((reqwindow->Flags) & WINDOWACTIVE))
X  	ActivateWindow(mywindow);
X!     return CMDOK;
X  }
X  
X***************
X*** 593,597 ****
X  	}
X  	*s1 = '\0';
X! 	return(ptr);
X      }
X      if (*s1 == '^') {
X--- 612,616 ----
X  	}
X  	*s1 = '\0';
X! 	return ptr;
X      }
X      if (*s1 == '^') {
X***************
X*** 598,605 ****
X  	*s1 = (*(s1+1)|' ')-96;
X  	*(s1+1) = '\0';
X! 	return(s1);
X      }
X      *(s1+1) = '\0';
X!     return(s1);
X  }
X  
X--- 617,624 ----
X  	*s1 = (*(s1+1)|' ')-96;
X  	*(s1+1) = '\0';
X! 	return s1;
X      }
X      *(s1+1) = '\0';
X!     return s1;
X  }
X  
X***************
X*** 619,623 ****
X  	fseek(sf,(long)(label->pos),0);
X      }
X!     return 0;
X  }
X  
X--- 638,642 ----
X  	fseek(sf,(long)(label->pos),0);
X      }
X!     return CMDOK;
X  }
X  
X***************
X*** 635,639 ****
X      else
X  	sendstring(p);
X!     return 0;
X  }
X  
X--- 654,658 ----
X      else
X  	sendstring(p);
X!     return CMDOK;
X  }
X  
X***************
X*** 648,652 ****
X      waitsize = strlen(wait_string);
X      script_wait = WAIT_STRING;
X!     return 0;
X  }
X  
X--- 667,671 ----
X      waitsize = strlen(wait_string);
X      script_wait = WAIT_STRING;
X!     return CMDOK;
X  }
X  
X***************
X*** 671,677 ****
X  	on_cmd[oncmdsize] = '\0';
X      }
X!     return 0;
X  }
X  
X  cmd_delay(seconds)
X  char *seconds;
X--- 690,727 ----
X  	on_cmd[oncmdsize] = '\0';
X      }
X!     return CMDOK;
X  }
X  
X+ void setvar(par,typ,var)
X+ char	*par;
X+ int	typ,*var;
X+ {
X+     int i;
X+ 
X+     switch (typ) {
X+ 	case 0: /* ON/OFF or YES/NO */
X+ 	case 1: /* not case */
X+ 	if ((par[1]|' ') == 'n' || (par[0]|' ') == 'y') *var = 1-typ;
X+ 	else						*var = typ;
X+ 	break;
X+ 
X+ 	case 2: /* read hex number */
X+ 	if (sscanf(par,"%x",&i) == 1) *var = i;
X+ 
X+ 	break;
X+ 
X+ 	case 3: /* read decimal number */
X+ 	if (sscanf(par,"%d",&i) == 1) *var = i;
X+ 	break;
X+     }
X+ }
X+ 
X+ cmd_overscan(par)
X+ char *par;
X+ {
X+     setvar(par, 0, &p_overscan);
X+     return CMDOK;
X+ }
X+ 
X  cmd_delay(seconds)
X  char *seconds;
X***************
X*** 681,685 ****
X      Script_Timer.tr_time.tv_micro = 0;
X      SendIO((struct IORequest *)&Script_Timer.tr_node);
X!     return 0;
X  }
X  
X--- 731,735 ----
X      Script_Timer.tr_time.tv_micro = 0;
X      SendIO((struct IORequest *)&Script_Timer.tr_node);
X!     return CMDOK;
X  }
X  
X***************
X*** 691,695 ****
X  
X      if (doing_init)
X! 	return 0;
X  
X      if (*option) {
X--- 741,745 ----
X  
X      if (doing_init)
X! 	return CMDOK;
X  
X      if (*option) {
X***************
X*** 708,712 ****
X  	}
X      }
X!     return 0;
X  }
X  
X--- 758,762 ----
X  	}
X      }
X!     return CMDOK;
X  }
X  
X***************
X*** 994,997 ****
X--- 1044,1055 ----
X  }
X  
X+ cmd_close(name)
X+ char *name;
X+ {
X+     KillReq();
X+     closed_info = 1;
X+     return CMDOK;
X+ }
X+ 
X  cmd_sb(str)
X  char *str;
X***************
X*** 1157,1184 ****
X      }
X      return CMDOK;
X- }
X- 
X- void setvar(par,typ,var)
X- char	*par;
X- int	typ,*var;
X- {
X-     int i;
X- 
X-     switch (typ) {
X- 	case 0: /* ON/OFF or YES/NO */
X- 	case 1: /* not case */
X- 	if ((par[1]|' ') == 'n' || (par[0]|' ') == 'y') *var = 1-typ;
X- 	else						*var = typ;
X- 	break;
X- 
X- 	case 2: /* read hex number */
X- 	if (sscanf(par,"%x",&i) == 1) *var = i;
X- 
X- 	break;
X- 
X- 	case 3: /* read decimal number */
X- 	if (sscanf(par,"%d",&i) == 1) *var = i;
X- 	break;
X-     }
X  }
X  
X--- 1215,1218 ----
XIndex: vt100.c
XPrereq: 1.8
X*** ../29A/vt100.c	Mon Mar 19 09:44:23 1990
X--- ./vt100.c	Mon Mar 19 09:44:34 1990
X***************
X*** 1,3 ****
X! static char rcsid[] = "$RCSfile: vt100.c,v $ $Revision: 1.8 $";
X  static char hrcsid[] = HRCSID;
X  
X--- 1,3 ----
X! static char rcsid[] = "$RCSfile: vt100.c,v $ $Revision: 1.9 $";
X  static char hrcsid[] = HRCSID;
X  
X***************
X*** 7,10 ****
X--- 7,14 ----
X   *
X   * $Log:	vt100.c,v $
X+  * Revision 1.9  90/02/18  17:05:32  acs
X+  * 1) New parameter p_overscan.  Reflects OVERSCAN ON/OFF.
X+  * 2) Freeing of ExtXfer[] should always happen.
X+  * 
X   * Revision 1.8  90/02/12  20:25:05  acs
X   * Include reference to HRCSID defined in vt100.h.
X***************
X*** 279,282 ****
X--- 283,287 ----
X  int	p_shared	= 1;	/* Open serial device in shared mode	*/
X  int	p_screen	= 0;	/* 0 = WORKBENCH, 1 = CUSTOM		*/
X+ int	p_overscan	= 0;	/* 0 = no overscan, 1 = overscan OK	*/
X  int	p_wbcolors	= 1;	/* 0 = Custom, 1 = Workbench colors	*/
X  int	p_interlace	= 2;	/* 0 = no interlace, 1 = interlace, 2 = ASIS */
X***************
X*** 712,725 ****
X  	    CloseScreen( myscreen );
X  	}
X- 	for(i = 0; i < NumExts; i++) {
X- 	    struct ExternalXfer *xfer = ExtXfer[i];
X- 
X- 	    FreeMem(xfer->dispname, (long)(strlen(xfer->dispname)+1));
X- 	    FreeMem(xfer->downname, (long)(strlen(xfer->downname)+1));
X- 	    FreeMem(xfer->send, (long)(strlen(xfer->send)+1));
X- 	    FreeMem(xfer->receive, (long)(strlen(xfer->receive)+1));
X- 	    FreeMem(xfer, (long)sizeof(struct ExternalXfer));
X- 	}	    
X- 
X      case 3:		/* error opening screen */
X      case 2:		/* error opening graphics library */
X--- 717,720 ----
X***************
X*** 732,736 ****
X  	    CloseLibrary((struct Library *)IntuitionBase);
X      default:
X! 	if (*reason) puts (reason);
X      }
X  
X--- 727,742 ----
X  	    CloseLibrary((struct Library *)IntuitionBase);
X      default:
X! 	for(i = 0; i < NumExts; i++) {
X! 	    struct ExternalXfer *xfer = ExtXfer[i];
X! 
X! 	    FreeMem(xfer->dispname, (long)(strlen(xfer->dispname)+1));
X! 	    FreeMem(xfer->downname, (long)(strlen(xfer->downname)+1));
X! 	    FreeMem(xfer->send, (long)(strlen(xfer->send)+1));
X! 	    FreeMem(xfer->receive, (long)(strlen(xfer->receive)+1));
X! 	    FreeMem(xfer, (long)sizeof(struct ExternalXfer));
X! 	}	    
X! 
X! 	if (*reason)
X! 	    printf("VT100: %s\n", reason);
X      }
X  
XIndex: vt100.doc
X*** ../29A/vt100.doc	Mon Mar 19 09:44:23 1990
X--- ./vt100.doc	Mon Mar 19 09:44:35 1990
X***************
X*** 302,305 ****
X--- 302,314 ----
X  	CD	DF1:foo/bar	set the directory as specified
X  --------------------------------------------------------------------------
X+ CLOSE	Close info window				(INIT,SCRIPT)
X+     Format:
X+ 	CLOSE			Note there are no parameters
X+     Example:
X+ 	CLOSE			This command can be execute from either a
X+ 				VT100 or an AREXX script.  If this command
X+ 				is executed then there will be no message
X+ 				confirming the script's completion.
X+ --------------------------------------------------------------------------
X  CONVERT	Tell KERMIT whether or not to convert filenames	(INIT,SCRIPT)
X      Format:
X***************
X*** 440,443 ****
X--- 449,454 ----
X  	INTERLACE ON		Use interlacing
X  	INTERLACE ASIS		Use interlace if WBSCREEN uses it
X+ 
X+ 				See also OVERSCAN, LINES and SCREEN.
X  --------------------------------------------------------------------------
X  KB	Send a BYE packet to a host KERMIT server.	(SCRIPT)
X***************
X*** 481,488 ****
X  	LINES n
X      Example:
X! 	LINES 24		Maximum for non-interlace
X! 	LINES 48		Maximum for interlaced
X  	LINES 0			Determine the maximum number of lines
X! 				available and use it
X  --------------------------------------------------------------------------
X  MODE	Set a transfer mode for KERMIT to use		(INIT,SCRIPT)
X--- 492,504 ----
X  	LINES n
X      Example:
X! 	LINES 24		Maximum for non-interlace if OVERSCAN is OFF
X! 	LINES 48		Maximum for interlaced if OVERSCAN is OFF
X  	LINES 0			Determine the maximum number of lines
X! 				available and use it.  Note that this will
X! 				constrain the window and screen to be the
X! 				same size as or smaller than the Workbench
X! 				screen.
X! 
X! 				See also: OVERSCAN, SCREEN, INTERLACE
X  --------------------------------------------------------------------------
X  MODE	Set a transfer mode for KERMIT to use		(INIT,SCRIPT)
X***************
X*** 551,554 ****
X--- 567,586 ----
X  				Send a space every time --more-- is received
X  --------------------------------------------------------------------------
X+ OVERSCAN	Allow overscan on custom screens	(INIT)
X+     Format:
X+ 	OVERSCAN ON/OFF or YES/NO
X+     Example:
X+ 	OVERSCAN ON		Normally, VT100 constrains the maximum
X+ 				screen size to be the same as Workbench.
X+ 				This command instructs VT100 to ignore the
X+ 				Workbench size and compute the screen size
X+ 				based on the value specified in the LINES
X+ 				command.  If LINES is set to 0 then VT100
X+ 				constrains the screen and window to the
X+ 				Workbench screen/window size irrespective
X+ 				of the OVERSCAN setting.
X+ 
X+ 				See also LINES, SCREEN and INTERLACE.
X+ --------------------------------------------------------------------------
X  PARITY	Sets the parity					(INIT,SCRIPT)
X      Format:
X***************
X*** 618,621 ****
X--- 650,655 ----
X  	SCREEN WORKBENCH	use the workbench screen
X  	SCREEN CUSTOM		use a custom screen
X+ 
X+ 				See also OVERSCAN, LINES and INTERLACE.
X  --------------------------------------------------------------------------
X  SEND	Sends a string or character to the host.	(SCRIPT)
XIndex: window.c
XPrereq: 1.5
X*** ../29A/window.c	Mon Mar 19 09:44:24 1990
X--- ./window.c	Mon Mar 19 09:44:35 1990
X***************
X*** 1,3 ****
X! static char rcsid[] = "$RCSfile: window.c,v $ $Revision: 1.5 $";
X  
X  /****************************************************
X--- 1,3 ----
X! static char rcsid[] = "$RCSfile: window.c,v $ $Revision: 1.6 $";
X  
X  /****************************************************
X***************
X*** 6,9 ****
X--- 6,12 ----
X   *
X   * $Log:	window.c,v $
X+  * Revision 1.6  90/02/22  20:56:31  acs
X+  * When we write to the Info window we must clear the Info closed flag.
X+  * 
X   * Revision 1.5  90/01/23  20:17:11  acs
X   * 1) Machine would lock up due to req() "missing" some events.  Thanks
X***************
X*** 43,46 ****
X--- 46,51 ----
X  #include "vt100.h"
X  
X+ extern int closed_info;		/* in script.c */
X+ 
X  static char *infkey[] = {	/* F-keys resulting from RawKeyConvert() */
X      "0~",  "1~",  "2~",  "3~",  "4~",  "5~",  "6~",  "7~",  "8~",  "9~",
X***************
X*** 676,679 ****
X--- 681,686 ----
X      Move(reqwindow->RPort, (LONG)reqminx, (LONG)(reqy+BaseLine));
X      Text(reqwindow->RPort, msg, msglen);
X+ 
X+     closed_info = 0;	/* Info window not closed anymore */
X  }
X  
END_OF_FILE
if test 23541 -ne `wc -c <'2.9a-2.9b.diffs'`; then
    echo shar: \"'2.9a-2.9b.diffs'\" unpacked with wrong size!
fi
# end of '2.9a-2.9b.diffs'
fi
echo shar: End of archive 1 \(of 1\).
cp /dev/null ark1isdone
MISSING=""
for I in 1 ; do
    if test ! -f ark${I}isdone ; then
	MISSING="${MISSING} ${I}"
    fi
done
if test "${MISSING}" = "" ; then
    echo You have the archive.
    rm -f ark[1-9]isdone
else
    echo You still need to unpack the following archives:
    echo "        " ${MISSING}
fi
##  End of shell archive.
exit 0
-- 
Mail submissions (sources or binaries) to <amiga@cs.odu.edu>.
Mail comments to the moderator at <amiga-request@cs.odu.edu>.
Post requests for sources, and general discussion to comp.sys.amiga.