sort of big inews bug

utzoo!decvax!genradbo!linus!smk utzoo!decvax!genradbo!linus!smk
Sun Nov 28 21:20:12 AEST 1982


In our version of inews, there is a bug in that the tty variable is tested
all over the place before it is properly defined (via the isatty() function).
As a result, inews never thinks input comes from the terminal and we can't
use inews directly.  The following diff will fix this up.

	--steve


*** inews.c.orig	Sun Nov  7 11:01:51 1982
--- inews.c	Sun Nov 28 21:05:28 1982
***************
*** 91,96
  /*
  	signal(SIGQUIT, SIG_IGN);
  */
  	signal(SIGHUP, onsig);
  	signal(SIGINT, onsig);
  	savmask = umask(N_UMASK);	/* set up mask */

--- 91,104 -----
  /*
  	signal(SIGQUIT, SIG_IGN);
  */
+ #ifdef MITRE
+ 	/*	This is needed because if the connection to the remote
+ 		machine is dropped after an rnews is started, a SIGHUP
+ 		is sent to rnews and a message is passed back.  This
+ 		will stop that.	*/
+ 	if(mode != PROC)
+ 		signal(SIGHUP, onsig);
+ #else
  	signal(SIGHUP, onsig);
  #endif
  	signal(SIGINT, onsig);
***************
*** 92,97
  	signal(SIGQUIT, SIG_IGN);
  */
  	signal(SIGHUP, onsig);
  	signal(SIGINT, onsig);
  	savmask = umask(N_UMASK);	/* set up mask */
  	uid = (unsigned) getuid();

--- 100,106 -----
  		signal(SIGHUP, onsig);
  #else
  	signal(SIGHUP, onsig);
+ #endif
  	signal(SIGINT, onsig);
  	savmask = umask(N_UMASK);	/* set up mask */
  	uid = (unsigned) getuid();
***************
*** 198,203
  	 * ALL of the command line has now been processed. (!)
  	 */
  
  	if (!Dflag && mode != PROC) {
  		if (recording(header.nbuf)) {
  			if (!tty)

--- 207,218 -----
  	 * ALL of the command line has now been processed. (!)
  	 */
  
+ #ifdef MITRE
+ 	/*	This was moved from below since references to tty
+ 		are made before it is set.	*/
+ 	tty = isatty(fileno(stdin));
+ 
+ #endif
  	if (!Dflag && mode != PROC) {
  		if (recording(header.nbuf)) {
  			if (!tty)



More information about the Net.bugs mailing list