From: egray@osiris.cso.uiuc.edu (Emmet P. Gray)
Newsgroups: comp.archives
Subject: [comp.sys.sun.apps] New Pcomm v2.0 available
Followup-To: comp.sys.sun.apps
Date: 21 Jul 1992 09:33:48 GMT
Organization: US Army Corps of Engineers - Construction Eng Research Lab
Distribution: world
NNTP-Posting-Host: soda.berkeley.edu
X-Original-Newsgroups: comp.sys.sun.apps
X-Original-Date: Mon, 20 Jul 1992 19:44:43 GMT

Archive-name: auto/comp.sys.sun.apps/New-Pcomm-v2-0-available

This is to annouce the release of Pcomm v2.0.  This replaces the current
v1.2.10 and v2.0_beta releases.  I've just sent the code to the
moderator of comp.sources.unix (so I imagine it will be a while before
it shows up).  Meanwhile, the code is available now via anonymous ftp
from cerl.cecer.army.mil (129.229.1.101).

I've been using Pcomm v2.0 on my SunOS 4.1.x boxes for quite some time
now, so I don't think you'll have any trouble compiling it or getting it
to work.  There are specific reference to SunOS in the Readme and
Q_and_A files that you should be aware of...

Below are the actual Makefile and config.h files that I use on my IPC.
Your mileage may vary :-)

Pcomm is a public domain telecommunication program for Unix designed to
operate similarly to the popular MSDOS program, ProComm.  ProComm (TM)
is copyrighted by Datastorm Technologies Inc.

Some of the new features in v2.0 are:
	o multiplexed I/O instead of a forked routine
	o true scripting feature has been added
	o support for baud rates up to 38400
	o connected baud rates for v.32bis (7200, 12k, and 14.4k)
	o optional modem configuration per dialing directory entry
	o system configuration script

Emmet P. Gray				US Army, HQ III Corps & Fort Hood
...!uunet!uiucuxc!fthood!egray		Attn: AFZF-DE-ENV
fthood!egray@uxc.cso.uiuc.edu		Directorate of Engineering & Housing
					Environmental Management Office
					Fort Hood, TX 76544-5057
-------------------------------------------------------------------------------
#! /bin/sh
# This is a shell archive, meaning:
# 1. Remove everything above the #! /bin/sh line.
# 2. Save the resulting text in a file.
# 3. Execute the file with /bin/sh (not csh) to create:
#	Makefile
#	config.h
# This archive created: Mon Jul 20 14:39:25 1992
export PATH; PATH=/bin:/usr/bin:$PATH
echo shar: "extracting 'Makefile'" '(6657 characters)'
if test -f 'Makefile'
then
	echo shar: "will not over-write existing file 'Makefile'"
else
sed 's/^X//' << \SHAR_EOF > 'Makefile'
X#				PCOMM v2.0
X#			     for SunOS 4.1.x
X
X#for 80286 versions of SCO Xenix
X#CFLAGS = -Od -DM_TERMINFO -Mle2 -LARGE
X#LDFLAGS = -SEG 1000 -F 5000 -Mle2
X#CURSES = -ltinfo -lx
X
X#for 80386 versions of SCO Xenix
X#CFLAGS = -O -DM_TERMINFO
X#LDFLAGS = -s
X#CURSES = -ltinfo -lx
X
X#for the AT&T Unix PC 7300/3b1
X#LD = ld
X#SHLIB = /lib/crt0s.o /lib/shlib_c.ifile
X#OTHER = /lib/setvbuf.o /lib/doprnt.o -luipc
X
X#for Sun OS (using the System V compiler)
XCC = /usr/5bin/cc
XLD = /usr/5bin/cc
X
X#LD = cc
XSHLIB =
XOTHER =
XCFLAGS = -O
XLDFLAGS = -s
XSHAR = shar -a
X
XBIN_DIR = /home/egray/bin
XMAN_DIR = /usr/man1
XMAN_EXT = 1
XPCOMM_LIB = /local/lib/pcomm
X
X#for old curses (i.e. Berkeley systems)
X#CURSES = -lcurses -ltermcap
XCURSES = -lcurses
X
X#for systems without getcwd(3) or getopt(3)
X#GETCWD.O = getcwd.o
X#GETCWD.C = getcwd.c
X#GETOPT.O = getopt.o
X#GETOPT.C = getopt.c
X
X#for System V or Berkeley TTY interface
X#TTY.O = tty_ucb.o
X#TTY.C = tty_ucb.c
XTTY.O = tty_att.o
XTTY.C = tty_att.c
X
X#for System V poll() or Berkeley select()
XIPC.O = ipc_ucb.o
XIPC.C = ipc_ucb.c
X#IPC.O = ipc_att.o
X#IPC.C = ipc_att.c
X
XPCOMM = $(GETCWD.O) $(GETOPT.O) $(TTY.O) $(IPC.O) admin.o chg_dir.o cmd.o \
X	curses.o d_delete.o d_lib.o d_manual.o d_menu.o d_print.o \
X	d_prompt.o d_revise.o data_log.o di_delay.o di_win.o dial.o \
X	e_lib.o expand.o help.o info.o init.o input.o list_dir.o ls_menu.o \
X	m_lib.o macro.o main.o n_shell.o p_lib.o passthru.o pexit.o \
X	port.o redial.o s_axfer.o s_extrnl.o s_gen.o s_menu.o s_modem.o \
X	s_prompt.o s_term.o s_tty.o screen.o script.o st_line.o \
X	strings.o terminal.o vcs.o x_ascii.o x_batch.o x_extrnl.o \
X	x_menu.o x_rcv.o x_send.o x_win.o xmodem.o
X
Xall:	pcomm waitfor matches pcomm_cmd
X
Xpcomm:	$(PCOMM)
X	$(LD) $(LDFLAGS) $(PCOMM) $(OTHER) -o pcomm $(CURSES) $(SHLIB)
X
Xwaitfor: waitfor.o
X	$(LD) $(LDFLAGS) waitfor.o -o waitfor $(SHLIB)
X
Xmatches: matches.o
X	$(LD) $(LDFLAGS) matches.o -o matches $(SHLIB)
X
Xpcomm_cmd: pcomm_cmd.o
X	$(LD) $(LDFLAGS) pcomm_cmd.o -o pcomm_cmd $(SHLIB)
X
Xpcomm_cmd.o:
X	$(CC) $(CFLAGS) -DIPC=\"$(IPC.C)\" -c pcomm_cmd.c
X
Xinstall:
X	cp pcomm waitfor matches pcomm_cmd $(BIN_DIR)
X#	obviously this requires super-user privelidges...
X#	chmod 4755 $(BIN_DIR)/pcomm
X#	chown uucp $(BIN_DIR)/pcomm
X
Xinstall_man:
X	cp Pcomm.1 $(MAN_DIR)/pcomm.$(MAN_EXT)
X	cp Pcomm_cmd.1 $(MAN_DIR)/pcomm_cmd.$(MAN_EXT)
X	cp Waitfor.1 $(MAN_DIR)/waitfor.$(MAN_EXT)
X	cp Matches.1 $(MAN_DIR)/matches.$(MAN_EXT)
X
Xinstall_support:
X	cp Pcomm.dial_dir $(PCOMM_LIB)/pcomm.dial_dir
X	cp Pcomm.modem $(PCOMM_LIB)/pcomm.modem
X	cp Pcomm.param $(PCOMM_LIB)/pcomm.param
X	cp Pcomm.extrnl $(PCOMM_LIB)/pcomm.extrnl
X
Xclean:
X	rm pcomm waitfor matches pcomm_cmd
X
Xlint:
X	/usr/5bin/lint -p -Dlint $(GETCWD.C) $(GETOPT.C) $(TTY.C) $(IPC.C) admin.c \
X	chg_dir.c cmd.c curses.c d_delete.c d_lib.c d_manual.c d_menu.c \
X	d_print.c d_prompt.c d_revise.c data_log.c di_delay.c di_win.c \
X	dial.c e_lib.c expand.c help.c info.c init.c input.c list_dir.c \
X	ls_menu.c m_lib.c macro.c main.c n_shell.c p_lib.c passthru.c \
X	pexit.c port.c redial.c s_axfer.c s_extrnl.c s_gen.c s_menu.c \
X	s_modem.c s_prompt.c s_term.c s_tty.c screen.c script.c \
X	st_line.c strings.c terminal.c vcs.c x_ascii.c x_batch.c \
X	x_extrnl.c x_menu.c x_rcv.c x_send.c x_win.c xmodem.c $(CURSES)
X	/usr/5bin/lint -p -Dlint -DIPC=\"$(IPC.C)\" pcomm_cmd.c
X	/usr/5bin/lint -p -Dlint waitfor.c
X	/usr/5bin/lint -p -Dlint matches.c
X
Xshar:
X	$(SHAR) Doc.me > pcomm_sh.1
X	$(SHAR) Configure.sh Convert.sh Makefile Matches.1 Pcomm.1 \
X	Pcomm.dial_dir Pcomm.extrnl Pcomm.modem Pcomm.param Pcomm_cmd.1 \
X	Q_and_A Readme Release.notes Sample > pcomm_sh.2
X	$(SHAR) Unixpc.shar Waitfor.1 admin.c chg_dir.c cmd.c cmd.h \
X	config.h curses.c d_delete.c d_lib.c d_manual.c > pcomm_sh.3
X	$(SHAR) d_menu.c d_print.c d_prompt.c d_revise.c data_log.c \
X	di_delay.c di_win.c dial.c dial_dir.h e_lib.c expand.c extrnl.h \
X	getcwd.c getopt.c help.c > pcomm_sh.4
X	$(SHAR) info.c init.c input.c ipc.h ipc_att.c ipc_ucb.c \
X	list_dir.c ls_menu.c m_lib.c macro.c main.c matches.c misc.h \
X	modem.h n_shell.c > pcomm_sh.5
X	$(SHAR) p_lib.c param.h passthru.c patchlevel.h pcomm_cmd.c \
X	pexit.c port.c redial.c s_axfer.c s_extrnl.c s_gen.c > pcomm_sh.6
X	$(SHAR) s_menu.c s_modem.c s_prompt.c s_term.c s_tty.c screen.c \
X	script.c st_line.c status.h strings.c terminal.c tty_att.c \
X	tty_ucb.c > pcomm_sh.7
X	$(SHAR) vcs.c vcs.h waitfor.c x_ascii.c x_batch.c x_extrnl.c \
X	x_menu.c x_rcv.c > pcomm_sh.8
X	$(SHAR) x_send.c x_win.c xmodem.c xmodem.h > pcomm_sh.9
X#	$(SHAR) Doc.out Matches.out Pcomm.out Pcomm_cmd.out Waitfor.out \
X#	> pcomm_sh.10
X
Xadmin.o:	config.h dial_dir.h param.h
Xchg_dir.o:	config.h misc.h
Xcmd.o:		cmd.h config.h dial_dir.h extrnl.h modem.h param.h status.h xmodem.h
Xcurses.o:	config.h misc.h status.h
Xd_delete.o:	dial_dir.h misc.h param.h
Xd_lib.o:	dial_dir.h param.h
Xd_manual.o:	config.h dial_dir.h misc.h
Xd_menu.o:	config.h dial_dir.h misc.h param.h
Xd_print.o:	config.h dial_dir.h misc.h
Xd_prompt.o:	dial_dir.h misc.h
Xd_revise.o:	dial_dir.h misc.h param.h
Xdata_log.o:	misc.h param.h status.h
Xdi_delay.o:	misc.h param.h
Xdi_win.o:	dial_dir.h misc.h modem.h param.h status.h
Xdial.o:		config.h dial_dir.h misc.h modem.h param.h
Xe_lib.o:	extrnl.h
Xexpand.o:	config.h
Xgetopt.o:	config.h
Xhelp.o:		config.h misc.h
Xinfo.o:		patchlevel.h
Xinit.o:		config.h misc.h status.h
Xinput.o:	config.h misc.h param.h status.h vcs.h
Xipc_att.o:	ipc.h
Xipc_ucb.o:	ipc.h
Xlist_dir.o:	misc.h
Xls_menu.o:	dial_dir.h misc.h param.h
Xm_lib.o:	modem.h
Xmacro.o:	misc.h param.h
Xmain.o:		config.h dial_dir.h extrnl.h misc.h modem.h param.h status.h
Xn_shell.o:	config.h
Xp_lib.o:	param.h
Xpassthru.o:	config.h misc.h
Xpexit.o:	dial_dir.h misc.h param.h status.h
Xport.o:		config.h dial_dir.h modem.h status.h
Xredial.o:	config.h dial_dir.h misc.h
Xs_axfer.o:	misc.h param.h
Xs_extrnl.o:	extrnl.h misc.h
Xs_gen.o:	misc.h param.h
Xs_menu.o:	misc.h
Xs_modem.o:	misc.h modem.h
Xs_prompt.o:	misc.h
Xs_term.o:	dial_dir.h misc.h param.h
Xs_tty.o:	misc.h modem.h
Xscreen.o:	param.h status.h
Xscript.o:	config.h dial_dir.h misc.h modem.h status.h 
Xst_line.o:	config.h dial_dir.h misc.h modem.h param.h status.h
Xstrings.o:	config.h
Xterminal.o:	config.h dial_dir.h ipc.h misc.h modem.h param.h status.h xmodem.h
Xtty_att.o:	dial_dir.h modem.h param.h
Xtty_ucb.o:	dial_dir.h modem.h param.h
Xvcs.o:		config.h status.h vcs.h
Xx_ascii.o:	config.h misc.h param.h
Xx_batch.o:	config.h misc.h xmodem.h
Xx_extrnl.o:	config.h
Xx_menu.o:	extrnl.h misc.h xmodem.h
Xx_rcv.o:	config.h dial_dir.h misc.h xmodem.h
Xx_send.o:	config.h dial_dir.h misc.h xmodem.h
Xx_win.o:	dial_dir.h misc.h status.h xmodem.h
Xxmodem.o:	config.h misc.h param.h xmodem.h
X
Xpcomm_cmd.o:	config.h cmd.h $(IPC.C)
Xmatches.o:	config.h
Xwaitfor.o:	config.h
SHAR_EOF
if test 6657 -ne "`wc -c < 'Makefile'`"
then
	echo shar: "error transmitting 'Makefile'" '(should have been 6657 characters)'
fi
fi
echo shar: "extracting 'config.h'" '(2467 characters)'
if test -f 'config.h'
then
	echo shar: "will not over-write existing file 'config.h'"
else
sed 's/^X//' << \SHAR_EOF > 'config.h'
X/*
X * Various tunable parameters.  This should appear before any other local
X * header file.
X */
X
X/* Are you using a Berkeley flavor of Unix? */
X#undef	BSD
X
X/* Use the dialing routines specific to the AT&T Unix PC 7300/3b1 */
X#undef	UNIXPC
X
X/* Older versions of curses(3) use termcap in lieu of terminfo */
X#undef	OLDCURSES
X
X/* Should a missing video attribute be promoted to standout? */
X#define	NOPROMOTE
X
X/* Should Pcomm make a log of all phone calls? */
X#define	LOG_CALLS
X
X/* The name of the log file (if used).  */
X#define	LOG_FILE	"/usr/adm/phone.calls"
X
X/* Should long distance (toll) calls be limited to a specific group? */
X#define	LIMIT_LD
X
X/* The name of the privileged group for limiting long distance calls */
X#define	GROUP_NAME	"uucp"
X
X/* The path to the line printer program */
X#define	LPR		"/local/bin/lpr"
X
X/* The path to the "pretty" printer program (if none, use "pr | lp") */
X#define	LPRINT		"/local/bin/lprint"
X
X/* The path to the default directory containing the Pcomm support files */
X#define	DEFAULT_DIR	"/local/lib/pcomm"
X
X/* The path to the directory where UUCP locks are found */
X#define	LOCK_DIR	"/usr/spool/locks"
X
X/* Do the lock files use ASCII encoded PID's? */
X#define	ASCII_PID
X
X/* Fold the last character of the lock to lower case? */
X#undef	XENIX_LOCKS
X
X/* Use the new SVR4 lock format? */
X#undef	SVR4_LOCKS
X
X/* Does the status line scroll up on "magic cookie" terminals? */
X#undef	XMC_BROKE
X
X/* Does the alarm() system call work correctly with the wgetch() function? */
X#undef	WGETCH_BROKE
X
X/* Does the O_NDELAY mode tend to stick around when asked to leave? */
X#undef	O_NDELAY_BROKE
X
X/* The size of the serial port character buffer (or Stream buffer) */
X#define	CLIST_SIZ	64
X
X/* The size of the input buffer (should be about the same as CLIST_SIZ) */
X#define	INPUT_BUF	64
X
X/* The size of the output buffer (should be about one half INPUT_BUF) */
X#define	OUTPUT_BUF	32
X
X/* Does memmove() exist or is memcpy() well behaved when overlapping? */
X/* #define	MEMMOVE(a,b,c)	memmove(a,b,c) */
X#define	MEMMOVE(a,b,c)	memcpy(a,b,c) 
X/* #define	MEMMOVE(a,b,c)	bcopy(b,a,c) */
X
X/* Does your Unix allow flip-flop between real and effective user IDs? */
X#undef	SETUID_BROKE
X
X/* Does your system have the strstr() function? */
X#define	HAVE_STRSTR
X
X/* Does your system have the usleep() function? */
X#define	HAVE_USLEEP
X
Xtypedef void SIG_TYPE;
X/* typedef int SIG_TYPE; */
X
X#ifdef BSD
X#define	strchr	index
X#define	strrchr	rindex
X#endif /* BSD */
SHAR_EOF
if test 2467 -ne "`wc -c < 'config.h'`"
then
	echo shar: "error transmitting 'config.h'" '(should have been 2467 characters)'
fi
fi
exit 0
#	End of shell archive