[comp.sources.unix] v20i075: Pcomm telecommunication package, Patches 1 through 4

rsalz@uunet.uu.net (Rich Salz) (10/26/89)

Submitted-by: Emmet P. Gray <uiucuxc!fthood!egray>
Posting-number: Volume 20, Issue 75
Archive-name: pcomm1.2/patches1to4

There are the first four patches to pcomm1.2

Emmet P. Gray				US Army, HQ III Corps & Fort Hood
...!uunet!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@papaya.bbn.com on Wed Oct 25 16:56:12 1989
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'\" \(5523 characters\)
sed "s/^X//" >'patch1' <<'END_OF_FILE'
X
XThis is patch #1 to the Pcomm v1.2 distribution package.  After this
Xpatch is installed, the version number will change from 1.2.0 to 1.2.1.
X
XThis patch will fix a problem with ymodem transfers on 16 bit systems,
Xand will fix a bug in the redial function.
X
XMany thanks to Larry Clark (...killer!larryd1) for pointing these bugs
Xout to me.
X
XEmmet P. Gray				US Army, HQ III Corps & Fort Hood
X...!uunet!uiucuxc!fthood!egray		Attn: AFZF-DE-ENV
X					Directorate of Engineering & Housing
X					Environmental Management Office
X					Fort Hood, TX 76544-5057
X
X-----------------------------------------------------------------------------
XPrereq: "1.2.0"
X*** old/info.c	Fri Feb 10 11:33:36 1989
X--- info.c	Sun Feb 12 10:07:13 1989
X***************
X*** 4,9
X   */
X  
X! #define VERSION	"1.2.0"
X! #define DATE	"4 Feb 89"
X  
X  #include <stdio.h>
X
X--- 4,9 -----
X   */
X  
X! #define VERSION	"1.2.1"
X! #define DATE	"18 Feb 89"
X  
X  #include <stdio.h>
X*** old/main.c	Fri Feb 10 11:33:37 1989
X--- main.c	Sun Feb 12 10:07:07 1989
X***************
X*** 13,16
X   *	Release v1.1	21 Aug 88
X   *	Release v1.2.0	 4 Feb 89
X   */
X  
X
X--- 13,17 -----
X   *	Release v1.1	21 Aug 88
X   *	Release v1.2.0	 4 Feb 89
X+  *	Patch #1	18 Feb 89
X   */
X  
X*** old/redial.c	Fri Feb 10 11:28:38 1989
X--- redial.c	Fri Feb 10 07:22:18 1989
X***************
X*** 52,56
X  		entry = strtok(ans, " \t");
X  		for (i=0; i<NUM_QUEUE; i++) {
X! 			if (*entry == '\0') {
X  				dir->q_num[i] = -1;
X  				continue;
X
X--- 52,56 -----
X  		entry = strtok(ans, " \t");
X  		for (i=0; i<NUM_QUEUE; i++) {
X! 			if (entry == NULL) {
X  				dir->q_num[i] = -1;
X  				continue;
X*** old/script.c	Fri Feb 10 11:28:38 1989
X--- script.c	Tue Feb  7 10:26:44 1989
X***************
X*** 41,45
X  	char buf[80], *ttyname(), *strcpy(), *path, *findfile();
X  	void _exit(), error_win(), input_off(), do_input();
X- 	unsigned int sleep();
X  
X  					/* if empty */
X
X--- 41,44 -----
X  	char buf[80], *ttyname(), *strcpy(), *path, *findfile();
X  	void _exit(), error_win(), input_off(), do_input();
X  
X  					/* if empty */
X***************
X*** 153,157
X  	close(dup_pipe[0]);
X  	close(dup_pipe[1]);
X- 	sleep(1);
X  	beep();
X  	return;
X
X--- 152,155 -----
X  	close(dup_pipe[0]);
X  	close(dup_pipe[1]);
X  	beep();
X  	return;
X*** old/terminal.c	Mon Feb 13 08:05:19 1989
X--- terminal.c	Mon Feb 13 08:11:33 1989
X***************
X*** 15,18
X  #include "xmodem.h"
X  
X  #ifdef UNIXPC
X  #include <sys/phone.h>
X
X--- 15,24 -----
X  #include "xmodem.h"
X  
X+ #ifdef BSD
X+ #include <sys/file.h>
X+ #else /* BSD */
X+ #include <fcntl.h>
X+ #endif /* BSD */
X+ 
X  #ifdef UNIXPC
X  #include <sys/phone.h>
X***************
X*** 17,21
X  #ifdef UNIXPC
X  #include <sys/phone.h>
X- #include <fcntl.h>
X  #endif /* UNIXPC */
X  
X
X--- 23,26 -----
X  #ifdef UNIXPC
X  #include <sys/phone.h>
X  #endif /* UNIXPC */
X  
X***************
X*** 408,411
X  	void send_str(), st_line(), line_set();
X  	char buf[80], *strcpy(), *ttyname();
X  					/* sanity checking */
X  	if (modem == NULL)
X
X--- 413,417 -----
X  	void send_str(), st_line(), line_set();
X  	char buf[80], *strcpy(), *ttyname();
X+ 	unsigned int sleep();
X  					/* sanity checking */
X  	if (modem == NULL)
X***************
X*** 436,439
X  #endif /* UNIXPC */
X  		send_str(modem->hang_up[modem->m_cur], SLOW);
X  
X  	if (verbose)
X
X--- 442,453 -----
X  #endif /* UNIXPC */
X  		send_str(modem->hang_up[modem->m_cur], SLOW);
X+ 
X+ 	/*
X+ 	 * Some modems do "damage" to the tty driver when they hang up by
X+ 	 * flashing the modem control lines on the port.  The following is
X+ 	 * some witchcraft designed to put the driver back the way it was.
X+ 	 */
X+ 	sleep(1);
X+ 	close(open(ttyname(fd), O_RDWR));
X  
X  	if (verbose)
X*** old/x_rcv.c	Fri Feb 10 11:28:38 1989
X--- x_rcv.c	Fri Feb 10 07:19:12 1989
X***************
X*** 29,33
X  	int i, default_err, is_batch, max_block, code, file_count, got_hdr;
X  	int hours, mins, secs, len;
X! 	long block, recv;
X  	float percent, performance;
X  	unsigned char blk;
X
X--- 29,33 -----
X  	int i, default_err, is_batch, max_block, code, file_count, got_hdr;
X  	int hours, mins, secs, len;
X! 	long block, recv, partial;
X  	float percent, performance;
X  	unsigned char blk;
X***************
X*** 194,199
X  			if (!code) {
X  				if (file_length != 0L) {
X! 					len = file_length - recv;
X! 					if (len > block_size)
X  						len = block_size;
X  				}
X
X--- 194,199 -----
X  			if (!code) {
X  				if (file_length != 0L) {
X! 					partial = file_length - recv;
X! 					if (partial > (long) block_size)
X  						len = block_size;
X  					else
X***************
X*** 197,200
X  					if (len > block_size)
X  						len = block_size;
X  				}
X  				else
X
X--- 197,202 -----
X  					if (partial > (long) block_size)
X  						len = block_size;
X+ 					else
X+ 						len = partial;
X  				}
X  				else
X***************
X*** 252,257
X  				wattrstr(win, A_BOLD, "TRUNCATE ERROR");
X  				wrefresh(win);
X! 					/* fatal */
X! 				return(1);
X  			}
X  		}
X
X--- 254,258 -----
X  				wattrstr(win, A_BOLD, "TRUNCATE ERROR");
X  				wrefresh(win);
X! 				sleep(1);
X  			}
X  		}
X*** old/Release.notes	Fri Feb 10 11:28:37 1989
X--- Release.notes	Fri Feb 10 07:42:26 1989
X***************
X*** 38,42
X  	definitions for zmodem).
X  
X! 	The pcomm.input program has been changed to use multiple
X  	character buffered writes to the screen.  Both the input and
X  	output buffer sizes are tunable parameters in config.h
X
X--- 38,42 -----
X  	definitions for zmodem).
X  
X! 	The pcomm_input program has been changed to use multiple
X  	character buffered writes to the screen.  Both the input and
X  	output buffer sizes are tunable parameters in config.h
X
X
END_OF_FILE
if test 5523 -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'\" \(1878 characters\)
sed "s/^X//" >'patch2' <<'END_OF_FILE'
XSubject: Patch #2 to Pcomm v1.2
X
XThis is patch #2 to the Pcomm v1.2 distribution package.  This patch
Xwill fix a problem that could cause segmentation faults when updating
Xthe dialing directory.
X
XEmmet P. Gray				US Army, HQ III Corps & Fort Hood
X...!uunet!uiucuxc!fthood!egray		Attn: AFZF-DE-ENV
X					Directorate of Engineering & Housing
X					Environmental Management Office
X					Fort Hood, TX 76544-5057
X------------------------------------------------------------------------------
XPrereq: "1.2.1"
X*** old/info.c	Tue Mar  7 11:15:48 1989
X--- info.c	Tue Mar  7 11:16:39 1989
X***************
X*** 4,9
X   */
X  
X! #define VERSION	"1.2.1"
X! #define DATE	"18 Feb 89"
X  
X  #include <stdio.h>
X
X--- 4,9 -----
X   */
X  
X! #define VERSION	"1.2.2"
X! #define DATE	"11 Mar 89"
X  
X  #include <stdio.h>
X*** old/main.c	Tue Mar  7 11:15:49 1989
X--- main.c	Tue Mar  7 11:17:05 1989
X***************
X*** 14,17
X   *	Release v1.2.0	 4 Feb 89
X   *	Patch #1	18 Feb 89
X   */
X  
X
X--- 14,18 -----
X   *	Release v1.2.0	 4 Feb 89
X   *	Patch #1	18 Feb 89
X+  *	Patch #2	11 Mar 89
X   */
X  
X*** old/d_lib.c	Tue Mar  7 10:17:52 1989
X--- d_lib.c	Tue Mar  7 12:16:34 1989
X***************
X*** 172,177
X  
X  	if (entry <= dir->d_entries)
X! 		free_ptr(temp[entry]);
X! 	temp[entry] = str_dup(buf);
X  					/* fill in holes if beyond end */
X  	if (entry > dir->d_entries+1) {
X
X--- 172,179 -----
X  
X  	if (entry <= dir->d_entries)
X! 		temp[entry] = str_rep(temp[entry], buf);
X! 	else
X! 		temp[entry] = str_dup(buf);
X! 
X  					/* fill in holes if beyond end */
X  	if (entry > dir->d_entries+1) {
X***************
X*** 180,184
X  			 param->d_baud, param->d_parity, param->d_dbits,
X  			 param->d_sbits, *param->d_duplex);
X! 			temp[i] = str_rep(temp[i], buf);
X  		}
X  	}
X
X--- 182,186 -----
X  			 param->d_baud, param->d_parity, param->d_dbits,
X  			 param->d_sbits, *param->d_duplex);
X! 			temp[i] = str_dup(buf);
X  		}
X  	}
X
X
END_OF_FILE
if test 1878 -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'\" \(9070 characters\)
sed "s/^X//" >'patch3' <<'END_OF_FILE'
XSubject: Patch #3 to Pcomm v1.2
X
XThis is patch #3 to the Pcomm v1.2 distribution package.  This patch
Xwill fix few problems with Pcomm on Microsoft XENIX 3.0/3.5 and changes
Xthe method of getting rid of zombie processes.
X
XEmmet P. Gray				US Army, HQ III Corps & Fort Hood
X...!uunet!uiucuxc!fthood!egray		Attn: AFZF-DE-ENV
X					Directorate of Engineering & Housing
X					Environmental Management Office
X					Fort Hood, TX 76544-5057
X------------------------------------------------------------------------------
XPrereq: "1.2.2"
X*** old/info.c	Tue Mar  7 11:18:10 1989
X--- info.c	Thu May 11 11:54:25 1989
X***************
X*** 4,9
X   */
X  
X! #define VERSION	"1.2.2"
X! #define DATE	"11 Mar 89"
X  
X  #include <stdio.h>
X
X--- 4,9 -----
X   */
X  
X! #define VERSION	"1.2.3"
X! #define DATE	"11 May 89"
X  
X  #include <stdio.h>
X*** old/Makefile	Fri Feb  3 07:39:32 1989
X--- Makefile	Thu May 11 11:53:47 1989
X***************
X*** 8,11
X  #TERMLIB = -ltinfo -lx
X  
X  CFLAGS = -O
X  LDFLAGS = -s
X
X--- 8,15 -----
X  #TERMLIB = -ltinfo -lx
X  
X+ #for 80286 versions of Microsoft Xenix 3.0/3.5
X+ #CFLAGS = -O -Mme2 -Dresetterm=xresetterm -DXENIX_3
X+ #LDFLAGS = -s -Mm -F 5120
X+ 
X  CFLAGS = -O
X  LDFLAGS = -s
X***************
X*** 63,71
X  	cp matches $(BIN)
X  	cp modem_break $(BIN)
X! #	rm pcomm
X! #	rm pcomm_input
X! #	rm waitfor
X! #	rm matches
X! #	rm modem_break
X  
X  lint:
X
X--- 67,77 -----
X  	cp matches $(BIN)
X  	cp modem_break $(BIN)
X! 
X! clean:
X! 	rm pcomm
X! 	rm pcomm_input
X! 	rm waitfor
X! 	rm matches
X! 	rm modem_break
X  
X  lint:
X*** old/d_menu.c	Fri Jan 27 09:38:36 1989
X--- d_menu.c	Thu May 11 10:35:34 1989
X***************
X*** 50,53
X  	waddstr(dm_win, " Scroll Down");
X  
X  	mvwattrstr(dm_win, 17, 14, A_BOLD, "<up>/<down>");
X  	waddstr(dm_win, " Page");
X
X--- 50,56 -----
X  	waddstr(dm_win, " Scroll Down");
X  
X+ #ifdef OLDCURSES
X+ 	mvwattrstr(dm_win, 17, 14, A_BOLD, "U/N");
X+ #else /* OLDCURSES */
X  	mvwattrstr(dm_win, 17, 14, A_BOLD, "<up>/<down>");
X  #endif /* OLDCURSES */
X***************
X*** 51,54
X  
X  	mvwattrstr(dm_win, 17, 14, A_BOLD, "<up>/<down>");
X  	waddstr(dm_win, " Page");
X  	mvwattrch(dm_win, 17, 34, A_BOLD, 'L');
X
X--- 54,58 -----
X  #else /* OLDCURSES */
X  	mvwattrstr(dm_win, 17, 14, A_BOLD, "<up>/<down>");
X+ #endif /* OLDCURSES */
X  	waddstr(dm_win, " Page");
X  	mvwattrch(dm_win, 17, 34, A_BOLD, 'L');
X*** old/di_delay.c	Fri Jan 13 07:47:22 1989
X--- di_delay.c	Wed Apr 26 08:35:19 1989
X***************
X*** 50,54
X  	}
X  					/* get the rdelay number */
X! 	wmove(dt_win, 6, 20);
X  	wrefresh(dt_win);
X  	if ((rdelay = get_num(dt_win, 3)) == -1) {
X
X--- 50,54 -----
X  	}
X  					/* get the rdelay number */
X! 	wmove(dt_win, 6, 22);
X  	wrefresh(dt_win);
X  	if ((rdelay = get_num(dt_win, 3)) == -1) {
X*** old/di_win.c	Mon Jan 16 17:17:30 1989
X--- di_win.c	Sat Apr 22 22:43:28 1989
X***************
X*** 198,202
X  			else
X  				write(fd, &cr, 1);
X! 			sleep(1);
X  		}
X  					/* if we get here, no key was pressed */
X
X--- 198,202 -----
X  			else
X  				write(fd, &cr, 1);
X! 			sleep(2);
X  		}
X  					/* if we get here, no key was pressed */
X***************
X*** 257,260
X  					dir->q_num[j] = dir->q_num[j+1];
X  				dir->q_num[NUM_QUEUE-1] = -1;
X  				break;
X  			case 'e':
X
X--- 257,263 -----
X  					dir->q_num[j] = dir->q_num[j+1];
X  				dir->q_num[NUM_QUEUE-1] = -1;
X+ 
X+ 				if (dir->q_num[i] == -1)
X+ 					i = 0;
X  				break;
X  			case 'e':
X*** old/getopt.c	Tue Oct 18 11:47:04 1988
X--- getopt.c	Wed Apr 26 08:26:40 1989
X***************
X*** 4,7
X  
X  #include <stdio.h>
X  
X  int optind = 1;
X
X--- 4,8 -----
X  
X  #include <stdio.h>
X+ #include "config.h"
X  
X  int optind = 1;
X*** old/help.c	Mon Jan 16 17:18:02 1989
X--- help.c	Thu May 11 10:36:59 1989
X***************
X*** 23,26
X  	horizontal(h_win, 2, 0, 80);
X  	mvwattrstr(h_win, 4, 0, A_BOLD, "       Major Functions          Utility Functions         File Functions\n\n");
X  	mvwprintw(h_win,  6,  2, "Dialing Directory.%4.4s-D  Program Info ....%4.4s-I  Send Files ....%4.4s-<up>", hot, hot, hot);
X  	mvwprintw(h_win,  7,  2, "Auto Redial ......%4.4s-R  Setup Screen ....%4.4s-S  Receive Files .%4.4s-<down>", hot, hot, hot);
X
X--- 23,30 -----
X  	horizontal(h_win, 2, 0, 80);
X  	mvwattrstr(h_win, 4, 0, A_BOLD, "       Major Functions          Utility Functions         File Functions\n\n");
X+ #ifdef OLDCURSES
X+ 	mvwprintw(h_win,  6,  2, "Dialing Directory.%4.4s-D  Program Info ....%4.4s-I  Send Files ....%4.4s-U", hot, hot, hot);
X+ 	mvwprintw(h_win,  7,  2, "Auto Redial ......%4.4s-R  Setup Screen ....%4.4s-S  Receive Files .%4.4s-N", hot, hot, hot);
X+ #else /* OLDCURSES */
X  	mvwprintw(h_win,  6,  2, "Dialing Directory.%4.4s-D  Program Info ....%4.4s-I  Send Files ....%4.4s-<up>", hot, hot, hot);
X  	mvwprintw(h_win,  7,  2, "Auto Redial ......%4.4s-R  Setup Screen ....%4.4s-S  Receive Files .%4.4s-<down>", hot, hot, hot);
X***************
X*** 25,28
X  	mvwprintw(h_win,  6,  2, "Dialing Directory.%4.4s-D  Program Info ....%4.4s-I  Send Files ....%4.4s-<up>", hot, hot, hot);
X  	mvwprintw(h_win,  7,  2, "Auto Redial ......%4.4s-R  Setup Screen ....%4.4s-S  Receive Files .%4.4s-<down>", hot, hot, hot);
X  	mvwprintw(h_win,  8,  2, "Keyboard Macros ..%4.4s-M  Change Directory.%4.4s-B  Pass Thru Mode.%4.4s-T", hot, hot, hot);
X  	mvwprintw(h_win,  9,  2, "Line Settings ....%4.4s-P  Clear Screen ....%4.4s-C  Directory .....%4.4s-F", hot, hot, hot);
X
X--- 29,33 -----
X  	mvwprintw(h_win,  6,  2, "Dialing Directory.%4.4s-D  Program Info ....%4.4s-I  Send Files ....%4.4s-<up>", hot, hot, hot);
X  	mvwprintw(h_win,  7,  2, "Auto Redial ......%4.4s-R  Setup Screen ....%4.4s-S  Receive Files .%4.4s-<down>", hot, hot, hot);
X+ #endif /* OLDCURSES */
X  	mvwprintw(h_win,  8,  2, "Keyboard Macros ..%4.4s-M  Change Directory.%4.4s-B  Pass Thru Mode.%4.4s-T", hot, hot, hot);
X  	mvwprintw(h_win,  9,  2, "Line Settings ....%4.4s-P  Clear Screen ....%4.4s-C  Directory .....%4.4s-F", hot, hot, hot);
X*** old/main.c	Tue Mar  7 11:18:10 1989
X--- main.c	Thu May 11 11:54:47 1989
X***************
X*** 15,18
X   *	Patch #1	18 Feb 89
X   *	Patch #2	11 Mar 89
X   */
X  
X
X--- 15,19 -----
X   *	Patch #1	18 Feb 89
X   *	Patch #2	11 Mar 89
X+  *	Patch #3	11 May 89
X   */
X  
X***************
X*** 150,153
X  	cbreak();
X  	noecho();
X  
X  #ifdef OLDCURSES
X
X--- 151,157 -----
X  	cbreak();
X  	noecho();
X+ #ifdef XENIX_3
X+ 	raw();
X+ #endif /* XENIX_3 */
X  
X  #ifdef OLDCURSES
X*** old/modem_break.c	Thu Jan 12 14:32:16 1989
X--- modem_break.c	Wed May 10 12:18:47 1989
X***************
X*** 5,8
X  
X  #include <stdio.h>
X  #ifdef BSD
X  #include <sgtty.h>
X
X--- 5,12 -----
X  
X  #include <stdio.h>
X+ #ifdef XENIX_3
X+ #include <sys/types.h>
X+ #include <sys/ioctl.h>
X+ #endif /* XENIX_3 */
X  #ifdef BSD
X  #include <sgtty.h>
X*** old/script.c	Mon Feb 20 15:32:06 1989
X--- script.c	Sun Apr  2 12:21:17 1989
X***************
X*** 138,143
X  			break;
X  	}
X- 					/* wait for the zombie process */
X- 	wait(&sig_status);
X  
X  	signal(SIGINT, istat);
X
X--- 138,141 -----
X  			break;
X  	}
X  
X  	signal(SIGINT, istat);
X*** old/terminal.c	Mon Feb 20 15:32:08 1989
X--- terminal.c	Tue May  2 09:29:35 1989
X***************
X*** 394,397
X  input_off()
X  {
X  	if (pid != -1) {
X  		kill(pid, SIGTERM);
X
X--- 394,399 -----
X  input_off()
X  {
X+ 	SIG_TYPE (*cstat)();
X+ 
X  	if (pid != -1) {
X  		/*
X***************
X*** 395,398
X  {
X  	if (pid != -1) {
X  		kill(pid, SIGTERM);
X  		pid = -1;
X
X--- 397,404 -----
X  
X  	if (pid != -1) {
X+ 		/*
X+ 		 * This serves to periodically clean up the process table
X+ 		 */
X+ 		cstat = signal(SIGCLD, SIG_IGN);
X  		kill(pid, SIGTERM);
X  		pid = -1;
X***************
X*** 397,400
X  		kill(pid, SIGTERM);
X  		pid = -1;
X  	}
X  	return;
X
X--- 403,407 -----
X  		kill(pid, SIGTERM);
X  		pid = -1;
X+ 		signal(SIGCLD, cstat);
X  	}
X  	return;
X*** old/tty_att.c	Thu Dec 29 13:24:52 1988
X--- tty_att.c	Wed May 10 12:18:47 1989
X***************
X*** 4,7
X  
X  #include <stdio.h>
X  #include <termio.h>
X  #include <fcntl.h>
X
X--- 4,11 -----
X  
X  #include <stdio.h>
X+ #ifdef XENIX_3
X+ #include <sys/types.h>
X+ #include <sys/ioctl.h>
X+ #endif /* XENIX_3 */
X  #include <termio.h>
X  #include <fcntl.h>
X*** old/vcs.c	Fri Jan 27 10:06:04 1989
X--- vcs.c	Wed May 10 12:18:48 1989
X***************
X*** 10,13
X  #include <curses.h>
X  #include <term.h>
X  #endif /* OLDCURSES */
X  
X
X--- 10,15 -----
X  #include <curses.h>
X  #include <term.h>
X+ #else /* OLDCURSES */
X+ char tcbuf[1024];
X  #endif /* OLDCURSES */
X  
X***************
X*** 188,192
X  
X  #ifdef OLDCURSES
X! 	char tcbuf[1024], tb[1024], *t, *cursor_home, *clr_eol, *clr_eos;
X  	char *clear_screen, *cursor_up, *cursor_down, *cursor_right;
X  	char *cursor_left, *cursor_address, *getenv(), *tgetstr(), *tgoto();
X
X--- 190,194 -----
X  
X  #ifdef OLDCURSES
X! 	char tb[1024], *t, *cursor_home, *clr_eol, *clr_eos;
X  	char *clear_screen, *cursor_up, *cursor_down, *cursor_right;
X  	char *cursor_left, *cursor_address, *getenv(), *tgetstr(), *tgoto();
X*** old/x_extrnl.c	Fri Feb  3 10:08:06 1989
X--- x_extrnl.c	Sun Apr  2 12:21:19 1989
X***************
X*** 118,123
X  			break;
X  	}
X- 					/* wait for the zombie process */
X- 	wait(&sig_status);
X  
X  	signal(SIGINT, istat);
X
X--- 118,121 -----
X  			break;
X  	}
X  
X  	signal(SIGINT, istat);
X
X
END_OF_FILE
if test 9070 -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'\" \(7060 characters\)
sed "s/^X//" >'patch4' <<'END_OF_FILE'
XSubject: Patch #4 to Pcomm v1.2
X
XThis is patch #4 to the Pcomm v1.2 distribution package.  This patch
Xwill fix the problem of transferring files on BSD systems when the names
Xare greater than 14 characters in length.  (However, the file names will
Xstill get truncated to 14 characters, so I'll address that in a later
Xrelease).
X
XThis patch also contains some odds and end suggested by Jonathan Bayer
X(...uunet!ispi!jbayer) and Gary Trujillo (...spdcc!gnosys!gst) over the
Xpast few months.
X
XEmmet P. Gray				US Army, HQ III Corps & Fort Hood
X...!uunet!uiucuxc!fthood!egray		Attn: AFZF-DE-ENV
Xfthood!egray@uxc.cso.uiuc.edu		Directorate of Engineering & Housing
X					Environmental Management Office
X					Fort Hood, TX 76544-5057
X
X-----------------------------------------------------------------------------
XPrereq: "1.2.3"
X*** old/info.c	Sun Jun 11 10:25:44 1989
X--- info.c	Fri Jun 23 10:03:05 1989
X***************
X*** 4,9
X   */
X  
X! #define VERSION	"1.2.3"
X! #define DATE	"11 May 89"
X  
X  #include <stdio.h>
X
X--- 4,9 -----
X   */
X  
X! #define VERSION	"1.2.4"
X! #define DATE	"23 Jun 89"
X  
X  #include <stdio.h>
X*** old/main.c	Sun Jun 11 10:25:43 1989
X--- main.c	Fri Jun 23 10:03:18 1989
X***************
X*** 16,19
X   *	Patch #2	11 Mar 89
X   *	Patch #3	11 May 89
X   */
X  
X
X--- 16,20 -----
X   *	Patch #2	11 Mar 89
X   *	Patch #3	11 May 89
X+  *	Patch #4	23 Jun 89
X   */
X  
X*** old/st_line.c	Sat Jun 17 09:16:50 1989
X--- st_line.c	Sat Jun 17 09:17:08 1989
X***************
X*** 76,79
X  	delwin(sl_win);
X  	move(y, x);
X  	return;
X  }
X
X--- 76,80 -----
X  	delwin(sl_win);
X  	move(y, x);
X+ 	refresh();
X  	return;
X  }
X*** old/terminal.c	Sun Jun 11 10:25:38 1989
X--- terminal.c	Sun Jun 11 10:32:11 1989
X***************
X*** 431,435
X  		st_line("disconnecting");
X  					/* special case for OBM */
X- #ifdef UNIXPC
X  	if (!strcmp(modem->mname[modem->m_cur], "OBM")) {
X  		ioctl(fd, PIOCDISC);
X
X--- 431,434 -----
X  		st_line("disconnecting");
X  					/* special case for OBM */
X  	if (!strcmp(modem->mname[modem->m_cur], "OBM")) {
X  #ifdef UNIXPC
X***************
X*** 433,436
X  #ifdef UNIXPC
X  	if (!strcmp(modem->mname[modem->m_cur], "OBM")) {
X  		ioctl(fd, PIOCDISC);
X  		/*
X
X--- 432,436 -----
X  					/* special case for OBM */
X  	if (!strcmp(modem->mname[modem->m_cur], "OBM")) {
X+ #ifdef UNIXPC
X  		ioctl(fd, PIOCDISC);
X  		/*
X***************
X*** 445,450
X  		line_set();
X  		fcntl(fd, F_SETFL, fcntl(fd, F_GETFL, 0) & ~O_NDELAY);
X- 	}
X- 	else
X  #endif /* UNIXPC */
X  		send_str(modem->hang_up[modem->m_cur], SLOW);
X
X--- 445,448 -----
X  		line_set();
X  		fcntl(fd, F_SETFL, fcntl(fd, F_GETFL, 0) & ~O_NDELAY);
X  #endif /* UNIXPC */
X  	}
X***************
X*** 448,451
X  	else
X  #endif /* UNIXPC */
X  		send_str(modem->hang_up[modem->m_cur], SLOW);
X  
X
X--- 446,451 -----
X  		fcntl(fd, F_SETFL, fcntl(fd, F_GETFL, 0) & ~O_NDELAY);
X  #endif /* UNIXPC */
X+ 	}
X+ 	else {
X  		send_str(modem->hang_up[modem->m_cur], SLOW);
X  
X***************
X*** 450,460
X  		send_str(modem->hang_up[modem->m_cur], SLOW);
X  
X! 	/*
X! 	 * Some modems do "damage" to the tty driver when they hang up by
X! 	 * flashing the modem control lines on the port.  The following is
X! 	 * some witchcraft designed to put the driver back the way it was.
X! 	 */
X! 	sleep(1);
X! 	close(open(ttyname(fd), O_RDWR));
X  
X  	if (verbose)
X
X--- 450,462 -----
X  		send_str(modem->hang_up[modem->m_cur], SLOW);
X  
X! 		/*
X! 		 * Some modems do "damage" to the tty driver when they hang
X! 		 * up by flashing the modem control lines on the port.  The
X! 		 * following is some witchcraft designed to put the driver
X! 		 * back the way it was.
X! 		 */
X! 		sleep(1);
X! 		close(open(ttyname(fd), O_RDWR));
X! 	}
X  
X  	if (verbose)
X*** old/x_batch.c	Tue May 23 12:28:22 1989
X--- x_batch.c	Sun Jun 11 10:39:50 1989
X***************
X*** 270,273
X  	int modified;
X  	char temp[15], ans[15], *s, *strrchr(), *strcpy(), *strncat();
X  	unsigned int sleep();
X  					/* dissect the name component */
X
X--- 270,274 -----
X  	int modified;
X  	char temp[15], ans[15], *s, *strrchr(), *strcpy(), *strncat();
X+ 	char *strncpy();
X  	unsigned int sleep();
X  					/* dissect the name component */
X***************
X*** 273,277
X  					/* dissect the name component */
X  	if ((s = strrchr(str, '/')))
X! 		strcpy(temp, ++s);
X  	else
X  		strcpy(temp, str);
X
X--- 274,278 -----
X  					/* dissect the name component */
X  	if ((s = strrchr(str, '/')))
X! 		strncpy(temp, ++s, 15);
X  	else
X  		strncpy(temp, str, 15);
X***************
X*** 275,279
X  		strcpy(temp, ++s);
X  	else
X! 		strcpy(temp, str);
X  
X  	strcpy(ans, temp);
X
X--- 276,281 -----
X  		strncpy(temp, ++s, 15);
X  	else
X! 		strncpy(temp, str, 15);
X! 	temp[14] = '\0';
X  
X  	strcpy(ans, temp);
X***************
X*** 325,330
X  char *path;
X  {
X! 	int dot;
X! 	char *s, *name, temp[15], *ext, *strcpy(), *strrchr();
X  	static char ans[13];
X  					/* ignore the path component */
X
X--- 327,332 -----
X  char *path;
X  {
X! 	int i, dot;
X! 	char *s, *name, temp[15], *ext, *strncpy(), *strrchr();
X  	static char ans[13];
X  					/* ignore the path component */
X***************
X*** 330,334
X  					/* ignore the path component */
X  	if (s = strrchr(path, '/'))
X! 		strcpy(temp, ++s);
X  	else
X  		strcpy(temp, path);
X
X--- 332,336 -----
X  					/* ignore the path component */
X  	if (s = strrchr(path, '/'))
X! 		strncpy(temp, ++s, 15);
X  	else
X  		strncpy(temp, path, 15);
X***************
X*** 332,336
X  		strcpy(temp, ++s);
X  	else
X! 		strcpy(temp, path);
X  	name = temp;
X  
X
X--- 334,339 -----
X  		strncpy(temp, ++s, 15);
X  	else
X! 		strncpy(temp, path, 15);
X! 	temp[14] = '\0';
X  	name = temp;
X  
X***************
X*** 337,345
X  	ext = "";
X  	dot = 0;
X! 	for (s=name; *s; ++s) {
X! 		if (*s == '.' && !dot) {
X! 			dot++;
X! 			*s = '\0';
X! 			ext = s + 1;
X  		}
X  		if (islower(*s))
X
X--- 340,348 -----
X  	ext = "";
X  	dot = 0;
X! 	for (i=strlen(temp)-1; i>=0; i--) {
X! 		if (temp[i] == '.' && !dot) {
X! 			dot = 1;
X! 			temp[i] = '\0';
X! 			ext = &temp[i+1];
X  		}
X  		if (islower(temp[i]))
X***************
X*** 343,348
X  			ext = s + 1;
X  		}
X! 		if (islower(*s))
X! 			*s = toupper(*s);
X  	}
X  					/* if null name component */
X
X--- 346,351 -----
X  			ext = &temp[i+1];
X  		}
X! 		if (islower(temp[i]))
X! 			temp[i] = toupper(temp[i]);
X  	}
X  					/* if null name component */
X*** old/Pcomm.1	Wed Jun 14 08:32:34 1989
X--- Pcomm.1	Wed Jun 14 08:32:08 1989
X***************
X*** 61,65
X  Dialing Directory.  The dialing directory screen is used to display and
X  maintain the database of phone number entries, and to select an entry
X! for dialing.  To dialan entry, just enter the entry number at the
X  prompt.  If the ``script'' field contains valid Unix shell script, that
X  file is used to automatically log the user on to the remote system.  See
X
X--- 61,65 -----
X  Dialing Directory.  The dialing directory screen is used to display and
X  maintain the database of phone number entries, and to select an entry
X! for dialing.  To dial an entry, just enter the entry number at the
X  prompt.  If the ``script'' field contains valid Unix shell script, that
X  file is used to automatically log the user on to the remote system.  See
XEnd of Patch
X
X
END_OF_FILE
if test 7060 -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.
Use a domain-based address or give alternate paths, or you may lose out.