home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Usenet 1994 October
/
usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso
/
misc
/
volume22
/
ecu
/
patch01a
next >
Wrap
Text File
|
1991-08-16
|
52KB
|
1,818 lines
Newsgroups: comp.sources.misc
From: Warren Tucker <wht@n4hgf.Mt-Park.GA.US>
Subject: v22i019: ecu - ECU async comm package rev 3.10, Patch01a/3
Message-ID: <csm-v22i019=ecu.210425@sparky.imd.sterling.com>
X-Md4-Signature: 414fd92d99cbc90437bf81d10cf70f5e
Date: Fri, 16 Aug 1991 02:05:38 GMT
Approved: kent@sparky.imd.sterling.com
Submitted-by: Warren Tucker <wht@n4hgf.Mt-Park.GA.US>
Posting-number: Volume 22, Issue 19
Archive-name: ecu/patch01a
Environment: SCO, XENIX, ISC
Patch-To: ecu: Volume 21, Issue 53-89
This is patch 1 to ecu 3.10, issues v21i053 through v21i089.
This patch fixes several bugs with the original program as well
as advances the ISC support. The file README.P1 contains a
complete list of the fixes. The doc/*.txt files are updated
by the patch, but this is of minor use if you lack nroff.
The README.P1 file contains most of the essential information,
but I will be happy to mail a new manual to anyone who asks.
#!/bin/sh
# This is ecu310-p1, a shell archive (shar 3.46)
# made 08/12/1991 08:12 UTC by wht@n4hgf
# Source directory /u1/src/ecu
#
# existing files WILL be overwritten
#
# This shar contains:
# length mode name
# ------ ---------- ------------------------------------------
# 7317 -rw-r--r-- README.P1
# 65 -rwxr-xr-x PATCH1.APPLY
# 40147 -rw-r--r-- PATCH1.01
# 49101 -rw-r--r-- PATCH1.02
# 19884 -rw-r--r-- PATCH1.03
# 1322 -rwxr-xr-x Configure
# 4817 -rw-r--r-- eculock.c
# 5101 -rw-r--r-- ecuungetty/ecuungetty.c
# 1397 -rw-r--r-- logevent.c
# 22 -rw-r--r-- patchlevel.h
# 735 -rw-r--r-- utmpstatus.h
# 659 -rwxr-xr-x zgcc
#
if touch 2>&1 | fgrep 'amc' > /dev/null
then TOUCH=touch
else TOUCH=true
fi
# ============= README.P1 ==============
echo 'x - extracting README.P1 (Text)'
sed 's/^X//' << 'SHAR_EOF' > 'README.P1' &&
XREADME.P1 ECU 3.10 Patch 1 Mon Aug 12 03:46:20 EDT 1991
X
XThis describes patch 1 to ECU 3.10, bringing the program to
Xversion 3.11. Due to the manner in which the program builds its
Xversion strings, patchlevel.h should contain #define PATCHLEVEL
X11.
X
XTo use
X------
X
XTo apply the patch, unshar all of the parts. This step will
Xcreate patch files and overwrite some files whose diffs were
Xlarger than the new files.
X
Xtype the command
X sh PATCH1.APPLY
X
Xthen do the
X Configure
Xsequence and re-make
X
XOnce you are satisfied the patch has been correctly applied,
Xyou may
X rm PATCH1.*
Xand
X make neat
Xto remove the usual crud and peanut hulls left on the floor after
Xa patch operation.
X
XThis patch fixes the following problems:
X----------------------------------------
X
X1. ISC lock files are placed in /usr/spool/locks. ECU now has a
Xconfigurable lock file directory whose name is automatically selected
Xdepending upon the machine type.
X
X1. 1. Several problems with compiling the the makedirs program under
XXENIX were fixed.
X
X3. The 'w' (wait) subcommand of the dialing directory screen was not
Xasking for both single and multiple entry list weait values, but only
Xthe first.
X
X4. VT220 and perhaps other terminals insist upon generating the CSI
X(ESCape plus 0x80) character as a function prefix. To handle the need
Xfor eight bit keryboard support for nonansikeys, I did the following:
X
X a. fixed the ECU code to honor the full eight bits of keyboard
X code sequences when processing function key reads.
X
X b. removed other code that masks the parity bit of various data items.
X
X c. added code the kbdtest3.c that includes an stty -a listing for
X the keyboard at the time it is run. I also specify in clearer
X terms what parity was in use and that may be required to use
X the keyboard.
X
X5. Previously, you had to have a copy of nonansikeys in each user's
X.ecu directory who use non-ANSI consoles. You may now put a single copy
Xin the ECU library directory (usually /usr/local/lib/ecu). ECU searches
Xfirst in ~/.ecu then in the library directory.
X
X5a. The manual stated a number of restrictions regarding
Xthe codes which can be transmitted by a keyboard to be supported
Xby the non-ANSI console feature. I missed updating that manual part
Xwhen I released 3.10. ECU 3.10 merely requires the code sequence
Xto be free of nulls and less than 33 characters in length.
X
X6. The models/nonansikeys file has been updated to include an entry for
Xthe latest Metro Link X11R4 server. The new server has improved default
Xkey bindings and the previously dead KP_5 (unshifted Keypad 5) lives.
X
X7. In previous revisions of ECU, when editing an existing string on a
Xscreen, the cursor was placed at the end of the line at the commencement
Xof editing. This was untrue of 3.10 and this patch restores the
Xbehavior.
X
X8. Baud rates below 300 now get two stop bits. I doubt anyone is using
X110 baud but if you ever get the hankering, it will work now.
X
X9. In the respond function of the expect-respond handler, \n sent CR
Xnot NL as documented.
X
X10. The test for an environment HZ was incorrect causing the
Xsys/param.h value to be used always.
X
X11. The 'nap' procedure command napped for the wrong amount of time if
Xthe -m option was used.
X
X12. Under some conditions, ecuungetty would find a lock file created by
Xits (parent) ECU and report that the line was in use by another dial out.
XThis has been around for a long time.
X
X13. The command history mechanism got botched up by some last minute
Xchanges to the tty line input editor.
X
X14. Some work (largely in the dark) has been done to handle
Xdifferences between ISC and SCO tty naming. The new manual entry says
Xof the -l startup switch:
X
X The argument to the switch is the base name of the tty (e.g., "tty1a" or
X "acu0"). On SCO, since ttys are all named consistently according to the
X "/dev/ttyxx" form, you may omit the "tty" (e.g., "1a" or "4g").
X
XThe new manual entry says of the tty name fierld in the dialing directory:
X
X A specific line is specified by using the base name of the tty (e.g.,
X "tty1a" or "acu0"). On SCO, since ttys are all named consistently
X according to the "/dev/ttyxx" form, you may omit the "tty" (e.g., "1a"
X or "4g").
X
XThis means than on ISC you must now fully specify the base name
Xof the tty. On SCO, you now have the -option- of doing the same or
Xyou may continue to use the two character suffix.
X
XI believe that now:
X
X on SCO, you may use any tty name whose base name begins with "tty".
X on ISC, add tty names whose base name begins with "acu"
X
X15. Miscellaneous other (nonvisible or debugging) changes were made.
X
X:EDITS: summary:
X----------------
XConfigure change FASI_IN_USE to FASI
Xecu.c add memstat
Xecu.c jpm@logixwi fix: HZ getenv test wrong sense
Xecu.c soup up -l for ISC vs. SCO
Xecu.h configurable lock directory
XecuLCK.c SCO_TTY_NAMING considerations
XecuLCK.c configurable lock directory
XecuLCK.c race with ecuungetty over lock resolved
Xecucmd.h add memstat
Xecuicmd.c add memstat
Xecuicmd.c turn off memstat after frustrating evening
Xecuicmhelp.c when editing string, set cursor to end
Xecuicmhist.c new ttygets botched command history handler
Xeculine.c SCO_TTY_NAMING considerations
Xeculine.c baud rates below 300 get two stop bits
Xeculine.c remove unused externs
Xeculock.c US_WEGOTIT handling
Xeculock.c configurable lock directory
Xecuphone.c soup up tty name for ISC vs. SCO
Xecuphone.c w subcommand was not asking both questions
Xecuphone.c when editing string, set cursor to end
Xecusetup.c ISC tty names
Xecuungetty/ecuungetty.c US_WEGOIT handling
Xecuungetty/ecuungetty.c add debug log event code
Xecuwinutil.c when editing string, set cursor to end
Xexpresp.c \n sent CR not NL
Xexpresp.c detect NULL expect string
Xexpresp.c nap min of hzmsec if \m
Xhdbintf.c US_WEGOTIT handling
Xkbdtest3.c add parity reporting
Xkbdtest3.c some terminals reinvent parity bit's use
Xlint_args.h afterlint-creation
Xlogevent.c use static logname
Xmakedirs.c need smart_fork for XENIX
Xmkdirs.c how did compile succeed without signal.h?
Xmkdirs.c no need for sys/wait.h + XENIX doesn't have it
Xmodels/nonansikeys add new Metro Link server entry
Xnonansikey.c allow any code as first in key sequence
Xnonansikey.c look for nonansikeys in ECULIBDIR too
Xpcmd.c add nap -1 return and proctrace
Xpcmd.c nap -m test wrong sense ... old bug!
Xutmpstat.c US_WEGOTIT handling
Xutmpstatus.h add US_WEGOTIT
Xz/Make.src neat used wrong rm args
Xzgcc thanks for the -p1 suggestion to sef@kithrup.com
SHAR_EOF
$TOUCH -am 0812041291 'README.P1' &&
chmod 0644 README.P1 ||
echo 'restore of README.P1 failed'
Wc_c="`wc -c < 'README.P1'`"
test 7317 -eq "$Wc_c" ||
echo 'README.P1: original size 7317, current size' "$Wc_c"
# ============= PATCH1.APPLY ==============
echo 'x - extracting PATCH1.APPLY (Text)'
sed 's/^X//' << 'SHAR_EOF' > 'PATCH1.APPLY' &&
X:
Xpatch -p < PATCH1.01
Xpatch -p < PATCH1.02
Xpatch -p < PATCH1.03
SHAR_EOF
$TOUCH -am 0812041091 'PATCH1.APPLY' &&
chmod 0755 PATCH1.APPLY ||
echo 'restore of PATCH1.APPLY failed'
Wc_c="`wc -c < 'PATCH1.APPLY'`"
test 65 -eq "$Wc_c" ||
echo 'PATCH1.APPLY: original size 65, current size' "$Wc_c"
# ============= PATCH1.01 ==============
echo 'x - extracting PATCH1.01 (Text)'
sed 's/^X//' << 'SHAR_EOF' > 'PATCH1.01' &&
X:
X#-------------------------------------------------------
X# PATCH1.01
X# Fixes and ISC Compatibility
X# created by gendiff x1.03 on 12 Aug 1991 08:00 UTC
X#-------------------------------------------------------
X*** /u1/src/ecu310/Make.src Sat Jul 27 16:02:00 1991
X--- Make.src Sat Aug 10 19:50:38 1991
X***************
X*** 23,30
X .SUFFIXES: .o .c .h .l
X .c.o:; $(BINTIME) $(CC) -c $(CFLAGS) $*.c
X
X! ECUSHARNAME=ecu310
X! MANSHARNAME=ecuman310
X
X SRC = \
X bamboozle.c\
X
X--- 23,30 -----
X .SUFFIXES: .o .c .h .l
X .c.o:; $(BINTIME) $(CC) -c $(CFLAGS) $*.c
X
X! ECUSHARNAME=ecu311
X! MANSHARNAME=ecuman311
X
X SRC = \
X bamboozle.c\
X***************
X*** 230,236
X $(CC) -o $@ $(LDFLAGS) $(MAKEDIRS_OBJ) $(LIBS)
X
X # install ecu
X! iecu: makedirs
X ./makedirs -m 755 $(LBIN)
X ./makedirs -m 755 $(ECULIBDIR)
X rm -f $(INSTALLABLE) $(INSTALLABLE)~
X
X--- 230,236 -----
X $(CC) -o $@ $(LDFLAGS) $(MAKEDIRS_OBJ) $(LIBS)
X
X # install ecu
X! iecu: makedirs ecu
X ./makedirs -m 755 $(LBIN)
X ./makedirs -m 755 $(ECULIBDIR)
X rm -f $(INSTALLABLE) $(INSTALLABLE)~
X*** /u1/src/ecu310/config.c Sat Jul 27 15:54:00 1991
X--- config.c Mon Aug 12 00:30:59 1991
X***************
X*** 273,279
X }
X fputs("\t-DECULIBDIR='\"$(ECULIBDIR)\"'\\\n",fpmake);
X #if defined(WHT)
X! fputs("\t-DWHT -DMORSE -DFASI -DSHARE_DEBUG -g\\\n",fpmake);
X #else
X #if defined(MORSE)
X fputs("\t-DMORSE -g\\\n",fpmake);
X
X--- 273,279 -----
X }
X fputs("\t-DECULIBDIR='\"$(ECULIBDIR)\"'\\\n",fpmake);
X #if defined(WHT)
X! fputs("\t-DWHT -DMORSE -DFASI -g\\\n",fpmake);
X #else
X #if defined(MORSE)
X fputs("\t-DMORSE -g\\\n",fpmake);
X***************
X*** 570,576
X }
X }
X
X! printf("Thank you.\n\n");
X
X makedir = makedirs;
X while(*makedir)
X
X--- 570,576 -----
X }
X }
X
X! printf("\nThank you.\n\n");
X
X makedir = makedirs;
X while(*makedir)
X***************
X*** 578,583
X
X if(!debug)
X tputstrs(strs_mkdep);
X
X goodbye(0);
X }
X
X--- 578,587 -----
X
X if(!debug)
X tputstrs(strs_mkdep);
X+
X+ #ifdef WHT
X+ system("make depend");
X+ #endif
X
X goodbye(0);
X }
X*** /u1/src/ecu310/doc/_features.txt Fri Jun 28 01:09:00 1991
X--- doc/_features.txt Sun Aug 11 19:17:41 1991
X***************
X*** 113,118
X to an internal function key representation
X by testing all keystroke sequences again an internal table loaded
X at the beginning of execution from the file ~/.ecu/nonansikeys.
X NOTE that supported terminals MUST employ function keys which generate
X sequences beginning with a character code between 0x01 and 0x1F, inclusive,
X and containing no nulls. Also, no sequence may begin with your end of line,
X
X--- 113,121 -----
X to an internal function key representation
X by testing all keystroke sequences again an internal table loaded
X at the beginning of execution from the file ~/.ecu/nonansikeys.
X+ A default nonansikeys may be placed in the ECU library directory
X+ (normally /usr/local/lib/ecu).
X+
X NOTE that supported terminals MUST employ function keys which generate
X sequences free of nulls and less than 33 characters in length.
X
X***************
X*** 114,122
X by testing all keystroke sequences again an internal table loaded
X at the beginning of execution from the file ~/.ecu/nonansikeys.
X NOTE that supported terminals MUST employ function keys which generate
X! sequences beginning with a character code between 0x01 and 0x1F, inclusive,
X! and containing no nulls. Also, no sequence may begin with your end of line,
X! erase, interrupt, kill or other tty control character.
X
X The program kbdtest3 (the source is provided in the distribution) can
X assist you in determining what codes (if any) are delivered to ECU when
X
X--- 117,123 -----
X (normally /usr/local/lib/ecu).
X
X NOTE that supported terminals MUST employ function keys which generate
X! sequences free of nulls and less than 33 characters in length.
X
X The program kbdtest3 (the source is provided in the distribution) can
X assist you in determining what codes (if any) are delivered to ECU when
X***************
X*** 131,137
X
X .DS I
X #+------------------------------
X! # ECU 3.0 nonansikeys
X #-------------------------------
X ansilike
X ansi
X
X--- 132,138 -----
X
X .DS I
X #+------------------------------
X! # ECU 3.10 nonansikeys
X #-------------------------------
X ansilike
X ansi
X***************
X*** 509,514
X .B dial
X command.
X
X Entering or editing a dialing directory entry is for the most part
X straightforward. A note on the use of the "tty" field is useful, however.
X When prompted for a tty, you may choose
X
X--- 510,519 -----
X .B dial
X command.
X
X+ While a long entry in a field may be truncated on the display,
X+ when the entry is edited, it's full contents will be dispalyed on the
X+ edit subform.
X+
X Entering or editing a dialing directory entry is for the most part
X straightforward. A note on the use of the "tty" field is useful, however.
X When prompted for a tty, you may choose
X***************
X*** 518,524
X .LI
X a tty line matching a Devices type
X .LI
X! a specific tty line (enter the tty name minus the "/dev/tty" portion)
X .LE
X
X "Any" matches any tty line in the /usr/lib/Devices file supporting
X
X--- 523,529 -----
X .LI
X a tty line matching a Devices type
X .LI
X! a specific tty line
X .LE
X
X A specific line is specified by using the base name of the tty
X***************
X*** 520,525
X .LI
X a specific tty line (enter the tty name minus the "/dev/tty" portion)
X .LE
X
X "Any" matches any tty line in the /usr/lib/Devices file supporting
X the specified baud rate and whose Devices type begins with the
X
X--- 525,535 -----
X .LI
X a specific tty line
X .LE
X+
X+ A specific line is specified by using the base name of the tty
X+ (e.g., "tty1a" or "acu0"). On SCO, since ttys are all named
X+ consistently according to the "/dev/ttyxx" form, you may omit the "tty"
X+ (e.g., "1a" or "4g").
X
X "Any" matches any tty line in the /usr/lib/Devices file supporting
X the specified baud rate and whose Devices type begins with the
X*** /u1/src/ecu310/doc/_startup.txt Tue May 28 12:53:00 1991
X--- doc/_startup.txt Sun Aug 11 20:06:06 1991
X***************
X*** 123,129
X represents an actual telephone number to be passed to a modem
X dialer program or Dialers chat script. The string may contain
X non-numeric characters if appropriate for a dialer program,
X! such as dialTBIT. For example:
X .DS L
X ecu -l/dev/tty2a -b 19200 -e 5551212UC
X .DE
X
X--- 123,130 -----
X represents an actual telephone number to be passed to a modem
X dialer program or Dialers chat script. The string may contain
X non-numeric characters if appropriate for a dialer program,
X! such as dialTBIT or dialgT2500 (see the gendial subdirectory).
X! For example:
X .DS L
X ecu -ltty2a -b 19200 -e 5551212UC
X .DE
X***************
X*** 125,131
X non-numeric characters if appropriate for a dialer program,
X such as dialTBIT. For example:
X .DS L
X! ecu -l/dev/tty2a -b 19200 -e 5551212UC
X .DE
X uses tty2a (assumed to be connected to a Trailblazer modem) and
X establishes a 19200 baud, even parity PEP Compressed connection
X
X--- 126,132 -----
X such as dialTBIT or dialgT2500 (see the gendial subdirectory).
X For example:
X .DS L
X! ecu -ltty2a -b 19200 -e 5551212UC
X .DE
X uses tty2a (assumed to be connected to a Trailblazer modem) and
X establishes a 19200 baud, even parity PEP Compressed connection
X***************
X*** 159,166
X When ECU starts up, it normally chooses a line as described later
X in the section titled "Choosing a Dialout Line".
X Specifying the -l switch can suggest that the program
X! choose a specific line. The argument to the switch is the
X! last two charcters of the ttyname; e.g., "-l1a".
X
X On a system with HoneyDanBerr UUCP,
X to access a device which does not appear in the Devices file,
X
X--- 160,171 -----
X When ECU starts up, it normally chooses a line as described later
X in the section titled "Choosing a Dialout Line".
X Specifying the -l switch can suggest that the program
X! choose a specific line.
X!
X! The argument to the switch is the base name
X! of the tty (e.g., "tty1a" or "acu0"). On SCO, since ttys are all
X! named consistently according to the "/dev/ttyxx" form, you may
X! omit the "tty" (e.g., "1a" or "4g").
X
X On a system with HoneyDanBerr UUCP,
X to access a device which does not appear in the Devices file,
X*** /u1/src/ecu310/doc/_top.txt Fri Jul 12 14:22:00 1991
X--- doc/_top.txt Sun Aug 11 20:38:56 1991
X***************
X*** 11,17
X .sp 2i
X .ft B
X .ce 10
X! ECU 3.10
X
X (Extended Call Utility)
X .ce 0
X
X--- 11,17 -----
X .sp 2i
X .ft B
X .ce 10
X! ECU 3.11
X
X (Extended Call Utility)
X .ce 0
X*** /u1/src/ecu310/ecu.c Thu Jul 25 12:55:00 1991
X--- ecu.c Sun Aug 11 20:07:52 1991
X***************
X*** 8,13
X
X ------------------------------------------------------------------------*/
X /*+:EDITS:*/
X /*:07-25-1991-12:55-wht@n4hgf-ECU release 3.10 */
X /*:07-17-1991-07:04-wht@n4hgf-avoid SCO UNIX nap bug */
X /*:04-27-1991-01:52-wht@n4hgf-overhaul revision numbers */
X
X--- 8,16 -----
X
X ------------------------------------------------------------------------*/
X /*+:EDITS:*/
X+ /*:08-11-1991-19:56-wht@n4hgf-soup up -l for ISC vs. SCO */
X+ /*:08-06-1991-13:02-wht@n4hgf-jpm@logixwi fix: HZ getenv test wrong sense */
X+ /*:07-29-1991-17:57-wht@n4hgf-add memstat */
X /*:07-25-1991-12:55-wht@n4hgf-ECU release 3.10 */
X /*:07-17-1991-07:04-wht@n4hgf-avoid SCO UNIX nap bug */
X /*:04-27-1991-01:52-wht@n4hgf-overhaul revision numbers */
X***************
X*** 56,61
X char errmsg[128];
X char modem_ctl_fname[128];
X char initial_procedure[128] = "";
X int init_proc_argc = 0;
X char *init_proc_argv[MAX_PARGV];
X int quiet = 0; /* don't shut up is default */
X
X--- 59,65 -----
X char errmsg[128];
X char modem_ctl_fname[128];
X char initial_procedure[128] = "";
X+ char *default_tty = DEFAULT_TTY; /* configurable default tty name */
X int init_proc_argc = 0;
X char *init_proc_argv[MAX_PARGV];
X int quiet = 0; /* don't shut up is default */
X***************
X*** 67,72
X int hz; /* HZ from environ or sys/param.h */
X ulong hzmsec; /* clock period in msec rounded up */
X struct timeb starting_timeb;
X
X char *_rc = "_rc"; /* _rc.ep */
X
X
X--- 71,80 -----
X int hz; /* HZ from environ or sys/param.h */
X ulong hzmsec; /* clock period in msec rounded up */
X struct timeb starting_timeb;
X+ #ifdef WHT
X+ char *sbrk();
X+ char *startbrk;
X+ #endif
X
X char *_rc = "_rc"; /* _rc.ep */
X
X***************
X*** 142,147
X (void)mallopt(M_MXFAST,256+4);
X (void)mallopt(M_NLBLKS,64);
X (void)mallopt(M_GRAIN,sizeof(ESD) + 8);
X #endif
X
X setbuf(stderr,NULL);
X
X--- 150,158 -----
X (void)mallopt(M_MXFAST,256+4);
X (void)mallopt(M_NLBLKS,64);
X (void)mallopt(M_GRAIN,sizeof(ESD) + 8);
X+ #ifdef WHT
X+ startbrk = sbrk(0);
X+ #endif /* WHT */
X #endif
X
X setbuf(stderr,NULL);
X***************
X*** 171,177
X /*
X * learn tick rate for various timers
X */
X! if(!getenv("HZ"))
X hz = atoi(getenv("HZ"));
X else
X hz = HZ;
X
X--- 182,188 -----
X /*
X * learn tick rate for various timers
X */
X! if(getenv("HZ"))
X hz = atoi(getenv("HZ"));
X else
X hz = HZ;
X***************
X*** 261,270
X strcpy(modem_ctl_fname,optarg);
X break;
X case 'l':
X! shm->Lline[0] = 0;
X! if(strncmp(optarg,"/dev/tty",8))
X! strcpy(shm->Lline,"/dev/tty");
X! strcat(shm->Lline,optarg);
X break;
X case 'p':
X strcpy(initial_procedure,optarg);
X
X--- 272,289 -----
X strcpy(modem_ctl_fname,optarg);
X break;
X case 'l':
X! strcpy(shm->Lline,"/dev/");
X! #if defined(M_SYSV)
X! if(strncmp(optarg,"tty",4))
X! strcat(shm->Lline,"tty");
X! strcat(shm->Lline,optarg);
X! #else
X! #if defined(ISC)
X! strcat(shm->Lline,optarg);
X! #else
X! # include "need.porting.attention.here"
X! #endif /* ISC */
X! #endif /* M_SYSV */
X break;
X case 'p':
X strcpy(initial_procedure,optarg);
X***************
X*** 312,318
X if(!shm->Lline[0])
X {
X if(!there_is_hdb_on_this_machine)
X! strcpy(shm->Lline,"/dev/tty1a");
X else
X {
X choose_line(shm->Lbaud);
X
X--- 331,337 -----
X if(!shm->Lline[0])
X {
X if(!there_is_hdb_on_this_machine)
X! strcpy(shm->Lline,default_tty);
X else
X {
X choose_line(shm->Lbaud);
X***************
X*** 323,329
X ff(se,"[no available Devices line at %u baud]",shm->Lbaud);
X tcap_stand_end();
X ff(se,"\r\n");
X! strcpy(shm->Lline,"/dev/tty1a");
X nap(1000L);
X }
X }
X
X--- 342,348 -----
X ff(se,"[no available Devices line at %u baud]",shm->Lbaud);
X tcap_stand_end();
X ff(se,"\r\n");
X! strcpy(shm->Lline,default_tty);
X nap(1000L);
X }
X }
X*** /u1/src/ecu310/ecu.h Thu Jul 25 12:55:00 1991
X--- ecu.h Mon Aug 12 03:59:55 1991
X***************
X*** 3,8
X wht@n4hgf.Mt-Park.GA.US
X ------------------------------------------------------------------------*/
X /*+:EDITS:*/
X /*:07-25-1991-12:55-wht@n4hgf-ECU release 3.10 */
X /*:01-25-1991-06:08-wht@n4hgf-mulltiple #define of ECULIBDIR */
X /*:01-22-1991-14:33-wht@n4hgf-XENIX calloc/memmove fix */
X
X--- 3,9 -----
X wht@n4hgf.Mt-Park.GA.US
X ------------------------------------------------------------------------*/
X /*+:EDITS:*/
X+ /*:08-09-1991-11:07-wht@n4hgf-configurable lock directory */
X /*:07-25-1991-12:55-wht@n4hgf-ECU release 3.10 */
X /*:01-25-1991-06:08-wht@n4hgf-mulltiple #define of ECULIBDIR */
X /*:01-22-1991-14:33-wht@n4hgf-XENIX calloc/memmove fix */
X***************
X*** 54,59
X #endif
X #endif
X
X #define AUTO_DIAL_PROC /* always on from now on */
X
X #if defined(WHT)
X
X--- 55,64 -----
X #endif
X #endif
X
X+ #if defined(M_SYSV) && !defined(SCO_TTY_NAMING)
X+ #define SCO_TTY_NAMING
X+ #endif
X+
X #define AUTO_DIAL_PROC /* always on from now on */
X
X #if defined(WHT)
X***************
X*** 146,151
X #define LOPEN_ENABLED_IN_USE -8 /* line in use by incoming login */
X #define LOPEN_DIALOUT_IN_USE -9 /* line in use by another dial out */
X #define LOPEN_NOPTY -10 /* pty not supported */
X
X /*
X * current directory array size
X
X--- 151,159 -----
X #define LOPEN_ENABLED_IN_USE -8 /* line in use by incoming login */
X #define LOPEN_DIALOUT_IN_USE -9 /* line in use by another dial out */
X #define LOPEN_NOPTY -10 /* pty not supported */
X+ #define LOPEN_WE_GOT_IT -11 /* not rerally an error: we already
X+ * own the line (used by check_utmp())
X+ */
X
X /*
X * current directory array size
X***************
X*** 156,161
X extern char *sys_errlist[];
X extern int sys_nerr;
X
X extern int hz; /* HZ from environ or sys/param.h */
X extern ulong hzmsec; /* clock period in msec rounded up */
X
X
X--- 164,175 -----
X extern char *sys_errlist[];
X extern int sys_nerr;
X
X+ /*
X+ * process IDs
X+ */
X+ extern int rcvr_pid;
X+ extern int xmtr_pid;
X+
X extern int hz; /* HZ from environ or sys/param.h */
X extern ulong hzmsec; /* clock period in msec rounded up */
X
X***************
X*** 174,179
X extern uchar Ldial_debug_level;
X extern uchar Lmodem_sreg[];
X #endif
X
X /*
X * setcolor variables - see setcolor()
X
X--- 188,217 -----
X extern uchar Ldial_debug_level;
X extern uchar Lmodem_sreg[];
X #endif
X+
X+ /*
X+ * lock file directory
X+ */
X+ #if defined(M_SYSV) /* SCO */
X+ #define LOCK_DIR_NAME "/usr/spool/uucp"
X+ #endif
X+ #if defined(ISC)
X+ #define LOCK_DIR_NAME "/usr/spool/locks"
X+ #endif
X+ extern char *lock_dir_name; /* defined in ecuLCK.c */
X+
X+ /*
X+ * default tty name
X+ */
X+ #if !defined(DEFAULT_TTY)
X+ #if defined(M_SYSV) /* SCO */
X+ #define DEFAULT_TTY "/dev/tty1a"
X+ #endif
X+ #if defined(ISC)
X+ #define DEFAULT_TTY "/dev/acu00"
X+ #endif
X+ #endif /*!defined(DEFAULT_TTY)
X+ extern char *lock_dir_name; /* defined in ecu.c */
X
X /*
X * setcolor variables - see setcolor()
X*** /u1/src/ecu310/ecuLCK.c Thu Jul 25 12:55:00 1991
X--- ecuLCK.c Sun Aug 11 18:08:31 1991
X***************
X*** 16,21
X check for both.
X ------------------------------------------------------------------------*/
X /*+:EDITS:*/
X /*:07-25-1991-12:55-wht@n4hgf-ECU release 3.10 */
X /*:11-19-1990-01:05-wht@n4hgf-remove lock in is_active_lock if we locked */
X /*:10-16-1990-20:43-wht@n4hgf-add SHARE_DEBUG */
X
X--- 16,24 -----
X check for both.
X ------------------------------------------------------------------------*/
X /*+:EDITS:*/
X+ /*:08-11-1991-18:06-wht@n4hgf-SCO_TTY_NAMING considerations */
X+ /*:08-09-1991-11:07-wht@n4hgf-configurable lock directory */
X+ /*:08-07-1991-14:41-wht@n4hgf-race with ecuungetty over lock resolved */
X /*:07-25-1991-12:55-wht@n4hgf-ECU release 3.10 */
X /*:11-19-1990-01:05-wht@n4hgf-remove lock in is_active_lock if we locked */
X /*:10-16-1990-20:43-wht@n4hgf-add SHARE_DEBUG */
X***************
X*** 28,33
X extern int errno;
X extern char ungetty_ttyname[];
X
X /*+-------------------------------------------------------------------------
X make_lock_name(ttyname,lock_file_name)
X --------------------------------------------------------------------------*/
X
X--- 31,38 -----
X extern int errno;
X extern char ungetty_ttyname[];
X
X+ char *lock_dir_name = LOCK_DIR_NAME; /* location of LCK.. files */
X+
X /*+-------------------------------------------------------------------------
X make_lock_name(ttyname,lock_file_name)
X --------------------------------------------------------------------------*/
X***************
X*** 39,45
X if((ulindex(ttyname,"/dev/tty")) != 0)
X return(LOPEN_INVALID);
X
X! strcpy(lock_file_name,"/usr/spool/uucp/LCK..");
X strcat(lock_file_name,ttyname + 5);
X return(0);
X
X
X--- 44,51 -----
X if((ulindex(ttyname,"/dev/tty")) != 0)
X return(LOPEN_INVALID);
X
X! strcpy(lock_file_name,lock_dir_name);
X! strcat(lock_file_name,"/LCK..");
X strcat(lock_file_name,ttyname + 5);
X return(0);
X
X***************
X*** 85,91
X * during certain error recovery conditions,
X * we could get hurt by our own lock file
X */
X! if(lockpid == getpid()) /* if we are the locker, kill it */
X goto UNLINK_OLD_LOCK;
X
X if((!(itmp = kill(lockpid,0))) || (errno != ESRCH))
X
X--- 91,99 -----
X * during certain error recovery conditions,
X * we could get hurt by our own lock file
X */
X! #ifdef notdef
X! /* if we are the locker, kill it */
X! if(lockpid == xmtr_pid)
X goto UNLINK_OLD_LOCK;
X /* if we are ecuungetty and parent locked the line, leave it alone */
X if(lockpid == getppid())
X***************
X*** 87,92
X */
X if(lockpid == getpid()) /* if we are the locker, kill it */
X goto UNLINK_OLD_LOCK;
X
X if((!(itmp = kill(lockpid,0))) || (errno != ESRCH))
X {
X
X--- 95,110 -----
X /* if we are the locker, kill it */
X if(lockpid == xmtr_pid)
X goto UNLINK_OLD_LOCK;
X+ /* if we are ecuungetty and parent locked the line, leave it alone */
X+ if(lockpid == getppid())
X+ goto RETURN_STATUS;
X+ #endif
X+ /* if we are the locker, return no error */
X+ if(lockpid == xmtr_pid)
X+ {
X+ status = LOPEN_WE_GOT_IT;
X+ goto RETURN_STATUS;
X+ }
X
X if((!(itmp = kill(lockpid,0))) || (errno != ESRCH))
X {
X***************
X*** 131,137
X if(itmp = is_active_lock(lock_file_name))
X return(itmp);
X
X! #if defined(M_XENIX) || defined(M_UNIX)
X if(isalpha(lock_file_name[itmp = strlen(lock_file_name) - 1]))
X {
X lock_file_name[itmp] ^= 0x20; /* lower->upper, upper->lower */
X
X--- 149,155 -----
X if(itmp = is_active_lock(lock_file_name))
X return(itmp);
X
X! #if (defined(M_XENIX) || defined(M_UNIX)) && defined(SCO_TTY_NAMING)
X if(isalpha(lock_file_name[itmp = strlen(lock_file_name) - 1]))
X {
X lock_file_name[itmp] ^= 0x20; /* lower->upper, upper->lower */
X*** /u1/src/ecu310/ecucmd.h Thu Jul 25 12:55:00 1991
X--- ecucmd.h Sat Aug 10 18:17:03 1991
X***************
X*** 3,8
X wht@n4hgf.Mt-Park.GA.US
X --------------------------------------------------------------------------*/
X /*+:EDITS:*/
X /*:07-25-1991-12:55-wht@n4hgf-ECU release 3.10 */
X /*:07-04-1991-20:07-wht@n4hgf-add procedure rlog cmd */
X /*:05-21-1991-18:07-wht@n4hgf-add pushd/popd commands */
X
X--- 3,9 -----
X wht@n4hgf.Mt-Park.GA.US
X --------------------------------------------------------------------------*/
X /*+:EDITS:*/
X+ /*:07-29-1991-17:57-wht@n4hgf-add memstat */
X /*:07-25-1991-12:55-wht@n4hgf-ECU release 3.10 */
X /*:07-04-1991-20:07-wht@n4hgf-add procedure rlog cmd */
X /*:05-21-1991-18:07-wht@n4hgf-add pushd/popd commands */
X***************
X*** 71,76
X #define CTeto 58
X #define CTpushd 59
X #define CTpopd 60
X
X #define CTdummy1 120
X #define CTdummy2 121
X
X--- 72,78 -----
X #define CTeto 58
X #define CTpushd 59
X #define CTpopd 60
X+ #define CTmemstat 61
X
X #define CTdummy1 120
X #define CTdummy2 121
X***************
X*** 267,272
X { "log", 3,CTlog, "session logging control", 0, ccG },
X { "logevent",0,0, "", pcmd_logevent,0},
X { "lookfor",0,0, "", pcmd_lookfor,0 },
X /* { "mkdir", 3,CTmkdir, "mkdir <dirname>", pcmd_mkdir, ccG}, */
X { "mkvar", 0,0, "", pcmd_mkvar, 0 },
X { "nap", 0,0, "", pcmd_nap, 0 },
X
X--- 269,277 -----
X { "log", 3,CTlog, "session logging control", 0, ccG },
X { "logevent",0,0, "", pcmd_logevent,0},
X { "lookfor",0,0, "", pcmd_lookfor,0 },
X+ #if defined(WHT) && defined(MALLOC_3X)
X+ { "memstat",3,CTmemstat,"", 0, 0 },
X+ #endif
X /* { "mkdir", 3,CTmkdir, "mkdir <dirname>", pcmd_mkdir, ccG}, */
X { "mkvar", 0,0, "", pcmd_mkvar, 0 },
X { "nap", 0,0, "", pcmd_nap, 0 },
X*** /u1/src/ecu310/ecuicmaux.c Thu Jul 25 12:56:00 1991
X--- ecuicmaux.c Tue Aug 6 15:05:36 1991
X***************
X*** 264,270
X } /* end of rcvr_log_control */
X
X /*+-------------------------------------------------------------------------
X! pcmd_rlog(param) - control receivert logging (script)
X
X rlog [-srf] ['filename'] # see ecuidmc.d
X rlog 'off'
X
X--- 264,270 -----
X } /* end of rcvr_log_control */
X
X /*+-------------------------------------------------------------------------
X! pcmd_rlog(param) - control receiver logging (script)
X
X rlog [-srf] ['filename'] # see ecuidmc.d
X rlog 'off'
X*** /u1/src/ecu310/ecuicmd.c Thu Jul 25 12:56:00 1991
X--- ecuicmd.c Sat Aug 10 18:16:50 1991
X***************
X*** 9,14
X
X ------------------------------------------------------------------------*/
X /*+:EDITS:*/
X /*:07-25-1991-12:56-wht@n4hgf-ECU release 3.10 */
X /*:05-21-1991-18:22-wht@n4hgf-add pushd/popd commands */
X /*:05-21-1991-00:46-wht@n4hgf-added -3 error code to keyset_read */
X
X--- 9,16 -----
X
X ------------------------------------------------------------------------*/
X /*+:EDITS:*/
X+ /*:07-29-1991-20:56-wht@n4hgf-turn off memstat after frustrating evening */
X+ /*:07-29-1991-17:57-wht@n4hgf-add memstat */
X /*:07-25-1991-12:56-wht@n4hgf-ECU release 3.10 */
X /*:05-21-1991-18:22-wht@n4hgf-add pushd/popd commands */
X /*:05-21-1991-00:46-wht@n4hgf-added -3 error code to keyset_read */
X***************
X*** 657,662
X ff(se," made directory %s\r\n",arg[2]);
X break;
X */
X
X case 0:
X ff(se," procedure command not allowed in interactive mode\r\n");
X
X--- 659,698 -----
X ff(se," made directory %s\r\n",arg[2]);
X break;
X */
X+
X+ case CTmemstat:
X+ #if defined(WHT) && defined(MALLOC_3X)
X+ {
X+ struct mallinfo minfo;
X+ extern char *startbrk;
X+ char *sbrk();
X+ #define DEBUG_SURETY
X+ #ifdef DEBUG_SURETY /* malloc has been called a zillion times, but ... */
X+ char *cptr = malloc(100);
X+ free(cptr);
X+ pprintf("we got %08lx\n",cptr);
X+ #endif
X+ minfo = mallinfo();
X+ pputs("\n"); /* all this casting for 16- vs 32- bit ints */
X+ pprintf("%10lu total space in arena\n",(ulong)minfo.arena);
X+ pprintf("%10lu number of ordinary blocks\n",(ulong)minfo.ordblks);
X+ pprintf("%10lu number of small blocks\n",(ulong)minfo.smblks);
X+ pprintf("%10lu number of holding blocks\n",(ulong)minfo.hblks);
X+ pprintf("%10lu space in holding block headers\n",(ulong)minfo.hblkhd);
X+ pprintf("%10lu space in small blocks in use\n",(ulong)minfo.usmblks);
X+ pprintf("%10lu space in free small blocks\n",(ulong)minfo.fsmblks);
X+ pprintf("%10lu space in ordinary blocks in use\n",
X+ (ulong)minfo.uordblks);
X+ pprintf("%10lu space in free ordinary blocks\n",(ulong)minfo.fordblks);
X+ pprintf("%10lu cost of enabling keep option\n",(ulong)minfo.keepcost);
X+ pprintf("%08lx startbrk\n",startbrk);
X+ pprintf("%08lx sbrk(0)\n",sbrk(0));
X+ pprintf("%10lu break delta\n",sbrk(0) - startbrk);
X+ }
X+ #else
X+ ff(se," not available\r\n");
X+ #endif /* WHT */
X+ break;
X
X case 0:
X ff(se," procedure command not allowed in interactive mode\r\n");
X*** /u1/src/ecu310/ecuicmhelp.c Thu Jul 25 12:56:00 1991
X--- ecuicmhelp.c Tue Aug 6 15:05:36 1991
X***************
X*** 14,19
X
X --------------------------------------------------------------------------*/
X /*+:EDITS:*/
X /*:07-25-1991-12:56-wht@n4hgf-ECU release 3.10 */
X /*:08-14-1990-20:40-wht@n4hgf-ecu3.00-flush old edit history */
X
X
X--- 14,20 -----
X
X --------------------------------------------------------------------------*/
X /*+:EDITS:*/
X+ /*:08-01-1991-03:52-wht@n4hgf-when editing string, set cursor to end */
X /*:07-25-1991-12:56-wht@n4hgf-ECU release 3.10 */
X /*:08-14-1990-20:40-wht@n4hgf-ecu3.00-flush old edit history */
X
X***************
X*** 163,169
X register x;
X static char cmd[15];
X char delim = 0;
X! int strpos = 0;
X int edit = 0;
X
X help_cmd_line_setup("Enter command name (ESC to quit): ");
X
X--- 164,170 -----
X register x;
X static char cmd[15];
X char delim = 0;
X! int wgpos = -1;
X int edit = 0;
X
X help_cmd_line_setup("Enter command name (ESC to quit): ");
X***************
X*** 171,177
X wstandout(stdscr);
X while((delim != ESC) && (delim != NL))
X {
X! wingets(stdscr,y,x,cmd,sizeof(cmd) - 1,&delim,edit,&strpos);
X edit = 1;
X }
X wstandend(stdscr);
X
X--- 172,178 -----
X wstandout(stdscr);
X while((delim != ESC) && (delim != NL))
X {
X! wingets(stdscr,y,x,cmd,sizeof(cmd) - 1,&delim,edit,&wgpos);
X edit = 1;
X }
X wstandend(stdscr);
X*** /u1/src/ecu310/ecuicmhist.c Thu Jul 25 12:56:00 1991
X--- ecuicmhist.c Sun Aug 11 14:58:31 1991
X***************
X*** 8,13
X
X --------------------------------------------------------------------------*/
X /*+:EDITS:*/
X /*:07-25-1991-12:56-wht@n4hgf-ECU release 3.10 */
X /*:07-14-1991-18:18-wht@n4hgf-new ttygets functions */
X /*:08-14-1990-20:40-wht@n4hgf-ecu3.00-flush old edit history */
X
X--- 8,14 -----
X
X --------------------------------------------------------------------------*/
X /*+:EDITS:*/
X+ /*:08-11-1991-14:58-wht@n4hgf-new ttygets botched command history handler */
X /*:07-25-1991-12:56-wht@n4hgf-ECU release 3.10 */
X /*:07-14-1991-18:18-wht@n4hgf-new ttygets functions */
X /*:08-14-1990-20:40-wht@n4hgf-ecu3.00-flush old edit history */
X***************
X*** 128,133
X switch(delim)
X {
X case ESC:
X return(0);
X
X case XFhome:
X
X--- 129,135 -----
X switch(delim)
X {
X case ESC:
X+ *newicmd = 0;
X return(0);
X
X case XFhome:
X***************
X*** 132,138
X
X case XFhome:
X icmdh = icmdh_head;
X- *newicmd = 0;
X break;
X
X case XFend:
X
X--- 134,139 -----
X
X case XFhome:
X icmdh = icmdh_head;
X break;
X
X case XFend:
X***************
X*** 137,143
X
X case XFend:
X icmdh = icmdh_tail;
X- *newicmd = 0;
X break;
X
X case XFpgup:
X
X--- 138,143 -----
X
X case XFend:
X icmdh = icmdh_tail;
X break;
X
X case XFpgup:
X***************
X*** 143,149
X case XFpgup:
X case XFpgdn:
X ring_bell();
X- *newicmd = 0;
X break;
X
X case XFcurup:
X
X--- 143,148 -----
X case XFpgup:
X case XFpgdn:
X ring_bell();
X break;
X
X case XFcurup:
X***************
X*** 149,155
X case XFcurup:
X if(icmdh->prev)
X icmdh = icmdh->prev;
X- *newicmd = 0;
X break;
X
X case XFcurdn:
X
X--- 148,153 -----
X case XFcurup:
X if(icmdh->prev)
X icmdh = icmdh->prev;
X break;
X
X case XFcurdn:
X***************
X*** 155,161
X case XFcurdn:
X if(icmdh->next)
X icmdh = icmdh->next;
X- *newicmd = 0;
X break;
X
X default:
X
X--- 153,158 -----
X case XFcurdn:
X if(icmdh->next)
X icmdh = icmdh->next;
X break;
X
X default:
X*** /u1/src/ecu310/eculine.c Thu Jul 25 12:56:00 1991
X--- eculine.c Mon Aug 12 02:41:29 1991
X***************
X*** 36,41
X
X ------------------------------------------------------------------------*/
X /*+:EDITS:*/
X /*:07-25-1991-12:56-wht@n4hgf-ECU release 3.10 */
X /*:07-17-1991-07:04-wht@n4hgf-avoid SCO UNIX nap bug */
X /*:04-09-1991-16:11-wht@n4hgf-use B0 in ltoggle_DTR */
X
X--- 36,44 -----
X
X ------------------------------------------------------------------------*/
X /*+:EDITS:*/
X+ /*:08-11-1991-18:06-wht@n4hgf-SCO_TTY_NAMING considerations */
X+ /*:08-06-1991-14:18-wht@n4hgf-baud rates below 300 get two stop bits */
X+ /*:07-29-1991-01:55-wht@n4hgf-remove unused externs */
X /*:07-25-1991-12:56-wht@n4hgf-ECU release 3.10 */
X /*:07-17-1991-07:04-wht@n4hgf-avoid SCO UNIX nap bug */
X /*:04-09-1991-16:11-wht@n4hgf-use B0 in ltoggle_DTR */
X***************
X*** 52,58
X #include "termecu.h"
X #include <setjmp.h>
X
X- extern int rcvr_pid;
X extern int errno;
X extern int vmin;
X extern int sigint; /* SIGINT flag: see xmtr_SIGINT_handler */
X
X--- 55,60 -----
X #include "termecu.h"
X #include <setjmp.h>
X
X extern int errno;
X extern int sigint; /* SIGINT flag: see xmtr_SIGINT_handler */
X
X***************
X*** 54,60
X
X extern int rcvr_pid;
X extern int errno;
X- extern int vmin;
X extern int sigint; /* SIGINT flag: see xmtr_SIGINT_handler */
X
X int lgetc_count;
X
X--- 56,61 -----
X #include <setjmp.h>
X
X extern int errno;
X extern int sigint; /* SIGINT flag: see xmtr_SIGINT_handler */
X
X int lgetc_count;
X***************
X*** 664,669
X Ltermio.c_cflag &= ~CBAUD;
X Ltermio.c_cflag |= baud_selector;
X
X #if defined(HO_HUM)
X if(ioctl_flag)
X #endif
X
X--- 665,675 -----
X Ltermio.c_cflag &= ~CBAUD;
X Ltermio.c_cflag |= baud_selector;
X
X+ if(baud_selector < B300)
X+ Ltermio.c_cflag |= CSTOPB;
X+ else
X+ Ltermio.c_cflag &= ~CSTOPB;
X+
X #if defined(HO_HUM)
X if(ioctl_flag)
X #endif
X***************
X*** 792,798
X int
X lopen()
X {
X! register itmp = strlen(shm->Lline);
X struct stat ttystat;
X
X lopen_err_str[0] = 0;
X
X--- 798,804 -----
X int
X lopen()
X {
X! int itmp;
X struct stat ttystat;
X
X lopen_err_str[0] = 0;
X***************
X*** 796,801
X struct stat ttystat;
X
X lopen_err_str[0] = 0;
X if(shm->Liofd >= 0)
X return(LOPEN_ALREADY);
X if(strncmp(shm->Lline,"/dev/tty",8))
X
X--- 802,811 -----
X struct stat ttystat;
X
X lopen_err_str[0] = 0;
X+
X+ /*
X+ * system independent checks
X+ */
X if(shm->Liofd >= 0)
X return(LOPEN_ALREADY);
X if(stat(shm->Lline,&ttystat) < 0)
X***************
X*** 798,803
X lopen_err_str[0] = 0;
X if(shm->Liofd >= 0)
X return(LOPEN_ALREADY);
X if(strncmp(shm->Lline,"/dev/tty",8))
X return(LOPEN_INVALID);
X if(!strcmp(shm->Lline,"/dev/tty"))
X
X--- 808,822 -----
X */
X if(shm->Liofd >= 0)
X return(LOPEN_ALREADY);
X+ if(stat(shm->Lline,&ttystat) < 0)
X+ return(LOPEN_NODEV);
X+ if(ulindex(shm->Lline,"pty") > -1)
X+ return(LOPEN_NOPTY);
X+
X+ /*
X+ * SCO system dependent checks
X+ */
X+ #if defined(M_SYSV)
X if(strncmp(shm->Lline,"/dev/tty",8))
X return(LOPEN_INVALID);
X #endif /* M_SYSV */
X***************
X*** 800,806
X return(LOPEN_ALREADY);
X if(strncmp(shm->Lline,"/dev/tty",8))
X return(LOPEN_INVALID);
X! if(!strcmp(shm->Lline,"/dev/tty"))
X return(LOPEN_INVALID);
X if(shm->Lline[8] == 'p')
X return(LOPEN_NOPTY);
X
X--- 819,831 -----
X #if defined(M_SYSV)
X if(strncmp(shm->Lline,"/dev/tty",8))
X return(LOPEN_INVALID);
X! #endif /* M_SYSV */
X!
X! /*
X! * ISC system dependent checks
X! */
X! #if defined(ISC)
X! if(strncmp(shm->Lline,"/dev/tty",8) && strncmp(shm->Lline,"/dev/acu",8))
X return(LOPEN_INVALID);
X #endif
X
X***************
X*** 802,811
X return(LOPEN_INVALID);
X if(!strcmp(shm->Lline,"/dev/tty"))
X return(LOPEN_INVALID);
X! if(shm->Lline[8] == 'p')
X! return(LOPEN_NOPTY);
X! if(isupper(shm->Lline[itmp - 1]))
X! shm->Lline[itmp - 1] = tolower(shm->Lline[itmp - 1]);
X if(itmp = lock_tty()) /* get lock file */
X return(itmp);
X if(stat(shm->Lline,&ttystat) < 0)
X
X--- 827,837 -----
X #if defined(ISC)
X if(strncmp(shm->Lline,"/dev/tty",8) && strncmp(shm->Lline,"/dev/acu",8))
X return(LOPEN_INVALID);
X! #endif
X!
X! /*
X! * lock the tty
X! */
X if(itmp = lock_tty()) /* get lock file */
X return(itmp);
X
X***************
X*** 808,817
X shm->Lline[itmp - 1] = tolower(shm->Lline[itmp - 1]);
X if(itmp = lock_tty()) /* get lock file */
X return(itmp);
X! if(stat(shm->Lline,&ttystat) < 0)
X! return(LOPEN_NODEV);
X! shm->Liofd = open(shm->Lline,O_RDWR,0777);
X! if(shm->Liofd < 0)
X {
X if(errno == EACCES)
X sprintf(lopen_err_str,"open error - try chmod +rw %s",shm->Lline);
X
X--- 834,844 -----
X */
X if(itmp = lock_tty()) /* get lock file */
X return(itmp);
X!
X! /*
X! * lock the tty
X! */
X! if((shm->Liofd = open(shm->Lline,O_RDWR | O_NDELAY,0777)) < 0)
X {
X if(errno == EACCES)
X sprintf(lopen_err_str,"open error - try chmod +rw %s",shm->Lline);
X***************
X*** 815,820
X {
X if(errno == EACCES)
X sprintf(lopen_err_str,"open error - try chmod +rw %s",shm->Lline);
X return(LOPEN_OPNFAIL);
X }
X else
X
X--- 842,850 -----
X {
X if(errno == EACCES)
X sprintf(lopen_err_str,"open error - try chmod +rw %s",shm->Lline);
X+ else
X+ sprintf(lopen_err_str,"open error - %s",sys_errlist[errno]);
X+ unlock_tty();
X return(LOPEN_OPNFAIL);
X }
X
X***************
X*** 817,829
X sprintf(lopen_err_str,"open error - try chmod +rw %s",shm->Lline);
X return(LOPEN_OPNFAIL);
X }
X- else
X- {
X- ioctl(shm->Liofd,TCGETA,(char *) &Ltermio);
X- Ltermio.c_iflag = (IGNPAR | IGNBRK | shm->Lxonxoff);
X- Ltermio.c_oflag = 0;
X- Ltermio.c_cflag |= (CLOCAL | CREAD | HUPCL);
X- Ltermio.c_lflag = 0;
X
X Ltermio.c_cc[VMIN] = 1;
X Ltermio.c_cc[VTIME] = 1;
X
X--- 847,852 -----
X unlock_tty();
X return(LOPEN_OPNFAIL);
X }
X
X
X /*
X***************
X*** 825,835
X Ltermio.c_cflag |= (CLOCAL | CREAD | HUPCL);
X Ltermio.c_lflag = 0;
X
X! Ltermio.c_cc[VMIN] = 1;
X! Ltermio.c_cc[VTIME] = 1;
X! lset_baud_rate(0); /* do not perform ioctl */
X! lset_parity(1); /* do perform ioctl */
X! }
X
X lopen_err_str[0] = 0;
X return(0);
X
X--- 848,870 -----
X return(LOPEN_OPNFAIL);
X }
X
X!
X! /*
X! * turn off non-blocking I/O
X! */
X! fcntl(shm->Liofd,F_GETFL,&itmp);
X! itmp &= ~O_NDELAY;
X! fcntl(shm->Liofd,F_SETFL,itmp);
X!
X! ioctl(shm->Liofd,TCGETA,(char *) &Ltermio);
X! Ltermio.c_iflag = (IGNPAR | IGNBRK | shm->Lxonxoff);
X! Ltermio.c_oflag = 0;
X! Ltermio.c_cflag |= (CLOCAL | CREAD | HUPCL);
X! Ltermio.c_lflag = 0;
X! Ltermio.c_cc[VMIN] = 1;
X! Ltermio.c_cc[VTIME] = 1;
X! lset_baud_rate(0); /* do not perform ioctl */
X! lset_parity(1); /* do perform ioctl */
X
X lopen_err_str[0] = 0;
X return(0);
X*** /u1/src/ecu310/ecunumrev.c Thu Jul 25 14:08:00 1991
X--- ecunumrev.c Mon Aug 12 02:25:36 1991
X***************
X*** 22,28
X #endif
X
X #ifdef WHT
X! char *numeric_revision = "x3.45";
X #else
X char *numeric_revision = "3"; /* beta 1; at release this will be "3" */
X #endif
X
X--- 22,28 -----
X #endif
X
X #ifdef WHT
X! char *numeric_revision = "x3.54";
X #else
X char *numeric_revision = "3";
X #endif
X***************
X*** 24,30
X #ifdef WHT
X char *numeric_revision = "x3.45";
X #else
X! char *numeric_revision = "3"; /* beta 1; at release this will be "3" */
X #endif
X char *revstr = "";
X
X
X--- 24,30 -----
X #ifdef WHT
X char *numeric_revision = "x3.54";
X #else
X! char *numeric_revision = "3";
X #endif
X char *revstr = "";
X
X*** /u1/src/ecu310/ecuphone.c Thu Jul 25 12:56:00 1991
X--- ecuphone.c Sun Aug 11 19:57:43 1991
X***************
X*** 71,76
X
X --------------------------------------------------------------------------*/
X /*+:EDITS:*/
X /*:07-25-1991-12:56-wht@n4hgf-ECU release 3.10 */
X /*:07-17-1991-07:04-wht@n4hgf-avoid SCO UNIX nap bug */
X /*:07-12-1991-15:37-wht@n4hgf-fix core dump when creating phone from setup */
X
X--- 71,79 -----
X
X --------------------------------------------------------------------------*/
X /*+:EDITS:*/
X+ /*:08-11-1991-19:56-wht@n4hgf-soup up tty name for ISC vs. SCO */
X+ /*:08-07-1991-13:48-root@n4hgf-w subcommand was not asking both questions */
X+ /*:08-01-1991-03:52-wht@n4hgf-when editing string, set cursor to end */
X /*:07-25-1991-12:56-wht@n4hgf-ECU release 3.10 */
X /*:07-17-1991-07:04-wht@n4hgf-avoid SCO UNIX nap bug */
X /*:07-12-1991-15:37-wht@n4hgf-fix core dump when creating phone from setup */
X***************
X*** 1113,1119
X int bufmax;
X uchar *delim;
X {
X! int strpos = 0;
X char s80[80];
X
X wmove(addw,9,2);
X
X--- 1116,1122 -----
X int bufmax;
X uchar *delim;
X {
X! int wgpos = -1;
X char s80[80];
X
X wmove(addw,9,2);
X***************
X*** 1125,1131
X if(edit)
X strcpy(s80,buf);
X AGAIN:
X! (void)wingets(addw,y,20,s80,bufmax,delim,edit,&strpos);
X wstandend(addw);
X clear_area(addw,y,20,bufmax);
X edit = 1; /* if we come back to AGAIN, edit string */
X
X--- 1128,1134 -----
X if(edit)
X strcpy(s80,buf);
X AGAIN:
X! (void)wingets(addw,y,20,s80,bufmax,delim,edit,&wgpos);
X wstandend(addw);
X clear_area(addw,y,20,bufmax);
X edit = 1; /* if we come back to AGAIN, edit string */
X***************
X*** 1180,1186
X int aborted = 0;
X int itmp;
X int wgedit = 0;
X! int wgpos = 0;
X char s64[64];
X uchar delim = 0;
X int y,x;
X
X--- 1183,1189 -----
X int aborted = 0;
X int itmp;
X int wgedit = 0;
X! int wgpos = -1;
X char s64[64];
X uchar delim = 0;
X int y,x;
X***************
X*** 1601,1607
X uchar delim = 0;
X int y,x;
X int wgedit = 0;
X! int wgpos = 0;
X
X dirw_bot_msg("ESC: abort ^U: erase input");
X dirw_cmd_line_setup("","Directory entry name to find: ");
X
X--- 1604,1610 -----
X uchar delim = 0;
X int y,x;
X int wgedit = 0;
X! int wgpos = -1;
X
X dirw_bot_msg("ESC: abort ^U: erase input");
X dirw_cmd_line_setup("","Directory entry name to find: ");
X***************
X*** 1640,1646
X uchar delim = 0;
X int y,x;
X int wgedit = 0;
X! int wgpos = 0;
X char *expcmd;
X extern char *sys_errlist[];
X extern char errmsg[];
X
X--- 1643,1649 -----
X uchar delim = 0;
X int y,x;
X int wgedit = 0;
X! int wgpos = -1;
X char *expcmd;
X extern char *sys_errlist[];
X extern char errmsg[];
X***************
X*** 1873,1879
X char buf[64];
X uchar delim = 0;
X int y,x;
X! int wgpos = 0;
X
X dirw_bot_msg("ESC: abort ^U: erase input");
X sprintf(buf,"(Must be greater than or equal to %d seconds)",
X
X--- 1876,1882 -----
X char buf[64];
X uchar delim = 0;
X int y,x;
X! int wgpos = -1;
X
X dirw_bot_msg("ESC: abort ^U: erase input");
X sprintf(buf,"(Must be greater than or equal to %d seconds)",
X***************
X*** 1905,1910
X sprintf(buf,"%d",nap_decisec_multiple / 10);
X wstandout(dirw);
X wgpos = strlen(buf);
X while((delim != ESC) && (delim != NL))
X (void)wingets(dirw,y,x,buf,3+1,&delim,1,&wgpos);
X wstandend(dirw);
X
X--- 1908,1914 -----
X sprintf(buf,"%d",nap_decisec_multiple / 10);
X wstandout(dirw);
X wgpos = strlen(buf);
X+ delim = 0;
X while((delim != ESC) && (delim != NL))
X (void)wingets(dirw,y,x,buf,3+1,&delim,1,&wgpos);
X wstandend(dirw);
X***************
X*** 2088,2094
X shm->Lmodem_already_init = 0;
X lclose();
X }
X! strcpy(shm->Lline,"/dev/tty");
X strcat(shm->Lline,tpde->tty);
X }
X else /* "Any" */
X
X--- 2092,2102 -----
X shm->Lmodem_already_init = 0;
X lclose();
X }
X! #if defined(M_SYSV)
X! if(!strncmp(tpde->tty,"tty",3)) /* if "ttyxx" specified */
X! strcpy(shm->Lline,"/dev/");
X! else
X! strcpy(shm->Lline,"/dev/tty");
X strcat(shm->Lline,tpde->tty);
X #else
X #if defined(ISC)
X***************
X*** 2090,2095
X }
X strcpy(shm->Lline,"/dev/tty");
X strcat(shm->Lline,tpde->tty);
X }
X else /* "Any" */
X choose_line(tpde->baud);
X
X--- 2098,2111 -----
X else
X strcpy(shm->Lline,"/dev/tty");
X strcat(shm->Lline,tpde->tty);
X+ #else
X+ #if defined(ISC)
X+ strcpy(shm->Lline,"/dev/");
X+ strcat(shm->Lline,tpde->tty);
X+ #else
X+ # include "need.porting.attention.here"
X+ #endif /* ISC */
X+ #endif /* M_SYSV */
X }
X else /* "Any" */
X choose_line(tpde->baud);
SHAR_EOF
$TOUCH -am 0812040191 'PATCH1.01' &&
chmod 0644 PATCH1.01 ||
echo 'restore of PATCH1.01 failed'
Wc_c="`wc -c < 'PATCH1.01'`"
test 40147 -eq "$Wc_c" ||
echo 'PATCH1.01: original size 40147, current size' "$Wc_c"
true || echo 'restore of PATCH1.02 failed'
echo End of part 1, continue with part 2
exit 0
exit 0 # Just in case...
--
Kent Landfield INTERNET: kent@sparky.IMD.Sterling.COM
Sterling Software, IMD UUCP: uunet!sparky!kent
Phone: (402) 291-8300 FAX: (402) 291-4362
Please send comp.sources.misc-related mail to kent@uunet.uu.net.