home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / misc / volume22 / ecu / patch05a < prev    next >
Text File  |  1991-09-04  |  52KB  |  1,530 lines

  1. Newsgroups: comp.sources.misc
  2. From: Warren Tucker <wht@n4hgf.GA.US>
  3. Subject:  v22i090:  ecu - ECU async comm package rev 3.10, Patch05a/5
  4. Message-ID: <csm-v22i090=ecu.110028@sparky.imd.sterling.com>
  5. X-Md4-Signature: 3220e18692f97d844a5ffa8f68f5eb27
  6. Date: Wed, 4 Sep 1991 16:01:01 GMT
  7. Approved: kent@sparky.imd.sterling.com
  8.  
  9. Submitted-by: Warren Tucker <wht@n4hgf.GA.US>
  10. Posting-number: Volume 22, Issue 90
  11. Archive-name: ecu/patch05a
  12. Environment: SCO, XENIX, ISC, SUNOS4.1, SYSVR4
  13. Patch-To: ecu: Volume 21, Issue 53-89
  14.  
  15. This is patch 5 to ECU, enhancing all versions of ECU.  Particular
  16. attention has been paid to:
  17. 1. qualifying Sun gcc usage and clearing up 386 gcc topics
  18. 2. addressing yet more nap/select problems
  19. 3. supplying memmove replacements or additions for i386 systems
  20.    for those who want to experiment with them (not documented; for
  21.    hacking only)
  22. 4. better handling sun and SVR4 environments (HDB Devices location, etc.,
  23.    using termios on Sun in lieu of termio)
  24. 5. aiding local configuration requirements with config.local Makefile
  25.    prefix and _rc.ep enhancement.
  26. 6. supplying fasi/fas.h and ckermit/ckutio-ecu.dif (not in original
  27.    distribution as they were supposed to be)
  28.  
  29. To apply, unshar all 5 parts, then
  30. a. patch -p < PATCH5.01
  31. b. read README.P5 and reread README
  32. c. play with timetest/ programs (if you are on a 386/486 system)
  33. d. perhaps build a config.local if you find something in steps b or c
  34. e. Configure
  35. f. make
  36. g. make install
  37.  
  38. #!/bin/sh
  39. # This is ecu/patch05, a shell archive (shar 3.46)
  40. # made 09/04/1991 06:17 UTC by wht@n4hgf.Mt-Park.GA.US
  41. # Source directory /export/home/wht/src/ecu
  42. #
  43. # existing files will NOT be overwritten unless -c is specified
  44. #
  45. # This is part 1 of a multipart archive                                    
  46. # do not concatenate these parts, unpack them in order with /bin/sh        
  47. #
  48. # This shar contains:
  49. # length  mode       name
  50. # ------ ---------- ------------------------------------------
  51. #   6132 -rw-rw-r-- README.P5
  52. # 157801 -rw-rw-r-- PATCH5.01
  53. #  21859 -rw-r--r-- fasi/fas.h
  54. #   2337 -rw-r--r-- ckermit/ckutio-ecu.dif
  55. #   1169 -rw-rw-r-- memmove/README
  56. #   1143 -rw-rw-r-- memmove/memmove.s
  57. #   1745 -rw-r--r-- memmove/memmove286.asm
  58. #   1587 -rw-r--r-- memmove/memmove386.asm
  59. #    304 -rw-rw-r-- timetest/Makefile
  60. #   2342 -rw-r--r-- timetest/naptest.c
  61. #   2312 -rw-r--r-- timetest/naptest2.c
  62. #   1469 -rw-r--r-- timetest/naptest3.c
  63. #    863 -rw-r--r-- timetest/seltest.c
  64. #
  65. if test -r _shar_seq_.tmp; then
  66.     echo 'Must unpack archives in sequence!'
  67.     echo Please unpack part `cat _shar_seq_.tmp` next
  68.     exit 1
  69. fi
  70. # ============= README.P5 ==============
  71. if test -f 'README.P5' -a X"$1" != X"-c"; then
  72.     echo 'x - skipping README.P5 (File already exists)'
  73.     rm -f _shar_wnt_.tmp
  74. else
  75. > _shar_wnt_.tmp
  76. echo 'x - extracting README.P5 (Text)'
  77. sed 's/^X//' << 'SHAR_EOF' > 'README.P5' &&
  78. XREADME.P5           ECU 3.10 Patch 5     Wed Sep  4 00:41:23 EDT 1991
  79. X
  80. XThis describes patch 5 to ECU 3.15, bringing the program to
  81. Xversion 3.15.
  82. X
  83. XFiles in Patch 5:
  84. XREADME.P5
  85. XPATCH5.01
  86. Xfasi/fas.h
  87. Xckermit/ckutio-ecu.dif
  88. Xmemmove/README
  89. Xmemmove/memmove.s
  90. Xmemmove/memmove286.asm
  91. Xmemmove/memmove386.asm
  92. Xtimetest/Makefile
  93. Xtimetest/naptest.c
  94. Xtimetest/naptest2.c
  95. Xtimetest/naptest3.c
  96. Xtimetest/seltest.c
  97. X
  98. XFirst, a note of apology to Sun users.  I used the -mm nroff macros
  99. Xto write the manuals.  Sun provides -ms and -me, but not -mm.
  100. XI'm looking for some PD replacements, but haven't succeeded yet.
  101. XI'll be glad to mail an updated manual to anyone who asks.  I'm
  102. Xalso looking for a friendly ftp site to hold updates, hence manuals.
  103. X
  104. X1. Improvements in the SVR4 port have been made, but now
  105. XSVR4 almost certainly means an AT&T/Intel/ISC 386 port,
  106. X                                              ^^^
  107. Xsince we expect to find /usr/include/sys/at_ansi.h and
  108. X/usr/include/sys/sys/kd.h files for console color capability.
  109. X(Color is not yet supported on Sun -- only monochrome xterms
  110. Xand the console without color manipulation).
  111. X
  112. XIf you have trouble with compiling ecutty.c for SVR4 (complaints
  113. Xabout not finding either of these header files), temporarily remove the
  114. XSVR4 condition for inclusion of them and for using the CONS_GET code
  115. Xnear the bottom of the source.
  116. X
  117. X2.  Many improvements were made in the area of system independence.
  118. XThe build procedure configures the location of HDB Devices,
  119. XDialcodes and Dialers files among the various environments:
  120. XSCO   /usr/lib/uucp
  121. XISC   /usr/lib/uucp
  122. XSun   /etc/uucp
  123. XSVR4  /etc/uucp
  124. X
  125. X3. A new feature of Configure is the inclusion of local configuration
  126. Xin the Makefiles it builds.  If you build a file named "config.local"
  127. Xin the base source directory, it's contents will be placed ahead of
  128. Xall other make statements in each Makefile.
  129. X
  130. XExample customization include:
  131. XCFLAGS_EXTRA  = -Dwhatever
  132. XGCC_CFLAGS_EXTRA = -fsoft-float  #just an example :-)
  133. XCC_CGLAGS_EXTRA = -p
  134. XSYMBOLIC = -g             # if you want sdb/dbx/gdb symbols in programs
  135. XBINTIME = /bin/time       # if you want stats on each make step
  136. XLDFLAGS_EXTRA  = -ljuicier-malloc
  137. X
  138. XJudicious use of this may help you avoid changing Make.src files
  139. Xthus making patch complain about future patches, but 
  140. X
  141. X4. A patch from Andrew Chernov that fell out of the last version
  142. Xwas reapplied:  Many SCO-style dialer programs do not care
  143. Xwhat is in argument 0 (the command name) when they are executed,
  144. Xbut some do.  Before this patch, the argument passed was "ECUdial"
  145. Xsince the gendial dialers *can* make use of it.  This usage
  146. Xconflicted with some of Andrew's dialers which need the actual
  147. Xname passed.  So, starting with this edition, if you invoke
  148. Xa dialer program, its complete pathname will appear in argv[0].
  149. XIf you want the old behavior, add a file to the base directory
  150. Xcalled config.local and place in it the line:
  151. X
  152. X  CFLAGS_EXTRA = -DECUdial
  153. X3. The usefulness of _rc.ep has been enhanced by adding the
  154. X'setline' procedure command.    This command is only valid during the
  155. Xexecution of _rc.ep.  It allows you to override the selection of
  156. Xa default line as if you had used the -l switch.  In fact, using
  157. Xthe commabnd overrides -l.
  158. X
  159. XUsage: setline <filename>
  160. X
  161. XThis command is an exact analog of the -l command line switch.
  162. X<filename> is used on the setup screen (if it is presented)
  163. Xas the default filename. If you do not edit this name, ECU will
  164. Xattempt to open the line when you press End or ^D. 
  165. X
  166. X<filename> has the format of a complete pathanme in /dev or simple
  167. Xtty name. 
  168. X
  169. XExample:
  170. X  setline '/dev/tty1a'
  171. X  setline 'tty1a'
  172. X  setline 'cua0'
  173. X
  174. X5. Similarly, using the 'baud' and 'parity' procedure commands in
  175. X_rc.ep serve as an exact analog of the -b, -e and -e command line switches.
  176. XUsing 'baud' and 'parity' in rc_ep override the equivalent
  177. Xcommand line switches.
  178. X
  179. X6.  On the Sun, STREAMS termios is used in lieu of termio.  The code
  180. Xused for draining the line output queue ("wait for all transmitted
  181. Xdata to be sent over the line") has been improved, making
  182. Xexpect-respond, file transfer and other highly interactive operations
  183. Xmore reliable.
  184. X
  185. X7.  The following files normally found in a personal ~/.ecu
  186. Xdirectory may now have a systedm default in ECULIBDIR:
  187. X
  188. X   colors
  189. X   keys
  190. X   nonansikeys
  191. X
  192. X8. Unreported bugs in the format of the keys and nonansikeys files have
  193. Xbben fixed.  Specifically, whitespace and comments are allowed after keyset
  194. Xor terminal names.
  195. X
  196. X9. On ISC 2.2 systems, the console was left in standout or bold
  197. Xmode at exit from ECU.  I believe this problem is now fixed.
  198. X
  199. X10. The GCC compilation flags for 386 versions have been updated to use
  200. X-fcall-used-bx rather than -fcall-used-{ax,bx,cs,dx].
  201. X
  202. XIt turns out the only problem ECU had with strenuously optimized GCC
  203. Xoptions was that SCO's memmove clobbers the bx register, which is
  204. Xsupposed to be reserved for use as a register variable by all
  205. Xcompilers, MSC or otherwise.
  206. X
  207. XIf you use the new memmove routines supplied with this patch, you may
  208. Xomit this switch as well.  It is probably not worth fooling with any
  209. Xof that unless you are just interested in the problem.
  210. X
  211. X11. I forgot to include the version 4F kermit diff file.  It's included
  212. Xin here.
  213. X
  214. X12. In patch 2, I reported nap() in SCO UNIX systems to be faulty in varying
  215. Xmanners depending on x in the 3.2.x version number.  ISC 2.2.1 nap also
  216. Xmisbehaves in a similar manner. 
  217. X
  218. XSCO very promptly supplied me with an /etc/conf/pack.d/kernel/os.o for
  219. Xrelinking the kernel which fixes the problem somewhat, but not
  220. Xcompletely.  Watch this space.  Some testing programs can be found in
  221. Xtimetest/ as of this patch.
  222. X
  223. X13.  I've thought for some time SCO select might also be buggy.  I finally
  224. Xwrote some test programs and proved it.  SCO select may appear to work
  225. Xcorrectly for a few iterations, but rapidly degenerates into rounding
  226. Xall timeout specifications to the nearest second.  Run timetest/seltest
  227. Xfor a visual feel of what's going on.
  228. X
  229. XThe #define WORKING_SELECT is now supploied by the Configure procedure
  230. Xfor systems that have a usable select.  See the updated README file 
  231. Xnote 3 and ecuutil.c Nap() for details.
  232. X
  233. X
  234. SHAR_EOF
  235. chmod 0664 README.P5 ||
  236. echo 'restore of README.P5 failed'
  237. Wc_c="`wc -c < 'README.P5'`"
  238. test 6132 -eq "$Wc_c" ||
  239.     echo 'README.P5: original size 6132, current size' "$Wc_c"
  240. rm -f _shar_wnt_.tmp
  241. fi
  242. # ============= PATCH5.01 ==============
  243. if test -f 'PATCH5.01' -a X"$1" != X"-c"; then
  244.     echo 'x - skipping PATCH5.01 (File already exists)'
  245.     rm -f _shar_wnt_.tmp
  246. else
  247. > _shar_wnt_.tmp
  248. echo 'x - extracting PATCH5.01 (Text)'
  249. sed 's/^X//' << 'SHAR_EOF' > 'PATCH5.01' &&
  250. XPrereq: 14
  251. X*** /export/home/wht/src/ecu314/patchlevel.h    Wed Sep  4 00:25:09 1991
  252. X--- patchlevel.h    Sun Sep  1 03:14:07 1991
  253. X***************
  254. X*** 1 ****
  255. X! #define PATCHLEVEL 14
  256. X--- 1 ----
  257. X! #define PATCHLEVEL 15
  258. X*** /export/home/wht/src/ecu314/Make.src    Wed Sep  4 00:25:03 1991
  259. X--- Make.src    Tue Sep  3 23:50:25 1991
  260. X***************
  261. X*** 13,18 ****
  262. X--- 13,21 ----
  263. X  # squirrel away the release copy first.  See zgcc for the -p1 hack.
  264. X  #--------------------------------------------------------------------
  265. X  #+:EDITS:
  266. X+ #:09-03-1991-23:47-wht@n4hgf2-add timetest directory
  267. X+ #:09-02-1991-19:25-wht@n4hgf2-ckutio dif and fas.h left out of distribution
  268. X+ #:09-01-1991-16:22-wht@n4hgf2-generalize HDB config location
  269. X  #:08-23-1991-13:35-wht@n4hgf-sun porting (3.13)
  270. X  #:07-25-1991-12:55-wht@n4hgf-ECU release 3.10
  271. X  #:04-21-1991-12:43-wht@n4hgf-convert to Make.src
  272. X***************
  273. X*** 25,32 ****
  274. X  .SUFFIXES: .o .c .h .l
  275. X  .c.o:;    $(BINTIME) $(CC) -c $(CFLAGS) $*.c 
  276. X  
  277. X! ECUSHARNAME=ecu314
  278. X! MANSHARNAME=ecumar314
  279. X  
  280. X  SRC    = \
  281. X      bamboozle.c\
  282. X--- 28,35 ----
  283. X  .SUFFIXES: .o .c .h .l
  284. X  .c.o:;    $(BINTIME) $(CC) -c $(CFLAGS) $*.c 
  285. X  
  286. X! ECUSHARNAME=ecu315
  287. X! MANSHARNAME=ecuman315
  288. X  
  289. X  SRC    = \
  290. X      bamboozle.c\
  291. X***************
  292. X*** 157,171 ****
  293. X      bperr/bperr.c \
  294. X      help/{*.[ch],ecuhelp.src} \
  295. X      ecuungetty/*.[ch] \
  296. X!     z/*.[ch]\
  297. X      sea/{*.[ch],*.{doc,imp}} \
  298. X      gendial/{install_dialer,*.[ch]} \
  299. X!     fasi/{Makefile,Master,Node,PATCHLEVEL}\
  300. X!     fasi/{README,README.FASI,RELEASENOTES}\
  301. X!     fasi/{Space.c,System,digi-pc8.h,fas.c,idfasi}\
  302. X      ecufriend/*.[ch] \
  303. X!     mapkey/README mapkey/keys.usa.ecu\
  304. X      xsel386/* \
  305. X      doc/{*.txt,runoff} models/* zgcc mkoldproto.l'
  306. X  
  307. X  #    fasi/{README,README.FASI,INSTALLATION,Inittab,Makefile,Makefile.ATT}\
  308. X--- 160,177 ----
  309. X      bperr/bperr.c \
  310. X      help/{*.[ch],ecuhelp.src} \
  311. X      ecuungetty/*.[ch] \
  312. X!     z/*.[ch] \
  313. X!     ckermit/*.dif \
  314. X      sea/{*.[ch],*.{doc,imp}} \
  315. X      gendial/{install_dialer,*.[ch]} \
  316. X!     fasi/{Makefile,Master,Node,PATCHLEVEL} \
  317. X!     fasi/{README,README.FASI,RELEASENOTES} \
  318. X!     fasi/{Space.c,System,digi-pc8.h,fas.c,fas.h,idfasi} \
  319. X      ecufriend/*.[ch] \
  320. X!     mapkey/README mapkey/keys.usa.ecu \
  321. X      xsel386/* \
  322. X+     memmove/{README,*.{s,asm}} \
  323. X+     timetest/{Makefile,*.c} \
  324. X      doc/{*.txt,runoff} models/* zgcc mkoldproto.l'
  325. X  
  326. X  #    fasi/{README,README.FASI,INSTALLATION,Inittab,Makefile,Makefile.ATT}\
  327. X***************
  328. X*** 252,263 ****
  329. X      cd z; make install
  330. X      cd sea; make install
  331. X      cd help; make install
  332. X!     @if [ ! -f /usr/lib/uucp/Devices ]; then \
  333. X          cp models/*.mi $(ECULIBDIR); \
  334. X          echo "==> edit $(ECULIBDIR)/*.mi for your tty lines per ecu.man"; \
  335. X      fi
  336. X  
  337. X! shar.fls:
  338. X      csh -c 'ls $(SHARFLS) | sort > shar.fls'
  339. X  
  340. X  # for shar 3.46 or later
  341. X--- 258,269 ----
  342. X      cd z; make install
  343. X      cd sea; make install
  344. X      cd help; make install
  345. X!     @if [ ! -f $(HDBFILES)/Devices ]; then \
  346. X          cp models/*.mi $(ECULIBDIR); \
  347. X          echo "==> edit $(ECULIBDIR)/*.mi for your tty lines per ecu.man"; \
  348. X      fi
  349. X  
  350. X! shar.fls: Makefile
  351. X      csh -c 'ls $(SHARFLS) | sort > shar.fls'
  352. X  
  353. X  # for shar 3.46 or later
  354. X***************
  355. X*** 285,299 ****
  356. X  
  357. X  neat:
  358. X      rm -f core Makefile.bak tags cscope.out config makedate.c makedate.o
  359. X!     -rm -f *~ *# *.orig *.rej make.log a.out
  360. X      rm -f makedirs kbdtest kbdtest3
  361. X      rm -f bperr/bperr
  362. X      cd help;make neat
  363. X      cd z;make neat
  364. X      cd sea;make neat
  365. X!     if [ $(USE_ECUUNGETTY) = yes ]; then \
  366. X!         cd ecuungetty;make neat; \
  367. X!     fi
  368. X  
  369. X  clean: neat
  370. X      rm -f $(OBJ)
  371. X--- 291,304 ----
  372. X  
  373. X  neat:
  374. X      rm -f core Makefile.bak tags cscope.out config makedate.c makedate.o
  375. X!     rm -f *~ *# *.orig *.rej make.log a.out
  376. X!     rm -f */*~ */*# */*.orig */*.rej
  377. X      rm -f makedirs kbdtest kbdtest3
  378. X      rm -f bperr/bperr
  379. X      cd help;make neat
  380. X      cd z;make neat
  381. X      cd sea;make neat
  382. X!     cd ecuungetty;make neat
  383. X  
  384. X  clean: neat
  385. X      rm -f $(OBJ)
  386. X***************
  387. X*** 300,308 ****
  388. X      cd help;make clean
  389. X      cd z;make clean
  390. X      cd sea;make clean
  391. X!     if [ $(USE_ECUUNGETTY) = yes ]; then \
  392. X!         cd ecuungetty;make clean; \
  393. X      fi
  394. X  
  395. X  clobber: clean
  396. X      rm -f $(PROGRAM) $(PROGRAM)~
  397. X--- 305,317 ----
  398. X      cd help;make clean
  399. X      cd z;make clean
  400. X      cd sea;make clean
  401. X!     cd ecuungetty;make clean;
  402. X!     -if [ -f gendial/Makefile ]; then \
  403. X!         cd gendial; make clean; \
  404. X      fi
  405. X+     -if [ -f timetest/Makefile ]; then \
  406. X+         cd timetest; make clean; \
  407. X+     fi
  408. X  
  409. X  clobber: clean
  410. X      rm -f $(PROGRAM) $(PROGRAM)~
  411. X***************
  412. X*** 309,317 ****
  413. X      cd help;make clobber
  414. X      cd z;make clobber
  415. X      cd sea;make clobber
  416. X!     if [ $(USE_ECUUNGETTY) = yes ]; then \
  417. X!         cd ecuungetty;make clobber; \
  418. X!     fi
  419. X  
  420. X  #regenerate .o:.h dependencies automatically
  421. X  depend:
  422. X--- 318,324 ----
  423. X      cd help;make clobber
  424. X      cd z;make clobber
  425. X      cd sea;make clobber
  426. X!     cd ecuungetty;make clobber;
  427. X  
  428. X  #regenerate .o:.h dependencies automatically
  429. X  depend:
  430. X*** /export/home/wht/src/ecu314/README    Wed Sep  4 00:24:47 1991
  431. X--- README    Tue Sep  3 23:25:35 1991
  432. X***************
  433. X*** 1,10 ****
  434. X  .--------------------------------------------------------.
  435. X! | ecu README - last revised Sun Aug 25 22:56:51 EDT 1991 |
  436. X  `--------------------------------------------------------'
  437. X  
  438. X! This is ecu revision 3.10.  Ecu is a asynchronous communications
  439. X! program for SCO UNIX System V/386 or XENIX System V/286 or 386 on
  440. X! AT-class computer systems.  It incorporates typical interactive
  441. X  communications capabilities with a rich procedure language, an
  442. X  extended set of immediate (interactive) commands, and several file
  443. X  transfer protocols.  The operating system and development system is
  444. X--- 1,17 ----
  445. X  .--------------------------------------------------------.
  446. X! | ecu README - last revised Tue Sep  3 23:00:47 EDT 1991 |
  447. X  `--------------------------------------------------------'
  448. X  
  449. X! This is ecu revision 3.15.  ECU is a asynchronous communications
  450. X! program for these environments:
  451. X! 
  452. X!   XENIX System V/286
  453. X!   XENIX System V/386
  454. X!   SCO UNIX System V/386
  455. X!   ISC System V Release 4
  456. X!   SunOS 4.1.1 on Sparc, 1+, 2
  457. X! 
  458. X! It incorporates typical interactive
  459. X  communications capabilities with a rich procedure language, an
  460. X  extended set of immediate (interactive) commands, and several file
  461. X  transfer protocols.  The operating system and development system is
  462. X***************
  463. X*** 12,23 ****
  464. X  production version of SCO UNIX or ODT.  Preliminary support for ISC
  465. X  386/ix 2.2 seems to be at least partially functional.
  466. X  
  467. X- At patchlevel 3 or higher, at least partial (useful) support
  468. X- is provided for SunOS 4.1 X11 users on a Sparc and for ISC System
  469. X- V Release 4.  I did the sun port.  Lothar Hirschbiegel
  470. X- (aega84!lh) did the SVR4 port -- THANKS, Lothar!
  471. X- See README.P3 for elaboration on this new support.
  472. X- 
  473. X  Support for "non-ANSI" consoles is relatively stable and more
  474. X  mature.  I use it (almost exclusively now) with a Metro Link X11R4
  475. X  xterm.  Bugs are expected and reports will be greatly appreciated.
  476. X--- 19,24 ----
  477. X***************
  478. X*** 67,72 ****
  479. X--- 68,75 ----
  480. X  their excellent X11R4 package.  Yes, xecu has been born and is in
  481. X  intensive care, but its chance of survival is pretty good.
  482. X  
  483. X+ Lothar Hirschbiegel (aega84!lh) did the SVR4 port -- THANKS, Lothar!
  484. X+ 
  485. X  --------------------------------------------------------------------
  486. X  
  487. X  NOTE TO PRE-REVISION-3 USERS:
  488. X***************
  489. X*** 104,118 ****
  490. X  2. Termination of file transfers by SIGINT did not cause termination
  491. X  of procedfure execution in pre-3.10 versions.  In this version, it does.
  492. X  
  493. X! The appropriate manual sections have been updated to indicate:
  494. X! Integer variable $i0 receives the exit status from the transfer.  Note:
  495. X! procedure execution IS terminated by a SIGINT to the spawned file
  496. X! transfer process.  This is different than for versions prior to 3.10.
  497. X! If $i0 is set to -1, the file transfer program did not begin.
  498. X! 
  499. X! If there is one serious flame on this, I'll make it run-time option
  500. X! to get the old behavior.
  501. X! 
  502. X  --------------------------------------------------------------------
  503. X  
  504. X  On SCO, TTY devices must be named in the style of:
  505. X--- 107,114 ----
  506. X  2. Termination of file transfers by SIGINT did not cause termination
  507. X  of procedfure execution in pre-3.10 versions.  In this version, it does.
  508. X  
  509. X! 3. Several files that previously had to reside in ~/.ecu now may have
  510. X! system wide defaults in the ECU library directory (/usr/local/lib/ecu).
  511. X  --------------------------------------------------------------------
  512. X  
  513. X  On SCO, TTY devices must be named in the style of:
  514. X***************
  515. X*** 291,311 ****
  516. X  --------------------------------------------------------------------
  517. X  Notes:
  518. X  
  519. X! 0. ISC:
  520. X  More progress has been made for a port to ISC 2.2.  The
  521. X  program compiles properly with the gcc or native cc compiler,
  522. X! but very little testing has been done.  The shared dial-in,
  523. X! dial-out tty facility is very different between SCO and ISC and
  524. X! tty naming is different.  Also, extended keys (like Home and End)
  525. X! generate different codes.  I would appreciate any help and
  526. X! comments.  John "Pappy" Dashner (jmd@wa4cyb) is responsible for
  527. X! the bulk of the effort to date.  It still needs more work, though.
  528. X! The Configure procedure will ask you if you are on an ISC or
  529. X! SCO system.  Answering 'i' should put you on the correct fork
  530. X! of the Yellow Brick Road and you will get at least some
  531. X  service from it on virtual consoles using the "at386" terminal
  532. X  type if you install models/nonansikeys in your ~/ecu directory.
  533. X  
  534. X  1.  KERMIT:
  535. X  A XENIX/286 (lowest common denominator for SCO) binary of a suitable
  536. X  ckermit is compress-shared in the ckermit subdirectory.  You
  537. X--- 287,310 ----
  538. X  --------------------------------------------------------------------
  539. X  Notes:
  540. X  
  541. X! 0. ISC, SVR4 and Sun:
  542. X  More progress has been made for a port to ISC 2.2.  The
  543. X  program compiles properly with the gcc or native cc compiler,
  544. X! and seems to be woerking fairly well.  You will get at least some
  545. X  service from it on virtual consoles using the "at386" terminal
  546. X  type if you install models/nonansikeys in your ~/ecu directory.
  547. X  
  548. X+ At least one user is happy with ECU on ISC System V Release 4.
  549. X+ ("[Unix is now running on 10 machines.  More installations are
  550. X+ anticpiated.]" -- Dennis Ritchie, 1972?).
  551. X+ 
  552. X+ A Sun port seems to be stable for xterms under X11R4.
  553. X+ 
  554. X+ This section of the README was spawned when ECU ran only on SCO nd
  555. X+ pitiful early porting efforts had just begun.  Soon (:->) it will be
  556. X+ obsolete and dropped in favor of a more complete chunk of words for
  557. X+ each run time environment.
  558. X+ 
  559. X  1.  KERMIT:
  560. X  A XENIX/286 (lowest common denominator for SCO) binary of a suitable
  561. X  ckermit is compress-shared in the ckermit subdirectory.  You
  562. X***************
  563. X*** 323,329 ****
  564. X  is released) will directly support ECU's use of it, even if patches
  565. X  to ECU are required.  Watch this space.
  566. X  
  567. X! 2.  SELECT(S)
  568. X  SCO XENIX V/386 Release 2.3.1 (and evidently 2.3.2) have a
  569. X  broken-dead, yet fixable, BSD-style select() feature.  Also,
  570. X  select() is missing from libc.a.  While ecu does not *require*
  571. X--- 322,335 ----
  572. X  is released) will directly support ECU's use of it, even if patches
  573. X  to ECU are required.  Watch this space.
  574. X  
  575. X! 2.  SELECT(S) and CFLAGS "WORKING_SELECT"
  576. X! ECU uses select() where possible for two purposes:
  577. X! 1. wait on a tty (comm line) read with timeout -and-
  578. X! 2. timeout (nap replacement).
  579. X! 
  580. X! If you have a working select, use -DWORKING_SELECT.
  581. X! The Configure procedure does the job for you for systems I know about.
  582. X! 
  583. X  SCO XENIX V/386 Release 2.3.1 (and evidently 2.3.2) have a
  584. X  broken-dead, yet fixable, BSD-style select() feature.  Also,
  585. X  select() is missing from libc.a.  While ecu does not *require*
  586. X***************
  587. X*** 330,342 ****
  588. X  select(S), it is much more efficient to use it.  The x386sel
  589. X  subdirectory in this release has information (thanks to
  590. X  csch@netcs, ivar@acc, and ag@elgar) on how to fix the kernel and
  591. X! to add select() to libc.a.
  592. X  
  593. X! Select(S) is fully functional in SCO UNIX.
  594. X  
  595. X  I found it in /usr/lib/libinet.a on the ISC system I used to
  596. X! compile for ISC.
  597. X  
  598. X  3.  SCO MULTISCREEN BUG
  599. X  There has been a bug in the multiscreen driver for some time
  600. X  wherein a MEDIA COPY (screen dump) sequence ("ESC [ 2 i") leaves
  601. X--- 336,355 ----
  602. X  select(S), it is much more efficient to use it.  The x386sel
  603. X  subdirectory in this release has information (thanks to
  604. X  csch@netcs, ivar@acc, and ag@elgar) on how to fix the kernel and
  605. X! to add select() to libc.a.  You'll have to add WORKING_SELECT to
  606. X! config.local if you do this.
  607. X  
  608. X! Select(S) is fully functional in SCO UNIX 3.2.0.  I am unsure of ODT
  609. X! 1.0/UNIX 3.2.1.  It is broken in ODT 1,1/UNIX 3.2v2.  If you find it
  610. X! fixed in 3.3v3, add WORKING_SELECT to config.local and tell me the
  611. X! good news.
  612. X  
  613. X  I found it in /usr/lib/libinet.a on the ISC system I used to
  614. X! compile for ISC.  It works fine there.  I automatically put
  615. X! WORKING_SELECT into the Makefile.
  616. X  
  617. X+ It works fine on the Sun and SVR4, naturally.
  618. X+ 
  619. X  3.  SCO MULTISCREEN BUG
  620. X  There has been a bug in the multiscreen driver for some time
  621. X  wherein a MEDIA COPY (screen dump) sequence ("ESC [ 2 i") leaves
  622. X***************
  623. X*** 362,372 ****
  624. X  
  625. X  4. GCC
  626. X  
  627. X! In case you didn't know, GCC is a great C compiler.  It generates excellent
  628. X! code and gives excellent diagnostics and warnings.  There are more
  629. X! options available than for a Coup de Ville, so you have to be careful
  630. X! if you get too fancy.  With Configure and config.c, I have tried to
  631. X! choose the best option set for ecu and it's utilities.
  632. X  
  633. X  I tried -pedantic and -ansi under SCO, but there
  634. X  are just too many complaints about the development system heaader files:
  635. X--- 375,388 ----
  636. X  
  637. X  4. GCC
  638. X  
  639. X! In case you didn't know, GCC is a great C compiler.  It generates
  640. X! excellent code and gives excellent diagnostics and warnings.
  641. X! There are more options available than for a Coup de Ville, so you
  642. X! have to be careful if you get too fancy.  I should know -- I
  643. X! think I may have done it.  With Configure and config.c, I have
  644. X! tried to choose the best option set for ECU and it's utilities.
  645. X! If you want to play around, you can place GCC_EXTRA_CFLAGS
  646. X! definitions in a config.local file and experiment away.
  647. X  
  648. X  I tried -pedantic and -ansi under SCO, but there
  649. X  are just too many complaints about the development system heaader files:
  650. X***************
  651. X*** 382,388 ****
  652. X  recommend you do it for purposes of making ECU.  Hopefully since
  653. X  I have done it and fixed what gcc reported, you don't have to.
  654. X  
  655. X! Also, gcc's idea of prototype validity is just too much for me.
  656. X  With MSC ANSI, prototype arguments are tested at *reference* time
  657. X  not *definition* time.  Thus with MSC it is convenient to define
  658. X  a file (like stdio_lint.h, lint_args.h, etc) with all the
  659. X--- 398,415 ----
  660. X  recommend you do it for purposes of making ECU.  Hopefully since
  661. X  I have done it and fixed what gcc reported, you don't have to.
  662. X  
  663. X! On the Sun, you cannot use -ansi because of the whole way ioctl
  664. X! 2nd parameter defines are built.  Compilation proceeds with no
  665. X! error, but few if any of your ioctls will work.  Also, with
  666. X! -pedantic, you get one hundred gazillion complaints about text
  667. X! after #else and #endif.  I hacked my compiler to omit that one
  668. X! pedantic complaint and made a test run with -ansi and -pedantic.
  669. X! As of version 3.15, I get no other warnings outside of some
  670. X! funkiness in va_args.  With that exercise complete, I bid -ansi
  671. X! and -pedantic adieu for a while with a good feeling about the
  672. X! future should the ANSI KGB actually seize real power in Cyberdom.
  673. X! 
  674. X! Gcc's idea of prototype validity is just too much for me.
  675. X  With MSC ANSI, prototype arguments are tested at *reference* time
  676. X  not *definition* time.  Thus with MSC it is convenient to define
  677. X  a file (like stdio_lint.h, lint_args.h, etc) with all the
  678. X*** /export/home/wht/src/ecu314/config.c    Wed Sep  4 00:25:03 1991
  679. X--- config.c    Tue Sep  3 22:42:36 1991
  680. X***************
  681. X*** 1,9 ****
  682. X  /* CHK=0xD40E */
  683. X! char *rev = "3.13";
  684. X  /*+-------------------------------------------------------------------------
  685. X      config.c - Makefile configuration program for ECU
  686. X      wht@n4hgf.Mt-Park.GA.US
  687. X  
  688. X  There are a few tricks in here for SCO multi-target development
  689. X  system.  If you compile this on a UNIX system, but specify the
  690. X  target for a XENIX system, you get the cc -xenix switch.  You
  691. X--- 1,13 ----
  692. X  /* CHK=0xD40E */
  693. X! char *rev = "3.15";
  694. X  /*+-------------------------------------------------------------------------
  695. X      config.c - Makefile configuration program for ECU
  696. X      wht@n4hgf.Mt-Park.GA.US
  697. X  
  698. X+ This must be compiled with the *NATIVE* cc or else you must fake all
  699. X+ of the predefines the native compiler supplies.  The Configure
  700. X+ script can pass stuff in CFLAGS to tickle config a bit.
  701. X+ 
  702. X  There are a few tricks in here for SCO multi-target development
  703. X  system.  If you compile this on a UNIX system, but specify the
  704. X  target for a XENIX system, you get the cc -xenix switch.  You
  705. X***************
  706. X*** 10,20 ****
  707. X--- 14,31 ----
  708. X  also get -Dconst= to avoid banging into some problems with the
  709. X  XENIX stuff in the header files.
  710. X  
  711. X+ To paraphrase Henry Spencer:
  712. X+ "Those who do not understand imake are doomed to reinvent it - poorly."
  713. X+ If this gets much more complicated, I'll make some imake rules.
  714. X+ Very soon, most of the systems ECU gets used on will have imake already.
  715. X+ We cannot assume that yet.
  716. X+ 
  717. X    Defined functions:
  718. X      gen_cc_cflags()
  719. X      gen_gcc_cflags()
  720. X      gen_isc_ldflags()
  721. X      gen_sco_ldflags()
  722. X+     gen_sun_ldflags()
  723. X      gen_svr4_ldflags()
  724. X      generate_config(mdir)
  725. X      goodbye(sig)
  726. X***************
  727. X*** 27,33 ****
  728. X  
  729. X  --------------------------------------------------------------------------*/
  730. X  /*+:EDITS:*/
  731. X! /*:08-28-1991-14:07-wht@n4hgf2-SVR4 cleanup by slootman@dri.nl */
  732. X  /*:08-25-1991-14:39-wht@n4hgf-SVR4 port thanks to aega84!lh */
  733. X  /*:08-23-1991-01:37-wht@n4hgf-sun port */
  734. X  /*:07-25-1991-12:55-wht@n4hgf-ECU release 3.10 */
  735. X--- 38,47 ----
  736. X  
  737. X  --------------------------------------------------------------------------*/
  738. X  /*+:EDITS:*/
  739. X! /*:09-03-1991-12:53-wht@n4hgf2-iron out sun gcc options */
  740. X! /*:09-01-1991-16:32-wht@n4hgf2-show package and config versions */
  741. X! /*:09-01-1991-15:59-wht@n4hgf2-generalize HDB Devices, etc. files location */
  742. X! /*:08-28-1991-14:07-wht@n4hgf2-SVR4 cleanup by aega84!lh */
  743. X  /*:08-25-1991-14:39-wht@n4hgf-SVR4 port thanks to aega84!lh */
  744. X  /*:08-23-1991-01:37-wht@n4hgf-sun port */
  745. X  /*:07-25-1991-12:55-wht@n4hgf-ECU release 3.10 */
  746. X***************
  747. X*** 42,47 ****
  748. X--- 56,62 ----
  749. X  #include <termio.h>
  750. X  #include <sys/types.h>
  751. X  #include <sys/stat.h>
  752. X+ #include "patchlevel.h"
  753. X  
  754. X  #define S_SCO        0
  755. X  #define S_ISC        1
  756. X***************
  757. X*** 62,70 ****
  758. X  char *makedirs[] = {
  759. X      ".",
  760. X      "./ecufriend",
  761. X- #ifndef sun
  762. X      "./ecuungetty",
  763. X- #endif
  764. X      "./gendial",
  765. X      "./help",
  766. X      "./sea",
  767. X--- 77,83 ----
  768. X***************
  769. X*** 72,82 ****
  770. X      (char *)0
  771. X  };
  772. X  
  773. X! char *strs_intro[] = {
  774. X      "\n",
  775. X      ".-------------------.\n",
  776. X      "| ECU configuration |\n",
  777. X      "`-------------------'\n",
  778. X      "There are two types of responses, single character and string\n",
  779. X      "Single character questions have the choices in () followed by a ?\n",
  780. X      "String questions (with any defaults in []) are followed by a :\n",
  781. X--- 85,102 ----
  782. X      (char *)0
  783. X  };
  784. X  
  785. X! char *strs_intro1[] = {
  786. X      "\n",
  787. X      ".-------------------.\n",
  788. X      "| ECU configuration |\n",
  789. X      "`-------------------'\n",
  790. X+     (char *)0
  791. X+ };
  792. X+ char *strs_intro2[] = {
  793. X+ #ifdef WHT
  794. X+     "WHT features enabled\n",
  795. X+ #endif
  796. X+     "\n",
  797. X      "There are two types of responses, single character and string\n",
  798. X      "Single character questions have the choices in () followed by a ?\n",
  799. X      "String questions (with any defaults in []) are followed by a :\n",
  800. X***************
  801. X*** 128,141 ****
  802. X      "\t-v\\\n",
  803. X  #endif
  804. X      "\t-fstrength-reduce -fpcc-struct-return -fwritable-strings\\\n",
  805. X- #if defined(i386) || defined(M_I286) || defined(M_SYSV) || defined(ISC)
  806. X-     "\t-fcall-used-ax -fcall-used-bx -fcall-used-cx -fcall-used-dx\\\n",
  807. X- #endif
  808. X      "\t-finline-functions -fforce-mem -fforce-addr\\\n",
  809. X      "\t-W -Wunused -Wpointer-arith -Wcast-qual\\\n",
  810. X      (char *)0
  811. X  };
  812. X  
  813. X  char *sco_gcc_opts[] = {
  814. X      "\t........what-goes-here?.........\\\n",                /* XENIX/286 */
  815. X      "\t-DM_XENIX -DM_SYSV -DM_SYS5 -DM_I386\\\n",            /* XENIX/386 */
  816. X--- 148,163 ----
  817. X      "\t-v\\\n",
  818. X  #endif
  819. X      "\t-fstrength-reduce -fpcc-struct-return -fwritable-strings\\\n",
  820. X      "\t-finline-functions -fforce-mem -fforce-addr\\\n",
  821. X      "\t-W -Wunused -Wpointer-arith -Wcast-qual\\\n",
  822. X      (char *)0
  823. X  };
  824. X  
  825. X+ char *i86_gcc_opts[] = {
  826. X+     "\t-fcall-used-bx\\\n",
  827. X+     (char *)0
  828. X+ };
  829. X+ 
  830. X  char *sco_gcc_opts[] = {
  831. X      "\t........what-goes-here?.........\\\n",                /* XENIX/286 */
  832. X      "\t-DM_XENIX -DM_SYSV -DM_SYS5 -DM_I386\\\n",            /* XENIX/386 */
  833. X***************
  834. X*** 149,155 ****
  835. X  char *isc_sigtype = "\t-DSIGTYPE=void\\\n";
  836. X  
  837. X  char *sun_cc_opts  = "\t-O -DBSD\\\n";
  838. X! char *sun_gcc_opts  = "\t-O -DBSD\\\n";
  839. X  char *sun_sigtype = "\t-DSIGTYPE=void\\\n";
  840. X  
  841. X  char *svr4_cc_opts  = "\t-O -DSVR4 -DSYSV\\\n";
  842. X--- 171,177 ----
  843. X  char *isc_sigtype = "\t-DSIGTYPE=void\\\n";
  844. X  
  845. X  char *sun_cc_opts  = "\t-O -DBSD\\\n";
  846. X! char *sun_gcc_opts  = "\t-pipe -O -Dsun -DBSD\\\n"; /* ansi gets __sun__ only */
  847. X  char *sun_sigtype = "\t-DSIGTYPE=void\\\n";
  848. X  
  849. X  char *svr4_cc_opts  = "\t-O -DSVR4 -DSYSV\\\n";
  850. X***************
  851. X*** 309,329 ****
  852. X              break;
  853. X      }
  854. X      fputs("\t-DECULIBDIR='\"$(ECULIBDIR)\"'\\\n",fpmake);
  855. X! #if defined(WHT) 
  856. X! #if defined(sun)
  857. X!     fputs("\t-DWHT -DAUDIO -g\\\n",fpmake);
  858. X! #else
  859. X!     fputs("\t-DWHT -DMORSE -DFASI -g\\\n",fpmake);
  860. X! #endif
  861. X! #else
  862. X! #if defined(MORSE)
  863. X!     fputs("\t-DMORSE -g\\\n",fpmake);
  864. X! #endif /* MORSE */
  865. X! #if defined(FASI)
  866. X!     fputs("\t-DFASI -g\\\n",fpmake);
  867. X! #endif /* FASI */
  868. X! #endif
  869. X!     fputs("\t$(SYMBOLIC) $(CFLAGS_EXTRA)\n\n",fpmake);
  870. X  }
  871. X  
  872. X  void
  873. X--- 331,338 ----
  874. X              break;
  875. X      }
  876. X      fputs("\t-DECULIBDIR='\"$(ECULIBDIR)\"'\\\n",fpmake);
  877. X!     fputs("\t-DHDBFILES='\"$(HDBFILES)\"'\\\n",fpmake);
  878. X!     fputs("\t$(SYMBOLIC) $(CFLAGS_EXTRA) $*CC_CFLAGS_EXTRA)\n\n",fpmake);
  879. X  }
  880. X  
  881. X  void
  882. X***************
  883. X*** 330,342 ****
  884. X  gen_gcc_cflags()
  885. X  {
  886. X      fputs("CFLAGS = \\\n",fpmake);
  887. X-     if(have_gcc_140)
  888. X-         fputs("\t-DGCC140\\\n",fpmake);
  889. X      tputstrsfp(gcc_opts);
  890. X      switch(sys)
  891. X      {
  892. X          case S_SCO:
  893. X              fputs(sco_gcc_opts[sco_type],fpmake);
  894. X              if(sco_type == X_UNIX)
  895. X                  fputs(malloc_3x,fpmake);
  896. X              fputs(sco_sigtype[sco_type],fpmake);
  897. X--- 339,350 ----
  898. X  gen_gcc_cflags()
  899. X  {
  900. X      fputs("CFLAGS = \\\n",fpmake);
  901. X      tputstrsfp(gcc_opts);
  902. X      switch(sys)
  903. X      {
  904. X          case S_SCO:
  905. X              fputs(sco_gcc_opts[sco_type],fpmake);
  906. X+             tputstrsfp(i86_gcc_opts);
  907. X              if(sco_type == X_UNIX)
  908. X                  fputs(malloc_3x,fpmake);
  909. X              fputs(sco_sigtype[sco_type],fpmake);
  910. X***************
  911. X*** 343,374 ****
  912. X              break;
  913. X          case S_ISC:
  914. X              fputs(isc_gcc_opts,fpmake);
  915. X              fputs(malloc_3x,fpmake);
  916. X              fputs(isc_sigtype,fpmake);
  917. X              break;
  918. X          case S_SUN:
  919. X              fputs(sun_gcc_opts,fpmake);
  920. X              fputs(malloc_3x,fpmake);
  921. X              fputs(sun_sigtype,fpmake);
  922. X              break;
  923. X          case S_SVR4:
  924. X              fputs(svr4_gcc_opts,fpmake);
  925. X              fputs(malloc_3x,fpmake);
  926. X              fputs(svr4_sigtype,fpmake);
  927. X              break;
  928. X      }
  929. X      fputs("\t-DECULIBDIR='\"$(ECULIBDIR)\"'\\\n",fpmake);
  930. X! #if defined(WHT)
  931. X!     fputs("\t-DWHT -DMORSE -DFASI -DSHARE_DEBUG -g\\\n",fpmake);
  932. X! #else
  933. X! #if defined(MORSE)
  934. X!     fputs("\t-DMORSE -g\\\n",fpmake);
  935. X! #endif /* MORSE */
  936. X! #if defined(FASI)
  937. X!     fputs("\t-DFASI -g\\\n",fpmake);
  938. X! #endif /* FASI */
  939. X! #endif
  940. X!     fputs("\t$(SYMBOLIC) $(CFLAGS_EXTRA)\n\n",fpmake);
  941. X  }
  942. X  
  943. X  void
  944. X--- 351,382 ----
  945. X              break;
  946. X          case S_ISC:
  947. X              fputs(isc_gcc_opts,fpmake);
  948. X+             tputstrsfp(i86_gcc_opts);
  949. X              fputs(malloc_3x,fpmake);
  950. X+             fputs("\t-DWORKING_SELECT\\\n",fpmake);
  951. X              fputs(isc_sigtype,fpmake);
  952. X              break;
  953. X          case S_SUN:
  954. X              fputs(sun_gcc_opts,fpmake);
  955. X              fputs(malloc_3x,fpmake);
  956. X+             fputs("\t-DWORKING_SELECT\\\n",fpmake);
  957. X              fputs(sun_sigtype,fpmake);
  958. X              break;
  959. X          case S_SVR4:
  960. X              fputs(svr4_gcc_opts,fpmake);
  961. X+ #if defined(i386)
  962. X+             tputstrsfp(i86_gcc_opts);
  963. X+ #endif
  964. X              fputs(malloc_3x,fpmake);
  965. X+             fputs("\t-DWORKING_SELECT\\\n",fpmake);
  966. X              fputs(svr4_sigtype,fpmake);
  967. X              break;
  968. X      }
  969. X      fputs("\t-DECULIBDIR='\"$(ECULIBDIR)\"'\\\n",fpmake);
  970. X!     fputs("\t-DHDBFILES='\"$(HDBFILES)\"'\\\n",fpmake);
  971. X!     if(have_gcc_140)
  972. X!         fputs("\t-DGCC140\\\n",fpmake);
  973. X!     fputs("\t$(SYMBOLIC) $(CFLAGS_EXTRA) $(CC_CFLAGS_EXTRA)\n\n",fpmake);
  974. X  }
  975. X  
  976. X  void
  977. X***************
  978. X*** 429,434 ****
  979. X--- 437,443 ----
  980. X  char mkfl[128];
  981. X  char s128[128];
  982. X  FILE *fpsrc;
  983. X+ FILE *local = fopen("config.local","r");;
  984. X  
  985. X      sprintf(mksrc,"%s/Make.src",mdir);
  986. X      sprintf(mkfl,"%s/Makefile",mdir);
  987. X***************
  988. X*** 460,465 ****
  989. X--- 469,483 ----
  990. X          mksrc);
  991. X      fprintf(fpmake,"#---- configured by ECU config rev %s\n\n",rev);
  992. X  
  993. X+     if(local)
  994. X+     {
  995. X+         fprintf(fpmake,"# config.local inclusions\n");
  996. X+         while(fgets(s128,sizeof(s128),local))
  997. X+             fputs(s128,fpmake);
  998. X+         fclose(local);
  999. X+         fputs("\n",fpmake);
  1000. X+     }
  1001. X+ 
  1002. X      switch(compiler)
  1003. X      {
  1004. X          case C_CC:
  1005. X***************
  1006. X*** 490,511 ****
  1007. X--- 508,537 ----
  1008. X  
  1009. X      fprintf(fpmake,"LBIN = %s\n",bindir);
  1010. X      fprintf(fpmake,"ECULIBDIR = %s\n",libdir);
  1011. X+     /*
  1012. X+      * we need this info in Makefiles, so it is put here rather
  1013. X+      * than ecu.h; must also have this passed thru in CFLAGS
  1014. X+      */
  1015. X      switch(sys)
  1016. X      {
  1017. X          case S_SCO:
  1018. X              fprintf(fpmake,"SYSTEM = %s\n",sco_system[sco_type]);
  1019. X+             fprintf(fpmake,"HDBFILES = /usr/lib/uucp\n");
  1020. X              use_ecuungetty = "yes";
  1021. X              break;
  1022. X          case S_ISC:
  1023. X              fprintf(fpmake,"SYSTEM = %s\n",isc_system);
  1024. X+             fprintf(fpmake,"HDBFILES = /usr/lib/uucp\n");
  1025. X              use_ecuungetty = "yes";
  1026. X              break;
  1027. X          case S_SUN:
  1028. X              fprintf(fpmake,"SYSTEM = %s\n",sun_system);
  1029. X+             fprintf(fpmake,"HDBFILES = /etc/uucp\n");
  1030. X              use_ecuungetty = "no";
  1031. X              break;
  1032. X          case S_SVR4:
  1033. X              fprintf(fpmake,"SYSTEM = %s\n",svr4_system);
  1034. X+             fprintf(fpmake,"HDBFILES = /etc/uucp\n");
  1035. X              use_ecuungetty = "no";
  1036. X              break;
  1037. X      }
  1038. X***************
  1039. X*** 586,596 ****
  1040. X          signal(itmp,goodbye);
  1041. X  
  1042. X      if(!debug)
  1043. X!         tputstrs(strs_intro);
  1044. X! 
  1045. X! #ifdef WHT
  1046. X!     printf("WHT version enabled\n");
  1047. X! #endif
  1048. X  
  1049. X      if(sys < 0)
  1050. X      {
  1051. X--- 612,622 ----
  1052. X          signal(itmp,goodbye);
  1053. X  
  1054. X      if(!debug)
  1055. X!     {
  1056. X!         tputstrs(strs_intro1);
  1057. X!         printf("Package version 3.%d, config version %s\n",PATCHLEVEL,rev);
  1058. X!         tputstrs(strs_intro2);
  1059. X!     }
  1060. X  
  1061. X      if(sys < 0)
  1062. X      {
  1063. X*** /export/home/wht/src/ecu314/doc/_features.txt    Wed Sep  4 00:23:11 1991
  1064. X--- doc/_features.txt    Mon Sep  2 01:55:10 1991
  1065. X***************
  1066. X*** 114,120 ****
  1067. X  by testing all keystroke sequences again an internal table loaded
  1068. X  at the beginning of execution from the file ~/.ecu/nonansikeys.
  1069. X  A default nonansikeys may be placed in the ECU library directory
  1070. X! (normally /usr/local/lib/ecu).
  1071. X  
  1072. X  NOTE that supported terminals MUST employ function keys which generate
  1073. X  sequences free of nulls and less than 33 characters in length.
  1074. X--- 114,123 ----
  1075. X  by testing all keystroke sequences again an internal table loaded
  1076. X  at the beginning of execution from the file ~/.ecu/nonansikeys.
  1077. X  A default nonansikeys may be placed in the ECU library directory
  1078. X! (normally /usr/local/lib/ecu).  X11 xterms usually require special attention
  1079. X! with VT100.Translations overrides.  Sometimes an xmodmap must also be
  1080. X! employed.  Experimentation is the best teacher, but the supplied
  1081. X! nonansikeys file and various READMEs offer some hints.
  1082. X  
  1083. X  NOTE that supported terminals MUST employ function keys which generate
  1084. X  sequences free of nulls and less than 33 characters in length.
  1085. X***************
  1086. X*** 680,700 ****
  1087. X  programs by Chuck Forsberg) present dynamic status displays similar to
  1088. X  the following:
  1089. X  .DS L
  1090. X!     .-[ ecusz 2.37 ]-- /tmp -----------------------------------.
  1091. X!     |  ZMODEM/CRC32  Data xfer rate ~=    896 chars/sec        |
  1092. X!     |  File   1 of   1: ckermit-5a-130                         |
  1093. X!     |  File position:     34053 length:    34053  -rw-r--r--   |
  1094. X!     |  Sending 34053 bytes  total time ~=  0:40                |
  1095. X!     |  tx: hdr ZFIN  0             rx: hdr ZFIN  0             |
  1096. X!     |  Comm I/O: rx      175  tx    34393 bytes                |
  1097. X!     |  Baud rate:  9600 BINARY blklen:  1024 comm mode: NORMAL |
  1098. X!     |  Time:         started: 17:31:50  this file: 17:31:51    |
  1099. X!     |  17:32:29      elapsed: 00:00:39             00:00:38    |
  1100. X!     |  Errors: this file:   0 total:    0 files skipped:   0   |
  1101. X!     |  Total file bytes transferred: 34053                     |
  1102. X!     |  End of file                                             |
  1103. X!     |  Remote: CRC32 y  duplex y  continuous stream y          |
  1104. X!     `- Connected to ki4xo - procedure put_ck5a ----------------'
  1105. X  .DE
  1106. X  
  1107. X  During file transfer, transfer rates are displayed from time to time.
  1108. X--- 683,705 ----
  1109. X  programs by Chuck Forsberg) present dynamic status displays similar to
  1110. X  the following:
  1111. X  .DS L
  1112. X!         .-[ ecurz 3.14 ]-- /export/home/wht/tmp -------------------.
  1113. X!         |  ZMODEM/CRC32  transfer rate ~= 1638 ch/sec (85%)   R    |
  1114. X!         |  File 2  :        test.data                              |
  1115. X!         |  File position:  13312    length: 200599    -r--r--r--   |
  1116. X!         |  Receive time this file ~=  1:55                         |
  1117. X!         |  tx: hdr ZRPOS 0             rx: data ZCRCG 1024 bytes   |
  1118. X!         |  Comm I/O: rx 599390    tx 84       bytes                |
  1119. X!         |  Baud rate: 19200 BINARY blklen: 1024  comm mode: RAW-f  |
  1120. X!         |  Time:    started: 01:36:54 this file: 01:42:13          |
  1121. X!         |  01:42:21 elapsed: 00:05:27            00:00:08          |
  1122. X!         |  Errors: this file: 0   total: 0    files skipped: 0     |
  1123. X!         |  Total file bytes transferred: 560149                    |
  1124. X!         |  Receiving data (6% complete)                            |
  1125. X!         |  Transfer: if destination nonexistent                    |
  1126. X!         |  Output queue depth       0  RTS T  CTS T                |
  1127. X!         |  Input queue depth       10  Input queue avail    490    |
  1128. X!         `- Connected to mp486 -------------------------------------'
  1129. X  .DE
  1130. X  
  1131. X  During file transfer, transfer rates are displayed from time to time.
  1132. X***************
  1133. X*** 712,717 ****
  1134. X--- 717,736 ----
  1135. X  are skipped in a transfer session, you may be sure the transaction
  1136. X  rate will be (perhaps much) lower than the per-file rate.
  1137. X  
  1138. X+ On some systems and driver options, sundry driver statistics are
  1139. X+ displayed during X/Y/ZMODEM transfers.  For instance, in the above
  1140. X+ display from a Sun session.  the driver's current output and input
  1141. X+ queue depths and input queue space available are displayed along with
  1142. X+ the current status of RTS and CTS.  While such gay banter is rightly
  1143. X+ relegated to the "bell and whistle" category, it does provide a rare
  1144. X+ insight into driver operation.  The ECU FAS/i driver for 386 systems
  1145. X+ (after Uwe Doering's FAS driver) provided other information.
  1146. X+ 
  1147. X+ .DS L
  1148. X+         |  Output queue depth       0  RTS T  CTS T                |
  1149. X+         |  Input queue depth       10  Input queue avail    490    |
  1150. X+ .DE
  1151. X+ 
  1152. X  .*s 2 "Procedures (Scripts)"
  1153. X  
  1154. X  A powerful, language-style procedure language is incorporated
  1155. X***************
  1156. X*** 750,786 ****
  1157. X  ECU control files reside in the .ecu subdirectory of
  1158. X  each user's home directory.  For example, in home directory /usr/wht:
  1159. X  .DS I
  1160. X! /usr/wht/.ecu/dir            CD interactive command history file
  1161. X! /usr/wht/.ecu/keys           function key mapping
  1162. X! /usr/wht/.ecu/nonansikeys    function key mapping
  1163. X! /usr/wht/.ecu/log            connect, file transfer history
  1164. X! /usr/wht/.ecu/phone          default dialing directory
  1165. X! /usr/wht/.ecu/colors         colors used by ECU
  1166. X  .DE
  1167. X  
  1168. X! The .ecu directory is also searched for ECU procedure files
  1169. X  (having the '.ep' extension) in the procedure cannot be found in
  1170. X  the current working directory.
  1171. X  
  1172. X  .*s 2 "Lock Files"
  1173. X  
  1174. X! ECU maintains lock files in /usr/spool/uucp in accordance with the
  1175. X  HoneyDanBer UUCP conventions (ASCII pids as 10-character strings
  1176. X! followed by a newline).  Lock files are created for the lower-case
  1177. X! device names of
  1178. X! a line and checked for in both cases.  
  1179. X! For example, both LCK..tty1a is created when
  1180. X! /dev/tty1a OR /dev/tty1A is selected and neither LCK..tty1a nor
  1181. X! LCK..tty1A are active.  See the later section titled
  1182. X! "HoneyDanBer UUCP Interface".
  1183. X  
  1184. X  .*s 2 "Dial-In/Dial-Out Line Support"
  1185. X  
  1186. X  ECU works with the SCO getty to support dialing out on a line
  1187. X  enabled for login.  After use of the line is complete,
  1188. X  ECU signals the system to restore incoming call status to
  1189. X  the line.
  1190. X  See the later section titled "HoneyDanBer UUCP Interface".
  1191. X  
  1192. X  .*s 2 "Tools"
  1193. X  
  1194. X--- 769,823 ----
  1195. X  ECU control files reside in the .ecu subdirectory of
  1196. X  each user's home directory.  For example, in home directory /usr/wht:
  1197. X  .DS I
  1198. X!    /usr/wht/.ecu/dir          CD interactive command history file
  1199. X! *  /usr/wht/.ecu/keys         function key mapping
  1200. X! *  /usr/wht/.ecu/nonansikeys  function key mapping
  1201. X!    /usr/wht/.ecu/log          connect, file transfer history
  1202. X!    /usr/wht/.ecu/phone        default dialing directory
  1203. X! *% /usr/wht/.ecu/colors       colors used by ECU
  1204. X  .DE
  1205. X  
  1206. X! * The ecu library directory (normally /usr/local/lib/ecu) is searched for
  1207. X! the "keys", "colors" and "nonansikeys" file if a personal version
  1208. X! cannot be found.
  1209. X! 
  1210. X! % The "colors" file does not apply to systems on which color is not yet
  1211. X! supported.
  1212. X! 
  1213. X! The .ecu directory is searched for ECU procedure files
  1214. X  (having the '.ep' extension) in the procedure cannot be found in
  1215. X  the current working directory.
  1216. X  
  1217. X  .*s 2 "Lock Files"
  1218. X  
  1219. X! ECU maintains lock files in the standard directory in accordance with the
  1220. X  HoneyDanBer UUCP conventions (ASCII pids as 10-character strings
  1221. X! followed by a newline).  If porting to a machine with old-style
  1222. X! integer pids, grep for HONEYDANBER in the sources for hints on
  1223. X! where changes are needed.
  1224. X  
  1225. X+ Standard lock directories for versions supported as of this writing:
  1226. X+ .DS I
  1227. X+    SCO               /usr/spool/uucp
  1228. X+    SunOS, SVR4       /usr/spool/locks
  1229. X+    SunOS, SVR4       /var/spool/locks
  1230. X+ .DE
  1231. X+ 
  1232. X+ .ul 1
  1233. X+ World write access to this directory must be in effect. 
  1234. X+ 
  1235. X+ See the later section titled "HoneyDanBer UUCP Interface".
  1236. X+ 
  1237. X  .*s 2 "Dial-In/Dial-Out Line Support"
  1238. X  
  1239. X+ On SCO XENIX and UNIX 3.2 systems,
  1240. X  ECU works with the SCO getty to support dialing out on a line
  1241. X  enabled for login.  After use of the line is complete,
  1242. X  ECU signals the system to restore incoming call status to
  1243. X  the line.
  1244. X  See the later section titled "HoneyDanBer UUCP Interface".
  1245. X+ 
  1246. X+ This facility is not required in other  environments.
  1247. X  
  1248. X  .*s 2 "Tools"
  1249. X  
  1250. X*** /export/home/wht/src/ecu314/doc/_p_cmd.txt    Wed Sep  4 00:25:10 1991
  1251. X--- doc/_p_cmd.txt    Sun Sep  1 20:49:36 1991
  1252. X***************
  1253. X*** 7,12 ****
  1254. X--- 7,23 ----
  1255. X  This command sets the baud rate for the attached line.
  1256. X  The integer argument <baud-int> must be one of
  1257. X  110, 300, 600, 1200, 2400, 4800, 9600, 19200 and 38400.
  1258. X+ 
  1259. X+ Using the 'baud' procedure command in the ECU initialization
  1260. X+ procedure "_rc.ep" serves as an exact analog of the -b command.  The
  1261. X+ .B baud
  1262. X+ command with the
  1263. X+ .B setline
  1264. X+ command gives you programatic control over the actual choice of the
  1265. X+ line and rate or the defaults for the setup screen, depending upon
  1266. X+ other options.  NOTE: using the baud command in _rc.ep will override
  1267. X+ any command line -b specification.
  1268. X+ 
  1269. X  .DS L
  1270. X  Example:
  1271. X      baud 9600
  1272. X***************
  1273. X*** 1551,1556 ****
  1274. X--- 1562,1596 ----
  1275. X      $s0 = 'abc'          legal
  1276. X      set s0='abc'         legal
  1277. X      s0 = 'abc'           illegal
  1278. X+ .DE
  1279. X+ .*s 3 "setline"
  1280. X+ .DS L
  1281. X+ usage: setline <filename>
  1282. X+ .DE
  1283. X+ This command is an exact analog of the -l command line switch.
  1284. X+ <filename> is used on the setup screen (if it is presented)
  1285. X+ as the default filename. If you do not edit this name, ECU will
  1286. X+ attempt to open the line when you press End or ^D. 
  1287. X+ <filename> has the format of a complete pathanme in /dev or simple
  1288. X+ tty name. 
  1289. X+ 
  1290. X+ .B setline
  1291. X+ may only be used in _rc.ep.  Using the
  1292. X+ .B setline
  1293. X+ command with the
  1294. X+ .B baud
  1295. X+ command gives you programatic control over the actual
  1296. X+ choice of the line and rate or the defaults for the setup screen,
  1297. X+ depending upon other options.
  1298. X+ 
  1299. X+ NOTE: using the setline command will override any command line -l
  1300. X+ specification.
  1301. X+ 
  1302. X+ .DS L
  1303. X+ Example:
  1304. X+   setline '/dev/tty1a'
  1305. X+   setline 'tty1a'
  1306. X+   setline 'cua0'
  1307. X  .DE
  1308. X  .*s 3 "sk"
  1309. X  usage: sk [-a] <str>
  1310. X*** /export/home/wht/src/ecu314/doc/_top.txt    Wed Sep  4 00:25:11 1991
  1311. X--- doc/_top.txt    Sun Sep  1 05:07:33 1991
  1312. X***************
  1313. X*** 11,25 ****
  1314. X  .sp 2i
  1315. X  .ft B
  1316. X  .ce 10
  1317. X! ECU 3.13
  1318. X  
  1319. X  (Extended Call Utility)
  1320. X  .ce 0
  1321. X  .sp 1i
  1322. X  .ce 100
  1323. X! Professional and Engineering
  1324. X  Asynchronous Communications Package
  1325. X! for UNIX and XENIX System V
  1326. X  .ce 0
  1327. X  .ft P
  1328. X  .sp 2i
  1329. X--- 11,26 ----
  1330. X  .sp 2i
  1331. X  .ft B
  1332. X  .ce 10
  1333. X! ECU 3.15
  1334. X  
  1335. X  (Extended Call Utility)
  1336. X  .ce 0
  1337. X  .sp 1i
  1338. X  .ce 100
  1339. X! Research and Engineering
  1340. X  Asynchronous Communications Package
  1341. X! for SCO UNIX 3.2 and XENIX System V,
  1342. X! SunOS 4.1 and ISC System V Release 4
  1343. X  .ce 0
  1344. X  .ft P
  1345. X  .sp 2i
  1346. X***************
  1347. X*** 29,38 ****
  1348. X  .sp 1i
  1349. X  .ce 100
  1350. X  Technical Description
  1351. X! Revision 3.13
  1352. X  \n(mo/\n(dy/\n(yr
  1353. X  .ce 0
  1354. X  .ls 1
  1355. X  .PH "'ECU Technical Description''%'"
  1356. X  .PF "'Public Domain by wht@n4hgf''\n(mo/\n(dy/\n(yr'"
  1357. X  .nr si 2n
  1358. X--- 30,44 ----
  1359. X  .sp 1i
  1360. X  .ce 100
  1361. X  Technical Description
  1362. X! Revision 3.15
  1363. X  \n(mo/\n(dy/\n(yr
  1364. X  .ce 0
  1365. X+ .sp 1i
  1366. X  .ls 1
  1367. X+ NOTE: Many sections of the manual are likely to be obsolete at any given
  1368. X+ time until the writer get lots of free time.  Much of it was written when
  1369. X+ the program was supported only on SCO XENIX and UNIX. 
  1370. X+ 
  1371. X  .PH "'ECU Technical Description''%'"
  1372. X  .PF "'Public Domain by wht@n4hgf''\n(mo/\n(dy/\n(yr'"
  1373. X  .nr si 2n
  1374. X*** /export/home/wht/src/ecu314/ecu.c    Wed Sep  4 00:24:48 1991
  1375. X--- ecu.c    Mon Sep  2 21:58:59 1991
  1376. X***************
  1377. X*** 6,11 ****
  1378. X--- 6,21 ----
  1379. X      main(argc,argv,envp)
  1380. X      xmtr()
  1381. X  
  1382. X+    "Now tell me, old man, what's your name?"
  1383. X+    "Holloway, sir. Charles William Holloway."
  1384. X+    "Oh yes, the town's librarian."
  1385. X+    "I have the honor, sir, and have had for many years."
  1386. X+    "I believe all that time spent living through other men's lives,
  1387. X+ other men's dreams, what a waste."
  1388. X+    "Sometimes, a man can learn more from other men's dreams than he
  1389. X+ can from his own.  Come visit me sir, if you wish to improve your
  1390. X+ education and I may improve yours."  -- Something Wicked This Way Comes
  1391. X+ 
  1392. X  ------------------------------------------------------------------------*/
  1393. X  /*+:EDITS:*/
  1394. X  /*:08-11-1991-19:56-wht@n4hgf-soup up -l for ISC vs. SCO */
  1395. X***************
  1396. X*** 31,36 ****
  1397. X--- 41,53 ----
  1398. X  #undef NULL
  1399. X  #include <sys/param.h>
  1400. X  
  1401. X+ #if defined(sun) && defined(FASI)
  1402. X+ #undef FRASI
  1403. X+ #endif
  1404. X+ #if defined(sun) && defined(MORSE)
  1405. X+ #undef FRASI
  1406. X+ #endif
  1407. X+ 
  1408. X  char *getenv();
  1409. X  
  1410. X  extern char *makedate;            /* temporary make date */
  1411. X***************
  1412. X*** 54,59 ****
  1413. X--- 71,77 ----
  1414. X  extern int tty_is_multiscreen;
  1415. X  extern char lopen_err_str[];
  1416. X  
  1417. X+ char *eculibdir = ECULIBDIR;
  1418. X  char curr_dir[CURR_DIRSIZ];        /* current working directory of process */
  1419. X  char hello_str[128];        /* msg printed upon BOJ */
  1420. X  char errmsg[128];
  1421. X***************
  1422. X*** 68,73 ****
  1423. X--- 86,92 ----
  1424. X  int xmtr_pid = 0;
  1425. X  int quit_on_init_proc_fail = 0;
  1426. X  int quit_on_init_proc_done = 0;
  1427. X+ int rc_ep_has_run = 0;
  1428. X  int hz;                    /* HZ from environ or sys/param.h */
  1429. X  ulong hzmsec;            /* clock period in msec rounded up */
  1430. X  struct timeb starting_timeb;
  1431. X***************
  1432. X*** 217,222 ****
  1433. X--- 236,242 ----
  1434. X      shm_init();                /* open shared segment */
  1435. X  
  1436. X      keyset_init();            /* intialize keyset */
  1437. X+     keyset_read("default");
  1438. X  
  1439. X      make_ecu_subdir();        /* needs to be very early before lots of init */
  1440. X  
  1441. X***************
  1442. X*** 306,316 ****
  1443. X      ttyinit(shm->ttyinit_param);    /* init console tty mode handler */
  1444. X      ttymode(3);        /* put user console in `raw' mode but SIGINT terms prog */
  1445. X      tcap_clear_screen();
  1446. X! #ifdef WHT
  1447. X      xterm_title("ECU",0);
  1448. X  #endif
  1449. X      ff(se,"%s\r\n",hello_str);
  1450. X  
  1451. X  /* check out line */
  1452. X      if(!shm->Lline[0])
  1453. X      {
  1454. X--- 326,347 ----
  1455. X      ttyinit(shm->ttyinit_param);    /* init console tty mode handler */
  1456. X      ttymode(3);        /* put user console in `raw' mode but SIGINT terms prog */
  1457. X      tcap_clear_screen();
  1458. X! #if defined(WHT) || defined(XTERM_FRIEND)
  1459. X      xterm_title("ECU",0);
  1460. X  #endif
  1461. X      ff(se,"%s\r\n",hello_str);
  1462. X  
  1463. X+ /* do the _rc.ep execution */
  1464. X+     if(find_procedure(_rc))
  1465. X+     {
  1466. X+         if(do_proc(1,&_rc))
  1467. X+         {
  1468. X+             if(quit_on_init_proc_fail || quit_on_init_proc_done)
  1469. X+                 termecu(TERMECU_INIT_PROC_ERROR);
  1470. X+         }
  1471. X+     }
  1472. X+     rc_ep_has_run = 1;
  1473. X+ 
  1474. X  /* check out line */
  1475. X      if(!shm->Lline[0])
  1476. X      {
  1477. X***************
  1478. X*** 329,344 ****
  1479. X                  strcpy(shm->Lline,default_tty);
  1480. X                  Nap(1000L);
  1481. X              }
  1482. X-         }
  1483. X-     }
  1484. X- 
  1485. X- /* do the _rc.ep execution */
  1486. X-     if(find_procedure(_rc))
  1487. X-     {
  1488. X-         if(do_proc(1,&_rc))
  1489. X-         {
  1490. X-             if(quit_on_init_proc_fail || quit_on_init_proc_done)
  1491. X-                 termecu(TERMECU_INIT_PROC_ERROR);
  1492. X          }
  1493. X      }
  1494. X  
  1495. X--- 360,365 ----
  1496. X*** /export/home/wht/src/ecu314/ecu.h    Wed Sep  4 00:25:04 1991
  1497. X--- ecu.h    Tue Sep  3 19:26:16 1991
  1498. X***************
  1499. X*** 20,28 ****
  1500. X--- 20,33 ----
  1501. X  #define VOLATILE
  1502. X  #endif
  1503. X  
  1504. X+ #if defined(__sun__) && !defined(sun)
  1505. X+ #define sun
  1506. X+ #endif
  1507. X+ 
  1508. X  #if !defined(STDIO_H_INCLUDED)
  1509. X  #include <stdio.h>
  1510. X  #endif
  1511. X+ 
  1512. X  #include <signal.h>
  1513. X  #include <ctype.h>
  1514. X  #include <sys/types.h>
  1515. X***************
  1516. X*** 29,42 ****
  1517. X  #include <errno.h>
  1518. X  #include <sys/timeb.h>
  1519. X  #include <string.h>
  1520. SHAR_EOF
  1521. true || echo 'restore of PATCH5.01 failed'
  1522. fi
  1523. echo 'End of ecu/patch05 part 1'
  1524. echo 'File PATCH5.01 is continued in part 2'
  1525. echo 2 > _shar_seq_.tmp
  1526. exit 0
  1527.  
  1528. exit 0 # Just in case...
  1529.