home *** CD-ROM | disk | FTP | other *** search
Text File | 1992-09-11 | 57.1 KB | 1,583 lines |
- Newsgroups: comp.sources.misc
- Path: sparky!kent
- From: wht@n4hgf.mt-park.ga.us (Warren Tucker)
- Subject: v32i038: ecu - ECU Asynchronous Communications v3.20, Part03/40
- Message-ID: <1992Sep11.191929.5736@sparky.imd.sterling.com>
- Followup-To: comp.sources.d
- X-Md4-Signature: 5ce87794e0189803dfbd29f778611c49
- Sender: kent@sparky.imd.sterling.com (Kent Landfield)
- Organization: Sterling Software
- References: <csm-v32i036=ecu.141245@sparky.IMD.Sterling.COM>
- Date: Fri, 11 Sep 1992 19:19:29 GMT
- Approved: kent@sparky.imd.sterling.com
- Lines: 1568
-
- Submitted-by: wht@n4hgf.mt-park.ga.us (Warren Tucker)
- Posting-number: Volume 32, Issue 38
- Archive-name: ecu/part03
- Environment: SCO,XENIX,ISC,SUNOS,SYSVR4,HDB,Curses
- Supersedes: ecu: Volume 21, Issue 53-89
-
- ---- Cut Here and feed the following to sh ----
- #!/bin/sh
- # this is ecu320.03 (part 3 of ecu320)
- # do not concatenate these parts, unpack them in order with /bin/sh
- # file OLD-HISTORY-1 continued
- #
- if test ! -r _shar_seq_.tmp; then
- echo 'Please unpack part 1 first!'
- exit 1
- fi
- (read Scheck
- if test "$Scheck" != 3; then
- echo Please unpack part "$Scheck" next!
- exit 1
- else
- exit 0
- fi
- ) < _shar_seq_.tmp || exit 1
- if test ! -f _shar_wnt_.tmp; then
- echo 'x - still skipping OLD-HISTORY-1'
- else
- echo 'x - continuing file OLD-HISTORY-1'
- sed 's/^X//' << 'SHAR_EOF' >> 'OLD-HISTORY-1' &&
- 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
- XChanges since ecu 3.00
- X
- X============= Patch 1:
- X> Posting-number: Volume 16, Issue 60
- X> Archive-name: ecu3/patch01
- X>
- X> This is patch 1 to ECU 3. It provides speed improvements
- X> and fixes for non-ANSI terminal support. Also provided is an
- X> experimental make file for GCC 1.37.1 on UNIX systems.
- X
- X============= Patch 2:
- X> Posting-number: Volume 16, Issue 70
- X> Archive-name: ecu3/patch2a
- X>
- X> Posting-number: Volume 16, Issue 71
- X> Archive-name: ecu3/patch2b
- X>
- X> ECU 3.0 PATCH # 2 - Non-ansi/ISC
- X>
- X> 1. Fix non-curses per-file transfer rate report
- X> (it was verrrrry optimistic :-)
- X>
- X> 2. Add experimental support for ISC 2.2
- X>
- X> Note: if you are purely an SCO multiscreen user, you may wish to
- X> save this patch and not apply it until further patches are issued.
- X> By doing so, you will save an unnecessary compilation.
- X> When another patch comes along, you must then apply this one so
- X> that your source will be in sync.
- X
- X============= Patch 3:
- X> Posting-number: Volume 16, Issue 87
- X> Archive-name: ecu3/patch03
- X>
- X> Under XENIX,
- X> 1. libmalloc.a and/or libc.a are broken such that calloc is
- X> resolved twice, once from each library.
- X> 2. memmove() does not exist (in all or less recent versions?)
- X>
- X> To get ecu 3 to compile under XENIX, apply this patch with:
- X> patch < thismessage
- X>
- X> NOTE there is no test to see if patch 1 & 2 have been applied :-(
- X> so make sure you have done so. Also, I don't have access to XENIX
- X> right now, so please forgive if this doesn't fly. The object is to
- X> 1. supply -DDUFF to use Duff's device instead of missing memmove()
- X> 2. remove #define MALLOC_3X and -lmalloc to avoid bug in libmalloc.a
- X
- X============= Patch 4:
- X> Posting-number: Volume 16, Issue 88
- X> Archive-name: ecu3/patch04
- X>
- X> ECU 3 PATCH 4 - miscellaneous, 1 serious
- X>
- X> 1. fix bug in non-ANSI key handling causing core dump fairly
- X> often (but not on my sys :-<)
- X>
- X> 2. duplicate definiton of ECULIBDIR in ecu.h fixed 3. cosmetic
- X> fix in 'fi' interactive command prompt
- X>
- X> 4. comm line flusher lflush() was flushing console tty instead
- X>
- X> 5. illegal color name in 'color' procedure command caused
- X> hi_white on hi_white instead or error
- X>
- X> 6. prototypes for strchr/strrchr in stdio_lint.h caused problems
- X> on some systems
- X>
- X> 7. procedure sz was not reporting proper results if files skipped
- X>
- X> 8. miscellaneous cosmetic fixes and maintenance/experimental rearrangements
- X
- X============= Patch 5:
- X> Posting-number: Volume 16, Issue 97
- X> Archive-name: ecu3/patch05a
- X>
- X> 1. Fixed memory leak + bad free in feval_str().
- X>
- X> 2. Some common types of procedure string operations have been made faster
- X> by redesign of the realloc_esd() function.
- X>
- X> 3. Octal integer constants were implemented; they may be denoted by
- X> prefixing them with "0o". Leading zero octal constants are not supported
- X> due to ECUs mutiple use of the same integer constant parser. I thought
- X> most people would rather %itos("0200") return 200(10) than 128(10).
- X>
- X> 4. Many line drivers, particularly FAS, will wait a process closing
- X> a tty line until all characters queued for output have been sent.
- X> When closing a tty line that has been permanently XOFF'ed by a
- X> dead remote system or a noisy XOFF, this can result in a hang.
- X> Now, a SIGALRM/setjmp scheme is used to recover from this condition
- X> and flush line output before reattempting the close. Five
- X> seconds are allowed for the draining to occur.
- X>
- X> 5. Multiscreen normal and reverse foreground and background colors
- X> in effect at the beginning of ecu execution are restored when the
- X> program terminates (thanks to staceyc@sco for illuminating the
- X> undocumented GIO_IOCTL ioctl; I've wanted to be able to do this for
- X> a long time).
- X>
- X> 6. lamy@glsys.in-berlin.de reported a core dump immediately after
- X> the one-line startup message under XENIX 286. Others have had the
- X> problem too. I am puzzled -- it is happening in get_home_dir(),
- X> which seems rather straightforward. A patch to avoid the problem
- X> is included: get the home directory from the environment variable
- X> HOME if possible rather than invoke libpwent.a.
- X>
- X> 7. An embarassing nroff problem was reported by slerner@eingedi.
- X> Patches are included for the nroff source. Mr. Lerner also pointed
- X> out an obsolete reference to samplproc.man. The models subdirectory
- X> contain many sample, even useful, procedures and samplproc.man
- X> was discarded a long time ago.
- X>
- X> If you do not have nroff or the spare CPU cycles to make the
- X> manual from nroff source, I'll email you one. Just mail me
- X> at wht@n4hgf.Mt-Park.GA.US or emory!n4hgf!wht and put
- X> "send ecu305 manual" in the subject line. If I get enough
- X> requests, I'll repost it to c.s.m as ecuman305.
- X>
- X> 8. A make bug in the trial ISC port was fixed in Make.ecu (thanks to
- X> jmd@p1so).
- X>
- X> 9. During non-curses file transfer, the cumulative elapsed time
- X> is reported once per complete line of 'RRRTRR..' status.
- X>
- X> 10. ache@hq.demos.su reported a bug in XENIX utmp handler
- X> code. This is a fix for most XENIX systems, but define OLD_WAY
- X> in utmpstat.c if you have problems.
- X>
- X> 11. Sometimes upon adding a new phone entry, it would be marked
- X> for redial upon creation. This has been fixed by using calloc()
- X> instead malloc().
- X>
- X> 12. We seem to be bumping some limits on 286 systems. I added
- X> more code to handle more core dumps reported by lamy@glsys.in-berlin.de:
- X> somehow newwin() managed to return zero (probably memory alloc fail).
- X> The patch to ecuwinutil.c won't fix the problem, but will at least
- X> report it and die gracefully, rather than splatter on the pavement
- X> with a core dump. Please write me with bug reports and crash info:
- X> see below.
- X>
- X> .--------------------.
- X> | NOTES and REQUESTS |
- X> `--------------------'
- X>
- X> 1. I do not have any XENIX system to test with. It is a tribute
- X> to SCO orthogonality that 35,000+ line program works so well
- X> across 2 CPUs and two operating systems of many minor releases
- X> and many versions of development systems. I continue to point
- X> this out when I hear SCO-bashers do their thing. However, since
- X> s**t does happen, if you are reporting a problem that results in
- X> a core dump, please run the following for me (I would APPRECIATE it):
- X>
- X> % cd where ecu is
- X> % ./ecu
- X> ----- kaboom -----
- X> % ^Jstty sane^J if needed (probably)
- X> % adb ./ecu |& tee to.wht
- X> * $x
- X> * $c
- X> * $r
- X> * $q
- X> If you are a really industrious one and have sdb and compiled with -g,
- X> % sdb ./ecu |& tee -a to.wht
- X> % t
- X> % q
- X> Then
- X> % mail -s 'ecu 3.xx core dump' wht@n4hgf.mt-park.ga.us < to.wht
- X>
- X> 2. ache@hq.demos.su has made some excellent suggestions which
- X> would enhance the line handling/choosing algorithms. They will
- X> require a change in the phone directory. He suggests I interpret
- X> old directory formats, while writing only new ones. The changes
- X> are far reaching and I haven't the time now to plug them in,
- X> but kudos to him and I'll try to find A Round Tuit.
- X
- X============= Patch 6:
- X> Posting-number: Volume 17, Issue 11
- X> Archive-name: ecu3/patch06
- X>
- X> This patch (#6) fixes a bug in patch 5. Things seem stable now.
- X> I was going to wait for possible feedback from ISC porters, but
- X> several folks have had this problem (no doubt since ECU won't work
- X> without this patch). This patch was also sent to comp.sources.bugs
- X> on 13 February, but patchlevel.h was not updated. You may get 1 hunk
- X> rejected if you have already applied the patch.
- X>
- X> You need to remake/reinstall both ecu and ecuungetty.
- X>
- X> This man's hat sits on a quick-thinking head:
- X> > Organization: DEMOS, Moscow, USSR
- X> > Date: Wed, 13 Feb 91 02:15:23 +0300 (MSK)
- X> > From: emory!hq.demos.su!ache (Andrew A. Chernov, canton Uri's citizen)
- X> > Subject: ECU 3.05 utmpstat
- X> >
- X> > Hi, Warren, bad news.
- X> > I just applied PATCH 5 for ECU, everything appears OK, but
- X> > 'utmpstat' not work at all, I look in...
- X> > IMHO it seems, like two strings are misplaced...
- X> > (US_LOGIN and US_DIALOUT)
- X> > I fix it, and ECU works correctly.
- X> > Good Luck.
- X
- SHAR_EOF
- echo 'File OLD-HISTORY-1 is complete' &&
- chmod 0644 OLD-HISTORY-1 ||
- echo 'restore of OLD-HISTORY-1 failed'
- Wc_c="`wc -c < 'OLD-HISTORY-1'`"
- test 21763 -eq "$Wc_c" ||
- echo 'OLD-HISTORY-1: original size 21763, current size' "$Wc_c"
- rm -f _shar_wnt_.tmp
- fi
- # ============= OLD-HISTORY-2 ==============
- if test -f 'OLD-HISTORY-2' -a X"$1" != X"-c"; then
- echo 'x - skipping OLD-HISTORY-2 (File already exists)'
- rm -f _shar_wnt_.tmp
- else
- > _shar_wnt_.tmp
- echo 'x - extracting OLD-HISTORY-2 (Text)'
- sed 's/^X//' << 'SHAR_EOF' > 'OLD-HISTORY-2' &&
- X============= Changes for ECU 3.10 =======================================
- X
- XThis file gives hints about what has changed. Rereading or skimming
- Xthe manual is highly recommended. My apologies if some changes did
- Xnot get reflected in the manual. Please let me know.
- X
- X1. Add nice interactive and procedure commands and %nice integer function.
- X
- X2. Add the %uid and %gid integer function.
- X
- X3. If ECU starts setuid, always reset the uid to the real uid.
- X Previously this only happened if ECU was setuid to root.
- X
- X4. Made compatible with Metro Link X11R4 xterm under SCO UNIX/386.
- X To use:
- X a. include -DMETROLINK_X11R4 in CFLAGS of ECU compilation.
- X b. edit the models/nonansikeys file patched by this patch
- X to comment out the SCO ODT xterm key definiton and
- X uncomment the Metro Link X11R4 definition.
- X Follow other instructions you see in the nonansikey file.
- X
- X5. Fixed miscellaneous typos and misspelled words in models/nonansikeys.
- X
- X6. Environment variables LINES and COLS override termcap li and co
- X values like terminfo curses does. This gives you the correct
- X size screen on xterms, but the ecu curses stuff still sees
- X the termcap description un altered, giving you shorter (usually 24 line)
- X dialing and help menus.
- X
- X7. Support is provided in nonansikeys for Metro Link's MetroX newest
- X xterm (the one that uses pty pseudottys). (Some of the key
- X bindings are differerent and some .xinitrc and xterm resources
- X are required; see 'models/nonansikeys'.)
- X
- X8. The -N switch for the procedure commands sx, sy, sz, rx, ry, and
- X rz forces the "no curses" mode for file transfer. This mode
- X uses brief, tty-style reporting of file transfer progress.
- X The "no curses" mode is automatically invoked if the console
- X is not a pty or multiscreen and has a lower baud rate than the
- X attached communication line.
- X
- X9. I added a dialer for the "generic Hayes-style 2400" (dialgHA24) and
- X for the USR Courier 2400 (dialgUSR24). My USR is at least
- X 6 years old and I don't even know if they still make them or
- X if it is the same modem.
- X
- X10. A new config procedure greatly simplifies making and installing.
- X
- X11. I don't know if this will get it or not, but to try and help
- X our European friends to be able to use alt_[a-z].ep, the keycodes
- X required in the mapkeys file have changed from
- X 128 through 153 (0x80 through 0x99) to
- X 229 through 249 (0xE0 through 0xF9).
- X Reread mapkeys/README.
- X
- X12. Termination of file transfers by SIGINT did not cause termination
- X of procedfure execution in pre-3.10 versions. In this version, it does.
- X
- X The appropriate manual sections have been updated to indicate:
- X
- X Integer variable $i0 receives the exit status from the transfer.
- X Note: procedure execution IS terminated by a SIGINT to the spawned
- X file transfer process. This is different than for versions prior
- X to 3.10. If $i0 is set to -1, the file transfer program did not
- X begin.
- X
- X13. kbdtest3 is included to help figure out nonansikey configurations.
- X see models/nonansikeys.
- X
- X14. SCO UNIX MEMMOVE() AND GCC
- X
- Xmemmove() is a very, very fast non-overlapping memory copy, but
- Xsince it does not save certain registers it uses, calling from
- XGCC can be tricky. GCC does a fabulous job of grinding all it
- Xcan out of the available registers; MSC doesn't make very good
- Xuse of registers, er, I mean keeps a lot of registers for scratch
- Xuse. I've never seen 386 MSC use dx except as a side effect of
- Xmultiply. I guess that's what somebody (Gates?) meant by "tuning"
- Xone compiler to meet many needs being adequate. Enough philosophy,
- Xthough.
- X
- XI am using of -fcall-save-{ax,bx,cx,dx} since in at least one
- Xcase (ecufkey.c display_keyset()), rigorous optimization and
- Xreally righteous register usage caused a call to strlen() to
- Xscrew up since cx is not preserved by strlen.
- X
- Xstrlen: push edi
- Xstrlen+0x1: mov edi,[esp+0x8]
- Xstrlen+0x5: xor eax,eax <-- goodbye ax
- Xstrlen+0x7: mov ecx,0xffffffff <-- goodbye cx
- Xstrlen+0xc: repne scasb
- Xstrlen+0xe: inc ecx
- Xstrlen+0xf: mov eax,ecx
- Xstrlen+0x11: not eax
- Xstrlen+0x13: pop edi
- Xstrlen+0x14: ret
- X
- Xmemmove: push ebp
- Xmemmove+0x1: mov ebp,esp
- Xmemmove+0x3: mov edx,edi <-- move rather than push
- Xmemmove+0x5: mov ebx,esi <-- move rather than push
- Xmemmove+0x7: mov esi,[ebp+0xc]
- Xmemmove+0xa: mov edi,[ebp+0x8]
- Xmemmove+0xd: mov eax,edi <-- goodbye ax
- Xmemmove+0xf: mov ecx,[ebp+0x10] <-- goodbye cx (OK w/MSC)
- Xmemmove+0x12: jcxz memmove+0x43
- Xmemmove+0x14: cmp edi,esi
- Xmemmove+0x16: jbe memmove+0x2e
- Xmemmove+0x18: mov eax,esi
- Xmemmove+0x1a: add eax,ecx
- Xmemmove+0x1c: cmp edi,eax
- Xmemmove+0x1e: jae memmove+0x2e
- Xmemmove+0x20: mov eax,edi
- Xmemmove+0x22: add esi,ecx
- Xmemmove+0x24: add edi,ecx
- Xmemmove+0x26: dec esi
- Xmemmove+0x27: dec edi
- Xmemmove+0x28: std
- Xmemmove+0x29: rep movsb
- Xmemmove+0x2b: cld
- Xmemmove+0x2c: jmp near memmove+0x43
- Xmemmove+0x2e: mov eax,edi
- Xmemmove+0x30: test Byte Ptr 0x1f:0x1,al
- Xmemmove+0x36: je memmove+0x3a
- Xmemmove+0x38: movsb
- Xmemmove+0x39: dec ecx
- Xmemmove+0x3a: shr ecx,1
- Xmemmove+0x3c: rep movsw
- Xmemmove+0x3f: adc ecx,ecx
- Xmemmove+0x41: rep movsb
- Xmemmove+0x43: mov esi,ebx
- Xmemmove+0x45: mov edi,edx
- Xmemmove+0x47: pop ebp
- Xmemmove+0x48: ret
- Xmemmove+0x49: nop
- Xmemmove+0x4a: nop
- Xmemmove+0x4b: nop
- X
- X15. A documented feature is that upon connecting to a remote
- Xdialed through the directory, if a 'fkey' key set from ~/.ecu/keys
- Xmatches the directory name, the key set is automatically loaded.
- XThis feature has never worked (I never used it or tested it.)
- XRecently I told someone they could use it and they reported it
- Xdid not work. It does now.
- X
- X16. The example file models/sz_update.ep was treating skipped files
- Xas a failed transfer. This was fixed.
- X
- X17. Interactive and procedure commands 'pushd' and 'popd' were added.
- X
- X18. Adding pushd and popd documentation made ecu.man too long
- Xgiving me "word overflow" and a core dump from my nroff. So,
- Xthere are now two documents, ecu.man and exits.man. The latter
- Xis very short and is just a kludge since the former is as long as
- Xit can be.
- X
- X19. Added the procedure rlog command for procedure control of
- Xreceiver logging.
- X
- X20. Added _initial.ep, _connect.ep and _hangup.ep. See "Special
- XProcedures" in the manual.
- X
- X21. The use of #ifdef GCC140 is made to take advantage of a
- Xassembly source generation bug fix in gcc 1.40.
- X
- X22. Running ecu with no pre-existing phone directory and specifying
- Xa logical phone number (directory entry) to dial caused erratic
- Xbehavior or core dump. This has been fixed. Thanks for the report
- Xfrom mju@mudos.ann-arbor.mi.us. He did a good job of testing
- Xan alpha version of 3.10.
- X
- X23. Pressing an invalid function key during interactive command
- Xentry used to destroy the string being entered. This has
- Xbeen fixed.
- X
- X24. The ESCape vs. function key keyboard input discrimination
- Xalgorithm has been improved. Fewer, if any, function keys will now
- Xmisinterpreted as ESCape keys followed by "junk."
- 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
- X
- XREADME.P2 ECU 3.10 Patch 2 Tue Aug 13 16:29:11 EDT 1991
- X
- XThis describes patch 2 to ECU 3.10, bringing the program to
- Xversion 3.12.
- X
- XThe majority of this patch deals with the way SCO and ISC misimplement
- Xthe nap() system call. A lingering problem with the interactive
- Xcommand history handler is also fixed (pressing erroneous function keys
- Xcaused the display to become garbaged).
- X
- XISC and SCO UNIX nap() misbehave. This kludge doesn't return the
- Xproper value (the actual time slept), but at least it does not make
- Xa mockery of the manual page. It says:
- X
- X NAP(S) UNIX System V NAP(S)
- X
- X Name
- X nap - suspends execution for a short interval
- X
- X Syntax
- X long nap(period)
- X long period;
- X
- X Description
- X The current process is suspended from execution for at least
- X the number of milliseconds specified by period, or until a
- X signal is received.
- X
- X Return Value
- X On successful completion, a long integer indicating the
- X number of milliseconds actually slept is returned. If the
- X process received a signal while napping, the return value
- X will be -1, and errno will be set to EINTR.
- X
- X See Also
- X sleep(S)
- X
- X Notes
- X This function is driven by the system clock, which in most
- X cases has a granularity of tens of milliseconds. This
- X function must be linked with the linker option -lx.
- X
- XIt appears nap() under UNIX 3.2.x has departed virtually entirely from
- Xthe manual page. I'm beginning to look rather silly in several
- Xmilleus since I keep telling people SCO UNIX is a viable upgrade from
- XXENIX. But process control people need some kind of timing capability
- Xless than one second and we can't do it with nap or select.
- X
- Xnap(msec) is supposed to nap *at least* msec milliseconds. However,
- Xif msec is specified less than 1000/HZ + 1, it will not nap at all.
- XThis was true for 3.2.0 and 3.2.1.
- X
- XIt is supposed to return the number of milliseconds it actually
- Xslept. Instead, it appears to "save up" the values and return them in
- Xlots of 1000. This behavior is true for 3.2.2.
- X
- XAs it is nap() is nearly useless. I believe select() suffers
- Xfrom the same deficiency (< 1000 msec timeout becomes 1000 msec) but
- XI haven't "proven" it yet.
- X
- XREADME.P3 ECU 3.10 Patch 3 Tue Aug 27 03:36:04 EDT 1991
- X
- XThis describes patch 3 to ECU 3.10, bringing the program to
- Xversion 3.13.
- X
- XOverview
- X--------
- X
- XThe patch fixes some problems with the previous release, adds new
- Xfunctionality and adds support for SunOS 4.1 and ISC System V
- XRelease 4. I have tested it fairly well on a Sparc 1+ under
- XX11R4 (MIT Sun server and xterm at PL18) and SunOS 4.1. I did my
- Xbest to integrate patches supplied by Lothar Hirschbiegel
- X(aega!lh). Lothar has ISC SVR4 and his changes worked for him,
- Xbut I had to hack them since his patches were against the
- X"official" 3.12 and I applied them to sources already half-ported
- Xto the Sun. I hope they go well, but write if they don't. I want
- Xto hear of any success you might have with other SVR4 systems, too.
- X
- XSystem V Release 4
- X------------------
- X
- X> I cannot offer much information on this, since Lothar sent little more than
- X> patches and I have no access to a system for testing.
- X> This is what I have:
- X> I've just finished porting ecu3.12 to SVR4. I have added my changes
- X> as a diff file, maybe this is of interest for you.
- X> The following points were added/changed:
- X>
- X> 1. I have included a configuration option for SVR4 in config.c
- X> 2. ecu works fine with "ttymon" under SVR4. This means you don't need
- X> FAS or something like this - bidirectional access to the serial ports
- X> with the stock asy drivers is ok.
- X> 3. Because of some strange(?) behaviour in SVR4 curses I had to use
- X> some terrible kludges to make it work clean. It's working as it is,
- X> but there is obvilously room for improvement...
- X> 4. SVR4 has the same set of hardware handshake ioctl's as SCO does.
- X> It's named differently (RTSXOFF and CTSXON), but it seems to work exactly
- X> the same way. I have enabled the "RTS" option for SVR4 - hopefully this
- X> is a standard feature (termiox) in *all* SVR4 versions, not just in
- X> my ISC release... :-)
- X> 5. I'm still working on ecusz/ecurz. Outgoing transfer is doing fine, but
- X> incoming transfer locks up the connection sometimes.
- X> As soon as I have finished this, I could send you the cdiffs too.
- X
- XSunOS
- X-----
- X
- XI brought this up in relatively short order. I may have gotten
- Xwhat I paid for :-), but it seems stable. The System V support
- Xunder SunOS was pleasingly similar to the SVR3 environment ECU came
- Xfrom. This release works on my Sparc 1+ with SunOS 4.1.1 and X11R4.
- XSome xterm VT100.Translations overrides are necessary to enable use of
- Xcertain keys unrecognized by the default xterm configuration.
- XDetails are provided in the updated models/nonansikeys. If the
- Xrecommended changes, you can do what I did to figure out how to
- Xget this guy going:
- X
- X 1. run xev and press the various function keys to see the
- Xnames you need to specify in the xterm translations.
- X 2. edit the translations in nonansikeys example and put them in
- Xyour .Xdefaults file
- X 3. run kbdtest3 to get a kbdtest3.out file
- X 4. put this file's output into your ~/.ecu/nonansikeys file
- X(near the top, ahead of other xterm defs so it will be found first).
- X 5. try it
- X 6. when it works, send me the kbdtest3.out file along with the
- XVT100.Translations overrides you casme up with and a description of
- Xthe X environment you used.
- X
- XThere is also a new entry named 'sun' in models/nonansikeys for the
- Xconsole.
- X
- XNote on 'nonansikeys'
- X---------------------
- X
- XThis file was named when support was added to the original
- XSCO-only version to support keyboard/screens other than the
- Xnative multiscreen console. Since the TERM name for multiscreens
- Xis "ansi", it seemed reasonable to name the file nonansikeys. It
- Xnow should probably be called 'nonSCOmultiscreenskeys', but that
- Xname is too long for System V :-). Before too many more
- Xrevisions, even SCO multiscreen key definitions will be read from
- Xnonansikeys and maybe then will be a good time to rename the
- Xfile. Anyway, this file and a good termcap definition takes you
- Xa long way to supporting ecu on a wide variety of System V{,-ish}
- Xplatforms.
- X
- XFixes
- X-----
- X
- X1. The ANSI SD (scroll down) sequence was broken for consoles
- Xother than SCO multiscreens. It scrolled down n * COLS lines
- Xinstead of n lines.
- X
- X2. Editing the null phone directory entry (pressing 'e' in an
- Xempty directory, editing and exiting) caused a core dump. Now
- Xyou are prevented from editing a non-existent entry.
- X
- X3. Procedure commands with switch arguments longer than 8
- Xcharacters caused stack corruption (unpredictable behavior
- Xincluding core dump). There is no call for switches this long,
- Xbut if present, the program should not explode. Now, switches
- Xlonger thasn 8 characters (including the hyphen) are silently
- Xtruncated. Should commands ever be added which could conceivably
- Xevoke switch arguments that might approach the limit, either the
- Xlimit will be extended or error reporting will be added, or both,
- Xas appropriate.
- X
- X4. # comments to the right of nonansikey key definition lines
- Xerroneously included the # in the definition. This may not have
- Xbeen a bug in 3.12. I may have added it during 3.13 development,
- Xbut it is gone now in any case.
- X
- X5. Previously, if the console line baud rate was not at least 4
- Xtimes the tty line rate (roughly), the "no curses" mode was
- Xforced during file transfer and could not be overridden. Since
- Xvarious video driver implimentations express verious pseudo-"baud
- Xrate" settings, this was more often a problem than a feature. If
- Xthe change causes you trouble, write me (or trying using Home pc
- Xsz -N in lieu of Home pc sz, etc.).
- X
- X6. Previously, an effort was made to editorialize on your choice
- Xof a tty device name. This is no longer done. On SCO, you
- Xshould use the lower case (direct) names, like tty1a, to get the
- Xexpected lock file names, but trying to second guess all the
- Xvendor and third-party names was an unnecessary and
- Xcounter-productive stumpling block. If you want to go for
- X/dev/swap, go ahead (I don't expect the ioctls to work -- or your
- Xsystem :-> ).
- X
- X7. Andrew A. Chernov (ache@hq.demos.su) said:
- X
- X1) HDB dialers may return connect speed as return code (!= 0)
- X [ and the CONNECT string built by hdbintf.c prints this code -- wht]
- X [his patch used - wht]
- X2) Using HDB Dialcodes file for phone numbers translation now
- X (\D,\T escape sequence)
- X [his patch used - wht]
- X
- XIn other mail he wrote:
- X
- XI just found little bugs:
- X1) XENIX standard cc doesn't understand prototypes with names:
- X"FILE *" is ok, but "FILE *fp" is bad. (patched sea/lint_args.h)
- X [fixed - wht]
- X2) 'makedirs' program NEED last '/' in path name to make directory.
- XAll Make.src patched to add '/' at the end of dirs.
- X [fixed n a different way; makedirs now works as advertised - wht]
- X3) Some HDB dialers looks in argv[0] and change some parameters
- X(f.e. speed, etc.), so name "ECUdial" is invalid, and need change to
- Xdve->dialprog. WARNING: this patch required my previous patch
- X(use 'token' instead of 'stripped_num')
- X [his patch used - wht]
- X
- X8. Jan-Piet Mens <logixwi.uucp!jpm> reported problems
- Xwith VT-220 support due to it's necessity of passing characters
- Xwith the sign bit set. As of now, characters are read by ecu and kept
- X8-bit intact until they have been passed through the key mapping filter.
- XKeys actually input to the program or sent over the line are
- Xlimited to 7 bits for now (sorry to my international friends) since
- Xcharacters with the sign-bit have internal significance to ECU.
- XThis is a primary example of "American's Disease" (7-bit ASCII) and I'll get
- Xit out of here as soon as I get over "Warren's Disease" (laziness).
- X
- XHe also reported:
- X> In README.P1, you write that the "nonansikeys" file may be put in
- X> ECULIBDIR. This is incorrect: it is searched for in
- X> ECULIBDIR/.ecu [Line 193 nonansikey.c]
- X
- XAcknowledgments
- X---------------
- X
- XI've already mentioned Lothar's work in a matter-of-fact manner,
- Xbut here is the place for extreme words of appreciation. SVR4 is
- Xvery important and kudos to him for the leg up.
- X
- XRobert E. Laughlin, Naval Ocean Systems Center (NOSC), bel@trout.nosc.mil,
- Xreported various successes and failures. We had a good and continuing
- Xdialog. His interest, suggestions and moral support did more for me than my
- Xsupport of ECU did for him.
- X
- XAndrew Chernov, of Relcom fame, made important suggestions and
- Xfixes for XENIX support and for the product as a whole. He made
- Xsome important suggestions for an older revision as well, some of
- Xwhich I put in and some not (Variously, I was too lazy, busy or
- Xthe code had gone too far away from what he was patching from).
- XHis work is laudable and important for many reasons far exceeding
- Xhis support of this little program. Keep him in your thoughts
- Xthrough these strange and wonderous times.
- X
- XIt was good to hear from these folks for their comments asnd fixes:
- X
- X Andy Hall <relay.EU.net!ncduk!andyh>
- X Dave Hammond <dsix2!daveh
- X Greg Wilkins <sir-alan!gregw>
- X Michael P. Deignan <anomaly.sbs.com!mpd>
- X Michael Traub <rtf.bt.co.uk!traub>
- X cmcl2.NYU.EDU!panix!tbetz (Tom Betz)
- X Jan-Piet Mens <logixwi.uucp!jpm>
- X mudos.ann-arbor.mi.us!mju (Marc Unangst)
- X lll-winken.llnl.gov!abhg!tao!tempest!whitemp
- X ucsd!jadpc.cts.com!jdeitch
- X
- XThis file is harder to write than all of the code changes. Not
- Xonly is it hard to remember what all bugs were reported by whom
- Xand what changes were fixed by whom, I hope I haven't missed
- Xcrediting anyone. if I did, please forgive me.
- X
- XKeep dem cards and letters coming.
- X
- X
- XREADME.P4 ECU 3.10 Patch 4 Wed Aug 28 09:43:44 EDT 1991
- X
- XThis describes patch 4 to ECU 3.10, bringing the program to
- Xversion 3.14.
- X
- XThe majority of this patch deals with good work done by Paul
- XSlootman (slootman@dri.nl) on the SVR4 port. From what he
- Xencountered, I am very very disappointed in some of the more anal
- XANSI C implementations out there. Trigraphs suck and we all knew
- Xthat, but having to cast a constant in a comparison with
- Xstrlen??? (Excuse me -- that is a trigraph -- I must learn to
- Xsay \?\?\?).
- X
- XOh well, there are a few other kinds of fixes in here too: ISC
- Xshould be better off. Some of the conditionally compiled code
- Xthat was running for SCO only should have been in for ISC too.
- X
- XI thought I had fixed the bad search for nonansikeys in
- XECULIBDIR/.ecu/ instead of ECULIBDIR/, but it is fixed now.
- X
- XTo use:
- X patch -p < PATCH4.01
- X Configure
- X make
- X su root (may not be necessary on Sun or SVR4 if you
- X have write access to the installed directories)
- X make install
- X
- XREADME.P6 ECU 3.10 Patch 6 Wed Sep 4 00:41:23 EDT 1991
- X
- XThis describes patch 5 to ECU 3.15, bringing the program to
- Xversion 3.15.
- X
- XFiles in Patch 5:
- XREADME.P5
- XPATCH5.01
- Xfasi/fas.h
- Xckermit/ckutio-ecu.dif
- Xmemmove/README
- Xmemmove/memmove.s
- Xmemmove/memmove286.asm
- Xmemmove/memmove386.asm
- Xtimetest/Makefile
- Xtimetest/naptest.c
- Xtimetest/naptest2.c
- Xtimetest/naptest3.c
- Xtimetest/seltest.c
- X
- XFirst, a note of apology to Sun users. I used the -mm nroff macros
- Xto write the manuals. Sun provides -ms and -me, but not -mm.
- XI'm looking for some PD replacements, but haven't succeeded yet.
- XI'll be glad to mail an updated manual to anyone who asks. I'm
- Xalso looking for a friendly ftp site to hold updates, hence manuals.
- X
- X1. Improvements in the SVR4 port have been made, but now
- XSVR4 almost certainly means an AT&T/Intel/ISC 386 port,
- X ^^^
- Xsince we expect to find /usr/include/sys/at_ansi.h and
- X/usr/include/sys/sys/kd.h files for console color capability.
- X(Color is not yet supported on Sun -- only monochrome xterms
- Xand the console without color manipulation).
- X
- XIf you have trouble with compiling ecutty.c for SVR4 (complaints
- Xabout not finding either of these header files), temporarily remove the
- XSVR4 condition for inclusion of them and for using the CONS_GET code
- Xnear the bottom of the source.
- X
- X2. Many improvements were made in the area of system independence.
- XThe build procedure configures the location of HDB Devices,
- XDialcodes and Dialers files among the various environments:
- XSCO /usr/lib/uucp
- XISC /usr/lib/uucp
- XSun /etc/uucp
- XSVR4 /etc/uucp
- X
- X3. A new feature of Configure is the inclusion of local configuration
- Xin the Makefiles it builds. If you build a file named "config.local"
- Xin the base source directory, it's contents will be placed ahead of
- Xall other make statements in each Makefile.
- X
- XExample customization include:
- XCFLAGS_EXTRA = -Dwhatever
- XGCC_CFLAGS_EXTRA = -fsoft-float #just an example :-)
- XCC_CGLAGS_EXTRA = -p
- XSYMBOLIC = -g # if you want sdb/dbx/gdb symbols in programs
- XBINTIME = /bin/time # if you want stats on each make step
- XLDFLAGS_EXTRA = -ljuicier-malloc
- X
- XJudicious use of this may help you avoid changing Make.src files
- Xthus making patch complain about future patches, but
- X
- X4. A patch from Andrew Chernov that fell out of the last version
- Xwas reapplied: Many SCO-style dialer programs do not care
- Xwhat is in argument 0 (the command name) when they are executed,
- Xbut some do. Before this patch, the argument passed was "ECUdial"
- Xsince the gendial dialers *can* make use of it. This usage
- Xconflicted with some of Andrew's dialers which need the actual
- Xname passed. So, starting with this edition, if you invoke
- Xa dialer program, its complete pathname will appear in argv[0].
- XIf you want the old behavior, add a file to the base directory
- Xcalled config.local and place in it the line:
- X
- X CFLAGS_EXTRA = -DECUdial
- X
- X3. The usefulness of _rc.ep has been enhanced by adding the
- X'setline' procedure command. This command is only valid during the
- Xexecution of _rc.ep. It allows you to override the selection of
- Xa default line as if you had used the -l switch. In fact, using
- Xthe commabnd overrides -l.
- X
- XUsage: setline <filename>
- X
- XThis command is an exact analog of the -l command line switch.
- X<filename> is used on the setup screen (if it is presented)
- Xas the default filename. If you do not edit this name, ECU will
- Xattempt to open the line when you press End or ^D.
- X
- X<filename> has the format of a complete pathanme in /dev or simple
- Xtty name.
- X
- XExample:
- X setline '/dev/tty1a'
- X setline 'tty1a'
- X setline 'cua0'
- X
- X5. Similarly, using the 'baud' and 'parity' procedure commands in
- X_rc.ep serve as an exact analog of the -b, -e and -e command line switches.
- XUsing 'baud' and 'parity' in rc_ep override the equivalent
- Xcommand line switches.
- X
- X6. On the Sun, STREAMS termios is used in lieu of termio. The code
- Xused for draining the line output queue ("wait for all transmitted
- Xdata to be sent over the line") has been improved, making
- Xexpect-respond, file transfer and other highly interactive operations
- Xmore reliable.
- X
- X7. The following files normally found in a personal ~/.ecu
- Xdirectory may now have a systedm default in ECULIBDIR:
- X
- X colors
- X keys
- X nonansikeys
- X
- X8. Unreported bugs in the format of the keys and nonansikeys files have
- Xbben fixed. Specifically, whitespace and comments are allowed after keyset
- Xor terminal names.
- X
- X9. On ISC 2.2 systems, the console was left in standout or bold
- Xmode at exit from ECU. I believe this problem is now fixed.
- X
- X10. The GCC compilation flags for 386 versions have been updated to use
- X-fcall-used-bx rather than -fcall-used-{ax,bx,cs,dx].
- X
- XIt turns out the only problem ECU had with strenuously optimized GCC
- Xoptions was that SCO's memmove clobbers the bx register, which is
- Xsupposed to be reserved for use as a register variable by all
- Xcompilers, MSC or otherwise.
- X
- XIf you use the new memmove routines supplied with this patch, you may
- Xomit this switch as well. It is probably not worth fooling with any
- Xof that unless you are just interested in the problem.
- X
- X11. I forgot to include the version 4F kermit diff file. It's included
- Xin here.
- X
- X12. In patch 2, I reported nap() in SCO UNIX systems to be faulty in varying
- Xmanners depending on x in the 3.2.x version number. ISC 2.2.1 nap also
- Xmisbehaves in a similar manner.
- X
- XSCO very promptly supplied me with an /etc/conf/pack.d/kernel/os.o for
- Xrelinking the kernel which fixes the problem somewhat, but not
- Xcompletely. Watch this space. Some testing programs can be found in
- Xtimetest/ as of this patch.
- X
- X13. I've thought for some time SCO select might also be buggy. I finally
- Xwrote some test programs and proved it. SCO select may appear to work
- Xcorrectly for a few iterations, but rapidly degenerates into rounding
- Xall timeout specifications to the nearest second. Run timetest/seltest
- Xfor a visual feel of what's going on.
- X
- XThe #define WORKING_SELECT is now supploied by the Configure procedure
- Xfor systems that have a usable select. See the updated README file
- Xnote 3 and ecuutil.c Nap() for details.
- X
- X
- XREADME.P5 ECU 3.10 Patch 5 Wed Sep 4 00:41:23 EDT 1991
- X
- XThis describes patch 6 to ECU 3.16, bringing the program to
- Xversion 3.16.
- X
- XTwo quick fixes here:
- XThe configuration procedure screws up when you cc on SVR4, Sun or ISC
- X1. I forgot to put -DWORKING_SELECT in for cc on these machines.
- X2. A '(' got changed to a '*' somewhere in the process.
- X
- XBad QA. Sorry.
- SHAR_EOF
- chmod 0644 OLD-HISTORY-2 ||
- echo 'restore of OLD-HISTORY-2 failed'
- Wc_c="`wc -c < 'OLD-HISTORY-2'`"
- test 33749 -eq "$Wc_c" ||
- echo 'OLD-HISTORY-2: original size 33749, current size' "$Wc_c"
- rm -f _shar_wnt_.tmp
- fi
- # ============= ESOTERIC ==============
- if test -f 'ESOTERIC' -a X"$1" != X"-c"; then
- echo 'x - skipping ESOTERIC (File already exists)'
- rm -f _shar_wnt_.tmp
- else
- > _shar_wnt_.tmp
- 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
- 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"
- rm -f _shar_wnt_.tmp
- fi
- # ============= Configure ==============
- if test -f 'Configure' -a X"$1" != X"-c"; then
- echo 'x - skipping Configure (File already exists)'
- rm -f _shar_wnt_.tmp
- else
- > _shar_wnt_.tmp
- echo 'x - extracting Configure (Text)'
- sed 's/^X//' << 'SHAR_EOF' > 'Configure' &&
- X:
- X#!/bin/sh
- X#+---------------------------------------------------------------------
- X# ECU Configure
- X#
- X# PEDANTIC not recommended unless you want to do extensive
- X# vendor-supplied header file hacking.
- X#----------------------------------------------------------------------
- X#+:EDITS:*/
- X#:09-10-1992-13:58-wht@n4hgf-ECU release 3.20
- X#:08-22-1992-15:37-wht@n4hgf-ECU release 3.20 BETA
- X#:07-09-1992-18:09-wht@n4hgf-ecunumrev a bad idea
- X#:07-07-1992-16:30-wht@gyro-add ecunumrev to config
- X#:08-25-1991-05:11-wht@n4hgf2-added Sun n4hgf2 WHT automation
- X#:08-06-1991-05:05-wht@n4hgf-change FASI_IN_USE to FASI
- X#:07-12-1991-14:05-wht@n4hgf-ensure config.c compiles properly
- X#:04-29-1991-02:39-wht@n4hgf-document/clean
- X
- X# --> add any of the following (99% of everybody will want to leave alone)
- X# -DFASI if you have installed and want to exploit the features
- X# of my FAS instrumentation extensions
- X# -DMORSE if you have installed and want to use the n4hgf morse driver
- X# -DPEDANTIC if you want to use -ansi -pedantic with gcc (not
- X# necessary or recommended unless you anticipate heavy
- X# code modification)
- X# -DMETROLINK_X11R4_PTS if you have early 'pts-using' Metro Link
- X# xterms
- XCFLAGS=
- X
- X# a bit of self indulgence for me (ignore it or be inspired)
- XSYSTEM=
- X[ -f /etc/systemid ] && SYSTEM=`cat /etc/systemid`
- X[ "$SYSTEM" = "n4hgf" ] && CFLAGS='-DWHT'
- X[ -f /etc/hostname.le0 ] && SYSTEM=`cat /etc/hostname.le0`
- X[ "$SYSTEM" = "n4hgf2" ] && CFLAGS='-DWHT'
- X
- Xecho Please wait while I compile the config program.
- Xrm -f ./config
- Xcc $CFLAGS config.c -o config > /tmp/config.cc.log 2>&1
- X[ -x ./config ] && rm -f /tmp/config.cc.log
- X[ -x ./config ] || echo '/tmp/config.cc.log has compile errors'
- X./config
- X
- X#end of Configure
- SHAR_EOF
- chmod 0755 Configure ||
- echo 'restore of Configure failed'
- Wc_c="`wc -c < 'Configure'`"
- test 1752 -eq "$Wc_c" ||
- echo 'Configure: original size 1752, current size' "$Wc_c"
- rm -f _shar_wnt_.tmp
- fi
- # ============= Make.src ==============
- if test -f 'Make.src' -a X"$1" != X"-c"; then
- echo 'x - skipping Make.src (File already exists)'
- rm -f _shar_wnt_.tmp
- else
- > _shar_wnt_.tmp
- echo 'x - extracting Make.src (Text)'
- sed 's/^X//' << 'SHAR_EOF' > 'Make.src' &&
- X#+-------------------------------------------------------------------
- X# Make.src - master Makefile source for ECU and related programs
- X# If THIS line is the third in the file you are reading, refer to
- X# the files README and Configure.
- X# wht@n4hgf.Mt-Park.GA.US
- X#--------------------------------------------------------------------
- X#+:EDITS:*/
- X#:09-10-1992-13:58-wht@n4hgf-ECU release 3.20
- X#:08-22-1992-15:37-wht@n4hgf-ECU release 3.20 BETA
- X#:07-17-1992-18:23-wht@n4hgf-new module nap.c
- X#:07-07-1992-20:04-wht@n4hgf-new installation mechanism
- X#:05-17-1992-18:50-wht@n4hgf-add cpio
- X#:02-10-1992-05:47-wht@n4hgf-mcs avail on some systems when non-COFF produced
- X#:09-03-1991-23:47-wht@n4hgf2-add timetest directory
- X#:09-02-1991-19:25-wht@n4hgf2-ckutio dif and fas.h left out of distribution
- X#:09-01-1991-16:22-wht@n4hgf2-generalize HDB config location
- X#:08-23-1991-13:35-wht@n4hgf-sun porting (3.13)
- X#:07-25-1991-12:55-wht@n4hgf-ECU release 3.10
- X#:04-21-1991-12:43-wht@n4hgf-convert to Make.src
- X
- XPROGRAM = ecu
- XINSTALLABLE = $(LBIN)/$(PROGRAM)
- X
- XECUSHARNAME=ecu320
- XMANSHARNAME=ecuman320
- X
- XLIBFUNCKEYMAP = $(ECULIBDIR)/funckeymap
- X
- XSHELL = /bin/sh
- X
- X.SUFFIXES:
- X.SUFFIXES: .o .c .h .l
- X.c.o:; $(BINTIME) $(CC) -c $(CFLAGS) $*.c
- X
- 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 ecugrabbag.c\
- X eculine.c\
- X eculock.c\
- X ecunumrev.c\
- X ecuicmaux.c\
- X ecuicmhelp.c\
- X ecuicmhist.c\
- X ecuicmd.c\
- X ecupde.c\
- X ecuphdir.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 ecuxfer.c\
- X esdutil.c\
- X fasiintf.c\
- X expresp.c\
- X feval.c\
- X gint.c\
- X gstr.c\
- X hdbintf.c\
- X logevent.c\
- X nap.c \
- X funckeymap.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 ttynaming.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 ecugrabbag.o\
- X ecupde.o\
- X ecuphdir.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 ecuxfer.o\
- X esdutil.o\
- X fasiintf.o\
- X expresp.o\
- X feval.o\
- X gint.o\
- X gstr.o\
- X hdbintf.o\
- X logevent.o\
- X lstat.o\
- X nap.o \
- X mkdirs.o\
- X funckeymap.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 ttynaming.o\
- X utmpstat.o\
- X var.o
- X
- XSHARFLS = \
- X README \
- X README.* \
- X HISTORY \
- X OLD-HISTORY-* \
- X ESOTERIC \
- X Configure \
- X Make.src */Make.src \
- X *.[ch] \
- X bperr/bperr.c \
- X help/{*.[ch],ecuhelp.src} \
- X ecuungetty/*.[ch] \
- X z/*.[ch] \
- X sea/{*.[ch],*.{doc,imp}} \
- X gendial/{README,install_dialer,*.[ch]} \
- X fasi/{Makefile,Master,Node,PATCHLEVEL} \
- X fasi/{README,README.FASI,RELEASENOTES} \
- X fasi/{Space.c,System,digi-pc8.h,fas.c,fas.h,idfasi} \
- X ecufriend/*.[ch] \
- X mapkey/README mapkey/keys.usa.ecu \
- X xsel386/* \
- X memmove/{README,*.{s,asm}} \
- X timetest/{Makefile,*.c} \
- X doc/{README,Makefile,*.txt} models/* zgcc mkoldproto.l'
- X
- XMAKEDIRS_OBJ =\
- X makedirs.o\
- X mkdirs.o\
- X lstat.o
- X
- Xall: $(PROGRAM) .make.help .make.ug .make.z .make.s kbdtest3 makedirs
- X
- X$(PROGRAM): $(OBJ)
- X echo 'char *makedate="@(#)'ecu `date` $(SYSTEM)'";' >makedate.c
- X $(CC) -c $(CFLAGS) makedate.c; rm makedate.c
- X rm -f $@; if [ -f $@ ]; then mv $@ $@~; fi
- X $(BINTIME) $(CC) -o $@ $(LDFLAGS) makedate.o $(OBJ) $(LIBS)
- X rm makedate.o
- X
- X$(OBJ): Makefile
- X
- X.make.help:
- X cd help; $(MAKE) -$(MAKEFLAGS)
- X
- X.make.z:
- X cd z; $(MAKE) -$(MAKEFLAGS)
- X
- X.make.s:
- X cd sea; $(MAKE) -$(MAKEFLAGS)
- X
- X.make.ug:
- X if [ $(USE_ECUUNGETTY) = yes ]; then \
- X cd ecuungetty; $(MAKE) -$(MAKEFLAGS); \
- X fi
- X
- Xbperr/bperr: bperr/bperr.c
- X cd bperr; $(MAKE) -$(MAKEFLAGS) bperr
- X
- Xproc_error.c: ecuerror.h
- X $(MAKE) -$(MAKEFLAGS) bperr/bperr
- X bperr/bperr
- X
- Xkbdtest3: kbdtest3.c
- X $(CC) -o $@ $(CFLAGS) kbdtest3.c
- X
- X$(OBJ): ecushm.h
- X
- Xecu.fls: Makefile
- X ls $(SRC) >ecu.fls
- X
- X# Not recommended
- Xprotos: ecu.fls afterlint mkoldproto
- X echo ' ' > protos.h
- X csh ./zgcc ecu.fls protos.h .
- X
- X# Not recommended
- Xallprotos:
- X $(MAKE) -$(MAKEFLAGS) protos
- X cd z; $(MAKE) -$(MAKEFLAGS) protos
- X cd sea; $(MAKE) -$(MAKEFLAGS) protos
- X
- Xmakedirs: $(MAKEDIRS_OBJ)
- X $(CC) -o $@ $(LDFLAGS) $(MAKEDIRS_OBJ) $(LIBS)
- X
- X# install ecu
- Xiecu: makedirs ecu
- X @echo Installing ECU in $(LBIN) and $(ECULIBDIR) ... please wait
- X @if [ ! -d $(LBIN) ]; then \
- X echo '\012'Attempting to make $(LBIN); \
- X ./makedirs -m 755 $(LBIN); \
- X ls -ld $(LBIN); \
- X fi
- X @rm -f $(INSTALLABLE) $(INSTALLABLE)~
- X @if [ -f $(INSTALLABLE) ]; then \
- X echo '\012'Cannot remove $(INSTALLABLE) - moving to $(INSTALLABLE)~ \
- X mv $(INSTALLABLE) $(INSTALLABLE)~; \
- X fi
- X @cp $(PROGRAM) $(INSTALLABLE)
- X @strip $(INSTALLABLE)
- X @-if [ -x /usr/bin/mcs ]; then \
- X /usr/bin/mcs -d $(INSTALLABLE) || echo mcs present but not COFF? ; \
- X fi
- X @chown bin $(INSTALLABLE)
- X @chgrp bin $(INSTALLABLE)
- X @chmod 711 $(INSTALLABLE)
- X @echo '\012'Installed
- X @ls -l $(INSTALLABLE)
- X @if [ ! -d $(ECULIBDIR) ]; then \
- X echo '\012'Attempting to make $(ECULIBDIR); \
- X ./makedirs -m 755 $(ECULIBDIR); \
- X ls -ld $(ECULIBDIR); \
- X fi
- X @-if [ -f $(LIBFUNCKEYMAP) ]; then \
- X echo '\012'Saving your old $(LIBFUNCKEYMAP); \
- X for i in 2 1; \
- X do \
- X j=`expr $$i + 1`; \
- X mv $(LIBFUNCKEYMAP)-$$i $(LIBFUNCKEYMAP)-$$j 2>/dev/null; \
- X done; \
- X mv $(LIBFUNCKEYMAP) $(LIBFUNCKEYMAP)-1; \
- X ls -l $(LIBFUNCKEYMAP)*; \
- X fi
- X @cp models/funckeymap $(ECULIBDIR)
- X @chown bin $(LIBFUNCKEYMAP)
- X @chgrp bin $(LIBFUNCKEYMAP)
- X @chmod 644 $(LIBFUNCKEYMAP)
- X @echo '\012'Installed
- X @ls -l $(LIBFUNCKEYMAP)
- X
- X# install everything
- Xinstall: all makedirs #run as root
- X @echo '\012'Starting full installation of ECU ... please wait
- X @make iecu
- X @if [ $(USE_ECUUNGETTY) = yes ]; then \
- X cd ecuungetty; $(MAKE) -$(MAKEFLAGS) install; \
- X fi
- X cd z; $(MAKE) -$(MAKEFLAGS) install
- X cd sea; $(MAKE) -$(MAKEFLAGS) install
- SHAR_EOF
- true || echo 'restore of Make.src failed'
- fi
- echo 'End of ecu320 part 3'
- echo 'File Make.src is continued in part 4'
- echo 4 > _shar_seq_.tmp
- exit 0
-
- exit 0 # Just in case...
-