home *** CD-ROM | disk | FTP | other *** search
/ Source Code 1994 March / Source_Code_CD-ROM_Walnut_Creek_March_1994.iso / compsrcs / misc / volume32 / ecu / part02 < prev    next >
Encoding:
Text File  |  1992-09-10  |  57.0 KB  |  1,385 lines

  1. Newsgroups: comp.sources.misc
  2. From: wht@n4hgf.Mt-Park.GA.US (Warren Tucker)
  3. Subject:  v32i037:  ecu - ECU Asynchronous Communications v3.20, Part02/40
  4. Message-ID: <1992Sep11.191456.4991@sparky.imd.sterling.com>
  5. X-Md4-Signature: 3aecc09cb929a281980593a0efa44358
  6. Date: Fri, 11 Sep 1992 19:14:56 GMT
  7. Approved: kent@sparky.imd.sterling.com
  8.  
  9. Submitted-by: wht@n4hgf.Mt-Park.GA.US (Warren Tucker)
  10. Posting-number: Volume 32, Issue 37
  11. Archive-name: ecu/part02
  12. Environment: SCO,XENIX,ISC,SUNOS,SYSVR4,HDB,Curses
  13. Supersedes: ecu: Volume 21, Issue 53-89
  14.  
  15. ---- Cut Here and feed the following to sh ----
  16. #!/bin/sh
  17. # this is ecu320.02 (part 2 of ecu320)
  18. # do not concatenate these parts, unpack them in order with /bin/sh
  19. # file README.Q-and-A continued
  20. #
  21. if test ! -r _shar_seq_.tmp; then
  22.     echo 'Please unpack part 1 first!'
  23.     exit 1
  24. fi
  25. (read Scheck
  26.  if test "$Scheck" != 2; then
  27.     echo Please unpack part "$Scheck" next!
  28.     exit 1
  29.  else
  30.     exit 0
  31.  fi
  32. ) < _shar_seq_.tmp || exit 1
  33. if test ! -f _shar_wnt_.tmp; then
  34.     echo 'x - still skipping README.Q-and-A'
  35. else
  36. echo 'x - continuing file README.Q-and-A'
  37. sed 's/^X//' << 'SHAR_EOF' >> 'README.Q-and-A' &&
  38. X> with kbdtest3 for each, but I can't get them to intersect enough to have
  39. X> them be one common entry.  (I haven't fiddled with the .Xdefaults.)  I
  40. X> would like to be able to store the keymaps in funckeymap as "xterm-sunc"
  41. X> and "xterm-dec" and have either a command-line switch or environment
  42. X> variable such as ECUKEYS select which one I want, since the TERM
  43. X> variable just isn't sufficient to choose in this case.
  44. X> 
  45. X> $TERM is marvelously adequate for doing all the curses stuff.  Nothing
  46. X> need be changed there.
  47. X> -- 
  48. X> Clayton Haapala    (clayh@network.com)    
  49. X> Network Systems Corp.            "...and the alligators are on FIRE."
  50. X> 7625 Boone Ave N MS10                -- S.E.K.
  51. X> Minneapolis, MN 55428-1099
  52. X
  53. XThe answer within the current framework is to use xmodmap and/or
  54. Xoverride translations to make the keys generate the same
  55. Xsequences on both systems.
  56. X
  57. XThe ultimate answer is, as you suggest, to do something "better."
  58. XI just haven't come up with anything yet.
  59. X
  60. XIf you are networked so that ~/.ecu becomes the same directory
  61. Xeven on two different machines/xterm implementations, my pitiful
  62. Xattempts break down.  I have always suggested forcing xterms to
  63. Xhave a consistent keyboard, but this is not always possible.
  64. XIt is what I do for a SunOS MIT server and a SCO UNIX Roell X386
  65. X1.1b.  If I got really motivated, I'd change the Roell code
  66. Xto match the Sun server.  But then, I wouldn't be able to
  67. Xmake accurate code and recommendations for other Roell users.
  68. X
  69. XThis is, in fact, partly a specification deficit and partly a
  70. Xproblem of incomplete porting.  Anyone who has ever ported X
  71. Xwould be very happy when they get down to these small matters
  72. Xand if they never use the Home or Shift Tab, they'll never know.
  73. X
  74. XLemme think on this one.
  75. SHAR_EOF
  76. echo 'File README.Q-and-A is complete' &&
  77. chmod 0644 README.Q-and-A ||
  78. echo 'restore of README.Q-and-A failed'
  79. Wc_c="`wc -c < 'README.Q-and-A'`"
  80. test 2046 -eq "$Wc_c" ||
  81.     echo 'README.Q-and-A: original size 2046, current size' "$Wc_c"
  82. rm -f _shar_wnt_.tmp
  83. fi
  84. # ============= README.RTSCTS ==============
  85. if test -f 'README.RTSCTS' -a X"$1" != X"-c"; then
  86.     echo 'x - skipping README.RTSCTS (File already exists)'
  87.     rm -f _shar_wnt_.tmp
  88. else
  89. > _shar_wnt_.tmp
  90. echo 'x - extracting README.RTSCTS (Text)'
  91. sed 's/^X//' << 'SHAR_EOF' > 'README.RTSCTS' &&
  92. XFull duplex hardware flow control is correctly handled by only
  93. Xone UNIX entity I know of: the FAS public domain async driver for
  94. Xvarious 386 unixes.
  95. X
  96. XI have not seen what SVR4 has to offer.
  97. X
  98. XSunOs has partial support.
  99. X
  100. XSCO UNIX and XENIX has a completely useless method based on the
  101. Xclassical synchronous modem model: the DTE raises RTS when it
  102. Xwishes to send and waits for CTS from the modem.  Modems at slave
  103. Xlocations on master-slave multidrop lines leave their carrier off
  104. Xexcept when the DTE is transmitting.  The DTE says "RTS", the
  105. Xmodem turns on its carrier and raises its CTS line after the
  106. Xmodem carrier is stable enough to support data transmission.
  107. X
  108. XPerhaps, some modems are smart enough to detect another modem
  109. X"using" the path.  In such cases, the modem remains quiet and
  110. Xdeny RTS to the DTE until the path is quiet.
  111. X
  112. XThis is great for synchronous applications, but asynchronous
  113. Xcommunications requires (greatly benefits from) bidirectional
  114. Xflow control where the RTS line becomes, in fact, a "DTE CTS".
  115. XRTS is true when the DCE may transmit to the DCE and false
  116. Xwhen it may not.
  117. X
  118. XThis de facto reassignment has never become a standard and
  119. Xfew UNIX vendors support it.  The Telebits and other
  120. Xfast modems do support this mechanism.
  121. X
  122. XSigh, one day, maybe UNIX will generally embrace such use.
  123. X
  124. XUpdate!  Thanks Ronald:
  125. X
  126. XFrom n4hgf!kd4nc!emory!wupost!usc!sdd.hp.com!nigel.msen.com!hela.iti.org!widener!eff!ibmpcug!pipex!demon!gate.demon.co.uk!ronald Wed Jul 22 21:09:23 1992
  127. XPath: n4hgf!kd4nc!emory!wupost!usc!sdd.hp.com!nigel.msen.com!hela.iti.org!widener!eff!ibmpcug!pipex!demon!gate.demon.co.uk!ronald
  128. XFrom: ronald@gate.demon.co.uk (Ronald Khoo)
  129. XNewsgroups: comp.unix.sysv386
  130. XSubject: Re: SCO Unix 3.2v4, RTSFLOW, CTSFLOW and CRTSFL
  131. XMessage-ID: <9207192054.aa26742@gate.demon.co.uk>
  132. XDate: 19 Jul 92 19:55:04 GMT
  133. XReferences: <JOCHEN.92Jul12064058@busybit.mrz.lm.sub.org> <2A6326A2.6C61@tct.com>
  134. XSender: usenet@gate.demon.co.uk
  135. XOrganization: Demon Internet Services.
  136. XLines: 48
  137. XX-Mailer: Mail User's Shell (7.2.4 2/2/92)
  138. X
  139. Xchip@tct.com (Chip Salzenberg) wrote:
  140. X
  141. X> Does anyone out there understand:
  142. X> 
  143. X>    1.  What RTSFLOW and CTSFLOW do, singly and in combination,
  144. X>          under (A) 3.2v2 and (B) 3.2v4?
  145. X
  146. XSupposedly no change.  They are intended for true half-duplex modem-style
  147. Xline-control, i.e. the REAL meaning of RTS/CTS.  I think it's possible
  148. Xto use CTSFLOW only for printer flow control, but don't hold me to that :-)
  149. X
  150. XSome vendors, e.g. Specialix, specifically interpret the flags as being
  151. Xfor full duplex flow control, not line control, since that's essentially
  152. Xuseless for the kind of applications which their markets want, and
  153. XCRTSFL was not available prior to 3.2v4
  154. X
  155. X>    2.  What CRTSFL does, compared to 1(A) and 1(B)?
  156. X
  157. XCRTSFL is new with 3.2v4 and does mean full duplex flow control,
  158. Xwhat EIA-232 calls RFR/CTS flow control.  RFR "Ready for receive" is
  159. Xactually a different circuit number according to the spec, but is
  160. Xthe same pin on a V.24 25-way D connector.
  161. X
  162. XConfused ?  You will be.
  163. X
  164. XThe problem is that if you use a current Specialix card on a 3.2v4 system,
  165. Xand want RFR/CTS flow control, you still have to use the wrong flags,
  166. Xie CTSFLOW|RTSFLOW  rather than CRTSFL because the drivers were written
  167. Xfor 3.2v2.  Hence I had to ask Morning Star Technologies who supply
  168. XPPP for this site to give me two different option flags so that
  169. Xif the line is the standard /dev/tty1A I use CRTSFL to get the flow control
  170. XI want, but if I'm in via the Specialix multiport then I use CTSFLOW|RTSFLOW.
  171. X
  172. XIf you want full duplex flow control on /dev/tty1A, you have to either
  173. Xupgrade to 3.2v4 or else install FAS (which uses minor numbers rather
  174. Xthan termio flags to indicate flow control).
  175. X
  176. XUnravelling this has taken a lot of effort, but at the end of the day
  177. Xwe have a service running with flow control working correctly on a rackfull
  178. Xof modems on different ports.   case "`tty`" in foo) ;; bar) ;; esac
  179. Xrules OK :-(
  180. X
  181. XUgh.  You are in a twisty maze of termio flags, all different.
  182. X
  183. X
  184. X-- 
  185. XRonald Khoo <ronald@demon.co.uk> <ronald@ibmpcug.co.uk> <ronald@robobar.co.uk>
  186. XBTNet: +44 71 229 7741                    | Brambles are the order of the day.
  187. X
  188. SHAR_EOF
  189. chmod 0644 README.RTSCTS ||
  190. echo 'restore of README.RTSCTS failed'
  191. Wc_c="`wc -c < 'README.RTSCTS'`"
  192. test 4167 -eq "$Wc_c" ||
  193.     echo 'README.RTSCTS: original size 4167, current size' "$Wc_c"
  194. rm -f _shar_wnt_.tmp
  195. fi
  196. # ============= README.SCOTTY ==============
  197. if test -f 'README.SCOTTY' -a X"$1" != X"-c"; then
  198.     echo 'x - skipping README.SCOTTY (File already exists)'
  199.     rm -f _shar_wnt_.tmp
  200. else
  201. > _shar_wnt_.tmp
  202. echo 'x - extracting README.SCOTTY (Text)'
  203. sed 's/^X//' << 'SHAR_EOF' > 'README.SCOTTY' &&
  204. X
  205. XOn SCO, TTY devices must be named in the style of:
  206. X
  207. X     /dev/tty#N
  208. X             ^^
  209. X             ||
  210. X             |`------ uppercase letter for modem control
  211. X             |        lowercase for non-modem control
  212. X             `--------digit (1-4)
  213. X
  214. X
  215. XIf you are using FAS or other third-party driver, you may use ecu
  216. Xwith ports not normally named in the /dev/tty#N style in one of two
  217. Xways under UNIX and one way under XENIX:
  218. X
  219. X     1.  Under XENIX or UNIX, create a link to the port
  220. X         with a compatible name:
  221. X
  222. X               ln /dev/ttyF00 /dev/tty1a
  223. X               ln /dev/ttyFM00 /dev/tty1A
  224. X
  225. X     2.  Under UNIX, add additional lines to the
  226. X         /etc/conf/node.d file and rebuild the kernel
  227. X         environment (this is the recommended approach
  228. X         for UNIX, as documented in FAS 2.08 and 2.09):
  229. X
  230. X     fas ttyF00  c   48
  231. X     fas tty1a   c   48
  232. X     fas ttyF01  c   49
  233. X     fas tty1b   c   49
  234. X     fas ttyFM00 c   208
  235. X     fas tty1A   c   208
  236. X     fas ttyFM01 c   209
  237. X     fas tty1B   c   209
  238. X
  239. SHAR_EOF
  240. chmod 0644 README.SCOTTY ||
  241. echo 'restore of README.SCOTTY failed'
  242. Wc_c="`wc -c < 'README.SCOTTY'`"
  243. test 1010 -eq "$Wc_c" ||
  244.     echo 'README.SCOTTY: original size 1010, current size' "$Wc_c"
  245. rm -f _shar_wnt_.tmp
  246. fi
  247. # ============= README.SEAlink ==============
  248. if test -f 'README.SEAlink' -a X"$1" != X"-c"; then
  249.     echo 'x - skipping README.SEAlink (File already exists)'
  250.     rm -f _shar_wnt_.tmp
  251. else
  252. > _shar_wnt_.tmp
  253. echo 'x - extracting README.SEAlink (Text)'
  254. sed 's/^X//' << 'SHAR_EOF' > 'README.SEAlink' &&
  255. X
  256. XECU implements the SEAlink protocol (by System Enhancement Associates)
  257. Xby means of a modified source provided by SEA.  I got the original source 
  258. Xfrom an early distribution of the fine XBBS by alphacm!sandy.
  259. X
  260. XNOTE: SEAlink is provided as-is. I haven't used it since I
  261. Xtested it in 1989.  It is still reported to work.
  262. X
  263. SHAR_EOF
  264. chmod 0644 README.SEAlink ||
  265. echo 'restore of README.SEAlink failed'
  266. Wc_c="`wc -c < 'README.SEAlink'`"
  267. test 320 -eq "$Wc_c" ||
  268.     echo 'README.SEAlink: original size 320, current size' "$Wc_c"
  269. rm -f _shar_wnt_.tmp
  270. fi
  271. # ============= README.WY60 ==============
  272. if test -f 'README.WY60' -a X"$1" != X"-c"; then
  273.     echo 'x - skipping README.WY60 (File already exists)'
  274.     rm -f _shar_wnt_.tmp
  275. else
  276. > _shar_wnt_.tmp
  277. echo 'x - extracting README.WY60 (Text)'
  278. sed 's/^X//' << 'SHAR_EOF' > 'README.WY60' &&
  279. X
  280. XThis is a hurriedly composed note to let you know what I know
  281. Xabout Wyse 60 support (not much :-)).  I really cannot help
  282. Xwith Wyse 60s any more than this.  Please ask me no questtions,
  283. Xbut please, if you can and wish, provide me a robust explanation
  284. Xof where I am wrong and I'll put in into the mill with profuse
  285. Xthanks and credit.
  286. X
  287. X1. The Wyse 60 comes in several flavors of keytops and who knows
  288. Xwhat quantity of ROM versions.  The one I have is an early "Native"
  289. Xor "Non-PC-Keytop" version.
  290. X
  291. X2. The choice of keycodes (emitted character sequences) for the cursor
  292. Xkeys are quite, quite stupid, though they seem to have had SOME form of
  293. Xthinking behind them.  The arrow down key is a NEWLINE!  The cursor
  294. Xleft is a BACKSPACE.
  295. X
  296. X3. You can redefine the keycodes emitted by keys.  I lost my Wyse
  297. X60 manual several years ago, but with luck, you still have yours
  298. Xand can follow in my feeble steps to finish the job I have started
  299. Xand try to explain below.
  300. X
  301. X4. There are IS entries in the models/funckeymap file entry for the
  302. Xwyse60.  They are undocumented anywhere else.  These entries are
  303. Xused by ECU only to spit initialization strings at the terminal in
  304. Xthe order they appear in the file.
  305. X
  306. XIf you really don't want this stuff to happen, comment out or remove
  307. Xthe IS strings, comment the ANSI-fied definitions and uncomment
  308. Xthe un-ANSI-fied ones.  I omitted the braindead CUL and CUD entries, but
  309. Xif you want them:
  310. X
  311. X#   CUL:CUL:        bs            # not useful (for reference only)
  312. X#   CU5:CU5:                      # nyet
  313. X    CUR:CUR:        ff
  314. X    CUD:CUD:        nl # use only if you NEVER need to send a line feed
  315. X
  316. X5.  The strings I emit with the supplied IS strings are the same as
  317. Xthe SCO 'wyse60ak' termcap entry 'ti' string.
  318. X
  319. X6.  You should really use the wyse60ak termcap entry, not the wyse60.
  320. X
  321. X7.  If you are not on SCO you probably don't have 'wyse60ak'.  I
  322. Xhope the time-honored tradition of sharing termcap entries amongst
  323. Xthe UNIX brethren will not bring writs and suits and "suits" against
  324. Xme.  Here it is:
  325. X
  326. X#    Wyse 60
  327. X#    Clearing of arrow keys useful in 'is' in case this entry is
  328. X#    used after wy60ak entry was used.
  329. X#
  330. Xw7|wy60|wyse60|Wyse WY-60 with 80 column/24 line screen in wy60 mode:\
  331. X    :is=\E`\072\Ee(\EO\Ee6\Ec41\E~4\Ec21\Ed/\EZ1+\177\EZ1,\177\EZ1-\177\EZ1.\177\EZ1\\\177\EZ1q\177\Ec72:\
  332. X    :if=/usr/lib/tabset/std:pt:\
  333. X    :CF=\E`0:CO=\E`1:\
  334. X    :G1=3:G2=2:G3=1:G4=5:\
  335. X    :GC=8:GD=0:GE=\EH^C:GF=7:GG#0:GH=\072:\
  336. X    :GU==:GV=6:GR=4:GS=\EH^B:GL=9:\
  337. X    :PU=\EJ:PD=\EK:mb=\EG2:me=\EG0:\
  338. X    :al=4\EE:am:bs:bt=\EI:cd=100\EY:ce=\ET:cl=100\E+:\
  339. X    :cm=\Ea%i%dR%dC:co#80:dc=11\EW:dl=5\ER:ei=\Er:im=\Eq:k0=^AI\r:\
  340. X    :k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:k5=^AD\r:k6=^AE\r:k7=^AF\r:\
  341. X    :k8=^AG\r:k9=^AH\r:kd=^J:kh=^~:kl=^H:kr=^L:ku=^K:\
  342. X    :li#24:mi:nd=^L:se=\EG0:so=\EG4:ug#0:ue=\EG0:ul:up=^K:us=\EG8:\
  343. X    :PN=\Ed#:PS=^T:hs:ts=\Ez(:fs=^M:
  344. X#
  345. X# Wy60ak:
  346. X# Arrow keys are programmed to emit ANSI standard sequences.  Allows 
  347. X# applications to distinguish between destructive Back Space and
  348. X# non-destructive Left Arrow Key.  END and INS keys also emit
  349. X# ANSI standard sequences.
  350. X# Held out `te' string so that `is' will remain in effect
  351. X# throughout login session.
  352. X# On the Enhanced PC Keyboard, only the Cursor Keypad between the Main
  353. X# Keypad and the Numeric Keypad is programmable.  These arrow keys
  354. X# and special cursor motion keys will function as labeled when using
  355. X# wy60ak with applications supporting the wy60ak entry. The Numeric
  356. X# Keypad cursor motion keys will continue to emit their default values.
  357. X#
  358. XWA|wy60ak|wyse60ak|Wyse 60 in wy60 mode with ANSI arrow keys +:\
  359. X    :is=\E`\072\Ee(\EO\Ee6\Ec41\E~4\Ec21\Ed/\EZ1+\E[A\177\EZ1,\E[B\177\EZ1-\E[D\177\EZ1.\E[C\177\EZ1\\\E[F\177\EZ1q\E[L\177\Ec72:\
  360. X    :ti=\EZ1+\E[A\177\EZ1,\E[B\177\EZ1-\E[D\177\EZ1.\E[C\177\EZ1\\\E[F\177\EZ1q\E[L\177:\
  361. X    :kd=\E[B:kl=\E[D:kr=\E[C:ku=\E[A:\
  362. X    :EN=\E[F:\
  363. X    :tc=wy60:
  364. X
  365. X8.  The ECU interactive command "kbdtest" may be of some assistance
  366. Xin analyzing and debugging this type of problem.
  367. SHAR_EOF
  368. chmod 0644 README.WY60 ||
  369. echo 'restore of README.WY60 failed'
  370. Wc_c="`wc -c < 'README.WY60'`"
  371. test 3965 -eq "$Wc_c" ||
  372.     echo 'README.WY60: original size 3965, current size' "$Wc_c"
  373. rm -f _shar_wnt_.tmp
  374. fi
  375. # ============= HISTORY ==============
  376. if test -f 'HISTORY' -a X"$1" != X"-c"; then
  377.     echo 'x - skipping HISTORY (File already exists)'
  378.     rm -f _shar_wnt_.tmp
  379. else
  380. > _shar_wnt_.tmp
  381. echo 'x - extracting HISTORY (Text)'
  382. sed 's/^X//' << 'SHAR_EOF' > 'HISTORY' &&
  383. X============= Changes for ECU 3.20 =======================================
  384. Xlast revised Sat Aug 22 15:29:11 EDT 1992
  385. X
  386. X"But in our enthusiasm, we could not resist a radical overhaul of
  387. Xthe system, in which all of its major weaknesses have been
  388. Xexposed, analyzed, and replaced with new weaknesses."  -- Bruce
  389. XLeverett 'Register Allocation in Optimizing Compilers'
  390. X
  391. X1. new commands (procedure and interactive)
  392. X   a.  autorz
  393. X   b.  dcdwatch
  394. X
  395. X2. dial command reworked
  396. X   a. new sub menu for entry add/edit
  397. X   b. phone number size increased from 25 to 40 characters
  398. X      (some modems limit input string size to 40 characters total
  399. X      excluding AT and trailing CR)
  400. X   c. Trailing dollar sign '$' appends ~/.ecu/.credit to dialled number:
  401. X      .credit has:
  402. X          ,,,167167002
  403. X      Home dial 1234 sends to modem
  404. X          1234,,,167167002
  405. X
  406. X3. help cmd improved: you can stay in a category and ask
  407. X   for help with multiple commands and use F1 to return to
  408. X   category menu.
  409. X
  410. X4. Major rework inside to reduce but not eliminate the likelihood
  411. Xthe chances ecu will abnormally terminate when the dial command
  412. Xneeds to change to a new line and the new line is not available.
  413. XIf the new line is busy (in use by another dialout or login),
  414. Xthe request to change is rejected and the old line is retained,
  415. Xthe program survives.  If the new line is unavailable because
  416. Xof other reasons (read/write denied [chmod] for instance), ecu still
  417. Xdies. hopefuly this will all be handled by the time of release.
  418. X
  419. X5. jhpb@sarto.budd-lake.nj.us added preliminary support for ESIX SVR4
  420. Xand I added the necessary switches to config.c.  Now, -DISCSVR4
  421. Xis used for ISCSVR4, -DESIXSVR4 for ESIX and -DSVR4 for "any" SVR4.
  422. X
  423. X6. The "kbdtest" interactive command has been cleaned up enough
  424. Xfor general use.  I hacked it in for debugging early on.
  425. XNow it is documented well enough for general use in funckeymap debugging.
  426. X
  427. X7. -P command line switch added for selecting a phone directory other
  428. Xthan the default ~/.ecu/phone.  Use -P fullpath.
  429. X
  430. X8. Any usage error (bad command args) resulted in the death of ecu's
  431. Xprocess group.  This provided great incentive to invoke the program
  432. Xproperly, but in this modern day, you are not allowed to discipline
  433. Xthe students :-).
  434. X
  435. X9. An experimental feature has been added to ecuungetty.
  436. XIf it is compiled with -DECUUNGETTY_CHOWN, it will perform
  437. Xchown and chmod operations on the line.
  438. X
  439. XWhen the line is acquired, its ownership is set to the real uid
  440. Xof the ecu user, its group id to the group id of the process, and
  441. Xits mode to 622.  This is what happens to xterm ptys.
  442. X
  443. XWhen the line is released, its ownership is set to uucp
  444. Xof the ecu user, its group id to uucp, and its mode to 640.
  445. XThis is what SCO uugetty does when it starts on a line.
  446. X
  447. XYou can experiment with this feature by 
  448. X    a. placing the line
  449. X       LOCAL_CFLAGS = -DECUUNGETTY_CHOWN
  450. X       in the file `config.local' in the distribution base directory.
  451. X    b. Configure or ./config
  452. X    c. remake and reinstall
  453. X
  454. X*You* must decide if this is appropriate for you.  The tradeoff
  455. Xis between having 666 ttys and having a program which a diligent
  456. Xhacker could use to change any file in the system to his
  457. Xownership. You really should look at bamboozle.c and judge
  458. Xwhat level of protection you want to use.  If you are on
  459. Xa sensitive installation (like you .gov or .mil guys),
  460. Xyou might not want to do it.  Any suggestions for improvement
  461. Xor additional security.  I thought about pathname checking,
  462. Xst_dev and st_rdev checking and the like, but nothing simple
  463. Xand portable has come to mind.
  464. X
  465. X10. From 31840 patch 5,
  466. XBy the time ECU actually attempts an line open, enough previous
  467. Xcontext has been lost that the program cannot recover if the open
  468. Xfails.  I have always made several checks to try and eliminate
  469. Xsuch occurrences.  Now, at least for SCO lines in utmp, the
  470. Xchances of failure are virtually eliminated.
  471. X
  472. XThis patch goes with patch 4 to extend the benefits of ecuungetty
  473. Xchown.  If ecuungetty chown is enabled and this patch is
  474. Xinstalled, we get reduced likelihood of ecu terminating
  475. Xabnormally when switching comm lines or when selecting the first
  476. Xline of the session.
  477. X
  478. X   Line access is checked if it is not found in utmp to see if
  479. X   an open would fail.
  480. X
  481. X   SCO uugetty does not always put anything in the ut_line field
  482. X   of its utmp entry.  However, a de facto convention exists for
  483. X   making an inittab id field with the last two characters
  484. X   matching the last two characters (the only unique characters)
  485. X   of SCO-style comm line names.  This patch causes such a check
  486. X   to be made, increasing the likelihood of getting a utmp match
  487. X
  488. XTwo new files have been added to this distribution:
  489. X   dutmp.c   cc -o dutmp dutmp.c    dumps the utmp; a cheap who -a
  490. X   README.3.2v4         a brief blurb related to EAFS file names
  491. X
  492. Xecu 3.19.00 patch 1 - notes 11-15
  493. X
  494. X11. The maximum screen geometry is now 85x80 instead of 43x80.
  495. XColumns must be 80.  Lines must be > 20.  Lines
  496. Xin excess of 85 will be accepted, but ECU will be unable to
  497. Xmaintain a correct screen display if any scrolling occurs.
  498. X
  499. X12. A Nap() bug (used by the procedure nap command as well as
  500. Xinternal functions) could cause the program to hang if napping
  501. Xwas to occur when a receiver or child process terminated.  This
  502. Xonly occurred on systems with -DWORKING_SELECT: SunOS, the SVR4s,
  503. XISC 2.2, for instance.
  504. X
  505. X13.  Remaining program identifiers containing the string "nonansi.*key"
  506. Xwere renamed to use "funckeymap".
  507. X
  508. X14.  On systems with reliable predefines in their native compiler,
  509. X(SCO -DM_SYSV, SunOS -Dsun),  Configure guesses at a default answer
  510. Xfor the first question.
  511. X
  512. X15. The End key may now be used to finish adding or editing
  513. Xa dialing directory entry.
  514. X
  515. Xecu 3.19.00 patch 2 - notes 16 - 18
  516. X
  517. X16. Yet more work on the ecuungetty scheme.  ungetty acquisition
  518. Xnot attempted early enough for "enabled but idle" lines
  519. X
  520. X17. A few patches back, I forgot to note %conn will now return
  521. X-1 if no line is open.  Previously it returned 0 in this case.
  522. XNow -1 means no line open, 0 means line open but no connection,
  523. X>0 is the line file descriptor for the line in an active
  524. Xconnection.
  525. X
  526. X18. The Nap() fixes of the last patch prevented ecurz/ecusz/ecusea
  527. Xfrom compiling.  Sorry.
  528. X
  529. XFrom full release 3.19.05
  530. X
  531. X19.  A preliminary T3000 dialer has been added to the gendial
  532. Xpackage.  This modem's future is plastic and the dialer, like
  533. Xall gendial programs, is just a starting point.  Gendial is
  534. Xprovided and I don't have a lot of time to support the zillions
  535. Xof conflicting idiosyncratic options folks want.  With that
  536. Xspew spewed, most of them work fairly well.  Documentation :-) ?
  537. X
  538. X20.  A side effect of getting the T3000 was that *I* got to play
  539. Xwith ECU on a Sun.  This is quite fortunate, since ECU was purportedly
  540. Xported many CPU cycles ago.  The Nap() problem has finally been
  541. Xput to bed... (he said).
  542. X
  543. XFrom 3.19.05 patch 1 (making 3.19.06) notes 21-24
  544. X
  545. X21. The lCLOCAL() code and its users form the chassis upon
  546. Xwhich the DCD watcher is based.  It appeared to work on the
  547. XSCO box, but caused problems on SunOS that were difficult to
  548. Xfind.  Thanks to Mark Ashton, n4hgf!ifsbd!cma, this problem
  549. Xis history.  Many mysterious "hangs" came from a trap
  550. Xyou could fall into on *any* implimentation other than SCO UNIX.
  551. XCLOCAL doesn't appear to work the same on SCO 3.2.? as XENIX
  552. Xand SunOS.  I think tbetz@upaya.panix.com will be happy
  553. Xwith this news.
  554. X
  555. X22. cma also discovered that if you have multiple Devices entries
  556. Xfor a line to pick up specific Dialers scripts or dialer programs,
  557. Xsay:
  558. X
  559. XACU ttya - 2400 t3000-2400
  560. XACU ttya - 9600 t3000-v32
  561. X
  562. XECU would always pick the first one (disregarding baud rate).
  563. XThis is fixed now.
  564. X
  565. XNow, if you dial with a directory entry using a /Devices-type or
  566. X=devices-type specification for tty, then *that specific* Devices
  567. Xentry is used to choose the dialer program or Dialers script.  If
  568. Xno directory entry is involved or the directory entry specifies
  569. X"Any" or a specific line, then Devices is searched for the first
  570. Xentry matching both the current line and the current baud rate.
  571. X
  572. XA note aside: SCO Devices entries appear to me to have a syntax
  573. Xextension not found in all HDB systems.  The baud rate
  574. Xfield allows a range of baud rates, like:
  575. X
  576. XACU tty1A - 110-2400 /usr/lib/uucp/dialgHA24
  577. X
  578. XECU supports this syntax, but your uucico may not.
  579. X
  580. X23. models/funckeymap updated with my dual-purpose Sun/SCO
  581. Xfunckeymap/.Xdefaults configuration.
  582. X
  583. X24. cmostime4 has been included for SCO users (and many hackers)
  584. X
  585. XFrom 3.19.05 patch 2 (making 3.19.07) notes 25
  586. X25.  Dialing directory subform data entry formerly had two
  587. Xinput schemes: on input, you were cajoled into going through
  588. Xfields one at a time until you reached the end of the form, whereupon
  589. XECU would take away the input form.  On the other hand, when editing
  590. Xan entry, you were free to cycle through the fields "a la modulo"
  591. Xin either direction.
  592. X
  593. XNow, both input modes allow liberal cycling.  Pressing the END key
  594. Xsignals your acceptance of the entry.  Pressing ESCape in input
  595. Xmode aborts the new entry process.  Pressing ESCape in edit mode
  596. Xbehaves exactly like the END key except that any edits made since
  597. Xthe cursor entered the current field are discarded..
  598. X
  599. XFrom 3.19.10 - notes 26-27
  600. X
  601. X26. more internal cleanup
  602. X
  603. X27. robertle@sco.com (Robert Lewis) noted that putting the phone number
  604. Xon log files and screen dumps is a security risk.  Why protect
  605. X~/.ecu when the phone numbers are plastered everywhere.  No
  606. Xmore banners.
  607. X
  608. XFrom 3.19.11 - whoops didn't keep track
  609. X
  610. X28. ecuungetty chown fixes and miscellaneous cleanup
  611. X
  612. XFrom 3.19.12 - notes 29
  613. X
  614. X29. Added use of ECUFUNCKEY environment variable to override TERM
  615. Xwhen loading funckeymap.
  616. X
  617. X3.19.13 internal rev (just superstitious :->)
  618. X
  619. X3.19.14 - notes 30
  620. X
  621. X30. Made changes for SCO 3.2v4/ODT 2.0:
  622. X    a. pids are now shorts
  623. X    b. getty sets "DIALOUT" on its own
  624. X
  625. X3.19.15 - notes 31
  626. X
  627. X31. ECUUNGETTY_CHOWN now a semi-permanent feature.  It can
  628. Xstill be turned off by editing config.c or Makefiles.  It
  629. Xis just too good not to have it in.
  630. X
  631. X3.19.16 - notes 32-37
  632. X
  633. X32. cmostime4 backed out of distribution; if you want it, ask me
  634. X
  635. X33. Direct phone numbers longer than 10 characters got doubled in
  636. Xone instance. Thanks to felton!rll for pointing this out.
  637. X
  638. X34.  Good news!  -DWORKING_SELECT can be and is now used for
  639. X3.2v4; as a side effect, the Nap() wrapper/surrogate is now in
  640. Xnap.c and all the several Nap() functions in ecusea.c, zcommon.c
  641. Xand gendial.c have been removed.
  642. X
  643. XAlso, if -DWORKING_SELECT is used, Nap() uses ftime() instead of
  644. Xgettimeofday().  Adding -DUSE_GETTIMEOFDAY will return to the
  645. Xold usage.  This latter note is for porters, since all currently
  646. Xsupported systems have ftime() and several lack gettimeofday().
  647. X
  648. X35. More work has been done on SCO utmp/Devices automatic tty selection
  649. Xhas been done.  I apologize for the long chain of half-fixes.  Once
  650. Xagain, I think it is fixed.  This time I REALLY believe it :-).
  651. XFor sure, you should no longer find your /dev/tty chown()'d to uucp.
  652. X
  653. X36.  SCO multiscreen color escape sequences from the remote were
  654. Xbeing filtered as if ECU were running on a non-multiscreen.  Now,
  655. Xif you use ECU on an SCO multiscreen, the full set of ECU escape
  656. Xsequences, including color, again work as specified in the
  657. Xmanual.  Thanks to tps@jptcs.com for pointing this out.  This bug
  658. Xcrept in when I reorganized keyboard management
  659. X(nonansikeys->funckeymap).
  660. X
  661. X37. The ecuungetty chown feature is on permanently.  I added
  662. Xquite a few security/safety checks to make sure some bug or
  663. Xanother will not make the privileged ecuungetty go wild.
  664. X
  665. X3.19.17 - notes 38
  666. X
  667. X38.  The hz/hzmsec needed by nap.c was not being provided,
  668. Xcalculated by ecusea.c, ecu[rs]z.c and gendial.c.
  669. X
  670. X3.19.18 - notes 39
  671. X
  672. X39.  I had started using <sys/time.h> if 3.2v4.  3.2v4 only has
  673. X<sys/time.h> if the TCPRT package is installed .  Basic 3.2v4 does
  674. Xnot have it at all.  So, we'll use <time.h> and <sys/select.h> just
  675. Xlike before.  Thanks for the report go to robertle@sco.com.
  676. X
  677. X3.19.19 - notes 40-44
  678. X
  679. X40.  Added support for 3.2v4 CRTSFL.
  680. XNow for SCO, rtscts command arguments:
  681. X
  682. Xusage: rtscts [ off | on | no | yes | 0..7 ]
  683. X
  684. Xargument | RTSFLOW | CTSFLOW   argument | RTSFLOW | CTSFLOW | CRTSFL
  685. X---------+---------+---------  ---------+---------+---------+--------
  686. X  off    |   0     |   0         0      |   0     |   0     |
  687. X  on     |   0     |   1         1      |   0     |   1     |
  688. X  no     |   0     |   0         2      |   1     |   0     |
  689. X  yes    |   0     |   1         3      |   1     |   1     |
  690. X                                 4      |   0     |   0     |   1
  691. X
  692. XChoice 4 only works on SCO 3.2v4 and ODT 2.0.
  693. XAs you can see, numeric values are masks.
  694. XIf the 4 bit is present in the numeric value, it
  695. Xoverrides the lower-order bits:  Specifying 7 as an argument
  696. Xspecifies CRTSFL is to be used if it is supported, otherwise
  697. XRTSFLOW and CTSFLOW.
  698. X
  699. XThe interactive help and iteractive and procedure command
  700. Xdocumentation has been updated.  I added to README.RTSCTS 
  701. Xsome illuminating comments by chip@tct.com (Chip Salzenberg).
  702. XIt was seeing this article that brought CRTSFL off the todo
  703. Xlist and into the code.
  704. X
  705. X41.  Warnings about not using ^\Z in Kermit transfers (^Z suspend)
  706. Xwere added to the 'sk' and 'rk' interactive and procedure commands.
  707. X
  708. X42.  This fix went into 3.19.16 but I forgot to note it: color
  709. Xsequences sent to ECU on a multiscreen console were not being
  710. Xpassed to the driver.  Now they are..  I only know of color
  711. Xworking on SCO.
  712. X
  713. X43.  Changes to make_dirs() was needed to handle making
  714. Xdirectories with pathname components which are symbolic links
  715. X(possibly on a read-only file system).
  716. X
  717. X44.  The DCD watcher did not work if you use SCO sio.  I have
  718. Xbeen using FAS and forgot a a fact about SCO sio: to toggle
  719. XCLOCAL meaningfully, you must open the modem (e.g.  tty2B) rather
  720. Xthan the direct (tty2b) file.  On SCO systems, if the tty filename
  721. Xhas a digit+letter as the last two characters,  ECU will
  722. Xforce the lower case (direct) version to be used.  3.19.19 opens
  723. Xthe upper case (modem) device, but continues to store
  724. Xand display tty names in their lower case version.
  725. X
  726. X3.19.20 - notes 45-46
  727. X
  728. X45. Somewhere in the lifetime of .19, I sent a copy to a guy.
  729. XThis revision bump is just to keep from having different
  730. Xversions called .19 out the door.
  731. X
  732. X46.  On 3.19.17/18, there were various reports of hangs on line 
  733. Xclose, hang up, or HOME prompt when using 3.2v2.  I cannot
  734. Xreproduce any of these errors.  Please get and send me this 
  735. Xinformation for me the next time it happens to you:
  736. X
  737. XInstall ecu, but execute the ecu built in the distribution directory.
  738. X
  739. X  a. Is the receiver process active (two ecu processes active)?
  740. X
  741. X  b. The ecu transmitter process will either be the only ecu
  742. X     process or the oldest.  Kill -4 the transmitter process and move
  743. X     the core file to the distribution directory if you 'cd'ed in ecu.
  744. X
  745. X     You may have to type ^Jstty sane^J on the console it failed on
  746. X     (expect no echo) to restore the console to something usable.  This
  747. X     may not reinstate your choice of character delete, line kill, etc.
  748. X
  749. X  c. do  'sdb ecu |& tee sdb.log'
  750. X
  751. X  d. do  't', then 'q'
  752. X
  753. X  e. repeat the failing scenario if you found the receiver process
  754. X     alive in step a.  If so, repeat a-d above, but this time kill
  755. X     the receiver process and do  'sdb ecu |& tee -a sdb.log'
  756. X
  757. X  f. Guess.  (mail me the sdb.log) with a description of
  758. X     1) the OS
  759. X     2) any non-vendor serial driver
  760. X     3) what was going on when it failed (in 100 words or more :-> )
  761. X
  762. X3.19.21 - notes 47-49
  763. X
  764. X47.  The UNIX sio driver may generate a SIGTTOU upon execution of
  765. Xcertain ioctl() functions, namely, XCSETA, XCSETAF, XCSETAW,
  766. XTIOCSPGRP, TCSBRK, TCFLSH, and TCXONC.  My ignorance caused the
  767. Xlast few revisions to hang for many upon closing a line or upon
  768. Xperforming miscellaneous operations like sending a break.  All
  769. Xecu executables now set job control signals to SIG_IGN.  I hope
  770. Xthis fixes the problem.  (Job control is not supported at this
  771. Xtime.)  
  772. X
  773. X48. config.c has been returned to normal compilation (no -g).
  774. XI shipped an alternate config.c "out of turn" after 3.19.20.
  775. XSome may have installed it, some not. Therefore, unsharing
  776. Xthis patch replaces any config.c you may have in place.
  777. X
  778. X49. The -F switch was added to the command line arguments:
  779. X
  780. XThe new manual section titled "-F path":
  781. X
  782. X    Normally, the $TERM environment variable is used to
  783. X    determine the funckeymap entry (keyboard configuration)
  784. X    to be used.  Sometimes, the $TERM variable is not
  785. X    adequate for identifying your keyboard arrangement.
  786. X    The -F switch, like the $ECUFUNCKEY environment
  787. X    variable, allows you to use override the funckeymap
  788. X    entry used.  For more information, see the section
  789. X    titled "Function Key Mapping (Recognition)".
  790. X
  791. X3.19.22 - notes 50-52
  792. X
  793. X50.  This note is only of interest to SCO users.
  794. XPrevious revisions of SCO were lenient on the user in the choice
  795. Xof the direct or modem tty device.  You could specify either
  796. Xtype and ecu would force the one it thought appropriate.
  797. XUsers of ecu under other operating systems have always had to
  798. Xspecify the correct name.
  799. X
  800. XIf you have time, I'd love feedback on what part of the manuals
  801. XI have missed updating with the new paradigm.
  802. X
  803. XSince there are several types of async drivers and we want
  804. Xto support them, ecu can no longer make a choice for you.
  805. XI did radical surgery on the "SCO tty naming" logic.  As it
  806. Xstands nowu, on SCO, the tty you specify in a dialing entry is the exact
  807. Xtty name opened.  The convention of using a lower-case lock name
  808. Xis still observed.  Also, both senses are searched for in utmp
  809. Xfor conflict determination.  ecuungetty chown()/chmod() both
  810. Xdevice file names.
  811. X
  812. XHowever, your choice of which line type (line placed in tty field
  813. Xof a directory entry or the tty field of the setup form) depends
  814. Xupon the driver you are using:
  815. X
  816. Xsio  modem   /dev/tty1A
  817. Xfas  direct  /dev/tty1a
  818. X
  819. XI don't know about others.  Tell me.
  820. X
  821. XNotes:
  822. Xa. An sio direct line ignores setting of CLOCAL (no DCD watcher)
  823. X   and lacks support for hardware flow control.
  824. Xb. Opening the fas modem line causes various forms of conflict
  825. X   resulting in EBUSY being returned by fas for an ecu open or
  826. X   a dialer program open.
  827. X
  828. XFor now, this is meaningful only on SCO.  In the future, perhaps,
  829. Xwe'll manage an installation-dependent table of what line names
  830. Xrefer to the same device and which are modem, direct, etc.
  831. X
  832. Xe.g.,
  833. X#line_to_use:modem:direct:others:comment
  834. Xtty1A:tty1A:tty1a::sio
  835. Xtty1a:tty1A:tty1a::fas
  836. Xacu0:acu0:ttya,ttyd0:SunOs
  837. X
  838. XThis would re-automate SCO tty line type choices and add it anew
  839. Xfor others.  Then, ecu could for the first time on non-SCO (and
  840. XSCO naming to boot) search for all possible lock files and utmp
  841. Xentries.  What do you think?  Yes, one more damn configuration file
  842. Xto hack on.
  843. X
  844. X51.  ecusz, ecurz and ecusea are now placed in the ecu library directory
  845. X(usually /usr/locsal/lib/ecu).  This is a more appropriate place
  846. Xsince it is meaningful only for ecu to execute them.  Kermit or ckermit
  847. Xis still searched for through $PATH.  Remove any old ecurz, ecusz
  848. Xand ecusea executables from your locsl bin directory.
  849. X
  850. X52.  I'm sorry the preformatted manuals you have been getting
  851. Xwere malformed.  The new Makefile in doc failed to supply -mm !
  852. X
  853. XBETA 3.20.01 notes 53-58
  854. X
  855. X53. There is still one installation where /dev/tty is getting
  856. Xincorrectly chown/chmoded.  There are now three brute-force
  857. Xtests for an attempt at this (up from two).  The bug
  858. Xhasn't been fixed, but we ought to know how it happens
  859. Xthis time around.
  860. X
  861. X54. The procedure and interactive command fkmap has been added:
  862. X
  863. XUsage: fkmap                           display current mapping
  864. X       fkmap <keyname>                 display single key mapping
  865. X       fkmap <keyname> <keylist>       modify a key's mapping
  866. X       fkmap -r                        reset to original mapping
  867. X       fkmap -s <file>                 append current to file
  868. X
  869. XThis command manages the mechanism ECU uses to recognize function
  870. Xkeys when they are entered at the console.  If supplied, the
  871. Xfirst argument to the command must be the recognized name of a
  872. Xfunction key from the list:
  873. X
  874. XF1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 
  875. XHome End PgUp PgDn CUP CUL CU5 CUR CUD
  876. X
  877. XIf only one argument is supplied, the mapping for the specified
  878. Xkey is displayed.  If more than one argument is supplied, the
  879. Xkeyboard mapping is changed.  Arguments 2-n are character code
  880. Xspecifiers in the format used to define a funckeymap entry.
  881. X
  882. XWARNING: If found to be syntactically correct, a mapping change
  883. Xis installed immediately.  If incorrect mapping of the HOME key
  884. Xis requested, you may lose control of ECU.
  885. X
  886. XExamples:
  887. X
  888. X    fkmap f10       display F10 mapping
  889. X    fkmap Home ^Z   map Home to ^Z
  890. X                    after this command, type ^Z for Home
  891. X
  892. X55.  Non-SCO color appears broken and it is beyond me to fix it.
  893. XIf you want to diddle with it, look at the top of ecutty.c at the
  894. Xlist of conditionals regarding USE_COLOR.  I'd appreciate
  895. Xpatches.  BTW, in the past, I have attempted fixes for ISC
  896. Xcharacter attributes like underlining and standout, but I've
  897. Xnever heard back.  Are there attribute problems on ISC (3.2 or
  898. Xother)?
  899. X
  900. X56.  The procedure command exec was added:
  901. X
  902. Xusage: exec <string>
  903. X
  904. XThis function executes a string as a procedure statement.
  905. XArgument <string> must contain an ecu statement exactly as
  906. Xmight appear on a procedure line, with a few exceptions.
  907. X
  908. X1. There may be no label: the first command may 
  909. X   start in column one.
  910. X2. You should not execute a goto, gosub or return.
  911. X3. You should not code if, while or compound statement
  912. X   brackets.
  913. X
  914. XYou are on your honor with regard to items 2 and 3 above.
  915. XIf you stretch it, it will break.
  916. X
  917. XExample:
  918. X
  919. X    $s20 = 'Home';   $s30 = '^H' 
  920. X    $s21 = 'End';    $s31 = '^E'
  921. X    $s22 = 'F1';     $s32 = '^A'
  922. X    $s23 = 'F2';     $s33 = '^B'
  923. X    $i10 = 0
  924. X    whilei $i0 < 4
  925. X    {
  926. X        $s0 = 'fkmap '+$s[20+$i10]+' '+$s[30+$i10]
  927. X        exec $s0
  928. X        $i10 = $i10 + 1
  929. X    }
  930. X
  931. X57.  ECU has been made successfully with gcc 2.2.2.  There is a
  932. Xbug in the configure procedure in the 2.2.2 I received.  In
  933. Xattempting to configure for 3.2v4, the tm.h header file got
  934. Xlinked to the wrong file.  Make sure tm.h is linked to
  935. Xconfig/i386_sco4.h and not config/i386_sco.h.  Starting with
  936. X2.2.2, those nice M_ identifiers are predefined by gcc.  I wish
  937. Xeverybody's compiler had a predefine that would identify the
  938. Xenvironment.
  939. X
  940. XThe Configure procedure is unchanged.  Answer yes to the question
  941. Xabout version 1.40 or later.
  942. X
  943. X58.  John Dashner, wa4cyb!jmd, proofread the main manual (THANKS).  His
  944. Xchanges are in the manual.
  945. X
  946. XFINAL 3.20 notes 59-65
  947. X
  948. X59. Expect/respond \M and \m implimented for SVR4.  The old \m
  949. Xmillisecond delay is now ~n[##].  See the procedure manual in the
  950. Xdescription of the expresp command.
  951. X
  952. X60. Further bugs with managing line chown/chmod fixed.
  953. XA directly specified line not managed by getty was not getting
  954. Xchowned back to uucp when the line was closed.
  955. X
  956. X61. Better syntax checking is done when reading Devices lines.
  957. X
  958. X62.  A bug in ecusz caused data transfer rate calculations to be
  959. Xwrong after any receiver ZRPOS ("nak") after the first one at
  960. Xtransfer startup.
  961. X
  962. X63.  A "Resume interrupted transfer" choice has been added
  963. Xto the interactive sz menu.  An equivalent -r switch was added
  964. Xto the sz procedure command.  Previously, you had to "just know"
  965. Xyou can sneak switches to the file transfer protocols by
  966. Xprefixing them to the file list.
  967. X
  968. XThere is still no clean way for the sz procedure command to set
  969. Xthe ZMODEM window size on sends other than the aforementioned
  970. Xtrick.  The thing to do here is
  971. X
  972. X    sz '-w 65536 file1 file2'
  973. X
  974. XThere is no foreseeable reason this hack will cease to work.
  975. XHowever, if I get 1.0001 requests, and I'll come up with something
  976. Xbetter.
  977. X
  978. X64.  The receiver process was being started too soon after a
  979. Xconnect resulting for a directory entry dial.  As a result,
  980. Xif ther remote began transmitting very soon after connect
  981. Xor if there was remaining modem dialog remaining bufferred
  982. Xin the tty driver, the CONNECT or [interactive mode] messsages
  983. Xcould have been intermixed with data from the line.
  984. XThis longstanding nuisance bug has finally been fixed.
  985. X
  986. X65.  The rtscts procedure command would take only on/off/yes/no
  987. Xalphabetic arguments.  Now it will accept numeric arguments
  988. Xlike its interactive equivalent.
  989. X
  990. X==========================================================================
  991. Xprior to x3.19
  992. X1992-04-19-thanks to jhpb@sarto.budd-lake.nj.us, 3.18.37 has ESIX SVR4 
  993. X1992-04-19-if TERM=ansi with WINDOWID, assume scoterm 
  994. X1992-04-17-default tty, baud and parity moved to config.c 
  995. X1992-04-17-fkey command has -r reset switch 
  996. X1992-04-17-ecu.c-"default" keyset read if present 
  997. X1992-04-17-ecufkey.c-initialize keyset to SCO "ANSI" send strings 
  998. X1992-04-12-eculine.c-was not canceling alarm on lopen error 
  999. X1992-04-09-ecugrabbag.c-cleanup new "bn" argument parsing 
  1000. X1992-04-05-ecuutil.c-no more use of memmove in any environment 
  1001. X1992-03-30-gendial/tbit.sync.h-add lbreak before wakeup 
  1002. X1992-03-30-gendial/gendial.c-add lbreak 
  1003. X1992-03-29-proc_error.c-build_err-creation from ecuerror.h 
  1004. X1992-03-29-eculine.c-put three second timer on lopen 
  1005. X1992-03-27-*.h-include protection for all .h files 
  1006. X1992-03-20-esd.h-max size of esd now 16384 
  1007. X1992-03-20-esdutil.c-esdstrcat will grow an esd 
  1008. X1992-03-20-config.c-correct XENIX tcap/tlib test thanks to tbetz 
  1009. X1992-03-17-eculine.c-optimize parameter 1 to select() 
  1010. X1992-03-10-ecutcap.c-quick sanity check on ttype features 
  1011. X1992-03-01-config.c-add -Wswitch to gcc compiles 
  1012. X1992-03-01-feval.c-come up to modern times ... enum for FI/FS  
  1013. X1992-03-01-ecucmd.h-come up to modern times ... enum for CT 
  1014. X1992-02-24-ecutcap.c-getenv COLUMNS not COLS 
  1015. X1992-02-22-ecuutil.c-build arg/str array now handles zero tokens 
  1016. X1992-02-22-kbdtest3.c-thank markd@phoenix.pub.uu.oz.au for typo fix 
  1017. X1992-02-16-ecu.c-add -P phonedir switch for rll@sco 
  1018. X1992-02-16-ecusighdl.c-turn off xterm_title + add _terminate.ep 
  1019. X1992-02-16-ecugrabbag.c-turn off xterm_title 
  1020. X1992-02-16-ecuDCE.c-turn off xterm_title 
  1021. X1992-02-16-ecu.c-turn off xterm_title 
  1022. X1992-02-14-feval.c-add uname 
  1023. X1992-02-13-ecu.h-when port to many time() can be int/long/time_t 
  1024. X1992-02-10-gendial/dceT2500.c-made it 1.5 years not setting S131 - then drat 
  1025. X1992-02-10-gendial/dceTBPlus.c-improved sync_Telebit 
  1026. X1992-02-10-gendial/dceT2500.c-improved sync_Telebit 
  1027. X1992-02-09-z/zcurses.c-ruling characters only on  SCO (tcap curses) 
  1028. X1992-02-07-ecuicmaux.c-fix incorrect log append/write notification 
  1029. X1992-02-06-config.c-depressing ... SCO keeps chging their minds 
  1030. X1992-02-04-ecuDCE.c-fix bug in kill_rcvr_process logic 
  1031. X1992-02-02-gendial/template.c-proper ordering of DCE_result entries 
  1032. X1992-01-29-ecu_types.h-creation 
  1033. X1992-01-29-ecu_stat.h-creation 
  1034. X1992-01-29-ecu_pwd.h-creation 
  1035. X1992-01-27-z/ecurz.c-more efficient fopen processing 
  1036. X1992-01-26-gendial-gendial 1.2 for ecu 3.20- better hangup 
  1037. X1992-01-21-afterlint.c-better handling of commented items with UNNAMED 
  1038. X1992-01-20-z/ecurz.c-ZMAPND works now 
  1039. X1992-01-18-hdbintf.c-use proctrace value for expresp_verbosity 
  1040. X1992-01-17-ecuDCE.c-.credit open to public 
  1041. X1992-01-12-pcmd.c-add autorz command 
  1042. X1992-01-11-ecuicmhelp.c-bug in help + F1 reverts to cat menu 
  1043. X1992-01-06-kbdtest3.c-much more error checking 
  1044. X1992-01-06-kbdtest3.c-eliminate sun stty - causes problems 
  1045. X1992-01-05-z/zcurses.c-properly display progress for resumed transfers 
  1046. X1991-12-24-fasi/digi-pc8.h-creation 
  1047. X1991-12-16-expresp.c-allow for backslash in expect and respond 
  1048. X1991-12-16-z/ecurz.c-support ZCRESUM 
  1049. X1991-12-15-ecushm.h-autorz and zmodem_asterisk_count added 
  1050. X1991-12-15-ecushm.c-autorz initialized 
  1051. X1991-12-13-ecuicmd.c-formalize bell notify 
  1052. X1991-12-13-ecugrabbag.c-add parse_bell_notify_argument 
  1053. X1991-12-13-ecugrabbag.c-add bell_notify_text 
  1054. X1991-12-13-ecushm.c-move bell_notify_state to shm 
  1055. X1991-12-12-pcmd.c-proctrace of intvar shows char value if 0-255 
  1056. X1991-12-12-eculine.c-lgetc_timeout can now return a null character 
  1057. X1991-12-02-ecupde.c-breakout into separate module 
  1058. X1991-12-01-dvent.h-new typedef for striuct dvent 
  1059. X1991-11-30-smap.c-smap conditional compilation reorg 
  1060. X1991-11-30-ecuicmd.c-smap conditional compilation reorg 
  1061. X1991-11-30-ecu.h-smap conditional compilation reorg 
  1062. X1991-11-28-ecupde.h-add dcdwatch 
  1063. X1991-11-28-ecuphdir.c-add dcdwatch option 
  1064. X1991-11-26-ecu.h-add shm->Ldcdwatch values 
  1065. X1991-11-26-eculine.c-add ldcdwatch_str 
  1066. X1991-11-26-ecu.h-add STR_CLASSIFY 
  1067. X1991-11-26-ecuutil.c-add str_classify and yes_or_no uses it 
  1068. X1991-11-20-ecuphdir.c-improve "Any" line handling on add or edit 
  1069. X1991-11-16-ecunumrev.c-better development "x" rev numbering 
  1070. X1991-11-16-proc.c-add pcmd_upon stub 
  1071. X1991-11-16-proc.c-add proc_dcdloss_handler 
  1072. X1991-11-16-ecucmd.h-add upon + rearrance pcmd_... decls 
  1073. X1991-11-16-proc.c-calloc pcb instead of malloc 
  1074. X1991-11-16-proc.h-add upon_dcdloss 
  1075. X1991-11-15-hdbintf.c-SCO tty naming now observed in getdvline 
  1076. X1991-11-13-ecu.h-use if __STDC__ instead of defined(__STDC__) 
  1077. X1991-11-12-ecushm.c-remove obsolete shmx_rc_report 
  1078. X1991-11-11-ecu.h-redefinition of Ltermio's place in life 
  1079. X1991-11-11-eculine.c-ldcdwatch and lCLOCAL code 
  1080. X1991-11-11-ecushm.h-add Ldcdwatch and Ltiobuf 
  1081. X1991-11-11-ecushm.c-shmr_notify_xmtr_of_DCD_loss 
  1082. X1991-11-11-pcmd.c-add pcmd_dcdwatch code 
  1083. X1991-11-11-eculine.c-lzero_length_read code 
  1084. X1991-11-11-ecucmd.h-add dcdwatch 
  1085. X1991-11-11-ecurcvr.c-lzero_length_read code 
  1086. X1991-11-11-ecurcvr.c-add LIMIT_BELL code 
  1087. X1991-11-08-utmpstat.c-bug in strcmpi made for erratic return value 
  1088. X1991-11-07-ecuDCE.c-tmcsys!lothar-alternate OK string for built-in dialer 
  1089. X1991-10-24-ecumon/xecumon.c-SEND_KEYS separated from AITEST 
  1090. X1991-10-17-config.c-add can_pipe code 
  1091. X1991-10-09-pcmd.c-add -p and -v switch to send 
  1092. X1991-10-09-pcmd.c-proctrace code for send 
  1093. X1991-10-09-expresp.c-bad llookfor echo argument 
  1094. X1991-10-04-ecuicmd.c-reset proc_interrupt before interactive pcmd 
  1095. X1991-09-25-ecuchdir.c-fix seg viol in popd w/o argument on Sun 
  1096. X1991-09-25-ecufork.c-find_executable flunks directories now 
  1097. X1991-09-25-ecuxfer.c-flexible C-Kermit filename 
  1098. X1991-09-17-ecuxfer.c-restore console termio after xfer prog runs 
  1099. X1991-09-06-ecufork.c-expand_wildcard_list minor bug 
  1100. X1991-09-03-ecuxkey.h-alt-[a-z] starts w/0xE1: crisp compatibility 
  1101. X1991-09-03-timetest/naptest2.c-make part of suite 
  1102. X1991-09-03-timetest/naptest3.c-creation 
  1103. X1991-09-03-timetest/seltest.c-creation 
  1104. X1991-09-03-ecugrabbag.c-sigint rearrangement in send_get_response 
  1105. X1991-09-03-config.c-iron out sun gcc options 
  1106. X1991-09-02-z/zcurses.c-show sun driver information 
  1107. X1991-09-01-pcmd.c-baud cmd can set rate even if no line open 
  1108. X1991-09-01-ecucmd.h-add setline 
  1109. X1991-09-01-ecucmd.h-add setline 
  1110. X1991-09-01-pcmd.c-add setline 
  1111. X1991-09-01-config.c-show package and config versions 
  1112. X1991-09-01-hdbintf.c-generalize HDB configuration files location 
  1113. X1991-09-01-config.c-generalize HDB Devices, etc. files location 
  1114. SHAR_EOF
  1115. chmod 0644 HISTORY ||
  1116. echo 'restore of HISTORY failed'
  1117. Wc_c="`wc -c < 'HISTORY'`"
  1118. test 30872 -eq "$Wc_c" ||
  1119.     echo 'HISTORY: original size 30872, current size' "$Wc_c"
  1120. rm -f _shar_wnt_.tmp
  1121. fi
  1122. # ============= OLD-HISTORY-1 ==============
  1123. if test -f 'OLD-HISTORY-1' -a X"$1" != X"-c"; then
  1124.     echo 'x - skipping OLD-HISTORY-1 (File already exists)'
  1125.     rm -f _shar_wnt_.tmp
  1126. else
  1127. > _shar_wnt_.tmp
  1128. echo 'x - extracting OLD-HISTORY-1 (Text)'
  1129. sed 's/^X//' << 'SHAR_EOF' > 'OLD-HISTORY-1' &&
  1130. XANCIENTHISTORY - Revision History for ECU
  1131. X-----------------------------------------
  1132. X
  1133. XChanges and fixes since 'unet1' alt.sources release:
  1134. X
  1135. X1. The uucp lock file code has been upgraded.  When I added uucp dialer
  1136. Xsupport a while back, I just hacked the necessities needed for
  1137. XecuLCK.c and put the new code into hdbintf.c.  Also, I don't try
  1138. Xto create two lock files anymore because there is no need.
  1139. X
  1140. X2. In esdutil.c, skip_paren could return a wrong error code.
  1141. X
  1142. X3.  ctype.h style integer functions were added to the procedure
  1143. Xlanguage: %isalnum, %isalpha, %isascii, %iscntrl, %isdigit, %isgraph,
  1144. X%islower, %isprint, %ispunct, %isspace, %isupper and %isxdigit.
  1145. X
  1146. X4. Logical operators were added to the ifi, ifs, whilei and whiles
  1147. Xsyntax, making possible:
  1148. X   ifi $i0 ==5 || %i30 == 6
  1149. X       statement(s)
  1150. XThis still ain't perl, but things are a little better.
  1151. X
  1152. X5.  %right() was broken.  strfunc_right() in feval.c returned a random
  1153. Xerror code on success.
  1154. X
  1155. X6.  A copy of the screen as received from the line is now kept in shared
  1156. Xmemory.  Three new functions use this feature: integer functions %curx
  1157. Xand %cury and string function %screen().  There are limitations, so read
  1158. Xthe appropriate manual sections.
  1159. X
  1160. X7.  Since some program may want to use the shared memory segment to read
  1161. Xthe screen, the shared memory segment is no longer RMID'd as soon as it
  1162. Xis created.  The integer function %shmid returns the shared memory
  1163. Xsegment id for passing to a called program.  Many other interesting
  1164. Xthings are kept in shared memory to enable efficient use of auxiliary
  1165. Xprograms.  See echshm.h and ecufriend/ecufriend.c.
  1166. X
  1167. X8.  Procedure tracing of string variable assignment prints "unprintable"
  1168. Xcharacters in the style of '^A' rather than clobbering your screen.
  1169. X
  1170. X9.  kill_rcvr_process is better at terminating the receiver process.
  1171. X
  1172. X10.  Screen dumps having extra repeated lines at the bottom won't happen
  1173. Xany more.  (The restarted rcvr process was getting a copy of the stdio
  1174. Xbuffers to flush too :-/).
  1175. X
  1176. X11.  By modifying the mapkey file to return certain codes for ALT-A
  1177. Xthrough ALT-Z, it is possible to have 26 procedures (named
  1178. X'alt_[a-z].ep') to execute "silently" by pressing one key (OK, two keys:
  1179. XALT and a-z).  See mapkeys/README, /usr/lib/keybord/keys and mapkey(ADM).
  1180. X
  1181. X12.  The receiver was not getting properly informed when the parity of
  1182. Xthe line was changed with the interactive or procedure parity command.
  1183. XSo it could improperly mask or fail to mask incoming characters.
  1184. X
  1185. X13.  The crypt library is no longer required.  Indeed, the default is
  1186. Xnot to use crypt.  The paranoia required for "safe" big systems is not
  1187. Xalways warranted on smaller PCs.  You can still get extra protection
  1188. Xagainst false ecuungetty action by using crypt if you want (and in the
  1189. Xcase of non-USA user, if you CAN).
  1190. X
  1191. X14.  A running count is displayed on the screen of the number of files
  1192. Xskipped during a ZMODEM transfer.
  1193. X
  1194. X15.  You can now specify the colors used by ecu when it makes an
  1195. Xinternal choice to change colors.  See ecu.man.
  1196. X
  1197. X16.  UNIX, thanks to POSIX, is loathe to accept a filename of greater
  1198. Xthan 14 characters when creating a file.  The XMODEM, YMODEM and
  1199. XZMODEM file receive protocols have been modified to truncate long
  1200. Xfilenames.  A patch to UNIX libsys.a to put the POSIX people back in
  1201. Xtheir place has been floating around the net.
  1202. X
  1203. X--------------------------------------------------------------------
  1204. X
  1205. XChanges and fixes since '2.10' patch level 6:
  1206. X
  1207. X1.  The nap procedure command has an additional feature, the -m
  1208. X    switch.  -m specifies the <int> parameter is a period of
  1209. X    milliseconds to suspend execution.  Without -m, <int> is
  1210. X    tenths of seconds.
  1211. X
  1212. X    nap 2 suspends execution .2 seconds
  1213. X    nap -m 250 suspends execution 250 milliseconds.
  1214. X
  1215. X
  1216. X--------------------------------------------------------------------
  1217. X
  1218. XChanges and fixes since '2.10' patch level 7:
  1219. X
  1220. X1.  added rname procedure command to allow overriding connected
  1221. X    remote name.
  1222. X
  1223. X2.  improve banner at top of session log file
  1224. X
  1225. X3.  add popen and pclose procedure commands
  1226. X
  1227. X4.  Added facility for restoring receiver display after the
  1228. X    interactive help command, or on demand using the BkTab key
  1229. X    (shift TAB).
  1230. X
  1231. X5.  fix bug whereby partial function names could be enetered
  1232. X    (e.g., '%col', '%colo', '%color' all recognized for '%colors').
  1233. X
  1234. X6.  Add the %mhack integer function, returning the life of the
  1235. X    ecu process in milliseconds.  (added mhack_test.ep to models)
  1236. X
  1237. X7.  A better representation of the received screen is kept in
  1238. X    shared memory.
  1239. X
  1240. X8.  The X, Y and ZMODEM transfer screens show per-file elapsed
  1241. X    time transfers as well as session elapsed time.
  1242. X
  1243. X9.  A modified TBIT UUCP dialer, IMHO highly optimized, is is the
  1244. X    uucp directory.
  1245. X
  1246. X10. A bug in automatic creation of string variables was fixed.
  1247. X
  1248. X11. Certain endless loops in procedure execution could not be
  1249. X    interrupted.
  1250. X
  1251. X--------------------------------------------------------------------
  1252. X
  1253. XChanges and fixes since '2.72'
  1254. X
  1255. X1.  The 'expresp' procedure command has been added:
  1256. X    usage: expresp [-v[v...]] <exp-resp-str> [<timeout_msecs>]
  1257. X    a.  -v turns on script debugging
  1258. X    b.  multiple v's (e.g., -v -vv, -vvv) up to 3 'v's produce
  1259. X        more verbose debug output
  1260. X    c.  <exp-resp-str> is as defined in /usr/lib/ecu/Dialers:
  1261. X        Meaning of some of the escape characters:
  1262. X        \p - pause (approximately 1/4-1/2 second delay)
  1263. X        \d - delay (2 seconds)
  1264. X        \D - phone number/token
  1265. X        \T - phone number with Dialcodes and character translation
  1266. X        \N - null byte
  1267. X        \K - insert a BREAK
  1268. X        \E - turn on echo checking (for slow devices)
  1269. X        \e - turn off echo checking
  1270. X        \r - carriage return
  1271. X        \c - no new-line
  1272. X        \n - send new-line
  1273. X        \nnn - send octal number
  1274. X        Speed - Hayes-specific speed-adaptive connect handler
  1275. X    d.  <timeout_msecs> specifies the optional delay for waiting
  1276. X        on expect strings;  it defaults to 10 seconds; the timeout
  1277. X        for 'Speed' expects is fixed at 90 seconds
  1278. X
  1279. X2.  Added partial support for HDB Dialers scripts
  1280. X    a.  \E echo checking is not actually performed, but
  1281. X        essentially the same effect is achieved by pacing
  1282. X        output to the modem
  1283. X    b.  The Speed expect string works only for modems
  1284. X        which return "CONNECT xxxx" connect result codes.
  1285. X    c.  Modems which return status codes during dialing, such
  1286. X        as the Trailblazer RRING, will cause Speed processing
  1287. X        to fail. Fortunately, RRING can be disabled (you should use 
  1288. X        the dialTBIT program anyway)
  1289. X    d.  the timeout for non-Speed expects is 10 seconds
  1290. X    e.  the timeout for 'Speed' expects is 90 seconds
  1291. X
  1292. X
  1293. X3.  Note, the SCO HDB documentation states that a dialer
  1294. X    program may be specified by either a complete pathname
  1295. X    or a partial pathname in /usr/lib/uucp.  Ecu requires a
  1296. X    complete pathname.
  1297. X
  1298. X4.  The string functions %dayz, %monthz, %datez, %timez and %timesz
  1299. X    have been added to retreive UTC (Z) date and time values.
  1300. X
  1301. X5.  If no dialing action results from a visit to the dialing directory,
  1302. X    the previous receiver screen contents is redisplayed.
  1303. X
  1304. X6.  The 'P' option to the 'fi' (file insert) interactive command
  1305. X    has been added.  In this mode, the file is sent character-by-
  1306. X    character to the line with 20 milliseconds pacing between each
  1307. X    character.
  1308. X
  1309. X7.  Previously, if you started ecu on an HDB machine and no line was
  1310. X    available at the specified (or default) baudrate, ecu would exit
  1311. X    with an error message.  The workaround was to explicitly state the
  1312. X    desired device with a -l argument.  The error (now as a warning) is
  1313. X    still printed, but the setup screen or initial procedure is allowed
  1314. X    to execute with tty1a forced to be the line (though this will likely
  1315. X    fail if tty1a is in Devices since ecu has already determined tty1a
  1316. X    is busy).
  1317. X
  1318. X8.  When a string is requested from the keyboard, the Cursor Left,
  1319. X    Cursor Right and Ins keys are functional, allowing editing of the
  1320. X    string.  Pressing Ins toggles insert mode.  In non-curses modes,
  1321. X    (e.g., after HOME pressed and before Enter) ^L (or ^R) displays the
  1322. X    insert mode state and redisplays the string, after which editing may
  1323. X    continue.
  1324. X
  1325. X9.  Though not appearing on the help line, the cursor up and cursor down
  1326. X    keys work in the dialing directory in a fashion similar to 'u' and 'd',
  1327. X    respectively.
  1328. X
  1329. X10. Warning: using vidi(C) to change the screen configuration while
  1330. X    ecu is running, (e.g. Home !vidi xxx) can cause the ecu to later
  1331. X    fault and dump core.  Why this occurs is not known yet.
  1332. X
  1333. X11. After pressing Home, pressing it again gives you access to a 
  1334. X    command history mechanism.  Pressing cursor up and cursor down
  1335. X    while in this mode causes less and more recent commands to be displayed.
  1336. X    You can use Ins, Cursor Left, Cursor Right and Backspace, ^L/^R to
  1337. X    edit the old entry as desired, and then press Enter. (see #8 above).
  1338. X    Users of ksh will find this a familiar feature.
  1339. X
  1340. X--------------------------------------------------------------------
  1341. X
  1342. XChanges and fixes since '2.80'
  1343. X
  1344. X1.  It was not possible to interrupt the built-in modem dialer
  1345. X    modem initialization sequence.  SIGINT will do it now.
  1346. X
  1347. X2.  A Zmodem window size may now be specified when sending files.
  1348. X    The file transfer status screen shows the number of unacknowleged
  1349. X    bytes which have been sent.  If full streaming is allowed (window
  1350. X    size of zero), then this size will match the file position until
  1351. X    the transfer is complete or the receiver sends a ZRPOS.
  1352. X
  1353. X3.  Output generated by procedures is now written to any active receiver
  1354. X    log file in addition to any active procedure log file.
  1355. X
  1356. X4.  Just a note: on 286 systems you make have to use makeL, since
  1357. X    make is a small model (medium?) and makeL is a large model
  1358. X    program.
  1359. X
  1360. X5.  The dependency of eculine.c on sys/select.h has been removed.
  1361. X    If you re-'make depend', you probably won't have this problem
  1362. X    show up again (a side effect of make depend is that it misses
  1363. X    '# include' and I have patched eculine.c to use this).
  1364. X
  1365. X6.  A new command, xon, has been added (both interactive and procedure
  1366. X    versions).  The format is:
  1367. X         xon <arg>
  1368. X    where <arg> is on    input and output flow control
  1369. X                   off   no flow control
  1370. X                   in    input flow control
  1371. X                   out   output flow control
  1372. X    If <arg> is omitted from the interactive command, the current
  1373. X    flow control status is displayed.  This command is documented in
  1374. X    the patched built-in help file and nroff txt files, but no pre-
  1375. X    printed manual changes were issued with this release.
  1376. SHAR_EOF
  1377. true || echo 'restore of OLD-HISTORY-1 failed'
  1378. fi
  1379. echo 'End of ecu320 part 2'
  1380. echo 'File OLD-HISTORY-1 is continued in part 3'
  1381. echo 3 > _shar_seq_.tmp
  1382. exit 0
  1383.  
  1384. exit 0 # Just in case...
  1385.