[comp.sources.bugs] patch for screen bug:

lew@gsg.UUCP (Paul Lew) (02/09/89)

Description:
	If the user changes escape keys to keys other than the defaults,
	type escape key twice (switch bwteeen the last two screens) will
	not work if you put it in the .screenrc file.

Example:
	You can change default escape keys in 2 ways:
	method 1:
		$ screen -exy				<-- this works
	method 2:
		$ echo 'escape xy' >> ~/.screenrc
		$ screen				<-- not this one

Reason:
	Function InitKeytab() use Esc as index which might be changed by
	ReadRc().  Move it after ReadRc() solve this problem.

Scope:	This bug exists for both versions 1.1 and 2.0a.

Patch:	Feed the following context diff to patch program:

*** screen.c~	Wed Feb  8 18:08:21 1989
--- screen.c	Wed Feb  8 18:09:27 1989
***************
*** 306,312
      signal (SIGTERM, Finit);
      signal (SIGTTIN, SIG_IGN);
      signal (SIGTTOU, SIG_IGN);
-     InitKeytab ();
      sprintf (rc, "%.*s/.screenrc", 245, home);
      ReadRc (rc);
      if ((n = MakeWindow (*av, av, aflag, 0, (char *)0)) == -1) {

--- 306,311 -----
      signal (SIGTERM, Finit);
      signal (SIGTTIN, SIG_IGN);
      signal (SIGTTOU, SIG_IGN);
      sprintf (rc, "%.*s/.screenrc", 245, home);
      ReadRc (rc);
      InitKeytab ();
***************
*** 309,314
      InitKeytab ();
      sprintf (rc, "%.*s/.screenrc", 245, home);
      ReadRc (rc);
      if ((n = MakeWindow (*av, av, aflag, 0, (char *)0)) == -1) {
  	SetTTY (0, &OldMode);
  	FinitTerm ();

--- 308,314 -----
      signal (SIGTTOU, SIG_IGN);
      sprintf (rc, "%.*s/.screenrc", 245, home);
      ReadRc (rc);
+     InitKeytab ();
      if ((n = MakeWindow (*av, av, aflag, 0, (char *)0)) == -1) {
  	SetTTY (0, &OldMode);
  	FinitTerm ();
-- 
Paul Lew			{oliveb,harvard,decvax}!gsg!lew	(UUCP)
General Systems Group, 5 Manor Parkway, Salem, NH 03079	(603) 893-1000