home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / misc / volume32 / ecu / part40 < prev    next >
Text File  |  1992-09-15  |  53KB  |  1,827 lines

  1. Newsgroups: comp.sources.misc
  2. From: wht@n4hgf.Mt-Park.GA.US (Warren Tucker)
  3. Subject:  v32i075:  ecu - ECU Asynchronous Communications v3.20, Part40/40
  4. Message-ID: <1992Sep15.154003.21537@sparky.imd.sterling.com>
  5. X-Md4-Signature: 76180b4d8081227dd33ffe40d1a312a2
  6. Date: Tue, 15 Sep 1992 15:40:03 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 75
  11. Archive-name: ecu/part40
  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.40 (part 40 of ecu320)
  18. # do not concatenate these parts, unpack them in order with /bin/sh
  19. # file models/keys 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" != 40; 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 models/keys'
  35. else
  36. echo 'x - continuing file models/keys'
  37. sed 's/^X//' << 'SHAR_EOF' >> 'models/keys' &&
  38. X    F1:F1:esc O q
  39. X    F2:F2:esc O r
  40. X    F3:F3:esc O s
  41. X    F4:F4:esc O t
  42. X    F5:F5:esc O u
  43. X    F6:F6:esc O v
  44. X    F7:F7:esc O w
  45. X    F8:status:dc4
  46. X    F9:no status:nl
  47. X    F10:redisp:esc O y
  48. X    F11:redisp:syn
  49. X    PGDN:cancel:esc O Q
  50. X    END:enter:esc O M
  51. X    PGUP:dispform:esc O R
  52. X    CUU:^:dle
  53. X    CUD:v:so
  54. X    CUL:<:stx
  55. X    CUR:>:ack
  56. X
  57. Xremecu
  58. X    F1:Home:0xC8
  59. X    F2:End:0xC6
  60. SHAR_EOF
  61. echo 'File models/keys is complete' &&
  62. chmod 0644 models/keys ||
  63. echo 'restore of models/keys failed'
  64. Wc_c="`wc -c < 'models/keys'`"
  65. test 322 -eq "$Wc_c" ||
  66.     echo 'models/keys: original size 322, current size' "$Wc_c"
  67. rm -f _shar_wnt_.tmp
  68. fi
  69. # ============= models/lookfortest.ep ==============
  70. if test -f 'models/lookfortest.ep' -a X"$1" != X"-c"; then
  71.     echo 'x - skipping models/lookfortest.ep (File already exists)'
  72.     rm -f _shar_wnt_.tmp
  73. else
  74. > _shar_wnt_.tmp
  75. echo 'x - extracting models/lookfortest.ep (Text)'
  76. sed 's/^X//' << 'SHAR_EOF' > 'models/lookfortest.ep' &&
  77. X#  CHK=0xFA5C
  78. X# lookfor_test.ep (needs a modem already attached)
  79. X
  80. X    send 'ate0q1'
  81. X    nap 20
  82. X    flush
  83. X
  84. X    send 'at'
  85. X
  86. X    lookfor 'OK'
  87. X    ifi $i0 == 1 echo '... got false success'; return
  88. X    ifi $i0 <> 0 echo '... got illogical result';set $i0;return
  89. X    echo '... got good result for failure to read'
  90. X
  91. X    send 'ate1q0'
  92. X
  93. X    lookfor -e 'OK'+%chr(0x0D)+%chr(0x0A) 20
  94. X    ifi $i0 == 0 echo '... got false failure'; return
  95. X    ifi $i0 <> 1 echo '... got illogical result';set $i0;return
  96. X    echo '... got good result for read'
  97. X
  98. X
  99. X
  100. X# vi: set tabstop=8:
  101. SHAR_EOF
  102. chmod 0644 models/lookfortest.ep ||
  103. echo 'restore of models/lookfortest.ep failed'
  104. Wc_c="`wc -c < 'models/lookfortest.ep'`"
  105. test 515 -eq "$Wc_c" ||
  106.     echo 'models/lookfortest.ep: original size 515, current size' "$Wc_c"
  107. rm -f _shar_wnt_.tmp
  108. fi
  109. # ============= models/mhack_test.ep ==============
  110. if test -f 'models/mhack_test.ep' -a X"$1" != X"-c"; then
  111.     echo 'x - skipping models/mhack_test.ep (File already exists)'
  112.     rm -f _shar_wnt_.tmp
  113. else
  114. > _shar_wnt_.tmp
  115. echo 'x - extracting models/mhack_test.ep (Text)'
  116. sed 's/^X//' << 'SHAR_EOF' > 'models/mhack_test.ep' &&
  117. X#  CHK=0xEC1B
  118. X#---------------------------------------------------------------------------
  119. X#  mhack_test.ep - test %mhack while showing entertaining colors
  120. X#  also useful to get a feeling for how fast the procedure language can be
  121. X#---------------------------------------------------------------------------
  122. X#+:EDITS:*/
  123. X#:09-10-1992-13:59-wht@n4hgf-ECU release 3.20
  124. X#:08-22-1992-15:39-wht@n4hgf-ECU release 3.20 BETA
  125. X#:03-16-1990-05:25-wht@n4hgf-requires ecu x2.64 or later
  126. X
  127. X    echo 'SIGINT to quit\n'
  128. X    $i20 = %colors
  129. X    $i21 = %colors & 0xFFFFF0FF
  130. X    whilei 1==1
  131. X    {
  132. X        $i0 = %mhack
  133. X        $i1 = $i0 & 0xF00
  134. X        icolor $i21 | $i1
  135. X        echo -n %itos($i0,8d)+%chr(0x0d)
  136. X    }
  137. X    echo ''
  138. X    icolor $i20
  139. X
  140. SHAR_EOF
  141. chmod 0644 models/mhack_test.ep ||
  142. echo 'restore of models/mhack_test.ep failed'
  143. Wc_c="`wc -c < 'models/mhack_test.ep'`"
  144. test 677 -eq "$Wc_c" ||
  145.     echo 'models/mhack_test.ep: original size 677, current size' "$Wc_c"
  146. rm -f _shar_wnt_.tmp
  147. fi
  148. # ============= models/mkdir.ep ==============
  149. if test -f 'models/mkdir.ep' -a X"$1" != X"-c"; then
  150.     echo 'x - skipping models/mkdir.ep (File already exists)'
  151.     rm -f _shar_wnt_.tmp
  152. else
  153. > _shar_wnt_.tmp
  154. echo 'x - extracting models/mkdir.ep (Text)'
  155. sed 's/^X//' << 'SHAR_EOF' > 'models/mkdir.ep' &&
  156. X#  CHK=0x91D9
  157. X system 'mkdir '+%argv(1)
  158. SHAR_EOF
  159. chmod 0644 models/mkdir.ep ||
  160. echo 'restore of models/mkdir.ep failed'
  161. Wc_c="`wc -c < 'models/mkdir.ep'`"
  162. test 40 -eq "$Wc_c" ||
  163.     echo 'models/mkdir.ep: original size 40, current size' "$Wc_c"
  164. rm -f _shar_wnt_.tmp
  165. fi
  166. # ============= models/oneline.ep ==============
  167. if test -f 'models/oneline.ep' -a X"$1" != X"-c"; then
  168.     echo 'x - skipping models/oneline.ep (File already exists)'
  169.     rm -f _shar_wnt_.tmp
  170. else
  171. > _shar_wnt_.tmp
  172. echo 'x - extracting models/oneline.ep (Text)'
  173. sed 's/^X//' << 'SHAR_EOF' > 'models/oneline.ep' &&
  174. X#  CHK=0xF093
  175. X#--------------------------------------------------------------
  176. X# oneline.ep
  177. X#
  178. X# send command in $s0, expecting a one line response
  179. X# and a csh prompt ending in '% '
  180. X#
  181. X# returns: $s0 = one line response in $s0 if success
  182. X#          $i0 = 1 if success, else 0
  183. X#--------------------------------------------------------------
  184. X#+:EDITS:*/
  185. X#:09-10-1992-13:59-wht@n4hgf-ECU release 3.20
  186. X#:08-22-1992-15:39-wht@n4hgf-ECU release 3.20 BETA
  187. X#:07-11-1989-16:55-wht-get cmd became lgets
  188. X#:06-28-1989-19:36-wht-use named variables
  189. X#:06-25-1989-13:56-wht-new do command syntax
  190. X#:06-25-1989-12:33-wht-new if/while syntax
  191. X#:06-22-1989-13:30-wht-creation
  192. X
  193. X    mkvar $icsave; $icsave = %colors
  194. X    color gray
  195. X    send $s0                        # send command
  196. X    lookfor -e %chr(0x0A) 50        # scan command echo
  197. X    ifi $i0 == 0 icolor $i2;return    # if not found, return
  198. X    lgets -e $s0 500 5 '\n'            # get one line response
  199. X    lookfor '% ' 50                    # get prompt, don't echo
  200. X    # $i0 = 1 if prompt, else 0
  201. X    icolor $icsave
  202. SHAR_EOF
  203. chmod 0644 models/oneline.ep ||
  204. echo 'restore of models/oneline.ep failed'
  205. Wc_c="`wc -c < 'models/oneline.ep'`"
  206. test 974 -eq "$Wc_c" ||
  207.     echo 'models/oneline.ep: original size 974, current size' "$Wc_c"
  208. rm -f _shar_wnt_.tmp
  209. fi
  210. # ============= models/opuslogin.ep ==============
  211. if test -f 'models/opuslogin.ep' -a X"$1" != X"-c"; then
  212.     echo 'x - skipping models/opuslogin.ep (File already exists)'
  213.     rm -f _shar_wnt_.tmp
  214. else
  215. > _shar_wnt_.tmp
  216. echo 'x - extracting models/opuslogin.ep (Text)'
  217. sed 's/^X//' << 'SHAR_EOF' > 'models/opuslogin.ep' &&
  218. X#  CHK=0xE753
  219. X#+-----------------------------------------------------------------
  220. X#  opuslogin.ep - ecu OPUS BBS login procedure
  221. X#  wht%n4hgf@gatech.edu
  222. X#
  223. X# %argv(1) = remote name
  224. X# %argv(2) = first name
  225. X# %argv(3) = last name
  226. X# %argv(4) = password
  227. X#+-----------------------------------------------------------------
  228. X#+:EDITS:*/
  229. X#:09-10-1992-13:59-wht@n4hgf-ECU release 3.20
  230. X#:08-22-1992-15:39-wht@n4hgf-ECU release 3.20 BETA
  231. X#:05-10-1992-09:22-wht@n4hgf-%conn can be -1 now
  232. X#:07-11-1989-16:55-wht-get cmd became lgets
  233. X#:06-28-1989-19:36-wht-use named variables
  234. X#:06-25-1989-13:56-wht-new do command syntax
  235. X#:06-25-1989-12:33-wht-new if/while syntax
  236. X#:06-23-1989-19:46-wht-improved hayes dialer reduces need to report dial fail
  237. X#:06-19-1989-22:50-wht-use while and if statements
  238. X#:06-14-1989-15:58-wht-add login capability when already connected
  239. X#:06-11-1989-23:37-wht-creation
  240. X
  241. X    mkvar $i_csave,$i_ltimeout,$i_retries
  242. X
  243. X    $i_csave = %colors
  244. X    $i_retries=3
  245. X
  246. X    color red;    echo -n '\nauto-logon to '
  247. X    color yellow; echo -n %argv(1)
  248. X    color red;    echo    ' on '+%date+' at '+%time+'\n'
  249. X
  250. X    ifi %argc != 5    # not enough args
  251. X    {
  252. X        color red
  253. X        echo %argv(0)+' needs 5 arguments (got '+%itos(%argc)+')'
  254. X        goto SORRY1
  255. X    }
  256. X
  257. X    ifi %conn <= 0 goto DIAL
  258. X
  259. X    ifs %rname == %argv(1)
  260. X    {
  261. X        color brown;  echo -n 'already connected to '
  262. X        color yellow; echo    %rname
  263. X        goto GET_LOGIN_PROMPT_RETRY
  264. X    }
  265. X
  266. XHANGUP
  267. X    ifi %conn <> 0 echo 'hanging up on '+%rname; hangup
  268. X
  269. XDIAL
  270. X    color green
  271. X    dial %argv(1); set $i1=$i0 #save dial result in $i1
  272. X    ifi $i1 == 2 color red; echo 'interrupted'; goto SORRY
  273. X    ifi $i1 != 0 goto SORRY
  274. X
  275. XTEST_MODEM_RESULT
  276. X    ifs $s0 != 'CONNECT '+%itos(%baud)
  277. X        color yellow; echo 'baud rate mismatch ... retrying'; goto HANGUP
  278. X
  279. X# give name to remote
  280. X    lookfor -e 'FIRST name: ' 150
  281. X    send %argv(2)
  282. X    lookfor -e 'LAST name: ' 150
  283. X    send %argv(3)
  284. X
  285. X    lookfor -e '[Y,n]? ' 40
  286. X    send 'Y'
  287. X
  288. X    lookfor -e 'Password: ' 80
  289. X    send %argv(4)
  290. X    lookfor -e '\n'
  291. X    set $i0=0
  292. X    goto SETCOLOR_AND_RETURN_STATUS
  293. X
  294. X# procedure failed
  295. XSORRY
  296. X    echo ''
  297. X    color red
  298. X    echo '....... sorry'
  299. X    set $i0=0
  300. X    goto SETCOLOR_AND_RETURN_STATUS
  301. X
  302. XSORRY1
  303. X    echo ''
  304. X    color red
  305. X    echo '....... sorry'
  306. X    set $i0=1
  307. X
  308. XSETCOLOR_AND_RETURN_STATUS
  309. X    icolor $i_csave
  310. X    return $i0
  311. X
  312. X# vi:set tabstop=4 shiftwidth=4:
  313. SHAR_EOF
  314. chmod 0644 models/opuslogin.ep ||
  315. echo 'restore of models/opuslogin.ep failed'
  316. Wc_c="`wc -c < 'models/opuslogin.ep'`"
  317. test 2232 -eq "$Wc_c" ||
  318.     echo 'models/opuslogin.ep: original size 2232, current size' "$Wc_c"
  319. rm -f _shar_wnt_.tmp
  320. fi
  321. # ============= models/p.ep ==============
  322. if test -f 'models/p.ep' -a X"$1" != X"-c"; then
  323.     echo 'x - skipping models/p.ep (File already exists)'
  324.     rm -f _shar_wnt_.tmp
  325. else
  326. > _shar_wnt_.tmp
  327. echo 'x - extracting models/p.ep (Text)'
  328. sed 's/^X//' << 'SHAR_EOF' > 'models/p.ep' &&
  329. X#  CHK=0x8848
  330. X#+---------------------------------------------------------
  331. X# p.eq - colorful, selective ps -aux on remote BSD system
  332. X#----------------------------------------------------------
  333. X#+:EDITS:*/
  334. X#:09-10-1992-13:59-wht@n4hgf-ECU release 3.20
  335. X#:08-22-1992-15:39-wht@n4hgf-ECU release 3.20 BETA
  336. X#:07-11-1989-16:55-wht-get cmd became lgets
  337. X#:06-30-1989-18:53-wht-creation
  338. X
  339. X    mkvar $icolor; $icolor = %colors
  340. X    mkvar $itimeout; $itimeout = 50
  341. X    send 'ps -aux'
  342. X    lookfor '\n' 40
  343. X    $s0 = ''
  344. X    whilei 1==1
  345. X    {
  346. X        lgets $s00 $itimeout 5 '\n'
  347. X        ifi $i0 == 0 continue
  348. X        $itimeout = 20
  349. X        ifi %instr($s0,'% ') >= 0 break    # prompt ends it
  350. X        color cyan
  351. X        ifi %instr($s0,'getty') >= 0 continue
  352. X        ifi %instr($s0,'/etc') >= 0 continue
  353. X        ifi %instr($s0,'rlogin') >= 0 continue
  354. X        ifi %instr($s0,'biod') >= 0 continue
  355. X        ifi %instr($s0,'csh') >= 0 continue
  356. X        ifi %instr($s0,'/usr/lib') >= 0 continue
  357. X        ifi %instr($s0,' i29 ') > 0 color green
  358. X        ifi %instr($s0,' i13 ') > 0 color red
  359. X        ifi %instr($s0,'cma') == 0 color yellow
  360. X        ifi %instr($s0,'gfp') == 0 color lt_blue
  361. X        ifi %instr($s0,'jts') == 0 color lt_blue
  362. X        ifi %instr($s0,'UUCP') >= 0 color red
  363. X        ifi %instr($s0,'uu') >= 0 color red
  364. X        echo $s0
  365. X    }
  366. X    icolor $icolor
  367. X    send ''
  368. X
  369. SHAR_EOF
  370. chmod 0644 models/p.ep ||
  371. echo 'restore of models/p.ep failed'
  372. Wc_c="`wc -c < 'models/p.ep'`"
  373. test 1207 -eq "$Wc_c" ||
  374.     echo 'models/p.ep: original size 1207, current size' "$Wc_c"
  375. rm -f _shar_wnt_.tmp
  376. fi
  377. # ============= models/phone ==============
  378. if test -f 'models/phone' -a X"$1" != X"-c"; then
  379.     echo 'x - skipping models/phone (File already exists)'
  380.     rm -f _shar_wnt_.tmp
  381. else
  382. > _shar_wnt_.tmp
  383. echo 'x - extracting models/phone (Text)'
  384. sed 's/^X//' << 'SHAR_EOF' > 'models/phone' &&
  385. X#ECUPHONE
  386. X# when saving this file, ECU will preserve commented lines
  387. X#sco2:1(408)425-3502::2400:N:sosco uucp
  388. Xnavobs:1(202)653-0351::1200:N:Naval Observatory Time
  389. SHAR_EOF
  390. chmod 0644 models/phone ||
  391. echo 'restore of models/phone failed'
  392. Wc_c="`wc -c < 'models/phone'`"
  393. test 162 -eq "$Wc_c" ||
  394.     echo 'models/phone: original size 162, current size' "$Wc_c"
  395. rm -f _shar_wnt_.tmp
  396. fi
  397. # ============= models/phrases ==============
  398. if test -f 'models/phrases' -a X"$1" != X"-c"; then
  399.     echo 'x - skipping models/phrases (File already exists)'
  400.     rm -f _shar_wnt_.tmp
  401. else
  402. > _shar_wnt_.tmp
  403. echo 'x - extracting models/phrases (Text)'
  404. sed 's/^X//' << 'SHAR_EOF' > 'models/phrases' &&
  405. Xstty:stty intr ^C kill ^U erase ^H^r
  406. Xmail-csh:mail emory\!tridom\!n4hgf\!wht^r
  407. Xmail-sh:mail emory!tridom!n4hgf!wht^r
  408. SHAR_EOF
  409. chmod 0644 models/phrases ||
  410. echo 'restore of models/phrases failed'
  411. Wc_c="`wc -c < 'models/phrases'`"
  412. test 117 -eq "$Wc_c" ||
  413.     echo 'models/phrases: original size 117, current size' "$Wc_c"
  414. rm -f _shar_wnt_.tmp
  415. fi
  416. # ============= models/ps.ep ==============
  417. if test -f 'models/ps.ep' -a X"$1" != X"-c"; then
  418.     echo 'x - skipping models/ps.ep (File already exists)'
  419.     rm -f _shar_wnt_.tmp
  420. else
  421. > _shar_wnt_.tmp
  422. echo 'x - extracting models/ps.ep (Text)'
  423. sed 's/^X//' << 'SHAR_EOF' > 'models/ps.ep' &&
  424. X#  CHK=0xDA50
  425. X#+------------------------------------------------------
  426. X# ps.eq - another colorful ps example
  427. X#-------------------------------------------------------
  428. X#+:EDITS:*/
  429. X#:09-10-1992-13:59-wht@n4hgf-ECU release 3.20
  430. X#:08-22-1992-15:39-wht@n4hgf-ECU release 3.20 BETA
  431. X#:07-11-1989-16:55-wht-get cmd became lgets
  432. X#:06-30-1989-18:53-wht-creation
  433. X
  434. X    mkvar $icolor; $icolor = %colors
  435. X    send %argv(0)+' '+%argv(1)+' '+%argv(2)
  436. X    lookfor '\n' 40
  437. X    $s0 = ''
  438. X    whilei 1==1
  439. X    {
  440. X        lgets $s0 60 60 '\n'
  441. X        color cyan
  442. X        ifi %instr($s0,'(getty)' >= 0 continue
  443. X        else ifi %instr($s0,'(tcsh)' >= 0 continue
  444. X        else ifi %instr($s0,'(csh)' >= 0 continue
  445. X        else ifi %instr($s0,'(sh)' >= 0 continue
  446. X        else ifi %instr($s0,'/etc/init' >= 0 continue
  447. X        else ifi %instr($s0,'% ') >= 0 break
  448. X        else ifi %instr($s0,'USER') == 0 color gray
  449. X        else ifi %instr($s0,' i29 ') > 0 color red
  450. X        else ifi %instr($s0,' i13 ') > 0 color green
  451. X        else ifi %instr($s0,'root') == 0 color yellow
  452. X        echo $s0
  453. X    }
  454. X    icolor $icolor
  455. X    send ''
  456. X
  457. SHAR_EOF
  458. chmod 0644 models/ps.ep ||
  459. echo 'restore of models/ps.ep failed'
  460. Wc_c="`wc -c < 'models/ps.ep'`"
  461. test 992 -eq "$Wc_c" ||
  462.     echo 'models/ps.ep: original size 992, current size' "$Wc_c"
  463. rm -f _shar_wnt_.tmp
  464. fi
  465. # ============= models/put_ecu.ep ==============
  466. if test -f 'models/put_ecu.ep' -a X"$1" != X"-c"; then
  467.     echo 'x - skipping models/put_ecu.ep (File already exists)'
  468.     rm -f _shar_wnt_.tmp
  469. else
  470. > _shar_wnt_.tmp
  471. echo 'x - extracting models/put_ecu.ep (Text)'
  472. sed 's/^X//' << 'SHAR_EOF' > 'models/put_ecu.ep' &&
  473. X#  CHK=0x6289
  474. X#--------------------------------------------------------------
  475. X# put_ecu.ep - update remote copy of ecu sources
  476. X#--------------------------------------------------------------
  477. X#+:EDITS:*/
  478. X#:09-10-1992-13:59-wht@n4hgf-ECU release 3.20
  479. X#:08-22-1992-15:39-wht@n4hgf-ECU release 3.20 BETA
  480. X#:07-11-1989-16:55-wht-get cmd became lgets
  481. X#:06-28-1989-19:36-wht-use named variables
  482. X#:06-25-1989-14:28-wht-use rz_update
  483. X
  484. X    $s10 = %rname
  485. X    ifi %instr($s10,'tridom') == 0
  486. X        $s10 = 'tridom'
  487. X
  488. X    ifs $s10 == 'tridom'
  489. X    {
  490. X        $s0 = '/u3/sd/wht/src/ecu'
  491. X        $s1 = '/u1/src/ecu' 
  492. X        $s2 = '`ff \'*.c\' \'*.h\' Makefile \'*.ep\' \'.mi\' \'*.txt\' \'*.man\'` xsel386/*'
  493. X        $s3 = 'wht'
  494. X        goto CALL_SZ_UPDATE
  495. X    }
  496. X    else ifs $s10== 'ki4xo'
  497. X    {
  498. X        $s0 = '/user/wht/src/ecu'
  499. X        $s1 = '/u1/src/ecu' 
  500. X        $s2 = '{.,z}/{Makefile,*.{c,h}} `ff \'*.ep\' \'.mi\' \'*.man\'` xsel386/*'
  501. X        $s3 = 'wht'
  502. X        goto CALL_SZ_UPDATE
  503. X    }
  504. X    else ifs $s10== 'coke-jsm'
  505. X    {
  506. X        $i39=%colors
  507. X        color red; echo '\n\nHAVE YOU MADE A NO-SELECT VERSION???????\n\n'
  508. X        mkvar $s_rpwd(20)
  509. X        echo -n 'root password? ' ; $s_rpwd = %cgets
  510. X        icolor $i39
  511. X        $s0 = '/usr/wht/bin'
  512. X        $s1 = '/u1/src/ecu'
  513. X        $s2 = 'ecu'
  514. X        $s3 = 'wht'
  515. X        do 'sz_update' $s0  $s1 $s2 $s3 %argv(0)
  516. X        lookfor '% ' 40
  517. X        $s0 = '/usr/wht/bin'
  518. X        $s1 = '/usr/wht/bin'
  519. X        $s2 = 'ecusz ecurz ecusea'
  520. X        $s3 = 'wht'
  521. X        do 'sz_update' $s0  $s1 $s2 $s3 %argv(0)
  522. X        lookfor '% ' 40
  523. X        $s0 = '/usr/wht'
  524. X        $s1 = '/u1/src/ecu/doc'
  525. X        $s2 = '*.man'
  526. X        $s3 = 'wht'
  527. X        do 'sz_update' $s0  $s1 $s2 $s3 %argv(0)
  528. X        lookfor '% ' 40
  529. X        $s0 = '/usr/wht/.ecu'
  530. X        $s1 = '/u1/src/ecu/models'
  531. X        $s2 = '*'
  532. X        $s3 = 'wht'
  533. X        do 'sz_update' $s0  $s1 $s2 $s3 %argv(0)
  534. X        lookfor '% ' 40
  535. X        $s0 = '/usr/lib/ecu'
  536. X        $s1 = $s0
  537. X        $s2 = '*'
  538. X        $s3 = ''
  539. X        do 'su-csh' 'root' $s_rpwd
  540. X        do 'sz_update' $s0  $s1 $s2 $s3 %argv(0)
  541. X        send -e 'chmod u+s /usr/lib/ecu/ecuungetty'
  542. X        send %chr(0x04)
  543. X        return
  544. X    }
  545. X    else echo 'not to '+$s10+' you don\'t'
  546. X
  547. X# $s0 = remote directory
  548. X# $s1 = local directory
  549. X# $s2 = file list
  550. X# $s3 = necessary username on remote system
  551. XCALL_SZ_UPDATE
  552. X    do 'sz_update' $s0  $s1 $s2 $s3 %argv(0)
  553. SHAR_EOF
  554. chmod 0644 models/put_ecu.ep ||
  555. echo 'restore of models/put_ecu.ep failed'
  556. Wc_c="`wc -c < 'models/put_ecu.ep'`"
  557. test 2060 -eq "$Wc_c" ||
  558.     echo 'models/put_ecu.ep: original size 2060, current size' "$Wc_c"
  559. rm -f _shar_wnt_.tmp
  560. fi
  561. # ============= models/ringcount.ep ==============
  562. if test -f 'models/ringcount.ep' -a X"$1" != X"-c"; then
  563.     echo 'x - skipping models/ringcount.ep (File already exists)'
  564.     rm -f _shar_wnt_.tmp
  565. else
  566. > _shar_wnt_.tmp
  567. echo 'x - extracting models/ringcount.ep (Text)'
  568. sed 's/^X//' << 'SHAR_EOF' > 'models/ringcount.ep' &&
  569. X#+----------------------------------------------------------------
  570. X# ringcount.ep - ESIO Ring Indicator Test
  571. X# only useful for versions compiled for and using ESIO tty driver
  572. X#-----------------------------------------------------------------
  573. X
  574. X    $i_initial_RI = %ridet    # initial number of rings
  575. X
  576. X    send 'aaaaaaaats0=0'
  577. X    lookfor -e %chr(0x01) 30
  578. X
  579. X    whilei 1==1
  580. X    {
  581. X        echo -n 'RI= '+%itos(%ridet,5d)+'  MSR='+%msrtext
  582. X        eeol
  583. X        echo -n '\r'
  584. X        nap -m 100
  585. X    }
  586. SHAR_EOF
  587. chmod 0644 models/ringcount.ep ||
  588. echo 'restore of models/ringcount.ep failed'
  589. Wc_c="`wc -c < 'models/ringcount.ep'`"
  590. test 449 -eq "$Wc_c" ||
  591.     echo 'models/ringcount.ep: original size 449, current size' "$Wc_c"
  592. rm -f _shar_wnt_.tmp
  593. fi
  594. # ============= models/root.ep ==============
  595. if test -f 'models/root.ep' -a X"$1" != X"-c"; then
  596.     echo 'x - skipping models/root.ep (File already exists)'
  597.     rm -f _shar_wnt_.tmp
  598. else
  599. > _shar_wnt_.tmp
  600. echo 'x - extracting models/root.ep (Text)'
  601. sed 's/^X//' << 'SHAR_EOF' > 'models/root.ep' &&
  602. X#  CHK=0x067D
  603. X#+----------------------------------------------
  604. X# su-root.ep
  605. X#-----------------------------------------------
  606. X#+:EDITS:*/
  607. X#:09-10-1992-13:59-wht@n4hgf-ECU release 3.20
  608. X#:08-22-1992-15:39-wht@n4hgf-ECU release 3.20 BETA
  609. X#:07-11-1989-16:55-wht-get cmd became lgets
  610. X#:06-28-1989-19:36-wht-use named variables
  611. X#:06-27-1989-17:02-wht-working
  612. X
  613. X    mkvar icsave;$icsave = %colors
  614. X    color lt_blue black
  615. X    echo -n 'remote root password? '
  616. X    color black black
  617. X    $s0 = %cgets
  618. X    icolor $icsave
  619. X    do 'su' 'root' $s0
  620. X    $s0 = ''        # forget password
  621. X    lookfor '% ' 100 # swallow prompt
  622. X    send 'source ~wht/.cshrc'
  623. SHAR_EOF
  624. chmod 0644 models/root.ep ||
  625. echo 'restore of models/root.ep failed'
  626. Wc_c="`wc -c < 'models/root.ep'`"
  627. test 600 -eq "$Wc_c" ||
  628.     echo 'models/root.ep: original size 600, current size' "$Wc_c"
  629. rm -f _shar_wnt_.tmp
  630. fi
  631. # ============= models/rz_update.ep ==============
  632. if test -f 'models/rz_update.ep' -a X"$1" != X"-c"; then
  633.     echo 'x - skipping models/rz_update.ep (File already exists)'
  634.     rm -f _shar_wnt_.tmp
  635. else
  636. > _shar_wnt_.tmp
  637. echo 'x - extracting models/rz_update.ep (Text)'
  638. sed 's/^X//' << 'SHAR_EOF' > 'models/rz_update.ep' &&
  639. X#  CHK=0x3514
  640. X#--------------------------------------------------------------
  641. X# rz_update.ep - update local directory
  642. X#
  643. X# parameters:
  644. X# %argv(1) = remote directory to copy from
  645. X# %argv(2) = local directory to copy to
  646. X# %argv(3) = file list to get
  647. X# %argv(4) = remote username needed, if any, else null
  648. X#            if %argv(4) not null, 'su_'+%argv(4)+".ep" must
  649. X#            exist to su to remote
  650. X# %argv(5)   name of superior procedure
  651. X#
  652. X#--------------------------------------------------------------
  653. X#+:EDITS:*/
  654. X#:09-10-1992-13:59-wht@n4hgf-ECU release 3.20
  655. X#:08-22-1992-15:39-wht@n4hgf-ECU release 3.20 BETA
  656. X#:05-10-1992-09:22-wht@n4hgf-%conn can be -1 now
  657. X#:07-11-1989-16:55-wht-get cmd became lgets
  658. X#:06-28-1989-19:36-wht-use named variables
  659. X#:06-25-1989-13:56-wht-new do command syntax
  660. X#:06-25-1989-12:33-wht-new if/while syntax
  661. X#:06-22-1989-13:30-wht-creation
  662. X
  663. X# variable usage
  664. X    mkvar $i_csave            # color settings at entry to procedure
  665. X    mkvar $i_rtnval            # return code
  666. X    mkvar $i_suflag            # true if su occurred
  667. X    mkvar $s_origdir(128)    # original working directory
  668. X    mkvar $s_rdir(128)        # remote directory we started with
  669. X    mkvar $s_ruser(16)        # remote username we started with before su
  670. X    mkvar $s_xtitle(64)        # title for xfer
  671. X
  672. X    $i_csave=%colors # get colors at entry
  673. X
  674. X    $s_xtitle = 'Connected to '+%rname
  675. X    ifs %argv(5) != ''
  676. X        $s_xtitle = $s_xtitle+' - procedure '+%argv(5)
  677. X
  678. X# check to make sure we are connected
  679. X    ifi %conn <= 0
  680. X    {
  681. X        color red; echo 'not connected to anyone!'
  682. X        goto SORRY
  683. X    }
  684. X    color lt_blue;  echo 'Connected to '+%rname
  685. X
  686. X# save local current directory and change to target
  687. X    $s_origdir=%dir
  688. X    color brown
  689. X    ifs $s_origdir == %argv(2)
  690. X        echo -n 'local directory already '
  691. X    else 
  692. X    {
  693. X        cd %argv(2)
  694. X        echo -n 'local directory set to '
  695. X    }
  696. X    color yellow; echo %dir
  697. X
  698. X# make sure remote username ok
  699. X    ifs %argv(4) == '' goto REMOTE_CD # if any remote username
  700. X    do 'bsd_uname'            # get $s0=username
  701. X    ifi $i0 == 0 goto SORRY    # test failure
  702. X    $s_ruser = $s0            # save original remote username
  703. X    ifs $s0 != %argv(4)
  704. X    {                        # need to su
  705. X        color brown
  706. X        echo -n 'remote username '
  707. X        color yellow
  708. X        echo -n $s0
  709. X        color brown
  710. X        echo ' ... su to '+%argv(4)+' now'
  711. X        color gray
  712. X        do 'su_'+%argv(4)    # call proc, which calls su.ep
  713. X        lookfor '% ' 50        # su leaves prompt in buffer: swallow
  714. X        do 'bsd_uname'        # make sure we su'd
  715. X        ifi $i0 == 0 goto SORRY
  716. X        ifs $s0 != %argv(4)    # failed to su?
  717. X        {
  718. X            color red;echo 'su to '+%argv(4)+' failed'
  719. X            goto SORRY
  720. X        }
  721. X        $i_suflag = 1        # remember we su'd
  722. X    }    # now we are proper username on remote
  723. X
  724. X# establish proper remote working directory
  725. XREMOTE_CD
  726. X    color gray
  727. X    $s0 = 'pwd';do 'oneline'    # save old remote ...
  728. X    $s_rdir = $s0                # ... directory in $s_rdir
  729. X    ifs $s_rdir != %argv(1)        # if cd needed, do it
  730. X    {
  731. X        send 'cd '+%argv(1)        # remote cd
  732. X        lookfor -e '\n' 50        # echo command
  733. X        lookfor '% ' 50            # swallow prompt
  734. X        $s0 = 'pwd'
  735. X        do 'oneline'            # make sure we got there
  736. X        ifs $s0 != %argv(1)        # dir change failed
  737. X        {
  738. X            color red;echo 'remote cd failed'
  739. X            goto SORRY;
  740. X        }
  741. X    }
  742. X    color brown;  echo -n 'remote directory '
  743. X    color yellow; echo -n %argv(1)
  744. X    color brown;  echo    ' ... starting transfer now'
  745. X
  746. X# transfer files
  747. X    color lt_blue
  748. X    send 'sz -n -f '+%argv(3)
  749. X    lookfor -e '\n' 50    # echo remote command
  750. X    ifi $i0 == 0        # command failed?
  751. X    {
  752. X        color red; echo 'sz command failed or garbled echo'
  753. X        goto SORRY
  754. X    }
  755. X    color brown
  756. X    echo 'waiting for sz to start'
  757. X    nap 10
  758. X    color gray
  759. X#    $s5 = '**'+%chr(0x18)+'B'    # ZMODEM header
  760. X    lgets $s0 150 10 '\n'        # wait 15 secs for start
  761. X    ifi %instr($s0,'rz') < 0    # check for 'rz' startup from remote
  762. X    {
  763. X        color white;
  764. X        echo '\n'+$s0+'\n'
  765. X        color red
  766. X        echo 'sz protocol failure or trigger garbled'
  767. X        goto SORRY
  768. X    }
  769. X    icolor $i_csave                # restore colors at entry
  770. X    rz -l $s_xtitle
  771. X    ifi $i0 != 0    # whoops
  772. X    {
  773. X        color red; echo -n '\nTRANSFER FAILED ... '
  774. X        ifi $i0 == 0x100 echo 'interrupt'
  775. X        ifi $i0 != 0x100 echo 'termination status '+%itos($i0,04d)
  776. X        goto SORRY
  777. X    }
  778. X    lookfor '% ' 50                # swallow prompt
  779. X    goto RETURN
  780. X
  781. XSORRY # whoops
  782. X    color red;echo 'rz_update failed ... sorry'
  783. X    $i_rtnval = 1                # return error
  784. X
  785. XRETURN
  786. X    echo ''
  787. X    color brown;  echo -n 'remote user name '
  788. X    color yellow
  789. X    ifi $i_suflag != 0            # we su'd
  790. X    {
  791. X        send -n %chr(0x04)      # will force a new prompt from remote
  792. X        echo -n $s_ruser
  793. X        color brown;  echo ' restored (sent ^D to '+%argv(4)+' shell)'
  794. X        lookfor '% ' 50            # swallow prompt
  795. X    }
  796. X    else
  797. X        color brown;  echo 'unchanged'
  798. X
  799. X    ifs $s_rdir != %argv(1)        # if we did a remote cd
  800. X    {
  801. X        send 'cd '+$s_rdir        # restore original
  802. X        lookfor '\n'
  803. X        color brown;  echo -n 'remote working directory '
  804. X        color yellow; echo -n $s_rdir
  805. X        color brown;  echo    ' restored'
  806. X    }
  807. X    else
  808. X    {
  809. X        send ''                # spark a prompt
  810. X        color brown;  echo -n 'remote working directory '
  811. X        color yellow; echo -n $s_rdir
  812. X        color brown;  echo    ' unchanged'
  813. X    }
  814. X
  815. X    ifs $s_origdir != %dir    # restore original directory
  816. X    {
  817. X        cd $s_origdir
  818. X        color brown;  echo -n 'local working directory '
  819. X        color yellow; echo -n $s_origdir
  820. X        color brown;  echo    ' restored'
  821. X    }
  822. X
  823. X    icolor $i_csave        # restore colors at entry
  824. X    echo ''
  825. X    return $i_rtnval    # return selected error code (bomb procedure if error)
  826. SHAR_EOF
  827. chmod 0644 models/rz_update.ep ||
  828. echo 'restore of models/rz_update.ep failed'
  829. Wc_c="`wc -c < 'models/rz_update.ep'`"
  830. test 5129 -eq "$Wc_c" ||
  831.     echo 'models/rz_update.ep: original size 5129, current size' "$Wc_c"
  832. rm -f _shar_wnt_.tmp
  833. fi
  834. # ============= models/scm.ep ==============
  835. if test -f 'models/scm.ep' -a X"$1" != X"-c"; then
  836.     echo 'x - skipping models/scm.ep (File already exists)'
  837.     rm -f _shar_wnt_.tmp
  838. else
  839. > _shar_wnt_.tmp
  840. echo 'x - extracting models/scm.ep (Text)'
  841. sed 's/^X//' << 'SHAR_EOF' > 'models/scm.ep' &&
  842. X#  CHK=0x01CA
  843. X#+------------------------------------------------------------
  844. X# scm.ep - goto scm and use wht .cshrc
  845. X#-------------------------------------------------------------
  846. X#+:EDITS:*/
  847. X#:09-10-1992-13:59-wht@n4hgf-ECU release 3.20
  848. X#:08-22-1992-15:39-wht@n4hgf-ECU release 3.20 BETA
  849. X#:07-11-1989-16:55-wht-get cmd became lgets
  850. X#:06-28-1989-19:36-wht-use named variables
  851. X#:06-26-1989-19:25-wht-working with su.ep - no longer secret
  852. X
  853. X    mkvar icsave; $icsave = %colors
  854. X    do 'su' 'scm' 'secret'
  855. X    lookfor '% ' 70        # swallow prompt left by su.ep
  856. X    color gray
  857. X    send 'source ~wht/.cshrc'
  858. X    lookfor -e '\n' 70
  859. X    ifs %argv(1) != '.'
  860. X    {
  861. X        lookfor '% ' 70        # swallow prompt
  862. X        send 'cd'
  863. X        lookfor -e '\n' 50    # send 'cd', swallow echo
  864. X    }
  865. X    icolor $icsave
  866. SHAR_EOF
  867. chmod 0644 models/scm.ep ||
  868. echo 'restore of models/scm.ep failed'
  869. Wc_c="`wc -c < 'models/scm.ep'`"
  870. test 740 -eq "$Wc_c" ||
  871.     echo 'models/scm.ep: original size 740, current size' "$Wc_c"
  872. rm -f _shar_wnt_.tmp
  873. fi
  874. # ============= models/senddate.ep ==============
  875. if test -f 'models/senddate.ep' -a X"$1" != X"-c"; then
  876.     echo 'x - skipping models/senddate.ep (File already exists)'
  877.     rm -f _shar_wnt_.tmp
  878. else
  879. > _shar_wnt_.tmp
  880. echo 'x - extracting models/senddate.ep (Text)'
  881. sed 's/^X//' << 'SHAR_EOF' > 'models/senddate.ep' &&
  882. X#  CHK=0x067D
  883. X#+----------------------------------------------
  884. X# senddate.ep
  885. X#-----------------------------------------------
  886. X#+:EDITS:*/
  887. X#:09-10-1992-13:59-wht@n4hgf-ECU release 3.20
  888. X#:08-22-1992-15:39-wht@n4hgf-ECU release 3.20 BETA
  889. X#:07-11-1989-16:55-wht-get cmd became lgets
  890. X#:06-28-1989-19:36-wht-use named variables
  891. X#:06-27-1989-17:02-wht-working
  892. X
  893. X    mkvar icsave;$icsave = %colors
  894. X    color blue
  895. X    echo -n 'remote root password? '
  896. X    color black
  897. X    $s0 = %cgets
  898. X    icolor $icsave
  899. X    do 'su' 'root' $s0
  900. X    $s0 = ''        # forget password
  901. X    lookfor '% ' 50 # swallow prompt
  902. X    send 'date'
  903. X    lookfor -e '% ' 50
  904. X    system -l 'senddate'
  905. X    lookfor -e quiet 20
  906. X    send -n %chr(0x04)
  907. SHAR_EOF
  908. chmod 0644 models/senddate.ep ||
  909. echo 'restore of models/senddate.ep failed'
  910. Wc_c="`wc -c < 'models/senddate.ep'`"
  911. test 654 -eq "$Wc_c" ||
  912.     echo 'models/senddate.ep: original size 654, current size' "$Wc_c"
  913. rm -f _shar_wnt_.tmp
  914. fi
  915. # ============= models/sf_test.ep ==============
  916. if test -f 'models/sf_test.ep' -a X"$1" != X"-c"; then
  917.     echo 'x - skipping models/sf_test.ep (File already exists)'
  918.     rm -f _shar_wnt_.tmp
  919. else
  920. > _shar_wnt_.tmp
  921. echo 'x - extracting models/sf_test.ep (Text)'
  922. sed 's/^X//' << 'SHAR_EOF' > 'models/sf_test.ep' &&
  923. X#--------------------------------------------------------------------
  924. X# sf_test.ep - test various string functions
  925. X#
  926. X#Sample execution:
  927. X#% ecu -p sf_test
  928. X#
  929. X# ecu x3.00.05.00-386u by wht@n4hgf (pid 5890)
  930. X# 
  931. X# procedure is sf_test run on Mon 08-13-1990 at 15:39:17 (19:39 UTC)
  932. X# username is "wht"
  933. X# current directory is "/u1/src/ecu/models"
  934. X# 
  935. X# %instr('abcdefabcdefghi','def') = 3
  936. X# %rinstr('abcdefabcdefghi','def') = 9
  937. X# 
  938. X# %basename('/u1/src/src/foo.c','.c') = "/u1/src/src/foo"
  939. X# %basename('foo.c','.c') = "foo"
  940. X# %basename('foo.c','.x') = "foo.c"
  941. X# 
  942. X# %dirpart('/u1/src/src/foo.c') = "/u1/src/src"
  943. X# %dirpart('foo.c') = "foo.c"
  944. X# %dirpart('/usr') = ""
  945. X# 
  946. X# %filepart('/u1/src/src/foo.c') = "foo.c"
  947. X# %filepart('foo.c') = "foo.c"
  948. X# 
  949. X# %envvar('HZ') = "100"
  950. X# %envvar('HOME') = "/u9/wht"
  951. X# %envvar('FOOBARTZHUMMER') = ""
  952. X# 
  953. X# errno 1 = "Not owner"
  954. X# 5678 seconds is "01:34:38"
  955. X# mode 105755 is "-rwsr-xr-t"
  956. X# [procedure finished]
  957. X# 
  958. X# 
  959. X# [no line attached by initial procedure]
  960. X# [press ESC to exit or SPACE for setup menu]
  961. X# 
  962. X#--------------------------------------------------------------------
  963. X
  964. X    echo ''
  965. X    echo -n 'procedure is '+%argv(0)+' run on '+%day+' '+%date
  966. X    echo ' at '+%times+' ('+%timez+' UTC)'
  967. X    echo 'username is "'+%logname+'"'
  968. X    echo 'current directory is "'+%dir+'"'
  969. X
  970. X    echo ''
  971. X    echo -n '%instr(\'abcdefabcdefghi\',\'def\') = '
  972. X    echo %itos(%instr('abcdefabcdefghi','def'))
  973. X
  974. X    echo -n '%rinstr(\'abcdefabcdefghi\',\'def\') = '
  975. X    echo %itos(%rinstr('abcdefabcdefghi','def'))
  976. X
  977. X    echo ''
  978. X    echo -n '%basename(\'/u1/src/src/foo.c\',\'.c\') = '
  979. X    echo '"'+%basename('/u1/src/src/foo.c','.c')+'"'
  980. X
  981. X    echo -n '%basename(\'foo.c\',\'.c\') = '
  982. X    echo '"'+%basename('foo.c','.c')+'"'
  983. X
  984. X    echo -n '%basename(\'foo.c\',\'.x\') = '
  985. X    echo '"'+%basename('foo.c','.x')+'"'
  986. X
  987. X    echo ''
  988. X    echo -n '%dirpart(\'/u1/src/src/foo.c\') = '
  989. X    echo '"'+%dirpart('/u1/src/src/foo.c')+'"'
  990. X
  991. X    echo -n '%dirpart(\'foo.c\') = '
  992. X    echo '"'+%dirpart('foo.c')+'"'
  993. X
  994. X    echo -n '%dirpart(\'/usr\') = '
  995. X    echo '"'+%dirpart('/usr')+'"'
  996. X
  997. X    echo ''
  998. X    echo -n '%filepart(\'/u1/src/src/foo.c\') = '
  999. X    echo '"'+%filepart('/u1/src/src/foo.c')+'"'
  1000. X
  1001. X    echo -n '%filepart(\'foo.c\') = '
  1002. X    echo '"'+%filepart('/u1/src/src/foo.c')+'"'
  1003. X
  1004. X    echo ''
  1005. X    echo '%envvar(\'HZ\') = "'+%envvar('HZ')+'"'
  1006. X    echo '%envvar(\'HOME\') = "'+%envvar('HOME')+'"'
  1007. X    echo '%envvar(\'FOOBARTZHUMMER\') = "'+%envvar('FOOBARTZHUMMER')+'"'
  1008. X
  1009. X    echo ''
  1010. X    echo 'errno 1 = "'+%errstr(1)+'"'
  1011. X    echo '5678 seconds is "'+%etime(5678)+'"'
  1012. X    echo 'mode 105755 is "'+%fmodestr(0o105755)+'"'
  1013. SHAR_EOF
  1014. chmod 0644 models/sf_test.ep ||
  1015. echo 'restore of models/sf_test.ep failed'
  1016. Wc_c="`wc -c < 'models/sf_test.ep'`"
  1017. test 2490 -eq "$Wc_c" ||
  1018.     echo 'models/sf_test.ep: original size 2490, current size' "$Wc_c"
  1019. rm -f _shar_wnt_.tmp
  1020. fi
  1021. # ============= models/su.ep ==============
  1022. if test -f 'models/su.ep' -a X"$1" != X"-c"; then
  1023.     echo 'x - skipping models/su.ep (File already exists)'
  1024.     rm -f _shar_wnt_.tmp
  1025. else
  1026. > _shar_wnt_.tmp
  1027. echo 'x - extracting models/su.ep (Text)'
  1028. sed 's/^X//' << 'SHAR_EOF' > 'models/su.ep' &&
  1029. X#  CHK=0x120D
  1030. X#+---------------------------------------------------------
  1031. X# su.ep - switch user at remote
  1032. X# wht%n4hgf@gatech.edu
  1033. X#
  1034. X# do su 'username' 'password' ['.']
  1035. X#
  1036. X# expects new user to be running csh
  1037. X#----------------------------------------------------------
  1038. X#+:EDITS:*/
  1039. X#:09-10-1992-13:59-wht@n4hgf-ECU release 3.20
  1040. X#:08-22-1992-15:39-wht@n4hgf-ECU release 3.20 BETA
  1041. X#:07-11-1989-16:55-wht-get cmd became lgets
  1042. X#:06-28-1989-19:36-wht-use named variables
  1043. X#:06-27-1989-12:43-wht-"get prompt" message was wrong
  1044. X#:06-25-1989-13:56-wht-new do command syntax
  1045. X#:06-25-1989-12:33-wht-new if/while syntax
  1046. X#:06-16-1989-18:12-wht-creation
  1047. X
  1048. X    mkvar icsave; $icsave = %colors
  1049. X
  1050. X    color gray
  1051. X    send 'su '+%argv(1)
  1052. X    lookfor -e 'word:' 70
  1053. X    ifi $i0 == 0
  1054. X    {
  1055. X        color red;echo 'su: failed to get password prompt'
  1056. X        icolor $icsave; return 1
  1057. X    }
  1058. X    send %argv(2); lookfor '\n' 50    # send password
  1059. X    echo ''
  1060. X    lgets $s0 70 5 '\n'
  1061. X    ifi %instr($s0,'Sorry') >= 0
  1062. X    {
  1063. X        color red;echo 'su: remote said "Sorry"'
  1064. X        icolor $icsave; return 1
  1065. X    }
  1066. X    nap 5                        # wait .5 sec
  1067. X    send 'set prompt="% "'        # set '% ' as prompt
  1068. X    lookfor '\n' 20                # swallow echo of set command
  1069. X    lookfor '% ' 60                # look for new prompt
  1070. X    ifi $i0 == 0
  1071. X    {
  1072. X        color lt_red
  1073. X        echo 'timeout on prompt ... system may be slow ... waiting 5 more secs'
  1074. X        color gray
  1075. X        lookfor '% ' 50                # look for new prompt
  1076. X    }
  1077. X    ifi $i0 == 0
  1078. X    {
  1079. X        color red;echo 'su: failed to "get prompt" echo'
  1080. X        icolor $icsave; return 2
  1081. X    }
  1082. X    ifs %argv(3) == '.'
  1083. X        send 'source ~wht/.cshrc'
  1084. X    else
  1085. X        send ''; lookfor '\n' 50    # kick off another prompt
  1086. X    icolor $icsave
  1087. SHAR_EOF
  1088. chmod 0644 models/su.ep ||
  1089. echo 'restore of models/su.ep failed'
  1090. Wc_c="`wc -c < 'models/su.ep'`"
  1091. test 1562 -eq "$Wc_c" ||
  1092.     echo 'models/su.ep: original size 1562, current size' "$Wc_c"
  1093. rm -f _shar_wnt_.tmp
  1094. fi
  1095. # ============= models/sysname.ep ==============
  1096. if test -f 'models/sysname.ep' -a X"$1" != X"-c"; then
  1097.     echo 'x - skipping models/sysname.ep (File already exists)'
  1098.     rm -f _shar_wnt_.tmp
  1099. else
  1100. > _shar_wnt_.tmp
  1101. echo 'x - extracting models/sysname.ep (Text)'
  1102. sed 's/^X//' << 'SHAR_EOF' > 'models/sysname.ep' &&
  1103. X#-----------------------------------------------------------
  1104. X# sysname.ep - procedure to call UNIX-like system 'sysname'
  1105. X#
  1106. X# CONFIDENTIAL - This function should be chmod 0600 because
  1107. X# it contains a password which you probably don't want to be
  1108. X# common knowledge.
  1109. X#
  1110. X# This procedure calls 'unixlogin.ep' to do the hard work.
  1111. X#-----------------------------------------------------------
  1112. X
  1113. X    mkvar $s_pwd(20)    # local variable preserves password
  1114. X    $s_pwd = 'password' # security by disappearing when the
  1115. X                        # procedure terminates
  1116. X
  1117. X#   also, by keeping the password text off the following line,
  1118. X#   the password will not be displayed if you abort (interrupt)
  1119. X#   the procedure
  1120. X
  1121. X    do 'unixlogin' %argv(0) 'username' $s_pwd 'ansi-or-whatever'
  1122. SHAR_EOF
  1123. chmod 0644 models/sysname.ep ||
  1124. echo 'restore of models/sysname.ep failed'
  1125. Wc_c="`wc -c < 'models/sysname.ep'`"
  1126. test 766 -eq "$Wc_c" ||
  1127.     echo 'models/sysname.ep: original size 766, current size' "$Wc_c"
  1128. rm -f _shar_wnt_.tmp
  1129. fi
  1130. # ============= models/sz_update.ep ==============
  1131. if test -f 'models/sz_update.ep' -a X"$1" != X"-c"; then
  1132.     echo 'x - skipping models/sz_update.ep (File already exists)'
  1133.     rm -f _shar_wnt_.tmp
  1134. else
  1135. > _shar_wnt_.tmp
  1136. echo 'x - extracting models/sz_update.ep (Text)'
  1137. sed 's/^X//' << 'SHAR_EOF' > 'models/sz_update.ep' &&
  1138. X#  CHK=0x4068
  1139. X#--------------------------------------------------------------
  1140. X# sz_update.ep - update local directory
  1141. X#
  1142. X# parameters:
  1143. X# %argv(1) = remote directory to copy to
  1144. X# %argv(2) = local directory to copy from
  1145. X# %argv(3) = file list to send
  1146. X# %argv(4) = remote username needed, if any, else null
  1147. X#            if %argv(4) not null, 'su_'+%argv(4)+".ep" must
  1148. X#            exist to su to remote
  1149. X# %argv(5)   name of superior procedure
  1150. X#
  1151. X#--------------------------------------------------------------
  1152. X#+:EDITS:*/
  1153. X#:09-10-1992-14:00-wht@n4hgf-ECU release 3.20
  1154. X#:08-22-1992-15:39-wht@n4hgf-ECU release 3.20 BETA
  1155. X#:05-10-1992-09:22-wht@n4hgf-%conn can be -1 now
  1156. X#:05-21-1991-20:14-wht@n4hgf-was reporting skipped files as failed transfer
  1157. X#:07-11-1989-16:55-wht-get cmd became lgets
  1158. X#:06-28-1989-19:36-wht-use named variables
  1159. X#:06-25-1989-13:56-wht-new do command syntax
  1160. X#:06-25-1989-12:33-wht-new if/while syntax
  1161. X#:06-22-1989-13:30-wht-creation
  1162. X
  1163. X# variable usage
  1164. X    mkvar $i_csave            # color settings at entry to procedure
  1165. X    mkvar $i_suflag            # true if su occurred
  1166. X    mkvar $i_rtnflag        # return code
  1167. X    mkvar $s_origdir(128)    # original working directory
  1168. X    mkvar $s_ruser(16)        # remote username we started with before su
  1169. X    mkvar $s_rdir(128)        # remote directory we started with
  1170. X    mkvar $s_xtitle(64)        # title for xfer
  1171. X
  1172. X    $i_csave=%colors # get colors at entry
  1173. X
  1174. X    $s0=%argv(0)+' '+%argv(5)+' '+%rname+' '+%argv(1)
  1175. X    logevent $s0
  1176. X
  1177. X    $s_xtitle = 'Connected to '+%rname
  1178. X    ifs %argv(5) != ''
  1179. X        $s_xtitle = $s_xtitle+' - procedure '+%argv(5)
  1180. X
  1181. X# check to make sure we are connected
  1182. X    ifi %conn <= 0
  1183. X    {
  1184. X        color red; echo 'not connected to anyone!'
  1185. X        goto SORRY
  1186. X    }
  1187. X    color lt_blue;  echo 'Connected to '+%rname
  1188. X
  1189. X# save local current directory and change to target
  1190. X    $s_origdir=%dir
  1191. X    color brown
  1192. X    ifs $s_origdir == %argv(2)
  1193. X        echo -n 'local directory already '
  1194. X    else 
  1195. X    {
  1196. X        cd %argv(2)
  1197. X        echo -n 'local directory set to '
  1198. X    }
  1199. X    color yellow; echo %dir
  1200. X
  1201. X# make sure remote username ok
  1202. X    ifs %argv(4) == '' goto REMOTE_CD # if any remote username
  1203. X    do 'bsd_uname'            # get $s0=username
  1204. X    ifi $i0 == 0 goto SORRY    # test failure
  1205. X    $s_ruser = $s0            # save original remote username
  1206. X    ifs $s0 != %argv(4)
  1207. X    {                        # need to su
  1208. X        color brown
  1209. X        echo -n 'remote username '
  1210. X        color yellow
  1211. X        echo -n $s0
  1212. X        color brown
  1213. X        echo ' ... su to '+%argv(4)+' now'
  1214. X        color gray
  1215. X        do 'su_'+%argv(4)    # call proc, which calls su.ep
  1216. X        lookfor '% ' 50        # su leaves prompt in buffer: swallow
  1217. X        do 'bsd_uname'        # make sure we su'd
  1218. X        ifi $i0 == 0 goto SORRY
  1219. X        ifs $s0 != %argv(4)    # failed to su?
  1220. X        {
  1221. X            color red;echo 'su to '+%argv(4)+' failed'
  1222. X            goto SORRY
  1223. X        }
  1224. X        $i_suflag = 1        #remember we su'd
  1225. X    }    # now we are proper username on remote
  1226. X
  1227. X# establish proper remote working directory
  1228. XREMOTE_CD
  1229. X    color gray
  1230. X    $s0 = 'pwd';do 'oneline'    # save old remote ...
  1231. X    $s_rdir = $s0                # ... directory in $s_rdir
  1232. X    ifs $s_rdir != %argv(1)        # if cd needed, do it
  1233. X    {
  1234. X        send 'cd '+%argv(1)        # remote cd
  1235. X        lookfor -e '\n' 50        # echo command
  1236. X        lookfor '% ' 50            # swallow prompt
  1237. X        $s0 = 'pwd'
  1238. X        do 'oneline'            # make sure we got there
  1239. X        ifs $s0 != %argv(1)        # dir change failed
  1240. X        {
  1241. X            color red;echo 'remote cd failed'
  1242. X            goto SORRY;
  1243. X        }
  1244. X    }
  1245. X    color brown;  echo -n 'remote directory '
  1246. X    color yellow; echo    %argv(1)
  1247. X
  1248. X# transfer files
  1249. X    color lt_blue
  1250. X    echo 'sz -n -f '+%argv(3)
  1251. X    icolor $i_csave                # restore colors at entry
  1252. X    sz -nfl $s_xtitle '-w 16384 '+%argv(3)
  1253. X    ifi $i0 > 127                # whoops
  1254. X    {
  1255. X        color red; echo -n '\nTRANSFER FAILED ... '
  1256. X        ifi $i0 == 0x100 echo 'interrupt'
  1257. X        ifi $i0 != 0x100 echo 'termination status '+%itos($i0,04d)
  1258. X        goto SORRY
  1259. X    }
  1260. X    else ifi $i0 > 0
  1261. X    {
  1262. X        color yellow; echo %itos($i0)+' files skipped'
  1263. X    }
  1264. X    lookfor '% ' 50                # swallow prompt
  1265. X    goto RETURN
  1266. X
  1267. XSORRY # whoops
  1268. X    color red;echo 'sz_update failed ... sorry'
  1269. X    $i_rtnflag = 1    # return error
  1270. X
  1271. XRETURN
  1272. X    echo ''
  1273. X    color brown;  echo -n 'remote user name '
  1274. X    color yellow
  1275. X    ifi $i_suflag != 0            # we su'd
  1276. X    {
  1277. X        send -n %chr(0x04)        # will force a new prompt from remote
  1278. X        echo -n $s_ruser
  1279. X        color brown;  echo ' restored (sent ^D to '+%argv(4)+' shell)'
  1280. X        lookfor '% ' 50            # swallow prompt
  1281. X    }
  1282. X    else
  1283. X        color brown;  echo 'unchanged'
  1284. X
  1285. X    ifs $s_rdir != %argv(1)        # if we did a remote cd
  1286. X    {
  1287. X        send 'cd '+$s_rdir        # restore original
  1288. X        lookfor '\n'
  1289. X        color brown;  echo -n 'remote working directory '
  1290. X        color yellow; echo -n $s_rdir
  1291. X        color brown;  echo    ' restored'
  1292. X    }
  1293. X    else
  1294. X    {
  1295. X        send ''    # spark a prompt
  1296. X        color brown;  echo -n 'remote working directory '
  1297. X        color yellow; echo -n $s_rdir
  1298. X        color brown;  echo    ' unchanged'
  1299. X    }
  1300. X
  1301. X    color brown;  echo -n 'local working directory '
  1302. X    color yellow; echo -n $s_origdir
  1303. X    color brown
  1304. X    ifs $s_origdir != %dir    # restore original directory
  1305. X    {
  1306. X        cd $s_origdir
  1307. X        echo    ' restored'
  1308. X    }
  1309. X    else
  1310. X        echo ' unchanged'
  1311. X
  1312. X    icolor $i_csave        # restore colors at entry
  1313. X    echo ''
  1314. X    return $i_rtnflag    # return selected error code (bomb procedure if error)
  1315. SHAR_EOF
  1316. chmod 0644 models/sz_update.ep ||
  1317. echo 'restore of models/sz_update.ep failed'
  1318. Wc_c="`wc -c < 'models/sz_update.ep'`"
  1319. test 4853 -eq "$Wc_c" ||
  1320.     echo 'models/sz_update.ep: original size 4853, current size' "$Wc_c"
  1321. rm -f _shar_wnt_.tmp
  1322. fi
  1323. # ============= models/szall.ep ==============
  1324. if test -f 'models/szall.ep' -a X"$1" != X"-c"; then
  1325.     echo 'x - skipping models/szall.ep (File already exists)'
  1326.     rm -f _shar_wnt_.tmp
  1327. else
  1328. > _shar_wnt_.tmp
  1329. echo 'x - extracting models/szall.ep (Text)'
  1330. sed 's/^X//' << 'SHAR_EOF' > 'models/szall.ep' &&
  1331. X#  CHK=0xE67C
  1332. X
  1333. X    do 'put_mpad1'
  1334. X    lookfor '% ' 40
  1335. X    do 'put_kdir12'
  1336. X    lookfor '% ' 40
  1337. X    do 'put_sim'
  1338. X    lookfor '% ' 40
  1339. X    do 'put_ecu'
  1340. SHAR_EOF
  1341. chmod 0644 models/szall.ep ||
  1342. echo 'restore of models/szall.ep failed'
  1343. Wc_c="`wc -c < 'models/szall.ep'`"
  1344. test 127 -eq "$Wc_c" ||
  1345.     echo 'models/szall.ep: original size 127, current size' "$Wc_c"
  1346. rm -f _shar_wnt_.tmp
  1347. fi
  1348. # ============= models/tty1a.mi ==============
  1349. if test -f 'models/tty1a.mi' -a X"$1" != X"-c"; then
  1350.     echo 'x - skipping models/tty1a.mi (File already exists)'
  1351.     rm -f _shar_wnt_.tmp
  1352. else
  1353. > _shar_wnt_.tmp
  1354. echo 'x - extracting models/tty1a.mi (Text)'
  1355. sed 's/^X//' << 'SHAR_EOF' > 'models/tty1a.mi' &&
  1356. X#  CHK=0x10FF
  1357. X#+-----------------------------------------------------------------
  1358. X#  tty1a.mi - Microcom AX/9624c
  1359. X#  Copyright 1989 Warren H. Tucker, III. All Rights Reserved
  1360. X#------------------------------------------------------------------
  1361. X#+:EDITS:*/
  1362. X#:09-10-1992-14:00-wht@n4hgf-ECU release 3.20
  1363. X#:08-22-1992-15:39-wht@n4hgf-ECU release 3.20 BETA
  1364. X#:11-03-1989-16:21-wht------ unet2 -----
  1365. X#:07-02-1989-20:51-wht-beef up init
  1366. X#:06-17-1989-22:02-wht-creation
  1367. X
  1368. Xinit_>2400:atq0e1v1x4s0=0s2=43s7=30\q1\x1\n3
  1369. Xinit_default:atq0e1v1x4s0=0s2=43s7=30\q0\x0\n0
  1370. Xdial_default:atdt
  1371. Xautoanswer:atq1s0=1
  1372. SHAR_EOF
  1373. chmod 0644 models/tty1a.mi ||
  1374. echo 'restore of models/tty1a.mi failed'
  1375. Wc_c="`wc -c < 'models/tty1a.mi'`"
  1376. test 592 -eq "$Wc_c" ||
  1377.     echo 'models/tty1a.mi: original size 592, current size' "$Wc_c"
  1378. rm -f _shar_wnt_.tmp
  1379. fi
  1380. # ============= models/tty2d.mi ==============
  1381. if test -f 'models/tty2d.mi' -a X"$1" != X"-c"; then
  1382.     echo 'x - skipping models/tty2d.mi (File already exists)'
  1383.     rm -f _shar_wnt_.tmp
  1384. else
  1385. > _shar_wnt_.tmp
  1386. echo 'x - extracting models/tty2d.mi (Text)'
  1387. sed 's/^X//' << 'SHAR_EOF' > 'models/tty2d.mi' &&
  1388. X#  CHK=0xFA63
  1389. X#+-----------------------------------------------------------------
  1390. X#  tty2d.mi - USR Courier 2400
  1391. X#  Copyright 1989 Warren H. Tucker, III. All Rights Reserved
  1392. X#------------------------------------------------------------------
  1393. X#+:EDITS:*/
  1394. X#:09-10-1992-14:00-wht@n4hgf-ECU release 3.20
  1395. X#:08-22-1992-15:39-wht@n4hgf-ECU release 3.20 BETA
  1396. X#:11-03-1989-16:21-wht------ unet2 -----
  1397. X#:07-02-1989-20:51-wht-beef up init
  1398. X#:06-17-1989-22:02-wht-creation
  1399. X
  1400. Xinit_default:atq0e1v1x4s0=0s2=43s7=30s11=47
  1401. Xdial_default:atdt
  1402. Xautoanswer:atq1s0=1
  1403. SHAR_EOF
  1404. chmod 0644 models/tty2d.mi ||
  1405. echo 'restore of models/tty2d.mi failed'
  1406. Wc_c="`wc -c < 'models/tty2d.mi'`"
  1407. test 543 -eq "$Wc_c" ||
  1408.     echo 'models/tty2d.mi: original size 543, current size' "$Wc_c"
  1409. rm -f _shar_wnt_.tmp
  1410. fi
  1411. # ============= models/unixlogin.ep ==============
  1412. if test -f 'models/unixlogin.ep' -a X"$1" != X"-c"; then
  1413.     echo 'x - skipping models/unixlogin.ep (File already exists)'
  1414.     rm -f _shar_wnt_.tmp
  1415. else
  1416. > _shar_wnt_.tmp
  1417. echo 'x - extracting models/unixlogin.ep (Text)'
  1418. sed 's/^X//' << 'SHAR_EOF' > 'models/unixlogin.ep' &&
  1419. X#  CHK=0xE6DC
  1420. X#+-----------------------------------------------------------------
  1421. X#  unixlogin.ep - ecu UNIX login procedure
  1422. X#  Copyright 1989 Warren H. Tucker, III. All Rights Reserved
  1423. X#
  1424. X# %argv(1) = remote name
  1425. X# %argv(2) = user name
  1426. X# %argv(3) = password
  1427. X# %argv(4) = term type
  1428. X# %argv(5) = optional number of breaks needed
  1429. X#
  1430. X# To use to call system 'xyz' in the dialing directory, make a
  1431. X# procedure called xyz.ep doing something like:
  1432. X#
  1433. X#     $s0='password'
  1434. X#     do 'unixlogin' 'xyz' 'username' $s0 ''
  1435. X#
  1436. X# This procedure sets $i0 to 0 if connect succeeds, else 1
  1437. X# as required of an ecu dialing procedure
  1438. X#+-----------------------------------------------------------------
  1439. X#+:EDITS:*/
  1440. X#:09-10-1992-14:00-wht@n4hgf-ECU release 3.20
  1441. X#:08-22-1992-15:39-wht@n4hgf-ECU release 3.20 BETA
  1442. X#:05-10-1992-09:22-wht@n4hgf-%conn can be -1 now
  1443. X#:12-02-1991-22:07-wht@n4hgf-better doc
  1444. X#:07-12-1990-14:05-wht@n4hgf-use expresp
  1445. X#:07-11-1989-16:55-wht-get cmd became lgets
  1446. X#:07-09-1989-23:50-wht-add breaks
  1447. X#:06-28-1989-19:36-wht-use named variables
  1448. X#:06-25-1989-13:56-wht-new do command syntax
  1449. X#:06-25-1989-12:33-wht-new if/while syntax
  1450. X#:06-23-1989-19:46-wht-improved hayes dialer reduces need to report dial fail
  1451. X#:06-19-1989-22:50-wht-use while and if statements
  1452. X#:06-14-1989-15:58-wht-add login capability when already connected
  1453. X#:06-11-1989-23:37-wht-creation
  1454. X
  1455. X    mkvar $i_csave,$i_ltimeout,$i_retries
  1456. X    mkvar $s_2048(2048) # handle bigger login big motd
  1457. X
  1458. X    $i_csave = %colors
  1459. X    $i_ltimeout = 30 # 3 seconds wait for first login prompt
  1460. X    $i_retries=3
  1461. X
  1462. X    color red;    echo -n '\nauto-logon to '
  1463. X    color yellow; echo -n %argv(1)
  1464. X    color red;    echo    ' on '+%date+' at '+%time+'\n'
  1465. X
  1466. X    ifi %argc < 5    # not enough args
  1467. X    {
  1468. X        color red
  1469. X        echo %argv(0)+' needs 5 arguments (got '+%itos(%argc)+')'
  1470. X        goto SORRY
  1471. X    }
  1472. X    mkvar $i_breaks
  1473. X    ifi %argc > 5 $i_breaks = %stoi(%argv(5))
  1474. X
  1475. X    ifi %conn <= 0 goto DIAL
  1476. X
  1477. X    ifs %rname == %argv(1)
  1478. X    {
  1479. X        color brown;  echo -n 'already connected to '
  1480. X        color yellow; echo    %rname
  1481. X        send ''
  1482. X        goto SEND_BREAKS
  1483. X    }
  1484. X
  1485. XHANGUP
  1486. X    ifi %conn <> 0 echo 'hanging up on '+%rname; hangup
  1487. X
  1488. XDIAL
  1489. X    color green
  1490. X    dial %argv(1); set $i1=$i0 #save dial result in $i1
  1491. X    ifi $i1 == 2 color red; echo 'interrupted'; goto SORRY
  1492. X    ifi $i1 != 0 goto SORRY
  1493. X
  1494. X# send breaks?
  1495. XSEND_BREAKS
  1496. X    ifi $i_breaks > 0
  1497. X    {
  1498. X        color blue; echo 'sending up to '+%itos($i_breaks)+' break(s) to remote'
  1499. X        nap 30
  1500. X        whilei $i_breaks > 0
  1501. X        {
  1502. X            color magenta; echo 'BREAK'
  1503. X            lbreak
  1504. X            expresp '~t[8]gin:'
  1505. X            ifi $i0 == 0
  1506. X                break;
  1507. X            nap 30
  1508. X            $i_breaks = $i_breaks - 1
  1509. X        }
  1510. X        flush
  1511. X    }
  1512. X
  1513. X# get login prompt from remote UNIX system: "login: "
  1514. XGET_LOGIN_PROMPT
  1515. X    $i_retries = 3
  1516. XGET_LOGIN_PROMPT_RETRY
  1517. X    ifi $i_retries <= 0
  1518. X    {
  1519. X        color red; echo '\ncannot seem to get in with these credentials'
  1520. X        goto SORRY
  1521. X    }
  1522. X    color blue; echo 'looking for login prompt'
  1523. X    color white
  1524. X    expresp -v '~t[8]gin:--~t[5]gin:--gin:--gin:'
  1525. X    ifi $i0 > 0
  1526. X    {
  1527. X        color red; echo '\nfailed to get login prompt'
  1528. X        goto SORRY
  1529. X    }
  1530. X    icolor $i_csave
  1531. X
  1532. X# give username to remote
  1533. XSEND_USERNAME
  1534. X    nap 3 # system not always ready when it says
  1535. X    send %argv(2)
  1536. X
  1537. X# get password prompt: "Password:" 
  1538. XGET_PASSWORD_PROMPT
  1539. X    color white
  1540. X    lookfor -e 'word:' 50
  1541. X    ifi $i0 != 1        # did not find 'Password: '
  1542. X    {
  1543. X        send ''
  1544. X        gotob GET_LOGIN_PROMPT_RETRY
  1545. X    }
  1546. X
  1547. X# send the password
  1548. X    nap 3 # system not always ready when it says
  1549. X    send %argv(3)
  1550. X    icolor $i_csave
  1551. X
  1552. X# get term type prompt "TERM = (ansi) "
  1553. X# also handle incorect login retry and 'Sorry' hangup indication
  1554. XGET_TERMTYPE_PROMPT
  1555. X    ifs %argv(4) == ''    # if no term type, don't wait for prompt
  1556. X    {
  1557. X        $i0 = 0            # return good status
  1558. X        goto SETCOLOR_AND_RETURN_STATUS
  1559. X    }
  1560. X    lgets -re $s_2048 100 50 ') '
  1561. X    ifi %instr($s_2048,'Sorry') > 0 hangup;goto SORRY
  1562. X    ifi %instr($s_2048,'incorrect') > 0        # exhausted retry?
  1563. X    {
  1564. X        set $i_retries=$i_retries-1
  1565. X        ifi $i_retries > 0 goto SEND_USERNAME
  1566. X        goto SORRY
  1567. X    }
  1568. X# send terminal type
  1569. X    ifi %instr($s_2048,'TERM') < 0
  1570. X        lookfor -e ') ' 30
  1571. X    send %argv(4)
  1572. X    lookfor -e '\n' 50
  1573. X    set $i0=0
  1574. X    goto SETCOLOR_AND_RETURN_STATUS
  1575. X
  1576. X# procedure failed
  1577. XSORRY
  1578. X    set $i0=1
  1579. X
  1580. XSETCOLOR_AND_RETURN_STATUS
  1581. X    icolor $i_csave
  1582. X    ifi $i0 == 0 ifi %conn !=0 prompt %rname+' >'
  1583. X    return $i0
  1584. X
  1585. X# vi:set tabstop=4 shiftwidth=4:
  1586. SHAR_EOF
  1587. chmod 0644 models/unixlogin.ep ||
  1588. echo 'restore of models/unixlogin.ep failed'
  1589. Wc_c="`wc -c < 'models/unixlogin.ep'`"
  1590. test 4161 -eq "$Wc_c" ||
  1591.     echo 'models/unixlogin.ep: original size 4161, current size' "$Wc_c"
  1592. rm -f _shar_wnt_.tmp
  1593. fi
  1594. # ============= zgcc ==============
  1595. if test -f 'zgcc' -a X"$1" != X"-c"; then
  1596.     echo 'x - skipping zgcc (File already exists)'
  1597.     rm -f _shar_wnt_.tmp
  1598. else
  1599. > _shar_wnt_.tmp
  1600. echo 'x - extracting zgcc (Text)'
  1601. sed 's/^X//' << 'SHAR_EOF' > 'zgcc' &&
  1602. X#!/bin/csh
  1603. X#+-----------------------------------------------------------------------
  1604. X# zgcc
  1605. X# arg[1]  - filename containing list of files
  1606. X# arg[2]  - output filename
  1607. X# arg[3]  - path to afterlint and mkoldproto
  1608. X# arg[4-] - CFLAGS
  1609. X#------------------------------------------------------------------------
  1610. X#+:EDITS:*/
  1611. X#:09-10-1992-14:00-wht@n4hgf-ECU release 3.20
  1612. X#:08-22-1992-15:39-wht@n4hgf-ECU release 3.20 BETA
  1613. X#:01-21-1992-05:53-wht@n4hgf-add path as arg3
  1614. X#:08-11-1991-23:47-wht@n4hgf-thanks for the -p1 suggestion to sef@kithrup.com
  1615. X#zgcc -- build prototyping "PROTOTYPES"
  1616. Xecho C sources in $1';' result file $2
  1617. Xunset noclobber
  1618. Xset p=$argv[3]
  1619. Xrm -f zg.t
  1620. Xif (-e /unix)
  1621. X    echo 'building old-style prototypes for XENIX compiler compatibility'
  1622. X    echo 'unnamed struct/union as parameter warning probably about FILE :-('
  1623. Xendif
  1624. Xforeach i(`cat $1`)
  1625. Xif (-e /unix)
  1626. X    cc -DBUILDING_PROTOTYPES -p1 /lib/p1 -Zg $argv[4-] $i | \
  1627. X        $p/mkoldproto > zg1.t
  1628. Xelse
  1629. X    cc -DBUILDING_PROTOTYPES -Zg $argv[4-] $i > zg1.t
  1630. Xendif
  1631. Xsort zg1.t > zg2.t
  1632. Xecho '/*' $i '*/' >> zg.t
  1633. Xcat zg2.t >> zg.t
  1634. Xend
  1635. X$p/afterlint zg.t $2
  1636. Xrm -f zg.t zg?.t
  1637. Xecho Output in $2
  1638. SHAR_EOF
  1639. chmod 0755 zgcc ||
  1640. echo 'restore of zgcc failed'
  1641. Wc_c="`wc -c < 'zgcc'`"
  1642. test 1125 -eq "$Wc_c" ||
  1643.     echo 'zgcc: original size 1125, current size' "$Wc_c"
  1644. rm -f _shar_wnt_.tmp
  1645. fi
  1646. # ============= mkoldproto.l ==============
  1647. if test -f 'mkoldproto.l' -a X"$1" != X"-c"; then
  1648.     echo 'x - skipping mkoldproto.l (File already exists)'
  1649.     rm -f _shar_wnt_.tmp
  1650. else
  1651. > _shar_wnt_.tmp
  1652. echo 'x - extracting mkoldproto.l (Text)'
  1653. sed 's/^X//' << 'SHAR_EOF' > 'mkoldproto.l' &&
  1654. X/* CHK=0x5793 */
  1655. X%{
  1656. Xchar *rev = "1.00";
  1657. X/*+-------------------------------------------------------------------------
  1658. X    mkoldproto.c.{l,c} - make "old" style prototypes from "new" kind
  1659. X
  1660. Xcc -Zg source.c | mkproto > lint_args.h
  1661. X
  1662. Xtakes prototypes of the style
  1663. Xvoid change_report(char *original);
  1664. Xand emits
  1665. Xvoid change_report(char *);
  1666. XThe UNIX V compiler makes the new kind, accepts the old and new kind,
  1667. Xbut there are a lot of compilers which don't like the new kind.
  1668. X
  1669. XWarning, this program will make mush out of "old" style prototypes
  1670. Xfed to it.
  1671. X--------------------------------------------------------------------------*/
  1672. X/*+:EDITS:*/
  1673. X/*:09-10-1992-13:59-wht@n4hgf-ECU release 3.20 */
  1674. X/*:08-22-1992-15:39-wht@n4hgf-ECU release 3.20 BETA */
  1675. X/*:11-27-1989-18:31-wht-creation */
  1676. X
  1677. Xint verbose = 0;
  1678. X
  1679. X/*+-------------------------------------------------------------------------
  1680. X    change_report(original)
  1681. X--------------------------------------------------------------------------*/
  1682. Xvoid
  1683. Xchange_report(original)
  1684. Xchar *original;
  1685. X{
  1686. X    fputs("fixing: ",stderr);
  1687. X    while(*original)
  1688. X    {
  1689. X        if((*original >= ' ') && (*original <= '~'))
  1690. X            fputc(*original,stderr);
  1691. X        else
  1692. X            fprintf(stderr,"<%02x>",*original);
  1693. X        original++;
  1694. X    }
  1695. X    fputs("\n",stderr);
  1696. X}    /* end of change_report */
  1697. X
  1698. X
  1699. X/*+-------------------------------------------------------------------------
  1700. X    main(argc,argv,envp)
  1701. X--------------------------------------------------------------------------*/
  1702. Xmain(argc,argv,envp)
  1703. Xint argc;
  1704. Xchar **argv;
  1705. Xchar **envp;
  1706. X{
  1707. Xregister int itmp;
  1708. Xregister int iargv;
  1709. Xint fileiargv = 0;
  1710. X
  1711. X    if(argc > 1)
  1712. X    {
  1713. X        for(iargv = 1; iargv < argc; iargv++)
  1714. X        {
  1715. X            if(argv[iargv][0] == '-')
  1716. X            {
  1717. X                switch(itmp = (argv[iargv][1]))
  1718. X                {
  1719. X                    case 'v':
  1720. X                        verbose = 1;
  1721. X                        break;
  1722. X                    default:
  1723. X                        break;
  1724. X                }
  1725. X            }
  1726. X            else
  1727. X            {
  1728. X                if(yyin != stdin)
  1729. X                {
  1730. X                    fprintf(stderr,"only 1 filename, please\n");
  1731. X                    exit(1);
  1732. X                }
  1733. X                if( (yyin = fopen(argv[iargv],"r")) == NULL)
  1734. X                {
  1735. X                    perror(argv[iargv]);
  1736. X                    exit(1);
  1737. X                }
  1738. X                fileiargv = iargv;
  1739. X            }
  1740. X        }
  1741. X    }
  1742. X
  1743. X    if(verbose && fileiargv)
  1744. X        fprintf(stderr,"%s:\n",argv[fileiargv]);
  1745. X
  1746. X    yylex();
  1747. X
  1748. X    exit(0);
  1749. X}    /* end of main */
  1750. X
  1751. X/* vi: set tabstop=4 shiftwidth=4: */
  1752. X%}
  1753. XW            [ \t]
  1754. XSTRING        \"([^"\n]|\\\")*\"
  1755. XOPCHARS        ["'+-*/=|!&%^?><:\]]
  1756. XIDENT        [a-zA-Z0-9_]+
  1757. XU            "unsigned"
  1758. XI            "int"
  1759. XL            "long"
  1760. XS            "short"
  1761. XC            "char"
  1762. XR            "register"
  1763. XST            "static"
  1764. XI8            "INT8"
  1765. XI16            "INT16"
  1766. XI32            "INT32"
  1767. XUN_ST        ("union "|"struct "){IDENT}
  1768. XDECLTAB1    ({I}|{C}|{S}|{L}|{U}|{R}|{ST}|{I8}|{I16}|{I32}|{UN_ST})[\t]{IDENT}
  1769. XDECLTAB2    ({I}|{C}|{S}|{L}|{U}|{R}|{ST}|{I8}|{I16}|{I32}|{UN_ST})[\t ][\t ]+{IDENT}
  1770. X%START    COMMENT PREPROC
  1771. X%%
  1772. X<PREPROC>.*\n                            {ECHO;
  1773. X                                         BEGIN 0;
  1774. X                                        }
  1775. X^"#"                                    {
  1776. X                                        ECHO;
  1777. X                                        BEGIN PREPROC;
  1778. X                                        }
  1779. X<COMMENT>([^*\n]|"*"+[^*/\n])*            ECHO;
  1780. X<COMMENT>([^*\n]|"*"+[^*/\n])*"*"*"*/"    {ECHO;
  1781. X                                         BEGIN 0;
  1782. X                                        }
  1783. X<COMMENT>.|\n                            ECHO;
  1784. X"/*"                {
  1785. X                        ECHO;
  1786. X                        BEGIN COMMENT;
  1787. X                    }
  1788. X"extern  "            {
  1789. X                        ;
  1790. X                    }
  1791. X"* "                {
  1792. X                        fprintf(yyout,"*");
  1793. X                    }
  1794. X{IDENT}","            {
  1795. X                    register char *cptr = yytext + yyleng - 1;
  1796. X                        if(verbose)
  1797. X                            change_report(yytext);
  1798. X                        while((*cptr != '\t') && (*cptr != ' ') && (*cptr != '*'))
  1799. X                            *cptr-- = 0;
  1800. X                        fprintf(yyout,",",yytext);
  1801. X                    }
  1802. X{IDENT}")"            {
  1803. X                    register char *cptr = yytext + yyleng - 1;
  1804. X                        if(verbose)
  1805. X                            change_report(yytext);
  1806. X                        while((*cptr != '\t') && (*cptr != ' ') && (*cptr != '*'))
  1807. X                            *cptr-- = 0;
  1808. X                        fprintf(yyout,")",yytext);
  1809. X                    }
  1810. X{STRING}            ECHO;
  1811. X"'"."'"                ECHO;
  1812. X.|\n                ECHO;
  1813. X
  1814. SHAR_EOF
  1815. chmod 0644 mkoldproto.l ||
  1816. echo 'restore of mkoldproto.l failed'
  1817. Wc_c="`wc -c < 'mkoldproto.l'`"
  1818. test 3523 -eq "$Wc_c" ||
  1819.     echo 'mkoldproto.l: original size 3523, current size' "$Wc_c"
  1820. rm -f _shar_wnt_.tmp
  1821. fi
  1822. rm -f _shar_seq_.tmp
  1823. echo You have unpacked the last part
  1824. exit 0
  1825.  
  1826. exit 0 # Just in case...
  1827.