Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Path: utzoo!mnetor!uunet!munnari!mulga!jz
From: jz@mulga.oz (Justin Zobel)
Newsgroups: comp.sources.bugs
Subject: vmail bug+fix
Message-ID: <2442@mulga.oz>
Date: Thu, 26-Nov-87 19:32:37 EST
Article-I.D.: mulga.2442
Posted: Thu Nov 26 19:32:37 1987
Date-Received: Sun, 29-Nov-87 20:53:59 EST
Organization: Comp Sci, Melbourne Uni, Australia
Lines: 224

Following is a patch to make vmail work properly on a Pyramid.  The flag
PYRAMID must be set on compilation.

									jz


*** init.c	Thu Oct  8 10:32:45 1987
--- init.c	Fri Nov 27 11:20:46 1987
***************
*** 43,48
  	cols = tgetnum("co");
  		/* lines holds no. of lines for headers, ie "li" less STATUS, TITLE */
  	lines = tgetnum("li") - 2;
  	ioctl(0, TIOCGETP, &tty);
  	ioctl(0, TIOCGETP, &chrs);
  	ioctl(0, TIOCGETP, &lchrs);

--- 43,49 -----
  	cols = tgetnum("co");
  		/* lines holds no. of lines for headers, ie "li" less STATUS, TITLE */
  	lines = tgetnum("li") - 2;
+ #ifdef	PYRAMID
  	ioctl(0, TIOCGETP, &tty);
  	ioctl(0, TIOCGETC, &chrs);
  	ioctl(0, TIOCLGET, &lchrs);
***************
*** 44,49
  		/* lines holds no. of lines for headers, ie "li" less STATUS, TITLE */
  	lines = tgetnum("li") - 2;
  	ioctl(0, TIOCGETP, &tty);
  	ioctl(0, TIOCGETP, &chrs);
  	ioctl(0, TIOCGETP, &lchrs);
  

--- 45,54 -----
  	lines = tgetnum("li") - 2;
  #ifdef	PYRAMID
  	ioctl(0, TIOCGETP, &tty);
+ 	ioctl(0, TIOCGETC, &chrs);
+ 	ioctl(0, TIOCLGET, &lchrs);
+ #else
+ 	ioctl(0, TIOCGETP, &tty);
  	ioctl(0, TIOCGETP, &chrs);
  	ioctl(0, TIOCGETP, &lchrs);
  #endif	PYRAMID
***************
*** 46,51
  	ioctl(0, TIOCGETP, &tty);
  	ioctl(0, TIOCGETP, &chrs);
  	ioctl(0, TIOCGETP, &lchrs);
  
  	read_profile(&pargc, pargv, profile, home);
  	process_args(pargc, pargv);

--- 51,57 -----
  	ioctl(0, TIOCGETP, &tty);
  	ioctl(0, TIOCGETP, &chrs);
  	ioctl(0, TIOCGETP, &lchrs);
+ #endif	PYRAMID
  
  	read_profile(&pargc, pargv, profile, home);
  	process_args(pargc, pargv);
***************
*** 74,79
  	signal(SIGTSTP, tstp);
  	signal(SIGINT, tint);
  
  	ioctl(0, TIOCGETP, &t_tty);
  	ioctl(0, TIOCGETP, &t_chrs);
  	ioctl(0, TIOCGETP, &t_lchrs);

--- 80,86 -----
  	signal(SIGTSTP, tstp);
  	signal(SIGINT, tint);
  
+ #ifdef	PYRAMID
  	ioctl(0, TIOCGETP, &t_tty);
  	ioctl(0, TIOCGETC, &t_chrs);
  	ioctl(0, TIOCLGET, &t_lchrs);
***************
*** 75,80
  	signal(SIGINT, tint);
  
  	ioctl(0, TIOCGETP, &t_tty);
  	ioctl(0, TIOCGETP, &t_chrs);
  	ioctl(0, TIOCGETP, &t_lchrs);
  

--- 82,91 -----
  
  #ifdef	PYRAMID
  	ioctl(0, TIOCGETP, &t_tty);
+ 	ioctl(0, TIOCGETC, &t_chrs);
+ 	ioctl(0, TIOCLGET, &t_lchrs);
+ #else
+ 	ioctl(0, TIOCGETP, &t_tty);
  	ioctl(0, TIOCGETP, &t_chrs);
  	ioctl(0, TIOCGETP, &t_lchrs);
  #endif	PYRAMID
***************
*** 77,82
  	ioctl(0, TIOCGETP, &t_tty);
  	ioctl(0, TIOCGETP, &t_chrs);
  	ioctl(0, TIOCGETP, &t_lchrs);
  
  	y = FIRST;
  	display_page();

--- 88,94 -----
  	ioctl(0, TIOCGETP, &t_tty);
  	ioctl(0, TIOCGETP, &t_chrs);
  	ioctl(0, TIOCGETP, &t_lchrs);
+ #endif	PYRAMID
  
  	y = FIRST;
  	display_page();
***************
*** 297,302
  void
  no_control()
  {
  	ioctl(0, TIOCSETP, &tty);
  	ioctl(0, TIOCSETP, &chrs);
  	ioctl(0, TIOCSETP, &lchrs);

--- 309,315 -----
  void
  no_control()
  {
+ #ifdef	PYRAMID
  	ioctl(0, TIOCSETP, &tty);
  	ioctl(0, TIOCSETC, &chrs);
  	ioctl(0, TIOCLSET, &lchrs);
***************
*** 298,303
  no_control()
  {
  	ioctl(0, TIOCSETP, &tty);
  	ioctl(0, TIOCSETP, &chrs);
  	ioctl(0, TIOCSETP, &lchrs);
  }

--- 311,320 -----
  {
  #ifdef	PYRAMID
  	ioctl(0, TIOCSETP, &tty);
+ 	ioctl(0, TIOCSETC, &chrs);
+ 	ioctl(0, TIOCLSET, &lchrs);
+ #else
+ 	ioctl(0, TIOCSETP, &tty);
  	ioctl(0, TIOCSETP, &chrs);
  	ioctl(0, TIOCSETP, &lchrs);
  #endif	PYRAMID
***************
*** 300,305
  	ioctl(0, TIOCSETP, &tty);
  	ioctl(0, TIOCSETP, &chrs);
  	ioctl(0, TIOCSETP, &lchrs);
  }
  
  

--- 317,323 -----
  	ioctl(0, TIOCSETP, &tty);
  	ioctl(0, TIOCSETP, &chrs);
  	ioctl(0, TIOCSETP, &lchrs);
+ #endif	PYRAMID
  }
  
  
***************
*** 309,314
  void
  to_control()
  {
  	ioctl(0, TIOCSETP, &t_tty);
  	ioctl(0, TIOCSETP, &t_chrs);
  	ioctl(0, TIOCSETP, &t_lchrs);

--- 327,333 -----
  void
  to_control()
  {
+ #ifdef	PYRAMID
  	ioctl(0, TIOCSETP, &t_tty);
  	ioctl(0, TIOCSETC, &t_chrs);
  	ioctl(0, TIOCLSET, &t_lchrs);
***************
*** 310,315
  to_control()
  {
  	ioctl(0, TIOCSETP, &t_tty);
  	ioctl(0, TIOCSETP, &t_chrs);
  	ioctl(0, TIOCSETP, &t_lchrs);
  }

--- 329,338 -----
  {
  #ifdef	PYRAMID
  	ioctl(0, TIOCSETP, &t_tty);
+ 	ioctl(0, TIOCSETC, &t_chrs);
+ 	ioctl(0, TIOCLSET, &t_lchrs);
+ #else
+ 	ioctl(0, TIOCSETP, &t_tty);
  	ioctl(0, TIOCSETP, &t_chrs);
  	ioctl(0, TIOCSETP, &t_lchrs);
  #endif	PYRAMID
***************
*** 312,317
  	ioctl(0, TIOCSETP, &t_tty);
  	ioctl(0, TIOCSETP, &t_chrs);
  	ioctl(0, TIOCSETP, &t_lchrs);
  }
  
  

--- 335,341 -----
  	ioctl(0, TIOCSETP, &t_tty);
  	ioctl(0, TIOCSETP, &t_chrs);
  	ioctl(0, TIOCSETP, &t_lchrs);
+ #endif	PYRAMID
  }