Newsgroups: comp.sources.misc From: Warren Tucker Subject: v22i019: ecu - ECU async comm package rev 3.10, Patch01a/3 Message-ID: X-Md4-Signature: 414fd92d99cbc90437bf81d10cf70f5e Date: Fri, 16 Aug 1991 02:05:38 GMT Approved: kent@sparky.imd.sterling.com Submitted-by: Warren Tucker 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 ", 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 ", 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 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 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 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.