[comp.sources.unix] v14i105: Dial out and terminal emulator, Patch1

rsalz@bbn.com (Rich Salz) (05/20/88)

Submitted-by: fthood!egray
Posting-number: Volume 14, Issue 105
Archive-name: pcomm/patch1

[  The comp.sources.unix distribution of Pcomm already has patches 1 and 2
   integrated.  There are two dummy files, and patch3 and patch4;
   here's what they fix:
	Now works with external modems on the AT&T Unix PC 7300/3B1.
	(Many thanks to Karl Fox (...mstar!karl) for finding this one.)

	Some fixes for some modems, including ability to ignore DCD and
	avoid initializing them twice.

    --r$  ]

I only release patches when it's necessary (really!)... I'm not just
hacking on the code.  I guess I'm allowed a *few* errors in 10,000 lines
of code :-)

Emmet P. Gray				US Army, HQ III Corps & Fort Hood
...!ihnp4!uiucuxc!fthood!egray		Attn: AFZF-DE-ENV
					Directorate of Engineering & Housing
					Environmental Management Office
					Fort Hood, TX 76544-5057

#! /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 shell archive."
# Contents:  patch1 patch2 patch3 patch4
# Wrapped by rsalz@fig.bbn.com on Wed May 18 18:20:54 1988
PATH=/bin:/usr/bin:/usr/ucb ; export PATH
if test -f 'patch1' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'patch1'\"
else
echo shar: Extracting \"'patch1'\" \(52 characters\)
sed "s/^X//" >'patch1' <<'END_OF_FILE'
This distribution came with patch 1 already applied
END_OF_FILE
if test 52 -ne `wc -c <'patch1'`; then
    echo shar: \"'patch1'\" unpacked with wrong size!
fi
# end of 'patch1'
fi
if test -f 'patch2' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'patch2'\"
else
echo shar: Extracting \"'patch2'\" \(52 characters\)
sed "s/^X//" >'patch2' <<'END_OF_FILE'
This distribution came with patch 2 already applied
END_OF_FILE
if test 52 -ne `wc -c <'patch2'`; then
    echo shar: \"'patch2'\" unpacked with wrong size!
fi
# end of 'patch2'
fi
if test -f 'patch3' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'patch3'\"
else
echo shar: Extracting \"'patch3'\" \(929 characters\)
sed "s/^X//" >'patch3' <<'END_OF_FILE'
Now works with external modems on the AT&T Unix PC 7300/3B1.
X(Many thanks to Karl Fox (...mstar!karl) for finding this one.)
X
X*** dial.c.old	Sat Apr  2 16:11:16 1988
X--- dial.c	Sat Apr  2 16:15:14 1988
X***************
X*** 102,107
X  			}
X  			n++;
X  		}
X  	}
X  
X  #else /* UNIXPC */
X
X--- 102,108 -----
X  			}
X  			n++;
X  		}
X+ 		return;
X  	}
X  #endif /* UNIXPC */
X  
X***************
X*** 103,108
X  			n++;
X  		}
X  	}
X  
X  #else /* UNIXPC */
X  	send_str(s);
X
X--- 104,110 -----
X  		}
X  		return;
X  	}
X+ #endif /* UNIXPC */
X  
X  	send_str(s);
X  	return;
X***************
X*** 104,110
X  		}
X  	}
X  
X- #else /* UNIXPC */
X  	send_str(s);
X  #endif /* UNIXPC */
X  	return;
X
X--- 106,111 -----
X  	}
X  #endif /* UNIXPC */
X  
X  	send_str(s);
X  	return;
X  }
X***************
X*** 106,112
X  
X  #else /* UNIXPC */
X  	send_str(s);
X- #endif /* UNIXPC */
X  	return;
X  }
X  
X
X--- 107,112 -----
X  #endif /* UNIXPC */
X  
X  	send_str(s);
X  	return;
X  }
X  
X
X
END_OF_FILE
if test 929 -ne `wc -c <'patch3'`; then
    echo shar: \"'patch3'\" unpacked with wrong size!
fi
# end of 'patch3'
fi
if test -f 'patch4' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'patch4'\"
else
echo shar: Extracting \"'patch4'\" \(2323 characters\)
sed "s/^X//" >'patch4' <<'END_OF_FILE'
This patch will allow Pcomm to
ignore the DCD (Data Carrier Dectect) signal on the modem.  This will help
out finicky modems (those that can't ignore the DCD themselves).
X
Also, some modems like to be initialized only once, so that change was made.
X
X*** old/line_set.c	Thu Apr 14 07:51:59 1988
X--- line_set.c	Thu Apr 14 07:51:46 1988
X***************
X*** 34,40
X  	tbuf.c_cc[5] = 0;
X  	tbuf.c_oflag = 0;
X  	tbuf.c_iflag = 0;
X! 	tbuf.c_cflag = (CREAD|HUPCL);
X  	tbuf.c_lflag = 0;
X  
X  	/*
X
X--- 34,40 -----
X  	tbuf.c_cc[5] = 0;
X  	tbuf.c_oflag = 0;
X  	tbuf.c_iflag = 0;
X! 	tbuf.c_cflag = (CREAD|HUPCL|CLOCAL);
X  	tbuf.c_lflag = 0;
X  
X  	/*
X*** old/port.c	Thu Apr 14 07:51:59 1988
X--- port.c	Thu Apr 14 07:51:46 1988
X***************
X*** 27,32
X  {
X  	int i, j, k, progpid, fd, list[NUM_TTY];
X  	char file[80], buf[80], message[80], *strdup();
X  	void error_win(), line_set(), release_port(), send_str();
X  	void free_ptr();
X  	
X
X--- 27,33 -----
X  {
X  	int i, j, k, progpid, fd, list[NUM_TTY];
X  	char file[80], buf[80], message[80], *strdup();
X+ 	unsigned int sleep();
X  	void error_win(), line_set(), release_port(), send_str();
X  	void free_ptr();
X  	
X***************
X*** 38,45
X  		if (!strcmp(dir->index[dir->d_cur], modem->tty[modem->t_cur]) ||
X  		 modem->mbaud[modem->t_cur] >= dir->baud[dir->d_cur]) {
X  			/*
X! 			 * Re-initialize the modem because the baud
X! 			 * rate (or other parameters) may have changed.
X  			 */
X  			line_set();
X  			send_str(modem->init[modem->m_cur]);
X
X--- 39,46 -----
X  		if (!strcmp(dir->index[dir->d_cur], modem->tty[modem->t_cur]) ||
X  		 modem->mbaud[modem->t_cur] >= dir->baud[dir->d_cur]) {
X  			/*
X! 			 * Reset the line because the baud rate (or other
X! 			 * parameters) may have changed.
X  			 */
X  			line_set();
X  			return(0);
X***************
X*** 42,48
X  			 * rate (or other parameters) may have changed.
X  			 */
X  			line_set();
X- 			send_str(modem->init[modem->m_cur]);
X  			return(0);
X  		}
X  	}
X
X--- 43,48 -----
X  			 * parameters) may have changed.
X  			 */
X  			line_set();
X  			return(0);
X  		}
X  	}
X***************
X*** 145,150
X  			}
X  					/* initialize the modem */
X  			send_str(modem->init[j]);
X  			return(0);
X  		}
X  		i++;
X
X--- 145,151 -----
X  			}
X  					/* initialize the modem */
X  			send_str(modem->init[j]);
X+ 			sleep(1);
X  			return(0);
X  		}
X  		i++;
X
X
X
END_OF_FILE
if test 2323 -ne `wc -c <'patch4'`; then
    echo shar: \"'patch4'\" unpacked with wrong size!
fi
# end of 'patch4'
fi
echo shar: End of shell archive.
exit 0
-- 
Please send comp.sources.unix-related mail to rsalz@uunet.uu.net.