home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #20 / NN_1992_20.iso / spool / comp / sources / misc / 3930 < prev    next >
Encoding:
Text File  |  1992-09-11  |  57.1 KB  |  1,583 lines

  1. Newsgroups: comp.sources.misc
  2. Path: sparky!kent
  3. From: wht@n4hgf.mt-park.ga.us (Warren Tucker)
  4. Subject:  v32i038:  ecu - ECU Asynchronous Communications v3.20, Part03/40
  5. Message-ID: <1992Sep11.191929.5736@sparky.imd.sterling.com>
  6. Followup-To: comp.sources.d
  7. X-Md4-Signature: 5ce87794e0189803dfbd29f778611c49
  8. Sender: kent@sparky.imd.sterling.com (Kent Landfield)
  9. Organization: Sterling Software
  10. References: <csm-v32i036=ecu.141245@sparky.IMD.Sterling.COM>
  11. Date: Fri, 11 Sep 1992 19:19:29 GMT
  12. Approved: kent@sparky.imd.sterling.com
  13. Lines: 1568
  14.  
  15. Submitted-by: wht@n4hgf.mt-park.ga.us (Warren Tucker)
  16. Posting-number: Volume 32, Issue 38
  17. Archive-name: ecu/part03
  18. Environment: SCO,XENIX,ISC,SUNOS,SYSVR4,HDB,Curses
  19. Supersedes: ecu: Volume 21, Issue 53-89
  20.  
  21. ---- Cut Here and feed the following to sh ----
  22. #!/bin/sh
  23. # this is ecu320.03 (part 3 of ecu320)
  24. # do not concatenate these parts, unpack them in order with /bin/sh
  25. # file OLD-HISTORY-1 continued
  26. #
  27. if test ! -r _shar_seq_.tmp; then
  28.     echo 'Please unpack part 1 first!'
  29.     exit 1
  30. fi
  31. (read Scheck
  32.  if test "$Scheck" != 3; then
  33.     echo Please unpack part "$Scheck" next!
  34.     exit 1
  35.  else
  36.     exit 0
  37.  fi
  38. ) < _shar_seq_.tmp || exit 1
  39. if test ! -f _shar_wnt_.tmp; then
  40.     echo 'x - still skipping OLD-HISTORY-1'
  41. else
  42. echo 'x - continuing file OLD-HISTORY-1'
  43. sed 's/^X//' << 'SHAR_EOF' >> 'OLD-HISTORY-1' &&
  44. X
  45. X7.  If you are not using a 43-line screen, the list of commands
  46. X    displayed by the interactive 'help' command is truncated.  I
  47. X    apologize; this problem will be solved Real Soon Now.
  48. X
  49. XChanges since ecu 2.80 patchlevel 1
  50. X
  51. X1.  The built-in help system was reworked.  Interactive commands are
  52. X    now divided into four categories: general, communications-related,
  53. X    transfer-related and procedure-related.  The help command asks for
  54. X    a category and displays the appropriate subset.
  55. X
  56. X2.  The built-in help file (ecuhelp.data) was revised.
  57. X
  58. XChanges since ecu 2.80 patchlevel 2
  59. X
  60. X1.  Patch 3 added a window mode selection to the sz file transfer menu;
  61. X    also, the unacknowledged data quantity (called "window") was
  62. X    added to the sz file transfer display.
  63. X
  64. XChanges since ecu 2.80 patchlevel 3
  65. X
  66. X1.  A problem with passing arguments to an initial procedure was
  67. X    fixed.  Getopt() is now used, which requires that all switch
  68. X    command arguments must precede the non-switch arguments.
  69. X    This was not true in previous revisions of ecu.
  70. X
  71. X2.  A new (non-standard) escape sequence has been added to the
  72. X    expresp procedure command.  \m### causes a ### millisecond delay.
  73. X    Note this adds an ambiguity to the syntax of the send string:
  74. X    you may not follow an \m delay with a literal digit to send.
  75. X    For example, suppose you wish to delay 300 missileconds then
  76. X    send "4A".  \m3004A will delay for 3004 (approximately) milliseconds,
  77. X    then send an "A".  You must, instead, use \m300\034A to achieve
  78. X    the desired result.
  79. X
  80. X    Also, a string of the form ~t[##] or ~m[##] may be prepended to
  81. X    any expect vstring to change the timeout to ## seconds or milliseconds,
  82. X    respectively.  '~t[8]gin:--~m[800]gin:' waits 8 seconds for
  83. X    'gin:' and if not found, sends a carriage return and waits
  84. X    an additional 800 milliseconds.
  85. X
  86. X3.  The method of choosing a shared memory segment key changed.
  87. X    Previously, ftok() was used.  Now, the algorithm is 
  88. X        0xEC000000L | getpid();
  89. X
  90. X4.  The -D switch has been added to cause ecu to terminate
  91. X    unconditionally upon completion of an initial procedure (-p).
  92. X
  93. XChanges since ecu 2.80 patchlevel 4
  94. X
  95. X1.  The malloc library is used, resulting in faster procedure
  96. X    execution.
  97. X
  98. X2.  Restrictions on string operations limiting useful string length
  99. X    to 256 characters have been lifted.  New restrictions limit
  100. X    strings to 5120 characters in length :-).  This required some
  101. X    major redesign and is responsible for the reissue of the entire
  102. X    ECU program rather than merely patches.
  103. X
  104. X3.  A new procedure command, 'gosub' has been added, allowing
  105. X    subroutines within a procedure file.
  106. X
  107. X    #---------
  108. X    # example
  109. X    #---------
  110. X        echo 'main'; gosub SUB; echo 'back to main'
  111. X        return           | return from proc
  112. X
  113. X    SUB
  114. X        echo 'sub'
  115. X        gosub SUB2
  116. X        echo 'back to sub'
  117. X        return           | return from subroutine
  118. X
  119. X
  120. X    SUB2
  121. X        echo 'sub2'
  122. X        return           | return from subroutine
  123. X
  124. X4.  Other minor unreported bugs were fixed.
  125. X
  126. XChanges since ecu 3.00
  127. X
  128. X============= Patch 1:
  129. X> Posting-number: Volume 16, Issue 60
  130. X> Archive-name: ecu3/patch01
  131. X> 
  132. X> This is patch 1 to ECU 3.  It provides speed improvements
  133. X> and fixes for non-ANSI terminal support.  Also provided is an
  134. X> experimental make file for GCC 1.37.1 on UNIX systems.
  135. X
  136. X============= Patch 2:
  137. X> Posting-number: Volume 16, Issue 70
  138. X> Archive-name: ecu3/patch2a
  139. X> 
  140. X> Posting-number: Volume 16, Issue 71
  141. X> Archive-name: ecu3/patch2b
  142. X> 
  143. X> ECU 3.0 PATCH # 2 - Non-ansi/ISC
  144. X> 
  145. X> 1.  Fix non-curses per-file transfer rate report
  146. X>     (it was verrrrry optimistic :-)
  147. X> 
  148. X> 2.  Add experimental support for ISC 2.2
  149. X> 
  150. X> Note: if you are purely an SCO multiscreen user, you may wish to
  151. X> save this patch and not apply it until further patches are issued.
  152. X> By doing so, you will save an unnecessary compilation.
  153. X> When another patch comes along, you must then apply this one so
  154. X> that your source will be in sync.
  155. X
  156. X============= Patch 3:
  157. X> Posting-number: Volume 16, Issue 87
  158. X> Archive-name: ecu3/patch03
  159. X> 
  160. X> Under XENIX,
  161. X> 1. libmalloc.a and/or libc.a are broken such that calloc is
  162. X>    resolved twice, once from each library.
  163. X> 2. memmove() does not exist (in all or less recent versions?)
  164. X> 
  165. X> To get ecu 3 to compile under XENIX, apply this patch with:
  166. X>      patch < thismessage
  167. X> 
  168. X> NOTE there is no test to see if patch 1 & 2 have been applied :-(
  169. X> so make sure you have done so.  Also, I don't have access to XENIX
  170. X> right now, so please forgive if this doesn't fly. The object is to
  171. X> 1. supply -DDUFF to use Duff's device instead of missing memmove()
  172. X> 2. remove #define MALLOC_3X and -lmalloc to avoid bug in libmalloc.a
  173. X
  174. X============= Patch 4:
  175. X> Posting-number: Volume 16, Issue 88
  176. X> Archive-name: ecu3/patch04
  177. X> 
  178. X> ECU 3 PATCH 4 - miscellaneous, 1 serious
  179. X> 
  180. X> 1. fix bug in non-ANSI key handling causing core dump fairly
  181. X>    often (but not on my sys :-<)
  182. X> 
  183. X> 2. duplicate definiton of ECULIBDIR in ecu.h fixed 3.  cosmetic
  184. X>    fix in 'fi' interactive command prompt
  185. X> 
  186. X> 4. comm line flusher lflush() was flushing console tty instead
  187. X> 
  188. X> 5. illegal color name in 'color' procedure command caused
  189. X>    hi_white on hi_white instead or error
  190. X> 
  191. X> 6. prototypes for strchr/strrchr in stdio_lint.h caused problems
  192. X>    on some systems
  193. X> 
  194. X> 7. procedure sz was not reporting proper results if files skipped
  195. X> 
  196. X> 8. miscellaneous cosmetic fixes and maintenance/experimental rearrangements
  197. X
  198. X============= Patch 5:
  199. X> Posting-number: Volume 16, Issue 97
  200. X> Archive-name: ecu3/patch05a
  201. X> 
  202. X> 1. Fixed memory leak + bad free in feval_str().
  203. X> 
  204. X> 2. Some common types of procedure string operations have been made faster
  205. X> by redesign of the realloc_esd() function.
  206. X> 
  207. X> 3. Octal integer constants were implemented; they may be denoted by
  208. X> prefixing them with "0o".  Leading zero octal constants are not supported
  209. X> due to ECUs mutiple use of the same integer constant parser.  I thought 
  210. X> most people would rather %itos("0200") return 200(10) than 128(10).
  211. X> 
  212. X> 4. Many line drivers, particularly FAS, will wait a process closing
  213. X> a tty line until all characters queued for output have been sent.
  214. X> When closing a tty line that has been permanently XOFF'ed by a 
  215. X> dead remote system or a noisy XOFF, this can result in a hang.
  216. X> Now, a SIGALRM/setjmp scheme is used to recover from this condition
  217. X> and flush line output before reattempting the close.  Five
  218. X> seconds are allowed for the draining to occur.
  219. X> 
  220. X> 5. Multiscreen normal and reverse foreground and background colors
  221. X> in effect at the beginning of ecu execution are restored when the
  222. X> program terminates (thanks to staceyc@sco for illuminating the
  223. X> undocumented GIO_IOCTL ioctl; I've wanted to be able to do this for
  224. X> a long time).
  225. X> 
  226. X> 6. lamy@glsys.in-berlin.de reported a core dump immediately after
  227. X> the one-line startup message under XENIX 286.  Others have had the
  228. X> problem too.  I am puzzled -- it is happening in get_home_dir(),
  229. X> which seems rather straightforward.  A patch to avoid the problem
  230. X> is included: get the home directory from the environment variable
  231. X> HOME if possible rather than invoke libpwent.a.
  232. X> 
  233. X> 7. An embarassing nroff problem was reported by slerner@eingedi.
  234. X> Patches are included for the nroff source.  Mr. Lerner also pointed
  235. X> out an obsolete reference to samplproc.man.  The models subdirectory
  236. X> contain many sample, even useful, procedures and samplproc.man
  237. X> was discarded a long time ago.
  238. X> 
  239. X> If you do not have nroff or the spare CPU cycles to make the
  240. X> manual from nroff source, I'll email you one. Just mail me
  241. X> at wht@n4hgf.Mt-Park.GA.US or emory!n4hgf!wht and put
  242. X> "send ecu305 manual" in the subject line.  If I get enough
  243. X> requests, I'll repost it to c.s.m as ecuman305.
  244. X> 
  245. X> 8. A make bug in the trial ISC port was fixed in Make.ecu (thanks to
  246. X> jmd@p1so).
  247. X> 
  248. X> 9. During non-curses file transfer, the cumulative elapsed time
  249. X> is reported once per complete line of 'RRRTRR..' status.
  250. X> 
  251. X> 10. ache@hq.demos.su reported a bug in XENIX utmp handler
  252. X> code.  This is a fix for most XENIX systems, but define OLD_WAY
  253. X> in utmpstat.c if you have problems.
  254. X> 
  255. X> 11. Sometimes upon adding a new phone entry, it would be marked
  256. X> for redial upon creation.  This has been fixed by using calloc()
  257. X> instead malloc().
  258. X> 
  259. X> 12. We seem to be bumping some limits on 286 systems.  I added
  260. X> more code to handle more core dumps reported by lamy@glsys.in-berlin.de:
  261. X> somehow newwin() managed to return zero (probably memory alloc fail).
  262. X> The patch to ecuwinutil.c won't fix the problem, but will at least
  263. X> report it and die gracefully, rather than splatter on the pavement
  264. X> with a core dump.  Please write me with bug reports and crash info:
  265. X> see below.
  266. X> 
  267. X> .--------------------.
  268. X> | NOTES and REQUESTS |
  269. X> `--------------------'
  270. X> 
  271. X> 1. I do not have any XENIX system to test with.  It is a tribute
  272. X> to SCO orthogonality that 35,000+ line program works so well
  273. X> across 2 CPUs and two operating systems of many minor releases
  274. X> and many versions of development systems.  I continue to point
  275. X> this out when I hear SCO-bashers do their thing.  However, since
  276. X> s**t does happen, if you are reporting a problem that results in
  277. X> a core dump, please run the following for me (I would APPRECIATE it):
  278. X> 
  279. X>   % cd where ecu is
  280. X>   % ./ecu
  281. X>   ----- kaboom -----
  282. X>   % ^Jstty sane^J if needed (probably)
  283. X>   % adb ./ecu |& tee to.wht
  284. X>   * $x
  285. X>   * $c
  286. X>   * $r
  287. X>   * $q
  288. X> If you are a really industrious one and have sdb and compiled with -g,
  289. X>   % sdb ./ecu |& tee -a to.wht
  290. X>   % t
  291. X>   % q
  292. X> Then  
  293. X>   % mail -s 'ecu 3.xx core dump' wht@n4hgf.mt-park.ga.us < to.wht
  294. X> 
  295. X> 2. ache@hq.demos.su has made some excellent suggestions which
  296. X> would enhance the line handling/choosing algorithms.  They will
  297. X> require a change in the phone directory.  He suggests I interpret
  298. X> old directory formats, while writing only new ones.  The changes
  299. X> are far reaching and I haven't the time now to plug them in,
  300. X> but kudos to him and I'll try to find A Round Tuit.
  301. X
  302. X============= Patch 6:
  303. X> Posting-number: Volume 17, Issue 11
  304. X> Archive-name: ecu3/patch06
  305. X> 
  306. X> This patch (#6) fixes a bug in patch 5.  Things seem stable now.
  307. X> I was going to wait for possible feedback from ISC porters, but
  308. X> several folks have had this problem (no doubt since ECU won't work
  309. X> without this patch).  This patch was also sent to comp.sources.bugs
  310. X> on 13 February, but patchlevel.h was not updated.  You may get 1 hunk
  311. X> rejected if you have already applied the patch.
  312. X> 
  313. X> You need to remake/reinstall both ecu and ecuungetty.
  314. X> 
  315. X> This man's hat sits on a quick-thinking head:
  316. X> > Organization: DEMOS, Moscow, USSR
  317. X> > Date: Wed, 13 Feb 91 02:15:23 +0300 (MSK)
  318. X> > From: emory!hq.demos.su!ache (Andrew A. Chernov, canton Uri's citizen)
  319. X> > Subject: ECU 3.05 utmpstat
  320. X> > 
  321. X> > Hi, Warren, bad news.
  322. X> > I just applied PATCH 5 for ECU, everything appears OK, but
  323. X> > 'utmpstat' not work at all, I look in...
  324. X> > IMHO it seems, like two strings are misplaced...
  325. X> > (US_LOGIN and US_DIALOUT)
  326. X> > I fix it, and ECU works correctly.
  327. X> > Good Luck.
  328. X
  329. SHAR_EOF
  330. echo 'File OLD-HISTORY-1 is complete' &&
  331. chmod 0644 OLD-HISTORY-1 ||
  332. echo 'restore of OLD-HISTORY-1 failed'
  333. Wc_c="`wc -c < 'OLD-HISTORY-1'`"
  334. test 21763 -eq "$Wc_c" ||
  335.     echo 'OLD-HISTORY-1: original size 21763, current size' "$Wc_c"
  336. rm -f _shar_wnt_.tmp
  337. fi
  338. # ============= OLD-HISTORY-2 ==============
  339. if test -f 'OLD-HISTORY-2' -a X"$1" != X"-c"; then
  340.     echo 'x - skipping OLD-HISTORY-2 (File already exists)'
  341.     rm -f _shar_wnt_.tmp
  342. else
  343. > _shar_wnt_.tmp
  344. echo 'x - extracting OLD-HISTORY-2 (Text)'
  345. sed 's/^X//' << 'SHAR_EOF' > 'OLD-HISTORY-2' &&
  346. X============= Changes for ECU 3.10 =======================================
  347. X
  348. XThis file gives hints about what has changed.  Rereading or skimming
  349. Xthe manual is highly recommended.  My apologies if some changes did
  350. Xnot get reflected in the manual.  Please let me know.
  351. X
  352. X1. Add nice interactive and procedure commands and %nice integer function.
  353. X
  354. X2. Add the %uid and %gid integer function.
  355. X
  356. X3. If ECU starts setuid, always reset the uid to the real uid.
  357. X   Previously this only happened if ECU was setuid to root.
  358. X
  359. X4. Made compatible with Metro Link X11R4 xterm under SCO UNIX/386.
  360. X   To use:
  361. X   a. include -DMETROLINK_X11R4 in CFLAGS of ECU compilation.
  362. X   b. edit the models/nonansikeys file patched by this patch
  363. X      to comment out the SCO ODT xterm key definiton and
  364. X      uncomment the Metro Link X11R4 definition.
  365. X      Follow other instructions you see in the nonansikey file.
  366. X
  367. X5. Fixed miscellaneous typos and misspelled words in models/nonansikeys.
  368. X
  369. X6. Environment variables LINES and COLS override termcap li and co
  370. X   values like terminfo curses does.  This gives you the correct
  371. X   size screen on xterms, but the ecu curses stuff still sees
  372. X   the termcap description un altered, giving you shorter (usually 24 line)
  373. X   dialing and help menus.
  374. X
  375. X7. Support is provided in nonansikeys for Metro Link's MetroX newest
  376. X   xterm (the one that uses pty pseudottys).  (Some of the key
  377. X   bindings are differerent and some .xinitrc and xterm resources
  378. X   are required; see 'models/nonansikeys'.)
  379. X
  380. X8. The -N switch for the procedure commands sx, sy, sz, rx, ry, and
  381. X   rz forces the "no curses" mode for file transfer.  This mode
  382. X   uses brief, tty-style reporting of file transfer progress.
  383. X   The "no curses" mode is automatically invoked if the console
  384. X   is not a pty or multiscreen and has a lower baud rate than the
  385. X   attached communication line.
  386. X
  387. X9. I added a dialer for the "generic Hayes-style 2400" (dialgHA24) and
  388. X   for the USR Courier 2400 (dialgUSR24).  My USR is at least
  389. X   6 years old and I don't even know if they still make them or
  390. X   if it is the same modem.
  391. X
  392. X10. A new config procedure greatly simplifies making and installing.
  393. X
  394. X11. I don't know if this will get it or not, but to try and help
  395. X    our European friends to be able to use alt_[a-z].ep, the keycodes
  396. X    required in the mapkeys file have changed from
  397. X      128 through 153 (0x80 through 0x99)     to
  398. X      229 through 249 (0xE0 through 0xF9).
  399. X    Reread mapkeys/README.
  400. X
  401. X12. Termination of file transfers by SIGINT did not cause termination
  402. X    of procedfure execution in pre-3.10 versions.  In this version, it does.
  403. X
  404. X    The appropriate manual sections have been updated to indicate:
  405. X
  406. X    Integer variable $i0 receives the exit status from the transfer.
  407. X    Note: procedure execution IS terminated by a SIGINT to the spawned
  408. X    file transfer process.  This is different than for versions prior
  409. X    to 3.10.  If $i0 is set to -1, the file transfer program did not
  410. X    begin.
  411. X
  412. X13. kbdtest3 is included to help figure out nonansikey configurations.
  413. X    see models/nonansikeys.
  414. X
  415. X14. SCO UNIX MEMMOVE() AND GCC
  416. X
  417. Xmemmove() is a very, very fast non-overlapping memory copy, but
  418. Xsince it does not save certain registers it uses, calling from
  419. XGCC can be tricky.  GCC does a fabulous job of grinding all it
  420. Xcan out of the available registers; MSC doesn't make very good
  421. Xuse of registers, er, I mean keeps a lot of registers for scratch
  422. Xuse.  I've never seen 386 MSC use dx except as a side effect of
  423. Xmultiply.  I guess that's what somebody (Gates?) meant by "tuning"
  424. Xone compiler to meet many needs being adequate. Enough philosophy,
  425. Xthough.
  426. X
  427. XI am using of -fcall-save-{ax,bx,cx,dx} since in at least one
  428. Xcase (ecufkey.c display_keyset()), rigorous optimization and
  429. Xreally righteous register usage caused a call to strlen() to
  430. Xscrew up since cx is not preserved by strlen.
  431. X
  432. Xstrlen:         push    edi
  433. Xstrlen+0x1:     mov     edi,[esp+0x8]
  434. Xstrlen+0x5:     xor     eax,eax               <-- goodbye ax 
  435. Xstrlen+0x7:     mov     ecx,0xffffffff        <-- goodbye cx
  436. Xstrlen+0xc:     repne   scasb
  437. Xstrlen+0xe:     inc     ecx     
  438. Xstrlen+0xf:     mov     eax,ecx 
  439. Xstrlen+0x11:    not     eax
  440. Xstrlen+0x13:    pop     edi
  441. Xstrlen+0x14:    ret
  442. X
  443. Xmemmove:        push    ebp
  444. Xmemmove+0x1:    mov     ebp,esp
  445. Xmemmove+0x3:    mov     edx,edi               <-- move rather than push
  446. Xmemmove+0x5:    mov     ebx,esi               <-- move rather than push
  447. Xmemmove+0x7:    mov     esi,[ebp+0xc]
  448. Xmemmove+0xa:    mov     edi,[ebp+0x8]
  449. Xmemmove+0xd:    mov     eax,edi               <-- goodbye ax 
  450. Xmemmove+0xf:    mov     ecx,[ebp+0x10]        <-- goodbye cx (OK w/MSC)
  451. Xmemmove+0x12:   jcxz    memmove+0x43
  452. Xmemmove+0x14:   cmp     edi,esi
  453. Xmemmove+0x16:   jbe     memmove+0x2e
  454. Xmemmove+0x18:   mov     eax,esi
  455. Xmemmove+0x1a:   add     eax,ecx
  456. Xmemmove+0x1c:   cmp     edi,eax
  457. Xmemmove+0x1e:   jae     memmove+0x2e
  458. Xmemmove+0x20:   mov     eax,edi
  459. Xmemmove+0x22:   add     esi,ecx
  460. Xmemmove+0x24:   add     edi,ecx
  461. Xmemmove+0x26:   dec     esi
  462. Xmemmove+0x27:   dec     edi
  463. Xmemmove+0x28:   std
  464. Xmemmove+0x29:   rep     movsb
  465. Xmemmove+0x2b:   cld
  466. Xmemmove+0x2c:   jmp     near memmove+0x43
  467. Xmemmove+0x2e:   mov     eax,edi
  468. Xmemmove+0x30:   test    Byte Ptr 0x1f:0x1,al
  469. Xmemmove+0x36:   je      memmove+0x3a
  470. Xmemmove+0x38:   movsb
  471. Xmemmove+0x39:   dec     ecx
  472. Xmemmove+0x3a:   shr     ecx,1
  473. Xmemmove+0x3c:   rep     movsw
  474. Xmemmove+0x3f:   adc     ecx,ecx
  475. Xmemmove+0x41:   rep     movsb
  476. Xmemmove+0x43:   mov     esi,ebx
  477. Xmemmove+0x45:   mov     edi,edx
  478. Xmemmove+0x47:   pop     ebp
  479. Xmemmove+0x48:   ret
  480. Xmemmove+0x49:   nop
  481. Xmemmove+0x4a:   nop
  482. Xmemmove+0x4b:   nop
  483. X
  484. X15.  A documented feature is that upon connecting to a remote
  485. Xdialed through the directory, if a 'fkey' key set from ~/.ecu/keys 
  486. Xmatches the directory name, the key set is automatically loaded.
  487. XThis feature has never worked (I never used it or tested it.)
  488. XRecently I told someone they could use it and they reported it
  489. Xdid not work.  It does now.
  490. X
  491. X16. The example file models/sz_update.ep was treating skipped files
  492. Xas a failed transfer.  This was fixed.
  493. X
  494. X17. Interactive and procedure commands 'pushd' and 'popd' were added.
  495. X
  496. X18.  Adding pushd and popd documentation made ecu.man too long
  497. Xgiving me "word overflow" and a core dump from my nroff.  So,
  498. Xthere are now two documents, ecu.man and exits.man.  The latter
  499. Xis very short and is just a kludge since the former is as long as
  500. Xit can be.
  501. X
  502. X19. Added the procedure rlog command for procedure control of
  503. Xreceiver logging.
  504. X
  505. X20. Added _initial.ep, _connect.ep and _hangup.ep. See "Special
  506. XProcedures" in the manual.
  507. X
  508. X21. The use of #ifdef GCC140 is made to take advantage of a
  509. Xassembly source generation bug fix in gcc 1.40.
  510. X
  511. X22. Running ecu with no pre-existing phone directory and specifying
  512. Xa logical phone number (directory entry) to dial caused erratic
  513. Xbehavior or core dump.  This has been fixed.  Thanks for the report
  514. Xfrom mju@mudos.ann-arbor.mi.us.  He did a good job of testing
  515. Xan alpha version of 3.10.
  516. X
  517. X23. Pressing an invalid function key during interactive command
  518. Xentry used to destroy the string being entered.  This has
  519. Xbeen fixed.
  520. X
  521. X24. The ESCape vs. function key keyboard input discrimination
  522. Xalgorithm has been improved.  Fewer, if any, function keys will now
  523. Xmisinterpreted as ESCape keys followed by "junk."
  524. XREADME.P1           ECU 3.10 Patch 1     Mon Aug 12 03:46:20 EDT 1991
  525. X
  526. XThis describes patch 1 to ECU 3.10, bringing the program to
  527. Xversion 3.11.  Due to the manner in which the program builds its
  528. Xversion strings, patchlevel.h should contain #define PATCHLEVEL
  529. X11.
  530. X
  531. XTo use
  532. X------
  533. X
  534. XTo apply the patch, unshar all of the parts.  This step will
  535. Xcreate patch files and overwrite some files whose diffs were
  536. Xlarger than the new files.
  537. X
  538. Xtype the command
  539. X    sh PATCH1.APPLY
  540. X
  541. Xthen do the
  542. X    Configure
  543. Xsequence and re-make
  544. X
  545. XOnce you are satisfied the patch has been correctly applied,
  546. Xyou may 
  547. X    rm PATCH1.*
  548. Xand
  549. X    make neat
  550. Xto remove the usual crud and peanut hulls left on the floor after
  551. Xa patch operation.
  552. X
  553. XThis patch fixes the following problems:
  554. X----------------------------------------
  555. X
  556. X1.  ISC lock files are placed in /usr/spool/locks.  ECU now has a
  557. Xconfigurable lock file directory whose name is automatically selected
  558. Xdepending upon the machine type.
  559. X
  560. X1.  1.  Several problems with compiling the the makedirs program under
  561. XXENIX were fixed.
  562. X
  563. X3.  The 'w' (wait) subcommand of the dialing directory screen was not
  564. Xasking for both single and multiple entry list weait values, but only
  565. Xthe first.
  566. X
  567. X4.  VT220 and perhaps other terminals insist upon generating the CSI
  568. X(ESCape plus 0x80) character as a function prefix.  To handle the need
  569. Xfor eight bit keryboard support for nonansikeys, I did the following:
  570. X
  571. X   a. fixed the ECU code to honor the full eight bits of keyboard
  572. X      code sequences when processing function key reads.
  573. X
  574. X   b. removed other code that masks the parity bit of various data items.
  575. X
  576. X   c. added code the kbdtest3.c that includes an stty -a listing for
  577. X      the keyboard at the time it is run.  I also specify in clearer
  578. X      terms what parity was in use and that may be required to use
  579. X      the keyboard.
  580. X
  581. X5.  Previously, you had to have a copy of nonansikeys in each user's
  582. X.ecu directory who use non-ANSI consoles.  You may now put a single copy
  583. Xin the ECU library directory (usually /usr/local/lib/ecu).  ECU searches
  584. Xfirst in ~/.ecu then in the library directory.
  585. X
  586. X5a. The manual stated a number of restrictions regarding
  587. Xthe codes which can be transmitted by a keyboard to be supported
  588. Xby the non-ANSI console feature.  I missed updating that manual part
  589. Xwhen I released 3.10.  ECU 3.10 merely requires the code sequence
  590. Xto be free of nulls and less than 33 characters in length.
  591. X
  592. X6.  The models/nonansikeys file has been updated to include an entry for
  593. Xthe latest Metro Link X11R4 server.  The new server has improved default
  594. Xkey bindings and the previously dead KP_5 (unshifted Keypad 5) lives.
  595. X
  596. X7.  In previous revisions of ECU, when editing an existing string on a
  597. Xscreen, the cursor was placed at the end of the line at the commencement
  598. Xof editing.  This was untrue of 3.10 and this patch restores the
  599. Xbehavior.
  600. X
  601. X8.  Baud rates below 300 now get two stop bits.  I doubt anyone is using
  602. X110 baud but if you ever get the hankering, it will work now.
  603. X
  604. X9.  In the respond function of the expect-respond handler, \n sent CR
  605. Xnot NL as documented.
  606. X
  607. X10.  The test for an environment HZ was incorrect causing the
  608. Xsys/param.h value to be used always.
  609. X
  610. X11.  The 'nap' procedure command napped for the wrong amount of time if
  611. Xthe -m option was used.
  612. X
  613. X12. Under some conditions, ecuungetty would find a lock file created by
  614. Xits (parent) ECU and report that the line was in use by another dial out.
  615. XThis has been around for a long time.
  616. X
  617. X13. The command history mechanism got botched up by some last minute
  618. Xchanges to the tty line input editor. 
  619. X
  620. X14. Some work (largely in the dark) has been done to handle
  621. Xdifferences between ISC and SCO tty naming.  The new manual entry says
  622. Xof the -l startup switch:
  623. X
  624. X  The argument to the switch is the base name of the tty (e.g., "tty1a" or
  625. X  "acu0").  On SCO, since ttys are all named consistently according to the
  626. X  "/dev/ttyxx" form, you may omit the "tty" (e.g., "1a" or "4g").
  627. X
  628. XThe new manual entry says of the tty name fierld in the dialing directory:
  629. X
  630. X  A specific line is specified by using the base name of the tty (e.g.,
  631. X  "tty1a" or "acu0").  On SCO, since ttys are all named consistently
  632. X  according to the "/dev/ttyxx" form, you may omit the "tty" (e.g., "1a"
  633. X  or "4g").
  634. X
  635. XThis means than on ISC you must now fully specify the base name
  636. Xof the tty.  On SCO, you now have the -option- of doing the same or
  637. Xyou may continue to use the two character suffix.
  638. X
  639. XI believe that now:
  640. X
  641. X  on SCO, you may use any tty name whose base name begins with "tty".
  642. X  on ISC, add tty names whose base name begins with "acu"
  643. X
  644. X15. Miscellaneous other (nonvisible or debugging) changes were made.
  645. X
  646. X:EDITS: summary:
  647. X----------------
  648. XConfigure                   change FASI_IN_USE to FASI
  649. Xecu.c                       add memstat 
  650. Xecu.c                       jpm@logixwi fix: HZ getenv test wrong sense 
  651. Xecu.c                       soup up -l for ISC vs. SCO 
  652. Xecu.h                       configurable lock directory 
  653. XecuLCK.c                    SCO_TTY_NAMING considerations 
  654. XecuLCK.c                    configurable lock directory 
  655. XecuLCK.c                    race with ecuungetty over lock resolved 
  656. Xecucmd.h                    add memstat 
  657. Xecuicmd.c                   add memstat 
  658. Xecuicmd.c                   turn off memstat after frustrating evening 
  659. Xecuicmhelp.c                when editing string, set cursor to end 
  660. Xecuicmhist.c                new ttygets botched command history handler 
  661. Xeculine.c                   SCO_TTY_NAMING considerations 
  662. Xeculine.c                   baud rates below 300 get two stop bits 
  663. Xeculine.c                   remove unused externs 
  664. Xeculock.c                   US_WEGOTIT handling 
  665. Xeculock.c                   configurable lock directory 
  666. Xecuphone.c                  soup up tty name for ISC vs. SCO 
  667. Xecuphone.c                  w subcommand was not asking both questions 
  668. Xecuphone.c                  when editing string, set cursor to end 
  669. Xecusetup.c                  ISC tty names 
  670. Xecuungetty/ecuungetty.c     US_WEGOIT handling 
  671. Xecuungetty/ecuungetty.c     add debug log event code 
  672. Xecuwinutil.c                when editing string, set cursor to end 
  673. Xexpresp.c                   \n sent CR not NL 
  674. Xexpresp.c                   detect NULL expect string 
  675. Xexpresp.c                   nap min of hzmsec if \m 
  676. Xhdbintf.c                   US_WEGOTIT handling 
  677. Xkbdtest3.c                  add parity reporting 
  678. Xkbdtest3.c                  some terminals reinvent parity bit's use 
  679. Xlint_args.h                 afterlint-creation 
  680. Xlogevent.c                  use static logname 
  681. Xmakedirs.c                  need smart_fork for XENIX 
  682. Xmkdirs.c                    how did compile succeed without signal.h? 
  683. Xmkdirs.c                    no need for sys/wait.h + XENIX doesn't have it 
  684. Xmodels/nonansikeys          add new Metro Link server entry
  685. Xnonansikey.c                allow any code as first in key sequence 
  686. Xnonansikey.c                look for nonansikeys in ECULIBDIR too 
  687. Xpcmd.c                      add nap -1 return and proctrace 
  688. Xpcmd.c                      nap -m test wrong sense ... old bug! 
  689. Xutmpstat.c                  US_WEGOTIT handling 
  690. Xutmpstatus.h                add US_WEGOTIT 
  691. Xz/Make.src                  neat used wrong rm args
  692. Xzgcc                        thanks for the -p1 suggestion to sef@kithrup.com
  693. X
  694. XREADME.P2           ECU 3.10 Patch 2        Tue Aug 13 16:29:11 EDT 1991
  695. X
  696. XThis describes patch 2 to ECU 3.10, bringing the program to
  697. Xversion 3.12. 
  698. X
  699. XThe majority of this patch deals with the way SCO and ISC misimplement
  700. Xthe nap() system call.  A lingering problem with the interactive
  701. Xcommand history handler is also fixed (pressing erroneous function keys
  702. Xcaused the display to become garbaged).
  703. X
  704. XISC and SCO UNIX nap() misbehave.  This kludge doesn't return the
  705. Xproper value (the actual time slept), but at least it does not make
  706. Xa mockery of the manual page.  It says:
  707. X
  708. X     NAP(S)               UNIX System V            NAP(S)
  709. X
  710. X     Name
  711. X      nap -    suspends execution for a short interval
  712. X
  713. X     Syntax
  714. X      long nap(period)
  715. X      long period;
  716. X
  717. X     Description
  718. X      The current process is suspended from    execution for at least
  719. X      the number of    milliseconds specified by period, or until a
  720. X      signal is received.
  721. X
  722. X     Return Value
  723. X      On successful    completion, a long integer indicating the
  724. X      number of milliseconds actually slept    is returned. If    the
  725. X      process received a signal while napping, the return value
  726. X      will be -1, and errno    will be    set to EINTR.
  727. X
  728. X     See Also
  729. X      sleep(S)
  730. X
  731. X     Notes
  732. X      This function    is driven by the system    clock, which in    most
  733. X      cases    has a granularity of tens of milliseconds.  This
  734. X      function must    be linked with the linker option -lx.
  735. X
  736. XIt appears nap() under UNIX 3.2.x has departed virtually entirely from
  737. Xthe manual page.  I'm beginning to look rather silly in several
  738. Xmilleus since I keep telling people SCO UNIX is a viable upgrade from
  739. XXENIX.  But process control people need some kind of timing capability
  740. Xless than one second and we can't do it with nap or select.
  741. X
  742. Xnap(msec) is supposed to nap *at least* msec milliseconds.  However,
  743. Xif msec is specified less than 1000/HZ + 1, it will not nap at all.
  744. XThis was true for 3.2.0 and 3.2.1.
  745. X
  746. XIt is supposed to return the number of milliseconds it actually
  747. Xslept.  Instead, it appears to "save up" the values and return them in
  748. Xlots of 1000. This behavior is true for 3.2.2.
  749. X
  750. XAs it is nap() is nearly useless.  I believe select() suffers
  751. Xfrom the same deficiency (< 1000 msec timeout becomes 1000 msec) but
  752. XI haven't "proven" it yet.
  753. X
  754. XREADME.P3           ECU 3.10 Patch 3        Tue Aug 27 03:36:04 EDT 1991
  755. X
  756. XThis describes patch 3 to ECU 3.10, bringing the program to
  757. Xversion 3.13. 
  758. X
  759. XOverview
  760. X--------
  761. X
  762. XThe patch fixes some problems with the previous release, adds new
  763. Xfunctionality and adds support for SunOS 4.1 and ISC System V
  764. XRelease 4.  I have tested it fairly well on a Sparc 1+ under
  765. XX11R4 (MIT Sun server and xterm at PL18) and SunOS 4.1.  I did my
  766. Xbest to integrate patches supplied by Lothar Hirschbiegel
  767. X(aega!lh).  Lothar has ISC SVR4 and his changes worked for him,
  768. Xbut I had to hack them since his patches were against the
  769. X"official" 3.12 and I applied them to sources already half-ported
  770. Xto the Sun.  I hope they go well, but write if they don't.  I want
  771. Xto hear of any success you might have with other SVR4 systems, too.
  772. X
  773. XSystem V Release 4
  774. X------------------
  775. X
  776. X> I cannot offer much information on this, since Lothar sent little more than
  777. X> patches and I have no access to a system for testing. 
  778. X> This is what I have:
  779. X> I've just finished porting ecu3.12 to SVR4. I have added my changes
  780. X> as a diff file, maybe this is of interest for you.
  781. X> The following points were added/changed:
  782. X> 
  783. X> 1. I have included a configuration option for SVR4 in config.c
  784. X> 2. ecu works fine with "ttymon" under SVR4. This means you don't need
  785. X>    FAS or something like this - bidirectional access to the serial ports
  786. X>    with the stock asy drivers is ok.
  787. X> 3. Because of some strange(?) behaviour in SVR4 curses I had to use
  788. X>    some terrible kludges to make it work clean. It's working as it is,
  789. X>    but there is obvilously room for improvement...
  790. X> 4. SVR4 has the same set of hardware handshake ioctl's as SCO does.
  791. X>    It's named differently (RTSXOFF and CTSXON), but it seems to work exactly
  792. X>    the same way. I have enabled the "RTS" option for SVR4 - hopefully this
  793. X>    is a standard feature (termiox) in *all* SVR4 versions, not just in
  794. X>    my ISC release... :-)
  795. X> 5. I'm still working on ecusz/ecurz. Outgoing transfer is doing fine, but
  796. X>    incoming transfer locks up the connection sometimes.
  797. X>    As soon as I have finished this, I could send you the cdiffs too.
  798. X
  799. XSunOS
  800. X-----
  801. X
  802. XI brought this up in relatively short order.  I may have gotten
  803. Xwhat I paid for :-), but it seems stable.  The System V support
  804. Xunder SunOS was pleasingly similar to the SVR3 environment ECU came
  805. Xfrom.  This release works on my Sparc 1+ with SunOS 4.1.1 and X11R4.
  806. XSome xterm VT100.Translations overrides are necessary to enable use of
  807. Xcertain keys unrecognized by the default xterm configuration.
  808. XDetails are provided in the updated models/nonansikeys.  If the
  809. Xrecommended changes, you can do what I did to figure out how to
  810. Xget this guy going:
  811. X
  812. X  1. run xev and press the various function keys to see the
  813. Xnames you need to specify in the xterm translations.  
  814. X  2. edit the translations in nonansikeys example and put them in
  815. Xyour .Xdefaults file
  816. X  3. run kbdtest3 to get a kbdtest3.out file
  817. X  4. put this file's output into your ~/.ecu/nonansikeys file
  818. X(near the top, ahead of other xterm defs so it will be found first).
  819. X  5. try it
  820. X  6. when it works, send me the kbdtest3.out file along with the
  821. XVT100.Translations overrides you casme up with and a description of
  822. Xthe X environment you used.
  823. X
  824. XThere is also a new entry named 'sun' in models/nonansikeys for the
  825. Xconsole.
  826. X
  827. XNote on 'nonansikeys'
  828. X---------------------
  829. X
  830. XThis file was named when support was added to the original
  831. XSCO-only version to support keyboard/screens other than the
  832. Xnative multiscreen console.  Since the TERM name for multiscreens
  833. Xis "ansi", it seemed reasonable to name the file nonansikeys.  It
  834. Xnow should probably be called 'nonSCOmultiscreenskeys', but that
  835. Xname is too long for System V :-).  Before too many more
  836. Xrevisions, even SCO multiscreen key definitions will be read from
  837. Xnonansikeys and maybe then will be a good time to rename the
  838. Xfile.  Anyway, this file and a good termcap definition takes you
  839. Xa long way to supporting ecu on a wide variety of System V{,-ish}
  840. Xplatforms.
  841. X
  842. XFixes
  843. X-----
  844. X
  845. X1.  The ANSI SD (scroll down) sequence was broken for consoles
  846. Xother than SCO multiscreens.  It scrolled down n * COLS lines
  847. Xinstead of n lines.
  848. X
  849. X2.  Editing the null phone directory entry (pressing 'e' in an
  850. Xempty directory, editing and exiting) caused a core dump.  Now
  851. Xyou are prevented from editing a non-existent entry.
  852. X
  853. X3.  Procedure commands with switch arguments longer than 8
  854. Xcharacters caused stack corruption (unpredictable behavior
  855. Xincluding core dump).  There is no call for switches this long,
  856. Xbut if present, the program should not explode.  Now, switches
  857. Xlonger thasn 8 characters (including the hyphen) are silently
  858. Xtruncated.  Should commands ever be added which could conceivably
  859. Xevoke switch arguments that might approach the limit, either the
  860. Xlimit will be extended or error reporting will be added, or both,
  861. Xas appropriate.
  862. X
  863. X4.  # comments to the right of nonansikey key definition lines
  864. Xerroneously included the # in the definition.  This may not have
  865. Xbeen a bug in 3.12.  I may have added it during 3.13 development,
  866. Xbut it is gone now in any case.
  867. X
  868. X5.  Previously, if the console line baud rate was not at least 4
  869. Xtimes the tty line rate (roughly), the "no curses" mode was
  870. Xforced during file transfer and could not be overridden.  Since
  871. Xvarious video driver implimentations express verious pseudo-"baud
  872. Xrate" settings, this was more often a problem than a feature.  If
  873. Xthe change causes you trouble, write me (or trying using Home pc
  874. Xsz -N in lieu of Home pc sz, etc.).
  875. X
  876. X6.  Previously, an effort was made to editorialize on your choice
  877. Xof a tty device name.  This is no longer done.  On SCO, you
  878. Xshould use the lower case (direct) names, like tty1a, to get the
  879. Xexpected lock file names, but trying to second guess all the
  880. Xvendor and third-party names was an unnecessary and
  881. Xcounter-productive stumpling block.  If you want to go for
  882. X/dev/swap, go ahead (I don't expect the ioctls to work -- or your
  883. Xsystem :-> ).
  884. X
  885. X7.  Andrew A. Chernov (ache@hq.demos.su) said:
  886. X
  887. X1) HDB dialers may return connect speed as return code (!= 0)
  888. X [ and the CONNECT string built by hdbintf.c prints this code -- wht]
  889. X [his patch used - wht]
  890. X2) Using HDB Dialcodes file for phone numbers translation now
  891. X   (\D,\T escape sequence)
  892. X [his patch used - wht]
  893. X
  894. XIn other mail he wrote:
  895. X
  896. XI just found  little bugs:
  897. X1) XENIX standard cc doesn't understand prototypes with names:
  898. X"FILE *" is ok, but "FILE *fp" is bad. (patched sea/lint_args.h)
  899. X [fixed - wht]
  900. X2) 'makedirs' program NEED last '/' in path name to make directory.
  901. XAll Make.src patched to add '/' at the end of dirs.
  902. X [fixed n a different way; makedirs now works as advertised - wht]
  903. X3) Some HDB dialers looks in argv[0] and change some parameters
  904. X(f.e. speed, etc.), so name "ECUdial" is invalid, and need change to
  905. Xdve->dialprog. WARNING: this patch required my previous patch
  906. X(use 'token' instead of 'stripped_num')
  907. X [his patch used - wht]
  908. X
  909. X8. Jan-Piet Mens <logixwi.uucp!jpm> reported problems
  910. Xwith VT-220 support due to it's necessity of passing characters
  911. Xwith the sign bit set.  As of now, characters are read by ecu and kept
  912. X8-bit intact until they have been passed through the key mapping filter.
  913. XKeys actually input to the program or sent over the line are
  914. Xlimited to 7 bits for now (sorry to my international friends) since
  915. Xcharacters with the sign-bit have internal significance to ECU.
  916. XThis is a primary example of "American's Disease" (7-bit ASCII) and I'll get
  917. Xit out of here as soon as I get over "Warren's Disease" (laziness).
  918. X
  919. XHe also reported:
  920. X> In README.P1, you write that the "nonansikeys" file may be put in
  921. X> ECULIBDIR.  This is incorrect: it is searched for in
  922. X> ECULIBDIR/.ecu [Line 193 nonansikey.c]
  923. X
  924. XAcknowledgments
  925. X---------------
  926. X
  927. XI've already mentioned Lothar's work in a matter-of-fact manner,
  928. Xbut here is the place for extreme words of appreciation. SVR4 is
  929. Xvery important and kudos to him for the leg up.
  930. X
  931. XRobert E.  Laughlin, Naval Ocean Systems Center (NOSC), bel@trout.nosc.mil,
  932. Xreported various successes and failures.  We had a good and continuing
  933. Xdialog.  His interest, suggestions and moral support did more for me than my
  934. Xsupport of ECU did for him.
  935. X
  936. XAndrew Chernov, of Relcom fame, made important suggestions and
  937. Xfixes for XENIX support and for the product as a whole.  He made
  938. Xsome important suggestions for an older revision as well, some of
  939. Xwhich I put in and some not (Variously, I was too lazy, busy or
  940. Xthe code had gone too far away from what he was patching from).
  941. XHis work is laudable and important for many reasons far exceeding
  942. Xhis support of this little program.  Keep him in your thoughts
  943. Xthrough these strange and wonderous times.
  944. X
  945. XIt was good to hear from these folks for their comments asnd fixes:
  946. X
  947. X Andy Hall <relay.EU.net!ncduk!andyh>
  948. X Dave Hammond <dsix2!daveh
  949. X Greg Wilkins <sir-alan!gregw>
  950. X Michael P. Deignan <anomaly.sbs.com!mpd>
  951. X Michael Traub <rtf.bt.co.uk!traub>
  952. X cmcl2.NYU.EDU!panix!tbetz (Tom Betz)
  953. X Jan-Piet Mens <logixwi.uucp!jpm>
  954. X mudos.ann-arbor.mi.us!mju (Marc Unangst)
  955. X lll-winken.llnl.gov!abhg!tao!tempest!whitemp
  956. X ucsd!jadpc.cts.com!jdeitch
  957. X
  958. XThis file is harder to write than all of the code changes.  Not
  959. Xonly is it hard to remember what all bugs were reported by whom
  960. Xand what changes were fixed by whom, I hope I haven't missed
  961. Xcrediting anyone.  if I did, please forgive me.
  962. X
  963. XKeep dem cards and letters coming.
  964. X
  965. X
  966. XREADME.P4           ECU 3.10 Patch 4       Wed Aug 28 09:43:44 EDT 1991
  967. X
  968. XThis describes patch 4 to ECU 3.10, bringing the program to
  969. Xversion 3.14.
  970. X
  971. XThe majority of this patch deals with good work done by Paul
  972. XSlootman (slootman@dri.nl) on the SVR4 port.  From what he
  973. Xencountered, I am very very disappointed in some of the more anal
  974. XANSI C implementations out there.  Trigraphs suck and we all knew
  975. Xthat, but having to cast a constant in a comparison with
  976. Xstrlen???  (Excuse me -- that is a trigraph -- I must learn to
  977. Xsay \?\?\?).
  978. X
  979. XOh well, there are a few other kinds of fixes in here too: ISC
  980. Xshould be better off.  Some of the conditionally compiled code
  981. Xthat was running for SCO only should have been in for ISC too.
  982. X
  983. XI thought I had fixed the bad search for nonansikeys in
  984. XECULIBDIR/.ecu/ instead of ECULIBDIR/, but it is fixed now.
  985. X
  986. XTo use:
  987. X       patch -p < PATCH4.01
  988. X       Configure
  989. X       make
  990. X       su root (may not be necessary on Sun or SVR4 if you
  991. X               have write access to the installed directories)
  992. X       make install
  993. X
  994. XREADME.P6           ECU 3.10 Patch 6     Wed Sep  4 00:41:23 EDT 1991
  995. X
  996. XThis describes patch 5 to ECU 3.15, bringing the program to
  997. Xversion 3.15.
  998. X
  999. XFiles in Patch 5:
  1000. XREADME.P5
  1001. XPATCH5.01
  1002. Xfasi/fas.h
  1003. Xckermit/ckutio-ecu.dif
  1004. Xmemmove/README
  1005. Xmemmove/memmove.s
  1006. Xmemmove/memmove286.asm
  1007. Xmemmove/memmove386.asm
  1008. Xtimetest/Makefile
  1009. Xtimetest/naptest.c
  1010. Xtimetest/naptest2.c
  1011. Xtimetest/naptest3.c
  1012. Xtimetest/seltest.c
  1013. X
  1014. XFirst, a note of apology to Sun users.  I used the -mm nroff macros
  1015. Xto write the manuals.  Sun provides -ms and -me, but not -mm.
  1016. XI'm looking for some PD replacements, but haven't succeeded yet.
  1017. XI'll be glad to mail an updated manual to anyone who asks.  I'm
  1018. Xalso looking for a friendly ftp site to hold updates, hence manuals.
  1019. X
  1020. X1. Improvements in the SVR4 port have been made, but now
  1021. XSVR4 almost certainly means an AT&T/Intel/ISC 386 port,
  1022. X                                              ^^^
  1023. Xsince we expect to find /usr/include/sys/at_ansi.h and
  1024. X/usr/include/sys/sys/kd.h files for console color capability.
  1025. X(Color is not yet supported on Sun -- only monochrome xterms
  1026. Xand the console without color manipulation).
  1027. X
  1028. XIf you have trouble with compiling ecutty.c for SVR4 (complaints
  1029. Xabout not finding either of these header files), temporarily remove the
  1030. XSVR4 condition for inclusion of them and for using the CONS_GET code
  1031. Xnear the bottom of the source.
  1032. X
  1033. X2.  Many improvements were made in the area of system independence.
  1034. XThe build procedure configures the location of HDB Devices,
  1035. XDialcodes and Dialers files among the various environments:
  1036. XSCO   /usr/lib/uucp
  1037. XISC   /usr/lib/uucp
  1038. XSun   /etc/uucp
  1039. XSVR4  /etc/uucp
  1040. X
  1041. X3. A new feature of Configure is the inclusion of local configuration
  1042. Xin the Makefiles it builds.  If you build a file named "config.local"
  1043. Xin the base source directory, it's contents will be placed ahead of
  1044. Xall other make statements in each Makefile.
  1045. X
  1046. XExample customization include:
  1047. XCFLAGS_EXTRA  = -Dwhatever
  1048. XGCC_CFLAGS_EXTRA = -fsoft-float  #just an example :-)
  1049. XCC_CGLAGS_EXTRA = -p
  1050. XSYMBOLIC = -g             # if you want sdb/dbx/gdb symbols in programs
  1051. XBINTIME = /bin/time       # if you want stats on each make step
  1052. XLDFLAGS_EXTRA  = -ljuicier-malloc
  1053. X
  1054. XJudicious use of this may help you avoid changing Make.src files
  1055. Xthus making patch complain about future patches, but 
  1056. X
  1057. X4. A patch from Andrew Chernov that fell out of the last version
  1058. Xwas reapplied:  Many SCO-style dialer programs do not care
  1059. Xwhat is in argument 0 (the command name) when they are executed,
  1060. Xbut some do.  Before this patch, the argument passed was "ECUdial"
  1061. Xsince the gendial dialers *can* make use of it.  This usage
  1062. Xconflicted with some of Andrew's dialers which need the actual
  1063. Xname passed.  So, starting with this edition, if you invoke
  1064. Xa dialer program, its complete pathname will appear in argv[0].
  1065. XIf you want the old behavior, add a file to the base directory
  1066. Xcalled config.local and place in it the line:
  1067. X
  1068. X  CFLAGS_EXTRA = -DECUdial
  1069. X3. The usefulness of _rc.ep has been enhanced by adding the
  1070. X'setline' procedure command.    This command is only valid during the
  1071. Xexecution of _rc.ep.  It allows you to override the selection of
  1072. Xa default line as if you had used the -l switch.  In fact, using
  1073. Xthe commabnd overrides -l.
  1074. X
  1075. XUsage: setline <filename>
  1076. X
  1077. XThis command is an exact analog of the -l command line switch.
  1078. X<filename> is used on the setup screen (if it is presented)
  1079. Xas the default filename. If you do not edit this name, ECU will
  1080. Xattempt to open the line when you press End or ^D. 
  1081. X
  1082. X<filename> has the format of a complete pathanme in /dev or simple
  1083. Xtty name. 
  1084. X
  1085. XExample:
  1086. X  setline '/dev/tty1a'
  1087. X  setline 'tty1a'
  1088. X  setline 'cua0'
  1089. X
  1090. X5. Similarly, using the 'baud' and 'parity' procedure commands in
  1091. X_rc.ep serve as an exact analog of the -b, -e and -e command line switches.
  1092. XUsing 'baud' and 'parity' in rc_ep override the equivalent
  1093. Xcommand line switches.
  1094. X
  1095. X6.  On the Sun, STREAMS termios is used in lieu of termio.  The code
  1096. Xused for draining the line output queue ("wait for all transmitted
  1097. Xdata to be sent over the line") has been improved, making
  1098. Xexpect-respond, file transfer and other highly interactive operations
  1099. Xmore reliable.
  1100. X
  1101. X7.  The following files normally found in a personal ~/.ecu
  1102. Xdirectory may now have a systedm default in ECULIBDIR:
  1103. X
  1104. X   colors
  1105. X   keys
  1106. X   nonansikeys
  1107. X
  1108. X8. Unreported bugs in the format of the keys and nonansikeys files have
  1109. Xbben fixed.  Specifically, whitespace and comments are allowed after keyset
  1110. Xor terminal names.
  1111. X
  1112. X9. On ISC 2.2 systems, the console was left in standout or bold
  1113. Xmode at exit from ECU.  I believe this problem is now fixed.
  1114. X
  1115. X10. The GCC compilation flags for 386 versions have been updated to use
  1116. X-fcall-used-bx rather than -fcall-used-{ax,bx,cs,dx].
  1117. X
  1118. XIt turns out the only problem ECU had with strenuously optimized GCC
  1119. Xoptions was that SCO's memmove clobbers the bx register, which is
  1120. Xsupposed to be reserved for use as a register variable by all
  1121. Xcompilers, MSC or otherwise.
  1122. X
  1123. XIf you use the new memmove routines supplied with this patch, you may
  1124. Xomit this switch as well.  It is probably not worth fooling with any
  1125. Xof that unless you are just interested in the problem.
  1126. X
  1127. X11. I forgot to include the version 4F kermit diff file.  It's included
  1128. Xin here.
  1129. X
  1130. X12. In patch 2, I reported nap() in SCO UNIX systems to be faulty in varying
  1131. Xmanners depending on x in the 3.2.x version number.  ISC 2.2.1 nap also
  1132. Xmisbehaves in a similar manner. 
  1133. X
  1134. XSCO very promptly supplied me with an /etc/conf/pack.d/kernel/os.o for
  1135. Xrelinking the kernel which fixes the problem somewhat, but not
  1136. Xcompletely.  Watch this space.  Some testing programs can be found in
  1137. Xtimetest/ as of this patch.
  1138. X
  1139. X13.  I've thought for some time SCO select might also be buggy.  I finally
  1140. Xwrote some test programs and proved it.  SCO select may appear to work
  1141. Xcorrectly for a few iterations, but rapidly degenerates into rounding
  1142. Xall timeout specifications to the nearest second.  Run timetest/seltest
  1143. Xfor a visual feel of what's going on.
  1144. X
  1145. XThe #define WORKING_SELECT is now supploied by the Configure procedure
  1146. Xfor systems that have a usable select.  See the updated README file 
  1147. Xnote 3 and ecuutil.c Nap() for details.
  1148. X
  1149. X
  1150. XREADME.P5           ECU 3.10 Patch 5     Wed Sep  4 00:41:23 EDT 1991
  1151. X
  1152. XThis describes patch 6 to ECU 3.16, bringing the program to
  1153. Xversion 3.16.
  1154. X
  1155. XTwo quick fixes here:
  1156. XThe configuration procedure screws up when you cc on SVR4, Sun or ISC
  1157. X1. I forgot to put -DWORKING_SELECT in for cc on these machines.
  1158. X2. A '(' got changed to a '*' somewhere in the process.
  1159. X
  1160. XBad QA.  Sorry.
  1161. SHAR_EOF
  1162. chmod 0644 OLD-HISTORY-2 ||
  1163. echo 'restore of OLD-HISTORY-2 failed'
  1164. Wc_c="`wc -c < 'OLD-HISTORY-2'`"
  1165. test 33749 -eq "$Wc_c" ||
  1166.     echo 'OLD-HISTORY-2: original size 33749, current size' "$Wc_c"
  1167. rm -f _shar_wnt_.tmp
  1168. fi
  1169. # ============= ESOTERIC ==============
  1170. if test -f 'ESOTERIC' -a X"$1" != X"-c"; then
  1171.     echo 'x - skipping ESOTERIC (File already exists)'
  1172.     rm -f _shar_wnt_.tmp
  1173. else
  1174. > _shar_wnt_.tmp
  1175. echo 'x - extracting ESOTERIC (Text)'
  1176. sed 's/^X//' << 'SHAR_EOF' > 'ESOTERIC' &&
  1177. XThis interesting article appeared last summer:  much of the wisdom
  1178. Xapplys to the ECU procedure language :-)
  1179. X
  1180. X> From: guy@auspex.auspex.com (Guy Harris)
  1181. X> Newsgroups: comp.unix.questions
  1182. X> Subject: Re: Funny kill -9 behaviour
  1183. X> Message-ID: <3920@auspex.auspex.com>
  1184. X> Date: 18 Aug 90 21:27:07 GMT
  1185. X> References: <909@sagpd1.UUCP>
  1186. X> Organization: Auspex Systems, Santa Clara
  1187. X> Lines: 16
  1188. X> 
  1189. X> >What I want to know is why in the hay does this happen?
  1190. X> 
  1191. X> Because the C shell is flakier than a snowstorm.  To quote the BUGS
  1192. X> section of the SunOS 4.0.3 manual page (this quote is also in the S5R4
  1193. X> "csh" manual page):
  1194. X> 
  1195. X>      Although robust enough for general use, adventures into  the
  1196. X>      esoteric  periphery  of  the  C  shell may reveal unexpected
  1197. X>      quirks.
  1198. X> 
  1199. X> which translates as "the C shell is flakier than a snowstorm."
  1200. SHAR_EOF
  1201. chmod 0644 ESOTERIC ||
  1202. echo 'restore of ESOTERIC failed'
  1203. Wc_c="`wc -c < 'ESOTERIC'`"
  1204. test 835 -eq "$Wc_c" ||
  1205.     echo 'ESOTERIC: original size 835, current size' "$Wc_c"
  1206. rm -f _shar_wnt_.tmp
  1207. fi
  1208. # ============= Configure ==============
  1209. if test -f 'Configure' -a X"$1" != X"-c"; then
  1210.     echo 'x - skipping Configure (File already exists)'
  1211.     rm -f _shar_wnt_.tmp
  1212. else
  1213. > _shar_wnt_.tmp
  1214. echo 'x - extracting Configure (Text)'
  1215. sed 's/^X//' << 'SHAR_EOF' > 'Configure' &&
  1216. X:
  1217. X#!/bin/sh
  1218. X#+---------------------------------------------------------------------
  1219. X# ECU Configure
  1220. X#
  1221. X# PEDANTIC not recommended unless you want to do extensive
  1222. X# vendor-supplied header file hacking.
  1223. X#----------------------------------------------------------------------
  1224. X#+:EDITS:*/
  1225. X#:09-10-1992-13:58-wht@n4hgf-ECU release 3.20
  1226. X#:08-22-1992-15:37-wht@n4hgf-ECU release 3.20 BETA
  1227. X#:07-09-1992-18:09-wht@n4hgf-ecunumrev a bad idea
  1228. X#:07-07-1992-16:30-wht@gyro-add ecunumrev to config
  1229. X#:08-25-1991-05:11-wht@n4hgf2-added Sun n4hgf2 WHT automation
  1230. X#:08-06-1991-05:05-wht@n4hgf-change FASI_IN_USE to FASI
  1231. X#:07-12-1991-14:05-wht@n4hgf-ensure config.c compiles properly
  1232. X#:04-29-1991-02:39-wht@n4hgf-document/clean
  1233. X
  1234. X# --> add any of the following (99% of everybody will want to leave alone)
  1235. X# -DFASI     if you have installed and want to exploit the features
  1236. X#            of my FAS instrumentation extensions
  1237. X# -DMORSE if you have installed and want to use the n4hgf morse driver
  1238. X# -DPEDANTIC if you want to use -ansi -pedantic with gcc (not
  1239. X#            necessary or recommended unless you anticipate heavy
  1240. X#            code modification)
  1241. X# -DMETROLINK_X11R4_PTS if you have early 'pts-using' Metro Link
  1242. X#            xterms
  1243. XCFLAGS=
  1244. X
  1245. X# a bit of self indulgence for me (ignore it or be inspired)
  1246. XSYSTEM=
  1247. X[ -f /etc/systemid ] && SYSTEM=`cat /etc/systemid`
  1248. X[ "$SYSTEM" = "n4hgf" ] && CFLAGS='-DWHT'
  1249. X[ -f /etc/hostname.le0 ] && SYSTEM=`cat /etc/hostname.le0`
  1250. X[ "$SYSTEM" = "n4hgf2" ] && CFLAGS='-DWHT'
  1251. X
  1252. Xecho Please wait while I compile the config program.
  1253. Xrm -f ./config
  1254. Xcc $CFLAGS config.c -o config > /tmp/config.cc.log 2>&1
  1255. X[ -x ./config ] && rm -f /tmp/config.cc.log
  1256. X[ -x ./config ] || echo '/tmp/config.cc.log has compile errors'
  1257. X./config
  1258. X
  1259. X#end of Configure
  1260. SHAR_EOF
  1261. chmod 0755 Configure ||
  1262. echo 'restore of Configure failed'
  1263. Wc_c="`wc -c < 'Configure'`"
  1264. test 1752 -eq "$Wc_c" ||
  1265.     echo 'Configure: original size 1752, current size' "$Wc_c"
  1266. rm -f _shar_wnt_.tmp
  1267. fi
  1268. # ============= Make.src ==============
  1269. if test -f 'Make.src' -a X"$1" != X"-c"; then
  1270.     echo 'x - skipping Make.src (File already exists)'
  1271.     rm -f _shar_wnt_.tmp
  1272. else
  1273. > _shar_wnt_.tmp
  1274. echo 'x - extracting Make.src (Text)'
  1275. sed 's/^X//' << 'SHAR_EOF' > 'Make.src' &&
  1276. X#+------------------------------------------------------------------- 
  1277. X# Make.src - master Makefile source for ECU and related programs
  1278. X# If THIS line is the third in the file you are reading, refer to
  1279. X# the files README and Configure.
  1280. X# wht@n4hgf.Mt-Park.GA.US
  1281. X#--------------------------------------------------------------------
  1282. X#+:EDITS:*/
  1283. X#:09-10-1992-13:58-wht@n4hgf-ECU release 3.20
  1284. X#:08-22-1992-15:37-wht@n4hgf-ECU release 3.20 BETA
  1285. X#:07-17-1992-18:23-wht@n4hgf-new module nap.c
  1286. X#:07-07-1992-20:04-wht@n4hgf-new installation mechanism
  1287. X#:05-17-1992-18:50-wht@n4hgf-add cpio
  1288. X#:02-10-1992-05:47-wht@n4hgf-mcs avail on some systems when non-COFF produced
  1289. X#:09-03-1991-23:47-wht@n4hgf2-add timetest directory
  1290. X#:09-02-1991-19:25-wht@n4hgf2-ckutio dif and fas.h left out of distribution
  1291. X#:09-01-1991-16:22-wht@n4hgf2-generalize HDB config location
  1292. X#:08-23-1991-13:35-wht@n4hgf-sun porting (3.13)
  1293. X#:07-25-1991-12:55-wht@n4hgf-ECU release 3.10
  1294. X#:04-21-1991-12:43-wht@n4hgf-convert to Make.src
  1295. X
  1296. XPROGRAM = ecu
  1297. XINSTALLABLE = $(LBIN)/$(PROGRAM)
  1298. X
  1299. XECUSHARNAME=ecu320
  1300. XMANSHARNAME=ecuman320
  1301. X
  1302. XLIBFUNCKEYMAP = $(ECULIBDIR)/funckeymap
  1303. X
  1304. XSHELL = /bin/sh
  1305. X
  1306. X.SUFFIXES:
  1307. X.SUFFIXES: .o .c .h .l
  1308. X.c.o:;    $(BINTIME) $(CC) -c $(CFLAGS) $*.c 
  1309. X
  1310. X
  1311. XSRC    = \
  1312. X    bamboozle.c\
  1313. X    cmdtbl.c\
  1314. X    ecu.c\
  1315. X    ecuLCK.c\
  1316. X    ecuchdir.c\
  1317. X    ecudump.c\
  1318. X    ecufinsert.c\
  1319. X    ecufkey.c\
  1320. X    ecufork.c\
  1321. X    ecuDCE.c\
  1322. X    ecugrabbag.c\
  1323. X    eculine.c\
  1324. X    eculock.c\
  1325. X    ecunumrev.c\
  1326. X    ecuicmaux.c\
  1327. X    ecuicmhelp.c\
  1328. X    ecuicmhist.c\
  1329. X    ecuicmd.c\
  1330. X    ecupde.c\
  1331. X    ecuphdir.c\
  1332. X    ecuphrase.c\
  1333. X    ecurcvr.c\
  1334. X    ecuscrdump.c\
  1335. X    ecusetup.c\
  1336. X    ecushm.c\
  1337. X    ecusighdl.c\
  1338. X    ecutcap.c\
  1339. X    ecutime.c\
  1340. X    ecutty.c\
  1341. X    ecuuclc.c\
  1342. X    ecuusage.c\
  1343. X    ecuutil.c\
  1344. X    ecuwinutil.c\
  1345. X    ecuxfer.c\
  1346. X    esdutil.c\
  1347. X    fasiintf.c\
  1348. X    expresp.c\
  1349. X    feval.c\
  1350. X    gint.c\
  1351. X    gstr.c\
  1352. X    hdbintf.c\
  1353. X    logevent.c\
  1354. X    nap.c \
  1355. X    funckeymap.c\
  1356. X    pcmd.c\
  1357. X    pcmdif.c\
  1358. X    pcmdfile.c\
  1359. X    pcmdtty.c\
  1360. X    pcmdwhile.c\
  1361. X    pcmdxfer.c\
  1362. X    poutput.c\
  1363. X    pprintf.c\
  1364. X    proc.c\
  1365. X    proc_error.c\
  1366. X    procframe.c\
  1367. X    regexp.c\
  1368. X    ttynaming.c\
  1369. X    utmpstat.c\
  1370. X    var.c
  1371. X
  1372. XOBJ    = \
  1373. X    bamboozle.o\
  1374. X    cmdtbl.o\
  1375. X    ecu.o\
  1376. X    ecuLCK.o\
  1377. X    ecudump.o\
  1378. X    ecuchdir.o\
  1379. X    ecufinsert.o\
  1380. X    ecufkey.o\
  1381. X    ecufork.o\
  1382. X    ecuDCE.o\
  1383. X    eculine.o\
  1384. X    eculock.o\
  1385. X    ecunumrev.o\
  1386. X    ecuicmaux.o\
  1387. X    ecuicmhelp.o\
  1388. X    ecuicmhist.o\
  1389. X    ecuicmd.o\
  1390. X    ecugrabbag.o\
  1391. X    ecupde.o\
  1392. X    ecuphdir.o\
  1393. X    ecuphrase.o\
  1394. X    ecurcvr.o\
  1395. X    ecuscrdump.o\
  1396. X    ecusetup.o\
  1397. X    ecushm.o\
  1398. X    ecusighdl.o\
  1399. X    ecutcap.o\
  1400. X    ecutime.o\
  1401. X    ecutty.o\
  1402. X    ecuuclc.o\
  1403. X    ecuusage.o\
  1404. X    ecuutil.o\
  1405. X    ecuwinutil.o\
  1406. X    ecuxfer.o\
  1407. X    esdutil.o\
  1408. X    fasiintf.o\
  1409. X    expresp.o\
  1410. X    feval.o\
  1411. X    gint.o\
  1412. X    gstr.o\
  1413. X    hdbintf.o\
  1414. X    logevent.o\
  1415. X    lstat.o\
  1416. X    nap.o \
  1417. X    mkdirs.o\
  1418. X    funckeymap.o\
  1419. X    pcmd.o\
  1420. X    pcmdif.o\
  1421. X    pcmdfile.o\
  1422. X    pcmdtty.o\
  1423. X    pcmdwhile.o\
  1424. X    pcmdxfer.o\
  1425. X    poutput.o\
  1426. X    pprintf.o\
  1427. X    proc.o\
  1428. X    proc_error.o\
  1429. X    procframe.o\
  1430. X    regexp.o\
  1431. X    ttynaming.o\
  1432. X    utmpstat.o\
  1433. X    var.o
  1434. X
  1435. XSHARFLS = \
  1436. X    README \
  1437. X    README.* \
  1438. X    HISTORY \
  1439. X    OLD-HISTORY-* \
  1440. X    ESOTERIC \
  1441. X    Configure \
  1442. X    Make.src */Make.src \
  1443. X    *.[ch] \
  1444. X    bperr/bperr.c \
  1445. X    help/{*.[ch],ecuhelp.src} \
  1446. X    ecuungetty/*.[ch] \
  1447. X    z/*.[ch] \
  1448. X    sea/{*.[ch],*.{doc,imp}} \
  1449. X    gendial/{README,install_dialer,*.[ch]} \
  1450. X    fasi/{Makefile,Master,Node,PATCHLEVEL} \
  1451. X    fasi/{README,README.FASI,RELEASENOTES} \
  1452. X    fasi/{Space.c,System,digi-pc8.h,fas.c,fas.h,idfasi} \
  1453. X    ecufriend/*.[ch] \
  1454. X    mapkey/README mapkey/keys.usa.ecu \
  1455. X    xsel386/* \
  1456. X    memmove/{README,*.{s,asm}} \
  1457. X    timetest/{Makefile,*.c} \
  1458. X    doc/{README,Makefile,*.txt} models/* zgcc mkoldproto.l'
  1459. X
  1460. XMAKEDIRS_OBJ =\
  1461. X    makedirs.o\
  1462. X    mkdirs.o\
  1463. X    lstat.o
  1464. X
  1465. Xall: $(PROGRAM) .make.help .make.ug .make.z .make.s kbdtest3 makedirs
  1466. X
  1467. X$(PROGRAM): $(OBJ)
  1468. X    echo 'char *makedate="@(#)'ecu `date` $(SYSTEM)'";'  >makedate.c
  1469. X    $(CC) -c $(CFLAGS) makedate.c; rm makedate.c
  1470. X    rm -f $@; if [ -f $@ ]; then mv $@ $@~; fi
  1471. X    $(BINTIME) $(CC) -o $@ $(LDFLAGS) makedate.o $(OBJ) $(LIBS)
  1472. X    rm makedate.o
  1473. X
  1474. X$(OBJ): Makefile
  1475. X
  1476. X.make.help:
  1477. X    cd help; $(MAKE) -$(MAKEFLAGS)
  1478. X
  1479. X.make.z:
  1480. X    cd z; $(MAKE) -$(MAKEFLAGS)
  1481. X
  1482. X.make.s:
  1483. X    cd sea; $(MAKE) -$(MAKEFLAGS)
  1484. X
  1485. X.make.ug:
  1486. X    if [ $(USE_ECUUNGETTY) = yes ]; then \
  1487. X        cd ecuungetty; $(MAKE) -$(MAKEFLAGS); \
  1488. X    fi
  1489. X
  1490. Xbperr/bperr: bperr/bperr.c
  1491. X    cd bperr; $(MAKE) -$(MAKEFLAGS) bperr
  1492. X
  1493. Xproc_error.c: ecuerror.h
  1494. X    $(MAKE) -$(MAKEFLAGS) bperr/bperr
  1495. X    bperr/bperr
  1496. X
  1497. Xkbdtest3: kbdtest3.c
  1498. X    $(CC) -o $@ $(CFLAGS) kbdtest3.c
  1499. X
  1500. X$(OBJ): ecushm.h
  1501. X
  1502. Xecu.fls: Makefile
  1503. X    ls $(SRC) >ecu.fls
  1504. X
  1505. X# Not recommended
  1506. Xprotos: ecu.fls afterlint mkoldproto
  1507. X    echo ' ' > protos.h
  1508. X    csh ./zgcc ecu.fls protos.h .
  1509. X
  1510. X# Not recommended
  1511. Xallprotos:
  1512. X    $(MAKE) -$(MAKEFLAGS) protos
  1513. X    cd z; $(MAKE) -$(MAKEFLAGS) protos
  1514. X    cd sea; $(MAKE) -$(MAKEFLAGS) protos
  1515. X
  1516. Xmakedirs: $(MAKEDIRS_OBJ)
  1517. X    $(CC) -o $@ $(LDFLAGS) $(MAKEDIRS_OBJ) $(LIBS)
  1518. X
  1519. X# install ecu
  1520. Xiecu: makedirs ecu
  1521. X    @echo Installing ECU in $(LBIN) and $(ECULIBDIR) ... please wait
  1522. X    @if [ ! -d $(LBIN) ]; then \
  1523. X        echo '\012'Attempting to make $(LBIN); \
  1524. X        ./makedirs -m 755 $(LBIN); \
  1525. X        ls -ld $(LBIN); \
  1526. X    fi
  1527. X    @rm -f $(INSTALLABLE) $(INSTALLABLE)~
  1528. X    @if [ -f $(INSTALLABLE) ]; then \
  1529. X        echo '\012'Cannot remove $(INSTALLABLE) - moving to $(INSTALLABLE)~ \
  1530. X        mv $(INSTALLABLE) $(INSTALLABLE)~; \
  1531. X    fi
  1532. X    @cp $(PROGRAM) $(INSTALLABLE)
  1533. X    @strip $(INSTALLABLE)
  1534. X    @-if [ -x /usr/bin/mcs ]; then \
  1535. X        /usr/bin/mcs -d $(INSTALLABLE) || echo mcs present but not COFF? ; \
  1536. X    fi
  1537. X    @chown bin $(INSTALLABLE)
  1538. X    @chgrp bin $(INSTALLABLE)
  1539. X    @chmod 711 $(INSTALLABLE)
  1540. X    @echo '\012'Installed
  1541. X    @ls -l $(INSTALLABLE)
  1542. X    @if [ ! -d $(ECULIBDIR) ]; then \
  1543. X        echo '\012'Attempting to make $(ECULIBDIR); \
  1544. X        ./makedirs -m 755 $(ECULIBDIR); \
  1545. X        ls -ld $(ECULIBDIR); \
  1546. X    fi
  1547. X    @-if [ -f $(LIBFUNCKEYMAP) ]; then \
  1548. X        echo '\012'Saving your old $(LIBFUNCKEYMAP); \
  1549. X        for i in  2 1; \
  1550. X        do \
  1551. X            j=`expr $$i + 1`; \
  1552. X            mv $(LIBFUNCKEYMAP)-$$i $(LIBFUNCKEYMAP)-$$j 2>/dev/null; \
  1553. X        done; \
  1554. X        mv $(LIBFUNCKEYMAP) $(LIBFUNCKEYMAP)-1; \
  1555. X        ls -l $(LIBFUNCKEYMAP)*; \
  1556. X    fi
  1557. X    @cp models/funckeymap $(ECULIBDIR)
  1558. X    @chown bin $(LIBFUNCKEYMAP)
  1559. X    @chgrp bin $(LIBFUNCKEYMAP)
  1560. X    @chmod 644 $(LIBFUNCKEYMAP)
  1561. X    @echo '\012'Installed
  1562. X    @ls -l $(LIBFUNCKEYMAP)
  1563. X
  1564. X# install everything
  1565. Xinstall: all makedirs #run as root
  1566. X    @echo '\012'Starting full installation of ECU ... please wait
  1567. X    @make iecu
  1568. X    @if [ $(USE_ECUUNGETTY) = yes ]; then \
  1569. X        cd ecuungetty; $(MAKE) -$(MAKEFLAGS) install; \
  1570. X    fi
  1571. X    cd z; $(MAKE) -$(MAKEFLAGS) install
  1572. X    cd sea; $(MAKE) -$(MAKEFLAGS) install
  1573. SHAR_EOF
  1574. true || echo 'restore of Make.src failed'
  1575. fi
  1576. echo 'End of ecu320 part 3'
  1577. echo 'File Make.src is continued in part 4'
  1578. echo 4 > _shar_seq_.tmp
  1579. exit 0
  1580.  
  1581. exit 0 # Just in case...
  1582.