home *** CD-ROM | disk | FTP | other *** search
- From: wht@n4hgf.uucp (Warren Tucker)
- Newsgroups: comp.sources.misc
- Subject: v16i025: ECU async comm package rev 3.0, Part01/35
- Message-ID: <1991Jan6.051644.27229@sparky.IMD.Sterling.COM>
- Date: 6 Jan 91 05:16:44 GMT
- Approved: kent@sparky.imd.sterling.com
- X-Checksum-Snefru: f26efa9d d14ddd47 d107eabe 89b3df78
-
- Submitted-by: wht@n4hgf.uucp (Warren Tucker)
- Posting-number: Volume 16, Issue 25
- Archive-name: ecu3/part01
-
- This is ECU revision 3.00.00. ECU is a asynchronous
- communications program for SCO UNIX System V/386 or XENIX System
- V/286 or 386 on AT-class computer systems. It incorporates
- typical interactive communications capabilities with a rich
- procedure language, an extended set of immediate (interactive)
- commands, and several file transfer protocols. The operating
- system and development system is expected to be revision 2.3.1 or
- later for XENIX and 3.2.0 for UNIX.
-
- Experimental support for non-ANSI consoles has been added. Bugs
- are expected and reports will be greatly appreciated. Your
- non-ANSI terminal must be fairly "smart", with insert/delete-line
- features, erase-to-end-of-line, etc.. See the manual.
-
- Many thanks to those who helped me improve the program,
- especially tbetz@upaya, jmd@wa4cyb, jts@ki4xo, jsm@n4vu,
- cma@tridom, neal@clkwrka, mjb@mjbtn and rob@genrad.
-
- The doc subdirectory has all of the .txt files used to produce
- ecu.man, the manual of sorts for the program. A copy of it is
- reluctantly included (net.bandwidth) for those who do not have
- nroff.
-
- There have been *MANY* changes to ECU since revision 2.8. It is
- worth re-reading this file and *at least* the table of contents of
- the manual to see what's changed. No effort has been spared to
- remain compatible with the previous version, but some changes
- were necessary.
-
- Notably, your pre rev-3 ~/.ecu/phone file must have a special
- line added manually to the top of it: #ECUPHONE. See
- models/phone for an example.
-
- Bug reports, comments and suggestions are heartily requested.
- Also, I will start an ECU mailing list is there is any interest.
-
- My address: Warren H. Tucker (404)587-5766
- Tuckerware wht@n4hgf.Mt-Park.GA.US
- 150 West Lake Drive {gatech,emory}!n4hgf!wht
- Mountain Park, Ga. 30075 USA
-
- ---- Cut Here and feed the following to sh ----
- #!/bin/sh
- # This is ecu3, a shell archive (shar 3.46)
- # made 12/26/1990 10:28 UTC by wht@n4hgf.Mt-Park.GA.US
- # Source directory /u1/src/ecu
- #
- # existing files WILL be overwritten
- #
- # This shar contains:
- # length mode name
- # ------ ---------- ------------------------------------------
- # 8303 -rw-r--r-- README
- # 13617 -rw-r--r-- ANCIENTHISTORY
- # 835 -rw-r--r-- ESOTERIC
- # 13973 -rw-r--r-- Make.ecu
- # 4060 -rw-r--r-- afterlint.c
- # 1470 -rw-r--r-- bamboozle.c
- # 413 -rw-r--r-- cmdtbl.c
- # 9953 -rw-r--r-- ecu.c
- # 20605 -rw-r--r-- ecuDCE.c
- # 3727 -rw-r--r-- ecuLCK.c
- # 8377 -rw-r--r-- ecuchdir.c
- # 3656 -rw-r--r-- ecudump.c
- # 6693 -rw-r--r-- ecufinsert.c
- # 12100 -rw-r--r-- ecufkey.c
- # 12087 -rw-r--r-- ecufork.c
- # 7552 -rw-r--r-- ecuicmaux.c
- # 12735 -rw-r--r-- ecuicmd.c
- # 7848 -rw-r--r-- ecuicmhelp.c
- # 3336 -rw-r--r-- ecuicmhist.c
- # 23928 -rw-r--r-- eculine.c
- # 4250 -rw-r--r-- eculock.c
- # 834 -rw-r--r-- ecunumrev.c
- # 48468 -rw-r--r-- ecuphone.c
- # 5521 -rw-r--r-- ecuphrase.c
- # 30050 -rw-r--r-- ecurcvr.c
- # 4434 -rw-r--r-- ecuscrdump.c
- # 14649 -rw-r--r-- ecusetup.c
- # 7052 -rw-r--r-- ecushm.c
- # 11775 -rw-r--r-- ecusighdl.c
- # 14554 -rw-r--r-- ecutcap.c
- # 4253 -rw-r--r-- ecutime.c
- # 23288 -rw-r--r-- ecutty.c
- # 5623 -rw-r--r-- ecuuclc.c
- # 2642 -rw-r--r-- ecuusage.c
- # 25588 -rw-r--r-- ecuutil.c
- # 9536 -rw-r--r-- ecuwinutil.c
- # 14176 -rw-r--r-- ecuxenix.c
- # 23483 -rw-r--r-- ecuxfer.c
- # 17780 -rw-r--r-- esdutil.c
- # 8287 -rw-r--r-- esiointf.c
- # 9617 -rw-r--r-- expresp.c
- # 24950 -rw-r--r-- feval.c
- # 6629 -rw-r--r-- gint.c
- # 5212 -rw-r--r-- gstr.c
- # 15942 -rw-r--r-- hdbintf.c
- # 2521 -rw-rw-r-- kbdtest.c
- # 1295 -rw-r--r-- logevent.c
- # 6955 -rw-r--r-- nonansikey.c
- # 24203 -rw-r--r-- pcmd.c
- # 22839 -rw-r--r-- pcmdfile.c
- # 13817 -rw-r--r-- pcmdif.c
- # 7941 -rw-r--r-- pcmdtty.c
- # 2686 -rw-r--r-- pcmdwhile.c
- # 11327 -rw-r--r-- pcmdxfer.c
- # 4352 -rw-r--r-- poutput.c
- # 3525 -rw-r--r-- pprintf.c
- # 16834 -rw-r--r-- proc.c
- # 4423 -rw-r--r-- proc_error.c
- # 3397 -rw-r--r-- procframe.c
- # 10229 -rw-r--r-- regexp.c
- # 2206 -rw-r--r-- sysdep.c
- # 3906 -rw-r--r-- utmpstat.c
- # 10027 -rw-r--r-- var.c
- # 1616 -rw-r--r-- dialprog.h
- # 545 -rw-r--r-- dlent.h
- # 722 -rw-r--r-- dvent.h
- # 4010 -rw-r--r-- ecu.h
- # 11044 -rw-r--r-- ecucmd.h
- # 3939 -rw-r--r-- ecuerror.h
- # 1457 -rw-r--r-- ecufkey.h
- # 402 -rw-r--r-- ecufork.h
- # 1056 -rw-r--r-- ecuhangup.h
- # 706 -rw-r--r-- ecukey.h
- # 733 -rw-r--r-- ecupde.h
- # 3042 -rw-r--r-- ecushm.h
- # 955 -rw-r--r-- ecutty.h
- # 1052 -rw-r--r-- ecuungetty.h
- # 584 -rw-r--r-- ecuvmin.h
- # 1534 -rw-r--r-- ecuxkey.h
- # 857 -rw-r--r-- esd.h
- # 2176 -rw-r--r-- feval.h
- # 27009 -rw-r--r-- lint_args.h
- # 21 -rw-r--r-- patchlevel.h
- # 1199 -rw-r--r-- pc_scr.h
- # 938 -rw-r--r-- proc.h
- # 516 -rw-r--r-- relop.h
- # 1407 -rw-r--r-- smap.h
- # 1287 -rw-r--r-- stdio_lint.h
- # 592 -rw-r--r-- utmpstatus.h
- # 505 -rw-r--r-- var.h
- # 2124 -rw-r--r-- help/Makefile
- # 24593 -rw-r--r-- help/ecuhelp.src
- # 11307 -rw-r--r-- help/helpgen.c
- # 2592 -rw-r--r-- help/lint_args.h
- # 1304 -rw-r--r-- help/util.c
- # 502 -rw-r--r-- ecufriend/Makefile
- # 2665 -rw-r--r-- ecufriend/ecufriend.c
- # 1331 -rw-r--r-- ecuungetty/Makefile
- # 3923 -rw-r--r-- ecuungetty/ecuungetty.c
- # 2060 -rw-r--r-- mapkey/README
- # 5709 -rw-r--r-- mapkey/keys.usa.ecu.d
- # 3558 -rw-r--r-- bperr/bperr.c
- # 3163 -rw-r--r-- z/Makefile
- # 1509 -rw-r--r-- z/baudtest.c
- # 41299 -rw-r--r-- z/ecurz.c
- # 41872 -rw-r--r-- z/ecusz.c
- # 15601 -rw-r--r-- z/zcommon.c
- # 33753 -rw-r--r-- z/zcurses.c
- # 174 -rw-r--r-- z/zdebug.c
- # 2818 -rw-r--r-- z/zlint.h
- # 16442 -rw-r--r-- z/zmodem.c
- # 6728 -rw-r--r-- z/zmodem.h
- # 913 -rw-r--r-- sea/Makefile
- # 35194 -rw-r--r-- sea/ecusea.c
- # 2779 -rw-r--r-- sea/lint_args.h
- # 22139 -rw-r--r-- sea/scurses.c
- # 11247 -rw-r--r-- sea/sealink.doc
- # 5213 -rw-r--r-- sea/sealink.imp
- # 1713 -rw-r--r-- gendial/Makefile
- # 6539 -rw-r--r-- gendial/dialer.h
- # 25754 -rw-r--r-- gendial/gendial.c
- # 18448 -rw-r--r-- gendial/dceT2500.c
- # 9615 -rw-r--r-- gendial/template.c
- # 13186 -rw-r--r-- gendial/dceMC9624.c
- # 17853 -rw-r--r-- gendial/dceTBPlus.c
- # 17704 -rw-r--r-- gendial/dceT1000.c
- # 14315 -rw-r--r-- gendial/dceMPAD.c
- # 1949 -rw-r--r-- xsel386/fixttiocom.c
- # 2981 -rw-r--r-- xsel386/select-update
- # 1237 -rw-r--r-- xsel386/select.asm
- # 21402 -rw-r--r-- xsel386/select.txt
- # 391 -rw-r--r-- xsel386/ttiocom.c
- # 2354 -rw-r--r-- shar.fls
- # 19 -rw-r--r-- sea/ecusea.fls
- # 38 -rw-r--r-- z/comsrc.fls
- # 40415 -rw-r--r-- ckermit/ckermit.01
- # 40639 -rw-r--r-- ckermit/ckermit.02
- # 19216 -rw-r--r-- ckermit/ckermit.03
- # 6049 -rw-r--r-- doc/_basic.txt
- # 39 -rw-r--r-- doc/_end.txt
- # 1767 -rw-r--r-- doc/_exit.txt
- # 25444 -rw-r--r-- doc/_features.txt
- # 3940 -rw-r--r-- doc/_hdb.txt
- # 28501 -rw-r--r-- doc/_icmd.txt
- # 2184 -rw-r--r-- doc/_intro.txt
- # 44600 -rw-r--r-- doc/_p_cmd.txt
- # 11341 -rw-r--r-- doc/_p_ifunc.txt
- # 4995 -rw-r--r-- doc/_p_param.txt
- # 9865 -rw-r--r-- doc/_p_sfunc.txt
- # 171 -rw-r--r-- doc/_proc.txt
- # 8276 -rw-r--r-- doc/_startup.txt
- # 973 -rw-r--r-- doc/_tech.txt
- # 519 -rw-r--r-- doc/_top.txt
- # 170 -rw-r--r-- doc/ecu.txt
- # 104 -rwxr-xr-x doc/runoff
- # 673 -rw-r--r-- models/bsd_uname.ep
- # 140 -rw-r--r-- models/colors
- # 14 -rw-r--r-- models/dir
- # 815 -rw-r----- models/f.ep
- # 1667 -rw-r--r-- models/file_test.ep
- # 317 -rw-r--r-- models/frame_test.ep
- # 198 -rw-r--r-- models/gosub.ep
- # 447 -rw-r--r-- models/goto_test.ep
- # 420 -rw-r--r-- models/if_test.ep
- # 322 -rw-r--r-- models/keys
- # 515 -rw-r--r-- models/lookfortest.ep
- # 578 -rw-r--r-- models/mhack_test.ep
- # 40 -rw-r--r-- models/mkdir.ep
- # 5679 -rw-r--r-- models/nonansikeys
- # 877 -rw-r--r-- models/oneline.ep
- # 2086 -rw-r--r-- models/opuslogin.ep
- # 1110 -rw-r----- models/p.ep
- # 261 -rw-r--r-- models/phone
- # 117 -rw----r-- models/phrases
- # 895 -rw-r--r-- models/ps.ep
- # 1963 -rw-r--r-- models/put_ecu.ep
- # 503 -rw-r--r-- models/root.ep
- # 4983 -rw-r--r-- models/rz_update.ep
- # 643 -rw-r--r-- models/scm.ep
- # 557 -rw-r--r-- models/senddate.ep
- # 2489 -rw-r--r-- models/sf_test.ep
- # 1465 -rw-r--r-- models/su.ep
- # 766 -rw-r----- models/sysname.ep
- # 4479 -rw-r--r-- models/sz_update.ep
- # 127 -rw-r--r-- models/szall.ep
- # 495 -rw-r--r-- models/tty1a.mi
- # 446 -rw-r--r-- models/tty2d.mi
- # 3689 -rw-r----- models/unixlogin.ep
- # 649 -rwxr-xr-x zgcc
- # 3418 -rw-r--r-- mkoldproto.l
- #
- if touch 2>&1 | fgrep 'amc' > /dev/null
- then TOUCH=touch
- else TOUCH=true
- fi
- # ============= README ==============
- echo 'x - extracting README (Text)'
- sed 's/^X//' << 'SHAR_EOF' > 'README' &&
- X.--------------------------------------------------------.
- X| ECU README - last revised Sat Dec 22 00:10:12 EDT 1990 |
- X`--------------------------------------------------------'
- X
- XThis is ECU revision 3.00.00. ECU is a asynchronous
- Xcommunications program for SCO UNIX System V/386 or XENIX System
- XV/286 or 386 on AT-class computer systems. It incorporates
- Xtypical interactive communications capabilities with a rich
- Xprocedure language, an extended set of immediate (interactive)
- Xcommands, and several file transfer protocols. The operating
- Xsystem and development system is expected to be revision 2.3.1 or
- Xlater for XENIX and 3.2.0 for UNIX.
- X
- XExperimental support for non-ANSI consoles has been added. Bugs
- Xare expected and reports will be greatly appreciated. Your
- Xnon-ANSI terminal must be fairly "smart", with insert/delete-line
- Xfeatures, erase-to-end-of-line, etc.. See the manual.
- X
- XMany thanks to those who helped me improve the program,
- Xespecially tbetz@upaya, jmd@wa4cyb, jts@ki4xo, jsm@n4vu,
- Xcma@tridom, neal@clkwrka, mjb@mjbtn and rob@genrad.
- X
- XThe doc subdirectory has all of the .txt files used to produce
- Xecu.man, the manual of sorts for the program. A copy of it is
- Xreluctantly included (net.bandwidth) for those who do not have
- Xnroff.
- X
- X--------------------------------------------------------------------
- X
- XNOTE TO PRE-REVISION-3 USERS:
- X
- XThere have been *MANY* changes to ECU since revision 2.8. It is
- Xworth re-reading this file and *at least* the table of contents of
- Xthe manual to see what's changed. No effort has been spared to
- Xremain compatible with the previous version, but some changes
- Xwere necessary.
- X
- XNotably, your pre rev-3 ~/.ecu/phone file must have a special
- Xline added manually to the top of it: #ECUPHONE. See
- Xmodels/phone for an example.
- X
- XIn general:
- X
- X $i0 = 5
- X whilei $i0 != 0
- X {
- X do 'read-new-man'
- X ifs %logname != 'confused'
- X break
- X $i0 = $i0 - 1
- X }
- X ifs %logname == 'confused'
- X system 'mail -s help wht@n4hgf.Mt-Park.GA.US < flame.txt'
- X
- X--------------------------------------------------------------------
- X
- XTTY devices must be named in the style of:
- X
- X /dev/tty#N
- X ^^
- X ||
- X |`------ uppercase letter for modem control
- X | lowercase for non-modem control
- X `--------digit (1-4)
- X
- X
- XA future version of ECU will address this limitation.
- X
- XIf you are using FAS or other third-party driver, you may use ECU
- Xwith ports not normally named in the /dev/tty#N style in one of two
- Xways under UNIX and one way under XENIX:
- X
- X
- X 1. Under XENIX or UNIX, create a link to the port
- X with a compatible name:
- X
- X ln /dev/ttyF00 /dev/tty1a
- X ln /dev/ttyFM00 /dev/tty1A
- X
- X 2. Under UNIX, add additional lines to the
- X /etc/conf/node.d file and rebuild the kernel
- X environment (this is the recommended approach
- X for UNIX):
- X
- X fas ttyF00 c 48
- X fas tty1a c 48
- X fas ttyF01 c 49
- X fas tty1b c 49
- X fas ttyFM00 c 208
- X fas tty1A c 208
- X fas ttyFM01 c 209
- X fas tty1B c 209
- X
- X--------------------------------------------------------------------
- X
- XNOTE: SEAlink is provided as-is. I haven't used it since I
- Xtested it in 1989.
- X
- X--------------------------------------------------------------------
- X
- XIf you are using an xterm to run ecu,
- X
- X1. the maximum geometry is 80x43
- X2. 4014 emulation is untested
- X3. you should use the following resources:
- X
- XXTerm*titeInhibit: true # enable screen clear functions normally
- XXTerm*curses: true # curses bug fix
- X
- X--------------------------------------------------------------------
- X
- XTo make and install the program:
- X
- X1. unshar all of the shars
- X
- X2. copy Make.ecu to Makefile
- X
- X3. edit ./Makefile to match your local system and requirements
- X
- X4. If your username is root or you have write access to your
- X local bin directory (LBIN in Makefile) just type 'make tools'
- X If needed, su to root, 'make tools', then exit the root shell.
- X
- X Just a note: on 286 systems you make have to use makeL, since
- X make is a small model (medium?) and makeL is a large model
- X program. marks@msge reported that under XENIX 286, it was
- X necessary to use:
- X
- X make -n tools | sh
- X
- X If the above fails, try 'makeL' or 'makeL -n | sh'.
- X It has been a while since I had a 286 to check this
- X out on. Please let me know what works for you.
- X
- X5. Type 'make'. Wait and watch a while. This is a good time to
- X be reading over doc/ecu.man.
- X
- X6. Su to root, if not already and type 'make install'.
- X
- X7. Create a subdirectory in your home directory called '.ecu' (~/.ecu).
- X
- X8. Copy models/* to ~/.ecu. NOTE: if you have used pre rev-3 versions
- X of ECU, skip this step, but you might want to look through the
- X models directory, since new examples have been added and some
- X have been revised.
- X
- X9. The 'make install' doesn't do it, because *you* should make the
- X informed choice to do it, but you must make the /dev/tty??
- X and /usr/spool/uucp world readable and writable for ECU
- X to create lock files and to access serial lines.
- X
- X Under XENIX: chmod +rw /usr/spool/uucp /dev/tty?[A-Za-z]
- X Under UNIX: chmod +rw,g+s /usr/spool/uucp
- X chmod +rw /dev/tty?[A-Za-z]
- X
- X10. The gendial subdirectory contains some rigorous, yet
- X experimental, dialer programs for use with ECU, cu and uucico.
- X They are currently undocumented and "as-is."
- X
- X--------------------------------------------------------------------
- XNotes:
- X
- X1. KERMIT:
- XA XENIX/286 (lowest common denominator) binary of a suitable
- Xckermit is compress-shared in the ckermit subdirectory. You
- Xshould unshar it and place it in the same directory as ECU.
- XAlas, I do not have full source for it. I plan to support the
- X(excellent) C-Kermit 5 as soon as it is released.
- X
- X2. SELECT(S)
- XSCO XENIX V/386 Release 2.3.1 (and evidently 2.3.2) have a
- Xbroken-dead, yet fixable, BSD-style select() feature. Also,
- Xselect() is missing from libc.a. While ECU does not *require*
- Xselect(S), it is much more efficient to use it. The x386sel
- Xsubdirectory in this release has information (thanks to
- Xcsch@netcs, ivar@acc, and ag@elgar) on how to fix the kernel and
- Xto add select() to libc.a.
- X
- XSelect(S) is fully functional in UNIX.
- X
- X3. CRYPT
- XCrypt may be used to make the ecuungetty function more secure.
- XIf your system has no untrusted users, or even some relatively
- Xlazy untrusted users, leave CRYPT and LCRYPT commented in the
- XMakefile. Since somewhat unlazy users can read the source as
- Xreleased and still wreak havoc with your ttys, you might want to
- Xchange the non-CRYPT "encryption" algorithm in bamboozle.c to
- Xmake your installation unique.
- X
- X4. MULTISCREEN BUG
- XThere has been a bug in the multiscreen driver for some time
- Xwherein a MEDIA COPY (screen dump) sequence ("ESC [ 2 i") leaves
- Xthe "ESC [ 2" part "active". When a screen dump (Cursor 5)
- Xcommand is given, I do the sacreen dump, then send a "l" to the
- Xscreen to work around the bug ("ESC 2 [ l" unlocks the keyboard,
- Xessentially a no-op). If and when it gets fixed, you'll see an
- X"l" show up on your screen after a screen dump sequence. To fix
- Xthis, comment out the
- X#define MULTISCREEN_DUMP_BUG
- Xat the top of ecuscrdump.c.
- X
- XNote that from multiscreens, screen dump produces a dump of the
- Xactual screen contents, including ECU-generated output. When
- Xusing a non-multiscreen terminal, screen dump dumps only the
- Xshared memory virtual screen as received from the host.
- X
- XIf, at a multiscreen, you wish a screen dump free of ECU output
- X"pollution," use Shift-Tab (BkTab) to redraw the screen, then
- Xperform the screen dump.
- X
- X--------------------------------------------------------------------
- X
- XThis program, it sources, objects and utilities are placed in the
- Xpublic domain. No GNU, no Copydown, just FREE. That saved 2Kb per
- Xmodule, didn't it?
- X
- X--------------------------------------------------------------------
- XMy address: Warren H. Tucker (404)587-5766
- X Tuckerware wht@n4hgf.Mt-Park.GA.US
- X 150 West Lake Drive {gatech,emory}!n4hgf!wht
- X Mountain Park, Ga. 30075 USA
- X--------------------------------------------------------------------
- SHAR_EOF
- $TOUCH -am 1226043890 'README' &&
- chmod 0644 README ||
- echo 'restore of README failed'
- Wc_c="`wc -c < 'README'`"
- test 8303 -eq "$Wc_c" ||
- echo 'README: original size 8303, current size' "$Wc_c"
- # ============= ANCIENTHISTORY ==============
- echo 'x - extracting ANCIENTHISTORY (Text)'
- sed 's/^X//' << 'SHAR_EOF' > 'ANCIENTHISTORY' &&
- XChanges and fixes since 'unet1' alt.sources release:
- X
- X1. The uucp lock file code has been upgraded. When I added uucp dialer
- Xsupport a while back, I just hacked the necessities needed for
- XecuLCK.c and put the new code into hdbintf.c. Also, I don't try
- Xto create two lock files anymore because there is no need.
- X
- X2. In esdutil.c, skip_paren could return a wrong error code.
- X
- X3. ctype.h style integer functions were added to the procedure
- Xlanguage: %isalnum, %isalpha, %isascii, %iscntrl, %isdigit, %isgraph,
- X%islower, %isprint, %ispunct, %isspace, %isupper and %isxdigit.
- X
- X4. Logical operators were added to the ifi, ifs, whilei and whiles
- Xsyntax, making possible:
- X ifi $i0 ==5 || %i30 == 6
- X statement(s)
- XThis still ain't perl, but things are a little better.
- X
- X5. %right() was broken. strfunc_right() in feval.c returned a random
- Xerror code on success.
- X
- X6. A copy of the screen as received from the line is now kept in shared
- Xmemory. Three new functions use this feature: integer functions %curx
- Xand %cury and string function %screen(). There are limitations, so read
- Xthe appropriate manual sections.
- X
- X7. Since some program may want to use the shared memory segment to read
- Xthe screen, the shared memory segment is no longer RMID'd as soon as it
- Xis created. The integer function %shmid returns the shared memory
- Xsegment id for passing to a called program. Many other interesting
- Xthings are kept in shared memory to enable efficient use of auxiliary
- Xprograms. See echshm.h and ecufriend/ecufriend.c.
- X
- X8. Procedure tracing of string variable assignment prints "unprintable"
- Xcharacters in the style of '^A' rather than clobbering your screen.
- X
- X9. kill_rcvr_process is better at terminating the receiver process.
- X
- X10. Screen dumps having extra repeated lines at the bottom won't happen
- Xany more. (The restarted rcvr process was getting a copy of the stdio
- Xbuffers to flush too :-/).
- X
- X11. By modifying the mapkey file to return certain codes for ALT-A
- Xthrough ALT-Z, it is possible to have 26 procedures (named
- X'alt_[a-z].ep') to execute "silently" by pressing one key (OK, two keys:
- XALT and a-z). See mapkeys/README, /usr/lib/keybord/keys and mapkey(ADM).
- X
- X12. The receiver was not getting properly informed when the parity of
- Xthe line was changed with the interactive or procedure parity command.
- XSo it could improperly mask or fail to mask incoming characters.
- X
- X13. The crypt library is no longer required. Indeed, the default is
- Xnot to use crypt. The paranoia required for "safe" big systems is not
- Xalways warranted on smaller PCs. You can still get extra protection
- Xagainst false ecuungetty action by using crypt if you want (and in the
- Xcase of non-USA user, if you CAN).
- X
- X14. A running count is displayed on the screen of the number of files
- Xskipped during a ZMODEM transfer.
- X
- X15. You can now specify the colors used by ecu when it makes an
- Xinternal choice to change colors. See ecu.man.
- X
- X16. UNIX, thanks to POSIX, is loathe to accept a filename of greater
- Xthan 14 characters when creating a file. The XMODEM, YMODEM and
- XZMODEM file receive protocols have been modified to truncate long
- Xfilenames. A patch to UNIX libsys.a to put the POSIX people back in
- Xtheir place has been floating around the net.
- X
- X--------------------------------------------------------------------
- X
- XChanges and fixes since '2.10' patch level 6:
- X
- X1. The nap procedure command has an additional feature, the -m
- X switch. -m specifies the <int> parameter is a period of
- X milliseconds to suspend execution. Without -m, <int> is
- X tenths of seconds.
- X
- X nap 2 suspends execution .2 seconds
- X nap -m 250 suspends execution 250 milliseconds.
- X
- X
- X--------------------------------------------------------------------
- X
- XChanges and fixes since '2.10' patch level 7:
- X
- X1. added rname procedure command to allow overriding connected
- X remote name.
- X
- X2. improve banner at top of session log file
- X
- X3. add popen and pclose procedure commands
- X
- X4. Added facility for restoring receiver display after the
- X interactive help command, or on demand using the BkTab key
- X (shift TAB).
- X
- X5. fix bug whereby partial function names could be enetered
- X (e.g., '%col', '%colo', '%color' all recognized for '%colors').
- X
- X6. Add the %mhack integer function, returning the life of the
- X ecu process in milliseconds. (added mhack_test.ep to models)
- X
- X7. A better representation of the received screen is kept in
- X shared memory.
- X
- X8. The X, Y and ZMODEM transfer screens show per-file elapsed
- X time transfers as well as session elapsed time.
- X
- X9. A modified TBIT UUCP dialer, IMHO highly optimized, is is the
- X uucp directory.
- X
- X10. A bug in automatic creation of string variables was fixed.
- X
- X11. Certain endless loops in procedure execution could not be
- X interrupted.
- X
- X--------------------------------------------------------------------
- X
- XChanges and fixes since '2.72'
- X
- X1. The 'expresp' procedure command has been added:
- X usage: expresp [-v[v...]] <exp-resp-str> [<timeout_msecs>]
- X a. -v turns on script debugging
- X b. multiple v's (e.g., -v -vv, -vvv) up to 3 'v's produce
- X more verbose debug output
- X c. <exp-resp-str> is as defined in /usr/lib/ecu/Dialers:
- X Meaning of some of the escape characters:
- X \p - pause (approximately 1/4-1/2 second delay)
- X \d - delay (2 seconds)
- X \D - phone number/token
- X \T - phone number with Dialcodes and character translation
- X \N - null byte
- X \K - insert a BREAK
- X \E - turn on echo checking (for slow devices)
- X \e - turn off echo checking
- X \r - carriage return
- X \c - no new-line
- X \n - send new-line
- X \nnn - send octal number
- X Speed - Hayes-specific speed-adaptive connect handler
- X d. <timeout_msecs> specifies the optional delay for waiting
- X on expect strings; it defaults to 10 seconds; the timeout
- X for 'Speed' expects is fixed at 90 seconds
- X
- X2. Added partial support for HDB Dialers scripts
- X a. \E echo checking is not actually performed, but
- X essentially the same effect is achieved by pacing
- X output to the modem
- X b. The Speed expect string works only for modems
- X which return "CONNECT xxxx" connect result codes.
- X c. Modems which return status codes during dialing, such
- X as the Trailblazer RRING, will cause Speed processing
- X to fail. Fortunately, RRING can be disabled (you should use
- X the dialTBIT program anyway)
- X d. the timeout for non-Speed expects is 10 seconds
- X e. the timeout for 'Speed' expects is 90 seconds
- X
- X
- X3. Note, the SCO HDB documentation states that a dialer
- X program may be specified by either a complete pathname
- X or a partial pathname in /usr/lib/uucp. Ecu requires a
- X complete pathname.
- X
- X4. The string functions %dayz, %monthz, %datez, %timez and %timesz
- X have been added to retreive UTC (Z) date and time values.
- X
- X5. If no dialing action results from a visit to the dialing directory,
- X the previous receiver screen contents is redisplayed.
- X
- X6. The 'P' option to the 'fi' (file insert) interactive command
- X has been added. In this mode, the file is sent character-by-
- X character to the line with 20 milliseconds pacing between each
- X character.
- X
- X7. Previously, if you started ecu on an HDB machine and no line was
- X available at the specified (or default) baudrate, ecu would exit
- X with an error message. The workaround was to explicitly state the
- X desired device with a -l argument. The error (now as a warning) is
- X still printed, but the setup screen or initial procedure is allowed
- X to execute with tty1a forced to be the line (though this will likely
- X fail if tty1a is in Devices since ecu has already determined tty1a
- X is busy).
- X
- X8. When a string is requested from the keyboard, the Cursor Left,
- X Cursor Right and Ins keys are functional, allowing editing of the
- X string. Pressing Ins toggles insert mode. In non-curses modes,
- X (e.g., after HOME pressed and before Enter) ^L (or ^R) displays the
- X insert mode state and redisplays the string, after which editing may
- X continue.
- X
- X9. Though not appearing on the help line, the cursor up and cursor down
- X keys work in the dialing directory in a fashion similar to 'u' and 'd',
- X respectively.
- X
- X10. Warning: using vidi(C) to change the screen configuration while
- X ecu is running, (e.g. Home !vidi xxx) can cause the ecu to later
- X fault and dump core. Why this occurs is not known yet.
- X
- X11. After pressing Home, pressing it again gives you access to a
- X command history mechanism. Pressing cursor up and cursor down
- X while in this mode causes less and more recent commands to be displayed.
- X You can use Ins, Cursor Left, Cursor Right and Backspace, ^L/^R to
- X edit the old entry as desired, and then press Enter. (see #8 above).
- X Users of ksh will find this a familiar feature.
- X
- X--------------------------------------------------------------------
- X
- XChanges and fixes since '2.80'
- X
- X1. It was not possible to interrupt the built-in modem dialer
- X modem initialization sequence. SIGINT will do it now.
- X
- X2. A Zmodem window size may now be specified when sending files.
- X The file transfer status screen shows the number of unacknowleged
- X bytes which have been sent. If full streaming is allowed (window
- X size of zero), then this size will match the file position until
- X the transfer is complete or the receiver sends a ZRPOS.
- X
- X3. Output generated by procedures is now written to any active receiver
- X log file in addition to any active procedure log file.
- X
- X4. Just a note: on 286 systems you make have to use makeL, since
- X make is a small model (medium?) and makeL is a large model
- X program.
- X
- X5. The dependency of eculine.c on sys/select.h has been removed.
- X If you re-'make depend', you probably won't have this problem
- X show up again (a side effect of make depend is that it misses
- X '# include' and I have patched eculine.c to use this).
- X
- X6. A new command, xon, has been added (both interactive and procedure
- X versions). The format is:
- X xon <arg>
- X where <arg> is on input and output flow control
- X off no flow control
- X in input flow control
- X out output flow control
- X If <arg> is omitted from the interactive command, the current
- X flow control status is displayed. This command is documented in
- X the patched built-in help file and nroff txt files, but no pre-
- X printed manual changes were issued with this release.
- X
- X7. If you are not using a 43-line screen, the list of commands
- X displayed by the interactive 'help' command is truncated. I
- X apologize; this problem will be solved Real Soon Now.
- X
- XChanges since ecu 2.80 patchlevel 1
- X
- X1. The built-in help system was reworked. Interactive commands are
- X now divided into four categories: general, communications-related,
- X transfer-related and procedure-related. The help command asks for
- X a category and displays the appropriate subset.
- X
- X2. The built-in help file (ecuhelp.data) was revised.
- X
- XChanges since ecu 2.80 patchlevel 2
- X
- X1. Patch 3 added a window mode selection to the sz file transfer menu;
- X also, the unacknowledged data quantity (called "window") was
- X added to the sz file transfer display.
- X
- XChanges since ecu 2.80 patchlevel 3
- X
- X1. A problem with passing arguments to an initial procedure was
- X fixed. Getopt() is now used, which requires that all switch
- X command arguments must precede the non-switch arguments.
- X This was not true in previous revisions of ecu.
- X
- X2. A new (non-standard) escape sequence has been added to the
- X expresp procedure command. \m### causes a ### millisecond delay.
- X Note this adds an ambiguity to the syntax of the send string:
- X you may not follow an \m delay with a literal digit to send.
- X For example, suppose you wish to delay 300 missileconds then
- X send "4A". \m3004A will delay for 3004 (approximately) milliseconds,
- X then send an "A". You must, instead, use \m300\034A to achieve
- X the desired result.
- X
- X Also, a string of the form ~t[##] or ~m[##] may be prepended to
- X any expect vstring to change the timeout to ## seconds or milliseconds,
- X respectively. '~t[8]gin:--~m[800]gin:' waits 8 seconds for
- X 'gin:' and if not found, sends a carriage return and waits
- X an additional 800 milliseconds.
- X
- X3. The method of choosing a shared memory segment key changed.
- X Previously, ftok() was used. Now, the algorithm is
- X 0xEC000000L | getpid();
- X
- X4. The -D switch has been added to cause ecu to terminate
- X unconditionally upon completion of an initial procedure (-p).
- X
- XChanges since ecu 2.80 patchlevel 4
- X
- X1. The malloc library is used, resulting in faster procedure
- X execution.
- X
- X2. Restrictions on string operations limiting useful string length
- X to 256 characters have been lifted. New restrictions limit
- X strings to 5120 characters in length :-). This required some
- X major redesign and is responsible for the reissue of the entire
- X ECU program rather than merely patches.
- X
- X3. A new procedure command, 'gosub' has been added, allowing
- X subroutines within a procedure file.
- X
- X #---------
- X # example
- X #---------
- X echo 'main'; gosub SUB; echo 'back to main'
- X return | return from proc
- X
- X SUB
- X echo 'sub'
- X gosub SUB2
- X echo 'back to sub'
- X return | return from subroutine
- X
- X
- X SUB2
- X echo 'sub2'
- X return | return from subroutine
- X
- X4. Other minor unreported bugs were fixed.
- X
- SHAR_EOF
- $TOUCH -am 1124202690 'ANCIENTHISTORY' &&
- chmod 0644 ANCIENTHISTORY ||
- echo 'restore of ANCIENTHISTORY failed'
- Wc_c="`wc -c < 'ANCIENTHISTORY'`"
- test 13617 -eq "$Wc_c" ||
- echo 'ANCIENTHISTORY: original size 13617, current size' "$Wc_c"
- # ============= ESOTERIC ==============
- echo 'x - extracting ESOTERIC (Text)'
- sed 's/^X//' << 'SHAR_EOF' > 'ESOTERIC' &&
- XThis interesting article appeared last summer: much of the wisdom
- Xapplys to the ECU procedure language :-)
- X
- X> From: guy@auspex.auspex.com (Guy Harris)
- X> Newsgroups: comp.unix.questions
- X> Subject: Re: Funny kill -9 behaviour
- X> Message-ID: <3920@auspex.auspex.com>
- X> Date: 18 Aug 90 21:27:07 GMT
- X> References: <909@sagpd1.UUCP>
- X> Organization: Auspex Systems, Santa Clara
- X> Lines: 16
- X>
- X> >What I want to know is why in the hay does this happen?
- X>
- X> Because the C shell is flakier than a snowstorm. To quote the BUGS
- X> section of the SunOS 4.0.3 manual page (this quote is also in the S5R4
- X> "csh" manual page):
- X>
- X> Although robust enough for general use, adventures into the
- X> esoteric periphery of the C shell may reveal unexpected
- X> quirks.
- X>
- X> which translates as "the C shell is flakier than a snowstorm."
- SHAR_EOF
- $TOUCH -am 1226052890 'ESOTERIC' &&
- chmod 0644 ESOTERIC ||
- echo 'restore of ESOTERIC failed'
- Wc_c="`wc -c < 'ESOTERIC'`"
- test 835 -eq "$Wc_c" ||
- echo 'ESOTERIC: original size 835, current size' "$Wc_c"
- # ============= Make.ecu ==============
- echo 'x - extracting Make.ecu (Text)'
- sed 's/^X//' << 'SHAR_EOF' > 'Make.ecu' &&
- X# CHK=0x71D0
- X#+-------------------------------------------------------------------
- X# Makefile - Makefile for ecu and related programs
- X# wht@n4hgf.Mt-Park.GA.US
- X#--------------------------------------------------------------------
- X# to make, cp this file to Makefile and edit it (see README),
- X# su root (if necessary to get write access to $(LBIN))
- X# make tools
- X# back to 'ordinary mortal'
- X# make
- X# su root (necessary)
- X# make install
- X#--------------------------------------------------------------------
- X# NOTE: under UNIX, cc defines both M_UNIX and M_XENIX. ecu.h and
- X# sysdep.c remove M_XENIX under UNIX makes so that it is defined
- X# only on XENIX systems. Nevertheless, every effort is made to
- X# use M_UNIX over M_XENIX in code so that this feature is not
- X# counted on too much.
- X#
- X# If you are not using cc, be sure to define in CFLAGS
- X# M_UNIX for UNIX
- X# M_XENIX for XENIX (alone)
- X# M_I86 for every target
- X# M_I286 for 286 targets
- X# M_I386 for 386 targets
- X#
- X# This list may be incomplete and the header files and this code make
- X# free use of the excellent SCO cc-provided #defines, so you may lose
- X# if you are not using cc, but then you probably already are familiar
- X# with the problem.
- X#--------------------------------------------------------------------
- X# -Oi (thus -Ox) is _BROKEN_ as of this writing. strcpy() often fails
- X# if the second argument is other than a simple character pointer
- X# e.g. strcpy(str1,strarray[x+1]);
- X#--------------------------------------------------------------------
- X# VERY IMPORTANT: This make file has the ability to remake
- X# lint_args.h by 'make lint'' ... but don't do it on a UNIX system
- X# since MSC 5 -Zg has been broken since forever and cannot do the
- X# job .... it works OK on XENIX systems .... if you plan to remake
- X# lint_args.h, please do squirrel away the release copy first
- X#--------------------------------------------------------------------
- X#+:EDITS:
- X#:11-28-1990-19:45-wht@n4hgf-improve M_ dependency description
- X#:10-20-1990-14:30-wht@n4hgf-fix bugs found by tbetz@upaya
- X#:08-14-1990-20:42-wht@n4hgf-ecu3.00-flush old edit history
- X
- X#-------------------- configurable parameters -----------------------
- X#--> set LBIN to your local bin directory path
- XLBIN = /usr/local/bin
- X
- X#--> set ECULIBDIR to the desired location of the ecu library
- X# directory (normally /usr/lib/ecu)
- X# you may have to make /usr/local/lib by hand
- X# IF YOU CHANGE IT, ALSO CHANGE IT IN ecu.h
- XECULIBDIR = /usr/local/lib/ecu
- X
- X#--> leave commented unless you have my morse speaker driver
- X#MORSE=-DMORSE
- X
- X#--> uncomment if you have the crypt library. NOTE: minimal use is
- X# made of crypt ... Read the note in README. You probably want
- X# to leave this commented unless you want the best protection you
- X# can get against deviant mutant ninja hackers :-)
- X#CRYPT=-DCRYPT
- X#LCRYPT=-lcrypt
- X
- X#--> comment out if you have a working select(S) (for serial lines;
- X# 2.3.1 has a broken one that may be fixable: see README; 2.3.2
- X# has a working select(S) for serial lines and a fix from SCO
- X# for pipes [ecu doesn't select() on pipes])
- X# This is ignored for UNIX, where select(S) works fine
- XNOSEL=-DNO_SELECT
- X
- X#--> comment out if you do not want the automatic procedure execution
- X# feature when connecting to a system (see ecu.man dial command)
- XADPROC=-DAUTO_DIAL_PROC
- X
- X#--> uncomment out if you want source-level debugging information
- X# (386 only)
- X#ZI=-Zi
- X#--------------------------------------------------------------------
- X
- X#make some composites based on above
- XSYSTEM = `sysdep =M_UNIX UNIX/386 =M_I386 Xenix/386 =M_I286 Xenix/286`
- XU3C = $(ZI) -Octl -CSON
- XX3C = $(ZI) -Ot -CSON
- XX2C = -M2let32 -LARGE -F 8000 -Ot
- XCURSES = -DM_TERMCAP
- XCURSES_LIB = -ltcap -ltermlib
- XCOMFLAGS = -i `sysdep =M_UNIX $(U3C) =M_I386 $(X3C) =M_I286 $(X2C)`
- XCFLAGS = -DLINT_ARGS $(CURSES) $(CRYPT) $(MORSE) $(NOSEL) $(ADPROC) $(COMFLAGS)
- XLDFLAGS = `sysdep =M_I386 =M_I286 -SEG 256` -lx -lmalloc $(LCRYPT) $(CURSES_LIB)
- X
- XECUSHARNAME=ecux3
- XMANSHARNAME=ecumanx3
- X
- X.SUFFIXES:
- X.SUFFIXES: .o .c .h .l
- XSHELL = /bin/sh
- X
- X.c.o:; /bin/time $(CC) -c $(CFLAGS) $*.c
- X
- XSHARFLS = \
- XREADME \
- XANCIENTHISTORY \
- XESOTERIC \
- XMakefile *.c *.h \
- Xhelp/Makefile help/*.{h,c,src} \
- Xecufriend/{Makefile,*.{c,h}} \
- Xecuungetty/Makefile ecuungetty/*.{c,h} \
- Xmapkey/README mapkey/keys.usa.ecu.d\
- Xbperr/bperr.c \
- Xz/Makefile z/*.{c,h} sea/Makefile sea/*.{c,h,doc,imp} \
- Xgendial/Makefile gendial/*.{h,c} \
- Xxsel386/* \
- Xshar.fls */*.fls \
- Xckermit/* doc/{*.txt,runoff} models/* zgcc mkoldproto.l'
- X
- XSRC = \
- X bamboozle.c\
- X cmdtbl.c\
- X ecu.c\
- X ecuLCK.c\
- X ecuchdir.c\
- X ecudump.c\
- X ecufinsert.c\
- X ecufkey.c\
- X ecufork.c\
- X ecuDCE.c\
- X eculine.c\
- X eculock.c\
- X ecunumrev.c\
- X ecuicmaux.c\
- X ecuicmhelp.c\
- X ecuicmhist.c\
- X ecuicmd.c\
- X ecuphone.c\
- X ecuphrase.c\
- X ecurcvr.c\
- X ecuscrdump.c\
- X ecusetup.c\
- X ecushm.c\
- X ecusighdl.c\
- X ecutcap.c\
- X ecutime.c\
- X ecutty.c\
- X ecuuclc.c\
- X ecuusage.c\
- X ecuutil.c\
- X ecuwinutil.c\
- X ecuxenix.c\
- X ecuxfer.c\
- X esdutil.c\
- X esiointf.c\
- X expresp.c\
- X feval.c\
- X gint.c\
- X gstr.c\
- X hdbintf.c\
- X logevent.c\
- X nonansikey.c\
- X pcmd.c\
- X pcmdif.c\
- X pcmdfile.c\
- X pcmdtty.c\
- X pcmdwhile.c\
- X pcmdxfer.c\
- X poutput.c\
- X pprintf.c\
- X proc.c\
- X proc_error.c\
- X procframe.c\
- X regexp.c\
- X utmpstat.c\
- X var.c
- X
- XOBJ = \
- X bamboozle.o\
- X cmdtbl.o\
- X ecu.o\
- X ecuLCK.o\
- X ecudump.o\
- X ecuchdir.o\
- X ecufinsert.o\
- X ecufkey.o\
- X ecufork.o\
- X ecuDCE.o\
- X eculine.o\
- X eculock.o\
- X ecunumrev.o\
- X ecuicmaux.o\
- X ecuicmhelp.o\
- X ecuicmhist.o\
- X ecuicmd.o\
- X ecuphone.o\
- X ecuphrase.o\
- X ecurcvr.o\
- X ecuscrdump.o\
- X ecusetup.o\
- X ecushm.o\
- X ecusighdl.o\
- X ecutcap.o\
- X ecutime.o\
- X ecutty.o\
- X ecuuclc.o\
- X ecuusage.o\
- X ecuutil.o\
- X ecuwinutil.o\
- X ecuxenix.o\
- X ecuxfer.o\
- X esdutil.o\
- X esiointf.o\
- X expresp.o\
- X feval.o\
- X gint.o\
- X gstr.o\
- X hdbintf.o\
- X logevent.o\
- X nonansikey.o\
- X pcmd.o\
- X pcmdif.o\
- X pcmdfile.o\
- X pcmdtty.o\
- X pcmdwhile.o\
- X pcmdxfer.o\
- X poutput.o\
- X pprintf.o\
- X proc.o\
- X proc_error.o\
- X procframe.o\
- X regexp.o\
- X utmpstat.o\
- X var.o
- X
- Xall: check_tools ecuhelp ecu ecuug ecuz ecus
- X
- Xtools: $(LBIN)/sysdep $(LBIN)/afterlint $(LBIN)/mkoldproto
- X
- Xcheck_tools:
- X @[ -x $(LBIN)/sysdep ] || echo '"make tools" first, with write access to $(LBIN)'
- X @[ -x $(LBIN)/sysdep ] || exit 1
- X touch check_tools
- X
- Xecuhelp: check_tools
- X cd help;make
- X
- Xecuz: check_tools
- X cd z;make
- X
- Xecus: check_tools
- X cd sea;make
- X
- Xbperr/bperr: check_tools bperr/bperr.c
- X cd bperr;make bperr
- X
- Xecu: check_tools $(OBJ)
- X echo 'char *makedate="'`date` $(SYSTEM)'";' >makedate.c
- X $(CC) -c $(CFLAGS) makedate.c; rm makedate.c
- X rm -rf $@
- X $(CC) -o $@ $(COMFLAGS) makedate.o $(OBJ) $(LDFLAGS)
- X rm makedate.o
- X
- Xecuug: check_tools
- X cd ecuungetty;make CRYPT=$(CRYPT) LCRYPT=$(LCRYPT)
- X
- Xproc_error.c: ecuerror.h
- X make bperr/bperr
- X bperr/bperr
- X
- X$(OBJ): ecushm.h
- X
- Xecu.fls: $(SRC) Makefile
- X ls $(SRC) >ecu.fls
- X
- Xlint: ecu.fls
- X echo ' ' > lint_args.h
- X csh zgcc ecu.fls lint_args.h $(CFLAGS)
- X
- Xinstall: all ecuhelp ecuz ecus #run as root
- X cp ecu z/ecusz z/ecurz sea/ecusea $(LBIN)
- X chmod 755 $(LBIN)/ecu $(LBIN)/ecusz $(LBIN)/ecurz $(LBIN)/ecusea
- X -mkdir $(ECULIBDIR)
- X -chmod 755 $(ECULIBDIR)
- X cd ecuungetty;make CRYPT=$(CRYPT) LCRYPT=$(LCRYPT) ECULIBDIR=$(ECULIBDIR)\
- X install
- X cp help/ecuhelp.data $(ECULIBDIR)
- X @echo "--------------------------------------------------------------------"
- X @echo "| edit $(ECULIBDIR)/*.mi for your tty lines per ecu.man"
- X @echo "--------------------------------------------------------------------"
- X
- Xshar.fls:
- X csh -c 'ls $(SHARFLS) | sort > shar.fls'
- X
- X# for shar 3
- Xshar:
- X csh -c 'shar -c -s "wht@n4hgf.Mt-Park.GA.US" -a \
- X-n$(ECUSHARNAME) -l55 -o/tmp/$(ECUSHARNAME) $(SHARFLS)
- X shar -c -s "wht%n4hgf@gatech.ecu" -a \
- X-n$(MANSHARNAME) -L55 -o/tmp/$(MANSHARNAME) doc/ecu.man
- X
- X# tools for making ecu
- X$(LBIN)/sysdep: sysdep.c # uname -p undocumented on UNIX but works
- X @echo 'building sysdep for' `uname -p`
- X [ `uname -p` != i80286 ] || $(CC) -O -M2 sysdep.c -o $@
- X [ `uname -p` = i80286 ] || $(CC) -O sysdep.c -o $@
- X
- X$(LBIN)/afterlint: afterlint.c
- X $(CC) -O afterlint.c -o $@
- X
- X$(LBIN)/mkoldproto: mkoldproto.l
- X lex mkoldproto.l
- X $(CC) lex.yy.c -ll -o $@
- X rm lex.yy.?
- X
- X#
- X#
- X#
- X# MAKE DEPEND: regenerate .o:.h dependencies automatically
- X#
- Xdepend:
- X rm -f depend.tmp
- X if test '$(SRC)' ;\
- X then (grep '^#include' $(SRC) \
- X | sed -e 's?:[^<]*<\([^>]*\)>.*?: /usr/include/\1?'\
- X -e 's?:[^"]*"\([^"]*\)".*?: \1?'\
- X -e 's?\(.*\)\.c?\1.o?'\
- X -e 's?ecuerror.h?ecu.h?'\
- X >> depend.tmp) ;\
- X fi
- X
- X echo '/^# DO NOT DELETE THIS LINE' >exdep.tmp
- X echo '.+1,$$d' >>exdep.tmp
- X echo 'r depend.tmp' >> exdep.tmp
- X echo 'w' >> exdep.tmp
- X cp Makefile Makefile.new
- X ex Makefile.new < exdep.tmp
- X rm exdep.tmp depend.tmp
- X echo '# DEPENDENCIES MUST END AT END OF FILE' >>Makefile.new
- X echo '# IF YOU PUT STUFF HERE IT WILL GO AWAY'>>Makefile.new
- X echo '# see make depend above'>>Makefile.new
- X mv Makefile Makefile.bak
- X mv Makefile.new Makefile
- X
- X# DO NOT DELETE THIS LINE
- Xcmdtbl.o: ecucmd.h
- Xecu.o: ecu.h
- Xecu.o: esd.h
- Xecu.o: proc.h
- Xecu.o: ecukey.h
- Xecu.o: ecuxkey.h
- Xecu.o: ecuhangup.h
- Xecu.o: patchlevel.h
- Xecu.o: /usr/include/sys/param.h
- XecuLCK.o: ecu.h
- XecuLCK.o: utmpstatus.h
- Xecuchdir.o: ecu.h
- Xecuchdir.o: ecukey.h
- Xecuchdir.o: /usr/include/pwd.h
- Xecudump.o: ecu.h
- Xecufinsert.o: ecu.h
- Xecufinsert.o: ecukey.h
- Xecufkey.o: ecu.h
- Xecufkey.o: ecukey.h
- Xecufkey.o: ecufkey.h
- Xecufkey.o: ecuxkey.h
- Xecufkey.o: ecufork.h
- Xecufork.o: ecu.h
- Xecufork.o: ecufork.h
- XecuDCE.o: ecu.h
- XecuDCE.o: ecukey.h
- XecuDCE.o: esd.h
- XecuDCE.o: var.h
- XecuDCE.o: ecupde.h
- XecuDCE.o: ecu.h
- XecuDCE.o: relop.h
- Xeculine.o: ecu.h
- Xeculine.o: ecukey.h
- Xeculine.o: ecuhangup.h
- Xeculock.o: ecu.h
- Xeculock.o: utmpstatus.h
- Xecuicmaux.o: ecu.h
- Xecuicmaux.o: ecu.h
- Xecuicmaux.o: ecucmd.h
- Xecuicmhelp.o: /usr/include/curses.h
- Xecuicmhelp.o: ecu.h
- Xecuicmhelp.o: ecucmd.h
- Xecuicmhelp.o: ecukey.h
- Xecuicmhelp.o: pc_scr.h
- Xecuicmhelp.o: stdio_lint.h
- Xecuicmhist.o: /usr/include/curses.h
- Xecuicmhist.o: pc_scr.h
- Xecuicmhist.o: ecu.h
- Xecuicmhist.o: ecukey.h
- Xecuicmhist.o: ecuxkey.h
- Xecuicmd.o: ecu.h
- Xecuicmd.o: esd.h
- Xecuicmd.o: ecufkey.h
- Xecuicmd.o: patchlevel.h
- Xecuicmd.o: ecucmd.h
- Xecuphone.o: /usr/include/curses.h
- Xecuphone.o: ecu.h
- Xecuphone.o: pc_scr.h
- Xecuphone.o: ecupde.h
- Xecuphone.o: ecukey.h
- Xecuphone.o: ecuxkey.h
- Xecuphone.o: ecuhangup.h
- Xecuphone.o: utmpstatus.h
- Xecuphone.o: dvent.h
- Xecuphone.o: esd.h
- Xecuphone.o: var.h
- Xecuphrase.o: ecu.h
- Xecurcvr.o: ecu.h
- Xecurcvr.o: ecukey.h
- Xecuscrdump.o: ecu.h
- Xecuscrdump.o: ecukey.h
- Xecuscrdump.o: pc_scr.h
- Xecusetup.o: /usr/include/curses.h
- Xecusetup.o: patchlevel.h
- Xecusetup.o: ecu.h
- Xecusetup.o: ecukey.h
- Xecusetup.o: ecuxkey.h
- Xecusetup.o: pc_scr.h
- Xecushm.o: ecu.h
- Xecushm.o: /usr/include/sys/ipc.h
- Xecushm.o: /usr/include/sys/shm.h
- Xecusighdl.o: ecu.h
- Xecusighdl.o: ecufork.h
- Xecutcap.o: ecu.h
- Xecutcap.o: ecukey.h
- Xecutcap.o: pc_scr.h
- Xecutime.o: /usr/include/sys/types.h
- Xecutime.o: /usr/include/time.h
- Xecutime.o: /usr/include/sys/timeb.h
- Xecutty.o: ecu.h
- Xecutty.o: esd.h
- Xecutty.o: ecufkey.h
- Xecutty.o: ecukey.h
- Xecutty.o: ecuxkey.h
- Xecutty.o: ecu.h
- Xecutty.o: ecuhangup.h
- Xecutty.o: /usr/include/sys/machdep.h
- Xecutty.o: ecutty.h
- Xecuusage.o: /usr/include/stdio.h
- Xecuusage.o: ecuhangup.h
- Xecuutil.o: ecu.h
- Xecuutil.o: ecuhangup.h
- Xecuutil.o: ecufork.h
- Xecuutil.o: /usr/include/pwd.h
- Xecuwinutil.o: /usr/include/curses.h
- Xecuwinutil.o: ecukey.h
- Xecuwinutil.o: ecuxkey.h
- Xecuwinutil.o: ecuhangup.h
- Xecuwinutil.o: pc_scr.h
- Xecuxenix.o: ecu.h
- Xecuxenix.o: ecukey.h
- Xecuxenix.o: ecufkey.h
- Xecuxenix.o: ecuxkey.h
- Xecuxenix.o: ecufork.h
- Xecuxenix.o: esd.h
- Xecuxfer.o: /usr/include/curses.h
- Xecuxfer.o: ecu.h
- Xecuxfer.o: ecukey.h
- Xecuxfer.o: ecuxkey.h
- Xecuxfer.o: ecu.h
- Xecuxfer.o: pc_scr.h
- Xesdutil.o: /usr/include/ctype.h
- Xesdutil.o: ecu.h
- Xesdutil.o: ecu.h
- Xesdutil.o: esd.h
- Xesiointf.o: ecu.h
- Xesiointf.o: ecu.h
- Xesiointf.o: esd.h
- Xexpresp.o: ecu.h
- Xexpresp.o: ecu.h
- Xexpresp.o: esd.h
- Xexpresp.o: var.h
- Xexpresp.o: proc.h
- Xfeval.o: ecu.h
- Xfeval.o: ecu.h
- Xfeval.o: esd.h
- Xfeval.o: proc.h
- Xfeval.o: var.h
- Xgint.o: ecu.h
- Xgint.o: ecu.h
- Xgint.o: esd.h
- Xgint.o: var.h
- Xgstr.o: ecu.h
- Xgstr.o: ecu.h
- Xgstr.o: esd.h
- Xgstr.o: var.h
- Xhdbintf.o: ecu.h
- Xhdbintf.o: esd.h
- Xhdbintf.o: var.h
- Xhdbintf.o: ecuhangup.h
- Xhdbintf.o: utmpstatus.h
- Xhdbintf.o: ecuungetty.h
- Xhdbintf.o: dvent.h
- Xhdbintf.o: dlent.h
- Xhdbintf.o: dialprog.h
- Xhdbintf.o: /usr/include/errno.h
- Xhdbintf.o: /usr/include/utmp.h
- Xlogevent.o: /usr/include/stdio.h
- Xlogevent.o: /usr/include/sys/locking.h
- Xlogevent.o: stdio_lint.h
- Xlogevent.o: lint_args.h
- Xnonansikey.o: ecu.h
- Xnonansikey.o: ecukey.h
- Xnonansikey.o: ecufkey.h
- Xnonansikey.o: ecuxkey.h
- Xnonansikey.o: ecufork.h
- Xpcmd.o: ecu.h
- Xpcmd.o: ecu.h
- Xpcmd.o: ecuhangup.h
- Xpcmd.o: ecukey.h
- Xpcmd.o: esd.h
- Xpcmd.o: var.h
- Xpcmd.o: proc.h
- Xpcmdif.o: /usr/include/ctype.h
- Xpcmdif.o: ecu.h
- Xpcmdif.o: ecu.h
- Xpcmdif.o: esd.h
- Xpcmdif.o: var.h
- Xpcmdif.o: proc.h
- Xpcmdif.o: relop.h
- Xpcmdfile.o: ecu.h
- Xpcmdfile.o: ecukey.h
- Xpcmdfile.o: ecu.h
- Xpcmdfile.o: esd.h
- Xpcmdfile.o: var.h
- Xpcmdfile.o: proc.h
- Xpcmdtty.o: ecu.h
- Xpcmdtty.o: ecu.h
- Xpcmdtty.o: esd.h
- Xpcmdtty.o: ecutty.h
- Xpcmdwhile.o: /usr/include/ctype.h
- Xpcmdwhile.o: ecu.h
- Xpcmdwhile.o: ecu.h
- Xpcmdwhile.o: esd.h
- Xpcmdwhile.o: var.h
- Xpcmdwhile.o: proc.h
- Xpcmdwhile.o: relop.h
- Xpcmdxfer.o: ecu.h
- Xpcmdxfer.o: ecukey.h
- Xpcmdxfer.o: ecu.h
- Xpcmdxfer.o: esd.h
- Xpcmdxfer.o: var.h
- Xpcmdxfer.o: proc.h
- Xpoutput.o: ecu.h
- Xpoutput.o: ecukey.h
- Xpoutput.o: ecu.h
- Xpoutput.o: esd.h
- Xpprintf.o: /usr/include/stdio.h
- Xpprintf.o: /usr/include/varargs.h
- Xproc.o: /usr/include/ctype.h
- Xproc.o: ecu.h
- Xproc.o: ecu.h
- Xproc.o: esd.h
- Xproc.o: var.h
- Xproc.o: proc.h
- Xproc.o: ecucmd.h
- Xproc_error.o: ecu.h
- Xproc_error.o: ecu.h
- Xprocframe.o: /usr/include/ctype.h
- Xprocframe.o: ecu.h
- Xprocframe.o: ecukey.h
- Xprocframe.o: ecu.h
- Xprocframe.o: esd.h
- Xprocframe.o: var.h
- Xprocframe.o: proc.h
- Xregexp.o: /usr/include/stdio.h
- Xregexp.o: stdio_lint.h
- Xregexp.o: lint_args.h
- Xregexp.o: ecu.h
- Xregexp.o: esd.h
- Xregexp.o: var.h
- Xregexp.o: /usr/include/setjmp.h
- Xutmpstat.o: ecu.h
- Xutmpstat.o: ecuhangup.h
- Xutmpstat.o: utmpstatus.h
- Xutmpstat.o: ecuungetty.h
- Xutmpstat.o: dialprog.h
- Xutmpstat.o: /usr/include/errno.h
- Xutmpstat.o: /usr/include/utmp.h
- Xvar.o: ecu.h
- Xvar.o: esd.h
- Xvar.o: var.h
- Xvar.o: proc.h
- Xvar.o: ecukey.h
- Xvar.o: ecu.h
- X# DEPENDENCIES MUST END AT END OF FILE
- X# IF YOU PUT STUFF HERE IT WILL GO AWAY
- X# see make depend above
- SHAR_EOF
- $TOUCH -am 1226052690 'Make.ecu' &&
- chmod 0644 Make.ecu ||
- echo 'restore of Make.ecu failed'
- Wc_c="`wc -c < 'Make.ecu'`"
- test 13973 -eq "$Wc_c" ||
- echo 'Make.ecu: original size 13973, current size' "$Wc_c"
- # ============= afterlint.c ==============
- echo 'x - extracting afterlint.c (Text)'
- sed 's/^X//' << 'SHAR_EOF' > 'afterlint.c' &&
- X/* CHK=0xC2C5 */
- X/*+-------------------------------------------------------------------------
- X afterlint.c -- process -Zg output
- X
- XUse with zgcc:
- X
- X #!/bin/csh
- X #zgcc -- build prototyping "LINT_ARGS"
- X echo C sources in $1';' result file $2
- X rm -f zg.t
- X foreach i(`cat $1`)
- X cc -DBUILDING_LINT_ARGS -Zg $argv[3-] $i > zg1.t
- X sort zg1.t > zg2.t
- X echo '/ *' $i '* /' >> zg.t #remove spaces inside comment markers
- X cat zg2.t >> zg.t
- X end
- X afterlint zg.t $2
- X rm -f zg.t zg?.t
- X echo Output in $2
- X
- X--------------------------------------------------------------------------*/
- X/*+:EDITS:*/
- X/*:11-18-1990-21:15-wht@n4hgf-clobber 'extern ' in prototypes */
- X/*:07-13-1988-19:50-wht-creation */
- X
- X#include <stdio.h>
- X
- X#define ff fprintf
- X
- X#ifdef BSD4
- X#include <sys/time.h>
- X#define strchr index
- X#define strrchr rindex
- Xchar *index();
- Xchar *rindex();
- X/**************************/
- X#else /* assuming XENIX */
- X/**************************/
- X#include <time.h>
- X#include <sys/types.h>
- X#include <sys/timeb.h>
- Xchar *strchr();
- Xchar *strrchr();
- X#endif /* system dependencies */
- X
- Xlong time();
- Xstruct tm *localtime();
- X
- X/*+-------------------------------------------------------------------------
- X emit_editnote(fp)
- X--------------------------------------------------------------------------*/
- Xvoid
- Xemit_editnote(fp)
- XFILE *fp;
- X{
- X struct tm *ltime;
- X long cur_time;
- X#ifdef XENIX
- X#ifdef MESSED_UP_DST
- X struct timeb tp;
- X#endif
- X#endif
- X
- X cur_time = time((long *)0);
- X
- X#ifdef XENIX
- X#ifdef MESSED_UP_DST
- X ftime(&tp); /* localtime() does not know about DST */
- X if(tp.dstflag) /* so we adjust with ftime, which does know */
- X cur_time += 3600L; /* problem in BSD too, but no ftime there */
- X#endif
- X#endif
- X
- X ltime = localtime(&cur_time);
- X
- X fputs("/*+:EDITS:*/\n",fp);
- X
- X ff(fp,"/*:%02d-%02d-%04d-%02d:%02d-afterlint-creation */\n",
- X ltime->tm_mon+1,ltime->tm_mday,ltime->tm_year + 1900,
- X ltime->tm_hour,ltime->tm_min);
- X
- X} /* end of emit_editnote */
- X
- X/*+-------------------------------------------------------------------------
- X main(argc,argv,envp)
- X--------------------------------------------------------------------------*/
- Xmain(argc,argv,envp)
- Xint argc;
- Xchar **argv;
- Xchar **envp;
- X{
- X register char *cptr;
- X register FILE *fpin;
- X register FILE *fpout;
- X char buf[256];
- X char *basename;
- X
- X if(argc < 2)
- X {
- X ff(stderr,"usage: afterlint <infile> [<outfile>]\n");
- X ff(stderr,"if outfile not supplied, output is to stdout\n");
- X exit(1);
- X }
- X
- X if(!(fpin = fopen(argv[1],"r")))
- X {
- X perror(argv[1]);
- X exit(1);
- X }
- X
- X if(argc > 2)
- X {
- X if(!(fpout = fopen(argv[2],"w")))
- X {
- X perror(argv[2]);
- X exit(1);
- X }
- X basename = argv[2];
- X }
- X else
- X fpout = stdout;
- X
- X ff(fpout,
- X "/*+-----------------------------------------------------------------------\n");
- X if(argc > 2)
- X ff(fpout,"\t%s\n",basename);
- X else
- X ff(fpout,"\tfunction declarations\n",basename);
- X ff(fpout,
- X "------------------------------------------------------------------------*/\n");
- X
- X emit_editnote(fpout);
- X ff(fpout,"\n");
- X ff(fpout,"#ifndef BUILDING_LINT_ARGS\n");
- X ff(fpout,"#ifdef LINT_ARGS\n\n");
- X
- X while(fgets(buf,sizeof(buf),fpin))
- X {
- X cptr = (strncmp(buf,"/*global*/ ",12)) ? buf : buf + 12;
- X cptr = (strncmp(buf,"extern ",8)) ? cptr : cptr + 8;
- X cptr = (strncmp(buf,"static ",8)) ? cptr : cptr + 8;
- X fputs(cptr,fpout);
- X }
- X
- X ff(fpout,"\n#else\t\t/* compiler doesn't know about prototyping */\n\n");
- X
- X fclose(fpin);
- X fpin = fopen(argv[1],"r");
- X
- X while(fgets(buf,sizeof(buf),fpin))
- X {
- X cptr = (strncmp(buf,"/*global*/ ",12)) ? buf : buf + 12;
- X cptr = (strncmp(buf,"extern ",8)) ? cptr : cptr + 8;
- X cptr = (strncmp(buf,"static ",8)) ? cptr : cptr + 8;
- X if(strncmp(cptr,"int ",4))
- X {
- X if(strchr(cptr,'('))
- X {
- X while(*cptr != '(')
- X fputc(*cptr++,fpout);
- X fputs("();\n",fpout);
- X }
- X else
- X fputs(cptr,fpout);
- X }
- X }
- X
- X ff(fpout,"\n#endif /* LINT_ARGS */\n");
- X ff(fpout,"#endif /* BUILDING_LINT_ARGS */\n");
- X ff(fpout,"\n/* end of %s */\n",
- X (argc > 2) ? basename : "function declarations");
- X
- X fclose(fpin);
- X fclose(fpout);
- X exit(0);
- X} /* end of main */
- X
- X/* vi: set tabstop=4 shiftwidth=4: */
- SHAR_EOF
- $TOUCH -am 1224222690 'afterlint.c' &&
- chmod 0644 afterlint.c ||
- echo 'restore of afterlint.c failed'
- Wc_c="`wc -c < 'afterlint.c'`"
- test 4060 -eq "$Wc_c" ||
- echo 'afterlint.c: original size 4060, current size' "$Wc_c"
- # ============= bamboozle.c ==============
- echo 'x - extracting bamboozle.c (Text)'
- sed 's/^X//' << 'SHAR_EOF' > 'bamboozle.c' &&
- X/*+-------------------------------------------------------------------------
- X bamboozle.c - ecu/ecuungetty protection scheme
- X wht@n4hgf.Mt-Park.GA.US
- X--------------------------------------------------------------------------*/
- X/*+:EDITS:*/
- X/*:08-14-1990-20:39-wht@n4hgf-ecu3.00-flush old edit history */
- X
- Xchar *crypt(char *,char *);
- X
- X
- X/*+-------------------------------------------------------------------------
- X bamboozle(pid) - build encrypted string based on 'pid'
- X
- XIf crypt not used, do something pretty basic (probably enough)
- XIf you are paranoid, don't use _ANY_ of these algorithms exactly
- X--------------------------------------------------------------------------*/
- Xchar *
- Xbamboozle(pid)
- Xint pid;
- X{
- X#if defined(CRYPT)
- Xchar pidstr[16];
- Xchar *cptr;
- X
- X sprintf(pidstr,"z%08d",pid);
- X pidstr[0] = 'G'; /* fool strings searchers */
- X cptr = crypt(pidstr,"ba");
- X return(cptr);
- X#else /* probably enough */
- Xstatic char pidstr[16];
- X sprintf(pidstr,"b%09da",(int)(((long)pid * 4) / 5));
- X return(pidstr);
- X#endif
- X
- X#ifdef VARIANT_1 /* very paranoid */
- Xchar pidstr[16];
- Xchar *cptr;
- X sprintf(pidstr,"z%08d",pid);
- X pidstr[0] = 0xFF; /* fool strings searchers */
- X cptr = crypt(pidstr,pidstr);
- X return(cptr);
- X#endif
- X#ifdef VARIANT_2 /* not paranoid at all */
- Xchar pidstr[16];
- X sprintf(pidstr,"z%08d",pid - 2);
- X#endif
- X#ifdef VARIANT_3 /* invite trouble :-) */
- X return("I_am_easy");
- X#endif
- X
- X} /* end of bamboozle */
- X
- X
- X/* vi: set tabstop=4 shiftwidth=4: */
- X/* end of bamboozle.c */
- SHAR_EOF
- $TOUCH -am 1224222690 'bamboozle.c' &&
- chmod 0644 bamboozle.c ||
- echo 'restore of bamboozle.c failed'
- Wc_c="`wc -c < 'bamboozle.c'`"
- test 1470 -eq "$Wc_c" ||
- echo 'bamboozle.c: original size 1470, current size' "$Wc_c"
- # ============= cmdtbl.c ==============
- echo 'x - extracting cmdtbl.c (Text)'
- sed 's/^X//' << 'SHAR_EOF' > 'cmdtbl.c' &&
- X/*+-------------------------------------------------------------------------
- X cmdtbl.c - interactive/procedure command table data
- X wht@n4hgf.Mt-Park.GA.US
- X--------------------------------------------------------------------------*/
- X/*+:EDITS:*/
- X/*:08-14-1990-20:39-wht@n4hgf-ecu3.00-flush old edit history */
- X
- X#define DECLARE_P_CMD
- X#include "ecucmd.h"
- X
- X/* vi: set tabstop=4 shiftwidth=4: */
- X/* end of cmdtbl.c */
- SHAR_EOF
- $TOUCH -am 1224222690 'cmdtbl.c' &&
- chmod 0644 cmdtbl.c ||
- echo 'restore of cmdtbl.c failed'
- Wc_c="`wc -c < 'cmdtbl.c'`"
- test 413 -eq "$Wc_c" ||
- echo 'cmdtbl.c: original size 413, current size' "$Wc_c"
- true || echo 'restore of ecu.c failed'
- echo End of part 1, continue with part 2
- exit 0
- --------------------------------------------------------------------
- Warren Tucker, TuckerWare emory!n4hgf!wht or wht@n4hgf.Mt-Park.GA.US
- Hacker Extraordinaire d' async PADs, pods, proteins and protocols
-
- 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.
-