home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / misc / volume12 / ecu2.80 / part15 < prev    next >
Encoding:
Text File  |  1990-05-11  |  43.1 KB  |  1,360 lines

  1. Newsgroups: comp.sources.misc
  2. subject: v12i068: ECU 2.80 part 15/29
  3. from: wht%n4hgf@gatech.edu (Warren Tucker)
  4. Sender: allbery@uunet.UU.NET (Brandon S. Allbery - comp.sources.misc)
  5.  
  6. Posting-number: Volume 12, Issue 68
  7. Submitted-by: wht%n4hgf@gatech.edu (Warren Tucker)
  8. Archive-name: ecu2.80/part15
  9.  
  10. ---- Cut Here and unpack ----
  11. #!/bin/sh
  12. # This is part 15 of ecu280
  13. if touch 2>&1 | fgrep '[-amc]' > /dev/null
  14.  then TOUCH=touch
  15.  else TOUCH=true
  16. fi
  17. # ============= dialer.h ==============
  18. echo "x - extracting dialer.h (Text)"
  19. sed 's/^X//' << 'SHAR_EOF' > dialer.h &&
  20. X/* CHK=0xB0D5 */
  21. X/*+-------------------------------------------------------------------------
  22. X    dialer.h - HDB UUCP dialer program return code error codes
  23. X    wht%n4hgf@gatech.edu
  24. X--------------------------------------------------------------------------*/
  25. X/*+:EDITS:*/
  26. X/*:05-07-1990-21:24-wht@n4hgf---- 2.80 --- */
  27. X/*:03-25-1990-14:11-wht@n4hgf------ x2.70 ------- */
  28. X/*:07-03-1989-22:57-wht------ x2.00 ----- */
  29. X/*:07-01-1989-21:56-wht-creation */
  30. X
  31. X#define    RC_FAIL        0x80    /* 1 = failed to connect */
  32. X#define    RCE_NULL    0        /* general purpose or unknown error code */
  33. X#define    RCE_INUSE    1        /* line in use */
  34. X#define    RCE_SIG        2        /* signal aborted dialer */
  35. X#define    RCE_ARGS    3        /* invalid arguments */
  36. X#define    RCE_PHNO    4        /* invalid phone number */
  37. X#define    RCE_SPEED    5        /* invalid baud rate -or- bad connect baud */
  38. X#define    RCE_OPEN    6        /* can't open line */
  39. X#define    RCE_IOCTL    7        /* ioctl error */
  40. X#define    RCE_TIMOUT    8        /* timeout */
  41. X#define    RCE_NOTONE    9        /* no dial tone */
  42. X#define    RCE_BUSY    13        /* phone is busy */
  43. X#define    RCE_NOCARR    14        /* no carrier */
  44. X#define    RCE_ANSWER    15        /* no answer */
  45. X
  46. X/* code writing aid */
  47. X#ifdef NEVER
  48. X        case RCE_NULL:        /* general purpose or unknown error code */
  49. X        case RCE_INUSE:        /* line in use */
  50. X        case RCE_SIG:        /* signal aborted dialer */
  51. X        case RCE_ARGS:        /* invalid arguments */
  52. X        case RCE_PHNO:        /* invalid phone number */
  53. X        case RCE_SPEED:        /* invalid baud rate -or- bad connect baud */
  54. X        case RCE_OPEN:        /* can't open line */
  55. X        case RCE_IOCTL:        /* ioctl error */
  56. X        case RCE_TIMOUT:    /* timeout */
  57. X        case RCE_NOTONE:    /* no dial tone */
  58. X        case RCE_BUSY:        /* phone is busy */
  59. X        case RCE_NOCARR:    /* no carrier */
  60. X        case RCE_ANSWER:    /* no answer */
  61. X#endif
  62. X
  63. X/* vi: set tabstop=4 shiftwidth=4: */
  64. X/* end of dialer.h */
  65. SHAR_EOF
  66. $TOUCH -am 0507233390 dialer.h &&
  67. chmod 0644 dialer.h ||
  68. echo "restore of dialer.h failed"
  69. set `wc -c dialer.h`;Wc_c=$1
  70. if test "$Wc_c" != "1742"; then
  71.     echo original size 1742, current size $Wc_c
  72. fi
  73. # ============= dlent.h ==============
  74. echo "x - extracting dlent.h (Text)"
  75. sed 's/^X//' << 'SHAR_EOF' > dlent.h &&
  76. X/* CHK=0xF9A0 */
  77. X/*+-------------------------------------------------------------------------
  78. X    dlent.h - HDB UUCP Dialers file entry (a la pwent.h)
  79. X    wht%n4hgf@gatech.edu
  80. X--------------------------------------------------------------------------*/
  81. X/*+:EDITS:*/
  82. X/*:05-07-1990-21:24-wht@n4hgf---- 2.80 --- */
  83. X/*:04-02-1990-02:17-wht@n4hgf-Dialers support appears to work */
  84. X/*:04-01-1990-21:01-wht@n4hgf-creation */
  85. X
  86. Xstruct dlent
  87. X{
  88. X    char *name;        /* Dialer name */
  89. X    char *tlate;    /* translate string */
  90. X    char *script;    /* expect-respond script */
  91. X};
  92. X
  93. Xstruct dlent *getdlent();
  94. Xvoid enddlent();
  95. X
  96. X/* vi: set tabstop=4 shiftwidth=4: */
  97. X/* end of dlent.h */
  98. SHAR_EOF
  99. $TOUCH -am 0507233390 dlent.h &&
  100. chmod 0644 dlent.h ||
  101. echo "restore of dlent.h failed"
  102. set `wc -c dlent.h`;Wc_c=$1
  103. if test "$Wc_c" != "648"; then
  104.     echo original size 648, current size $Wc_c
  105. fi
  106. # ============= dvent.h ==============
  107. echo "x - extracting dvent.h (Text)"
  108. sed 's/^X//' << 'SHAR_EOF' > dvent.h &&
  109. X/* CHK=0xEFED */
  110. X/*+-------------------------------------------------------------------------
  111. X    dvent.h - HDB UUCP Devices file entry (a la pwent.h)
  112. X    wht%n4hgf@gatech.edu
  113. X--------------------------------------------------------------------------*/
  114. X/*+:EDITS:*/
  115. X/*:05-07-1990-21:24-wht@n4hgf---- 2.80 --- */
  116. X/*:03-25-1990-14:11-wht@n4hgf------ x2.70 ------- */
  117. X/*:07-03-1989-22:57-wht------ x2.00 ----- */
  118. X/*:07-01-1989-14:50-wht-creation */
  119. X
  120. Xstruct dvent
  121. X{
  122. X    char *type;        /* ACU or Direct */
  123. X    char *line;        /* tty  name "ttyxx"-style */
  124. X    char *dialer;    /* "801" dialer line */
  125. X    uint low_baud;    /* lowest baud rate */
  126. X    uint high_baud;    /* highest baud rate */
  127. X    char *dialprog;    /* dialer program */
  128. X};
  129. X
  130. Xstruct dvent *getdvent();
  131. Xstruct dvent *getdvbaud();
  132. Xstruct dvent *getdvline();
  133. Xvoid enddvent();
  134. X
  135. X/* vi: set tabstop=4 shiftwidth=4: */
  136. X/* end of dvent.h */
  137. SHAR_EOF
  138. $TOUCH -am 0507233390 dvent.h &&
  139. chmod 0644 dvent.h ||
  140. echo "restore of dvent.h failed"
  141. set `wc -c dvent.h`;Wc_c=$1
  142. if test "$Wc_c" != "852"; then
  143.     echo original size 852, current size $Wc_c
  144. fi
  145. # ============= ecu.h ==============
  146. echo "x - extracting ecu.h (Text)"
  147. sed 's/^X//' << 'SHAR_EOF' > ecu.h &&
  148. X/* CHK=0xE5D6 */
  149. X/*+-----------------------------------------------------------------------
  150. X    ecu.h -- TuckerWare Extended Calling Unit
  151. X    wht%n4hgf@gatech.edu
  152. X------------------------------------------------------------------------*/
  153. X/*+:EDITS:*/
  154. X/*:05-07-1990-21:24-wht@n4hgf---- 2.80 --- */
  155. X/*:03-25-1990-14:11-wht@n4hgf------ x2.70 ------- */
  156. X/*:03-16-1990-04:28-wht@n4hgf-add sys/timeb.h */
  157. X/*:03-12-1990-04:35-wht@n4hgf-get rid of obsolete LINEVARS */
  158. X/*:01-03-1990-16:19-wht-indulge deviant "progressive" __STDC__ m/c/realloc */
  159. X/*:11-23-1989-03:11-wht-conditional compile for M_XENIX or M_UNIX */
  160. X/*:10-14-1989-21:08-wht-add setcolor variables */
  161. X/*:07-03-1989-22:57-wht------ x2.00 ----- */
  162. X/*:06-24-1989-16:53-wht-flush edits --- ecu 1.95 */
  163. X
  164. X#if defined(__STDC__)    /* sigh ... malloc and such types */
  165. X#define VTYPE void
  166. X#else
  167. X#define VTYPE char
  168. X#endif
  169. X
  170. X#if defined(M_UNIX)
  171. X#undef M_XENIX        /* we don't want this defined in UNIX world */
  172. X#undef NO_SELECT    /* UNIX select(S) works */
  173. X#endif
  174. X
  175. X#if defined(M_I286) && !defined(NO_SELECT)
  176. X#define NO_SELECT    /* the last 286 XENIX I saw (2.2.1) had no select */
  177. X#endif
  178. X
  179. X#if !defined(STDIO_H_INCLUDED)
  180. X#include <stdio.h>
  181. X#endif
  182. X#include <signal.h>
  183. X#include <ctype.h>
  184. X#include <sys/types.h>
  185. X#include <sys/errno.h>
  186. X#include <sys/timeb.h>
  187. X
  188. X#if defined(M_XENIX) || defined(M_UNIX)
  189. X#include <memory.h>
  190. X#include <sys/stat.h>
  191. X#include <string.h>
  192. X#include <fcntl.h>
  193. X#if !defined(OMIT_TERMIO_REFERENCES)
  194. X#include <sys/ioctl.h>
  195. X#include <termio.h>
  196. X#endif
  197. X#endif
  198. X
  199. X#if defined(pyr)
  200. X#include <sys/stat.h>
  201. X#include <sys/file.h>
  202. X#if !defined(OMIT_TERMIO_REFERENCES)
  203. X#include <sys/termio.h>
  204. X#endif
  205. X#include <strings.h>
  206. X#define strchr index
  207. X#define strrchr rindex
  208. X#define memcpy(to,from,length) bcopy(from,to,length)
  209. X#endif
  210. X
  211. X#include "ecuhangup.h"
  212. X#include "ecushm.h"
  213. X
  214. X/* already in ecushm.h */
  215. X/* #if !defined(ushort) */
  216. X/* #define ushort unsigned short */
  217. X/* #endif */
  218. X/* #if !defined(uchar) */
  219. X/* #define uchar unsigned char */
  220. X/* #endif */
  221. X/* #if !defined(uint) */
  222. X/* #define uint unsigned int */
  223. X/* #endif */
  224. X/* #if !defined(ulong) */
  225. X/* #define ulong unsigned long */
  226. X/* #endif */
  227. X
  228. X#define MALLOC_3X
  229. X#if defined(MALLOC_3X)
  230. X#include <malloc.h>
  231. X#endif
  232. X
  233. X/* for better source line utilization, frequent use of 'fprintf' and 'stderr'
  234. X   warrants the following */
  235. X#define pf    printf
  236. X#define    ff    fprintf
  237. X#define se    stderr
  238. X#define so    stdout
  239. X
  240. X#define DEFAULT_BAUD_RATE    2400
  241. X#define TTYIN    0
  242. X#define TTYOUT  1                /* ditto tty output */
  243. X#define TTYERR  2                /* ditty tty output error channel */
  244. X
  245. X/* xbell codes */
  246. X#if defined(M_XENIX) || defined(M_UNIX)
  247. X#define  XBELL_DONE         1        /* octaves or morse 'd' */
  248. X#define  XBELL_ATTENTION    2        /* morse .-.-.- ATTENTION */
  249. X#define  XBELL_C            3        /* morse -.-. C */
  250. X#define  XBELL_3T            4        /* --- really 'o' */
  251. X#endif
  252. X
  253. X/* lopen() and related routines error codes */
  254. X#define LOPEN_INVALID            -1        /* for invalid tty name */
  255. X#define LOPEN_UNKPID            -2        /* unknown pid using line */
  256. X#define LOPEN_LCKERR            -3        /* lock file open error */
  257. X#define LOPEN_NODEV                -4        /* device does not exist */
  258. X#define LOPEN_OPNFAIL            -5        /* could not open line */
  259. X#define LOPEN_ALREADY            -6        /* line already open */
  260. X#define LOPEN_ENABLED            -7        /* line enabled for login */
  261. X#define LOPEN_ENABLED_IN_USE    -8        /* line in use by incoming login */
  262. X#define LOPEN_DIALOUT_IN_USE    -9        /* line in use by another dial out */
  263. X
  264. X#if defined(DECLARE_LINEVARS_PUBLIC)
  265. X
  266. Xchar LLCKname[128];            /* lock file name */
  267. Xstruct termio Ltermio;        /* attributes for the line to remote */
  268. Xuchar Lmodem_sreg[20];        /* allow for more later */
  269. X#else
  270. X#if !defined(OMIT_TERMIO_REFERENCES)
  271. Xextern char LLCKname[];
  272. Xextern struct termio Ltermio;
  273. X#endif
  274. Xextern uchar Lmodem_sreg[];
  275. X#endif
  276. X/* setcolor variables - see setcolor() */
  277. Xextern ulong colors_current;
  278. Xextern ulong colors_normal;
  279. Xextern ulong colors_success;
  280. Xextern ulong colors_alert;
  281. Xextern ulong colors_error;
  282. Xextern ulong colors_notify;
  283. X
  284. Xtypedef struct lrwt /* param to lgets_timeout in eculine.c */
  285. X{
  286. X    ulong to1;        /* timeout for 1st character (granularity 20) */
  287. X    ulong to2;        /* timeout for each next char (granularity 20) */
  288. X    int raw_flag;    /* !=0, rtn full buffer, ==0, rtn filtered hayes result */
  289. X    char *buffer;    /* buffer to fill */
  290. X    int bufsize;    /* size of buffer */
  291. X    int count;        /* from proc, count rcvd */
  292. X    char *delim;    /* ending string for lgets_timeout_or_delim */
  293. X    int echo;        /* echo incdoming chars to screen */
  294. X}    LRWT;
  295. X
  296. X#include "stdio_lint.h"
  297. X#include "lint_args.h"
  298. X/* vi: set tabstop=4 shiftwidth=4: */
  299. SHAR_EOF
  300. $TOUCH -am 0509094990 ecu.h &&
  301. chmod 0644 ecu.h ||
  302. echo "restore of ecu.h failed"
  303. set `wc -c ecu.h`;Wc_c=$1
  304. if test "$Wc_c" != "4474"; then
  305.     echo original size 4474, current size $Wc_c
  306. fi
  307. # ============= ecucmd.h ==============
  308. echo "x - extracting ecucmd.h (Text)"
  309. sed 's/^X//' << 'SHAR_EOF' > ecucmd.h &&
  310. X/* CHK=0xBB62 */
  311. X/*+-------------------------------------------------------------------------
  312. X    ecucmd.h -- command definitions
  313. X    wht%n4hgf@gatech.edu
  314. X--------------------------------------------------------------------------*/
  315. X/*+:EDITS:*/
  316. X/*:05-07-1990-21:24-wht@n4hgf---- 2.80 --- */
  317. X/*:04-05-1990-14:29-wht@n4hgf-sort/renumber CT tokens */
  318. X/*:03-25-1990-14:11-wht@n4hgf------ x2.70 ------- */
  319. X/*:03-18-1990-15:33-wht@n4hgf-add popen and pclose */
  320. X/*:03-12-1990-04:44-wht@n4hgf-add rname */
  321. X/*:12-21-1989-21:49-wht-add 'rtscts' */
  322. X/*:11-20-1989-16:05-wht-add 'getf' and 'putf' */
  323. X/*:07-03-1989-22:57-wht------ x2.00 ----- */
  324. X/*:06-24-1989-16:53-wht-flush edits --- ecu 1.95 */
  325. X
  326. X/* interactive command tokens */
  327. X
  328. X#define CTax             1
  329. X#define CTbaud           2
  330. X#define CTbn             3
  331. X#define CTbreak          4
  332. X#define CTcd             5
  333. X#define CTclrx           6
  334. X#define CTda             7
  335. X#define CTdial           8
  336. X#define CTdo             9
  337. X#define CTduplex        10
  338. X#define CTexit          11
  339. X#define CTfi            12
  340. X#define CTfkey          13
  341. X#define CTgetf          14
  342. X#define CThangup        15
  343. X#define CThelp          16
  344. X#define CTllp           17
  345. X#define CTloff          18
  346. X#define CTlog           19
  347. X#define CTmdump         20
  348. X#define CTnl            21
  349. X#define CTnlin          22
  350. X#define CTnlout         23
  351. X#define CToa            24
  352. X#define CTparity        25
  353. X#define CTpcmd          26
  354. X#define CTpid           27
  355. X#define CTplog          28
  356. X#define CTptrace        29
  357. X#define CTputf          30
  358. X#define CTpwd           31
  359. X#define CTredial        32
  360. X#define CTrev           33
  361. X#define CTrk            34
  362. X#define CTrs            35
  363. X#define CTrtscts        36
  364. X#define CTrx            37
  365. X#define CTry            38
  366. X#define CTrz            39
  367. X#define CTsdname        40
  368. X#define CTsgr           41
  369. X#define CTshell         42
  370. X#define CTsk            43
  371. X#define CTss            44
  372. X#define CTstat          45
  373. X#define CTsx            46
  374. X#define CTsy            47
  375. X#define CTsz            48
  376. X#define CTte            49
  377. X#define CTtime          50
  378. X#define CTts            51
  379. X#define CTtty           52
  380. X#define CTxa            53
  381. X#define CTxlog          54
  382. X
  383. X#define TOKEN_QUAN    128        /* for help package */
  384. X
  385. Xtypedef int (*PFI)();
  386. X
  387. X#if defined(HELPGEN)
  388. X#define Z {;}
  389. X#else
  390. X#define Z ;
  391. X#endif
  392. X
  393. Xint cmd_baud() Z
  394. Xint cmd_break() Z
  395. Xint cmd_cd() Z
  396. Xint cmd_clrx() Z
  397. Xint cmd_cls() Z
  398. Xint cmd_color() Z
  399. Xint cmd_continue() Z
  400. Xint cmd_cursor() Z
  401. Xint cmd_delline() Z
  402. Xint cmd_dial() Z
  403. Xint cmd_do() Z
  404. Xint cmd_duplex() Z
  405. Xint cmd_echo() Z
  406. Xint cmd_eeol() Z
  407. Xint cmd_else() Z
  408. Xint cmd_exit() Z
  409. Xint cmd_expresp() Z
  410. Xint cmd_getf() Z
  411. Xint cmd_fchmod() Z
  412. Xint cmd_fclose() Z
  413. Xint cmd_fgetc() Z
  414. Xint cmd_fgets() Z
  415. Xint cmd_fkey() Z
  416. Xint cmd_flush() Z
  417. Xint cmd_fopen() Z
  418. Xint cmd_fputc() Z
  419. Xint cmd_fputs() Z
  420. Xint cmd_fread() Z
  421. Xint cmd_fseek() Z
  422. Xint cmd_fdel() Z
  423. Xint cmd_fwrite() Z
  424. Xint cmd_goto() Z
  425. Xint cmd_gotob() Z
  426. Xint cmd_hangup() Z
  427. Xint cmd_hexdump() Z
  428. Xint cmd_home() Z
  429. Xint cmd_icolor() Z
  430. Xint cmd_insline() Z
  431. Xint cmd_ifi() Z
  432. Xint cmd_ifs() Z
  433. Xint cmd_lbreak() Z
  434. Xint cmd_lgets() Z
  435. Xint cmd_logevent() Z
  436. Xint cmd_lookfor() Z
  437. X/* int cmd_mkdir() Z */
  438. Xint cmd_mkvar() Z
  439. Xint cmd_nap() Z
  440. Xint cmd_parity() Z
  441. Xint cmd_pclose() Z
  442. Xint cmd_plog() Z
  443. Xint cmd_popen() Z
  444. Xint cmd_prompt() Z
  445. Xint cmd_ptrace() Z
  446. Xint cmd_putf() Z
  447. Xint cmd_return() Z
  448. Xint cmd_rk() Z
  449. Xint cmd_rname() Z
  450. Xint cmd_rs() Z
  451. Xint cmd_rx() Z
  452. Xint cmd_ry() Z
  453. Xint cmd_rz() Z
  454. Xint cmd_scrdump() Z
  455. Xint cmd_send() Z
  456. Xint cmd_set() Z
  457. Xint cmd_sk() Z
  458. Xint cmd_ss() Z
  459. Xint cmd_sx() Z
  460. Xint cmd_sy() Z
  461. Xint cmd_system() Z
  462. Xint cmd_sz() Z
  463. Xint cmd_vidcolor() Z
  464. Xint cmd_vidnorm() Z
  465. Xint cmd_vidrev() Z
  466. Xint cmd_whilei() Z
  467. Xint cmd_whiles() Z
  468. X
  469. Xtypedef struct p_cmd
  470. X{ 
  471. X    char *cmd;        /* command string */
  472. X    int min;        /* min chars required for match */
  473. X    int token;        /* command number */
  474. X    char *descr;    /* command description */
  475. X    PFI proc;        /* do cmd handler */
  476. X}    P_CMD;
  477. X
  478. X#if !defined(DECLARE_P_CMD)
  479. X#if defined(NEED_P_CMD)
  480. Xextern P_CMD icmd_cmds[];
  481. X#endif
  482. X#else
  483. XP_CMD icmd_cmds[] =
  484. X{
  485. X    { "ax",        2,CTax,        "ascii char to hex/oct/dec",    0 },
  486. X    { "baud",    2,CTbaud,    "set/display line baud rate",    cmd_baud },
  487. X    { "bn",        2,CTbn,        "all console event alarm",        0 },
  488. X    { "break",    2,CTbreak,    "send break to remote",            cmd_break },
  489. X    { "cd",        2,CTcd,        "change current directory",        cmd_cd },
  490. X    { "clrx",    2,CTclrx,    "simulate XON from remote",        cmd_clrx },
  491. X    { "cls",    0,0,        "",                                cmd_cls },
  492. X    { "color",    0,0,        "",                                cmd_color },
  493. X    { "continue",0,0,        "",                                cmd_continue },
  494. X    { "cursor",    0,0,        "",                                cmd_cursor },
  495. X    { "da",        2,CTda,        "decimal to ascii char",        0 },
  496. X    { "dial",    1,CTdial,    "dial remote destination",        cmd_dial },
  497. X    { "delline",0,0,        "",                                cmd_delline },
  498. X    { "do",        2,CTdo,        "perform procedure",            cmd_do },
  499. X    { "duplex",    2,CTduplex,    "set/display duplex",            cmd_duplex },
  500. X    { "echo",    0,0,        "",                                cmd_echo },
  501. X    { "eeol",    0,0,        "",                                cmd_eeol },
  502. X    { "else",    0,0,        "",                                cmd_else },
  503. X    { "esc",    2,CTte,        "set command escape",            0 },
  504. X    { "exit",    2,CTexit,    "drop carrier, exit program",    cmd_exit },
  505. X    { "expresp",0,0,        "",                                cmd_expresp },
  506. X    { "fchmod",    0,0,        "",                                cmd_fchmod },
  507. X    { "fclose",    0,0,        "",                                cmd_fclose },
  508. X    { "fdel",    0,0,        "",                                cmd_fdel },
  509. X    { "fgetc",    0,0,        "",                                cmd_fgetc },
  510. X    { "fgets",    0,0,        "",                                cmd_fgets },
  511. X    { "fi",        2,CTfi,        "send text file to line",        0 },
  512. X    { "fkey",    2,CTfkey,    "function key definition",        cmd_fkey },
  513. X    { "flush",    0,0,        "",                                cmd_flush },
  514. X    { "fopen",    0,0,        "",                                cmd_fopen },
  515. X    { "fputc",    0,0,        "",                                cmd_fputc },
  516. X    { "fputs",    0,0,        "",                                cmd_fputs },
  517. X    { "fread",    0,0,        "",                                cmd_fread },
  518. X    { "fseek",    0,0,        "",                                cmd_fseek },
  519. X    { "fwrite",    0,0,        "",                                cmd_fwrite },
  520. X    { "getf",    0,0,        "",                                cmd_getf },
  521. X    { "goto",    0,0,        "",                                cmd_goto },
  522. X    { "gotob",    0,0,        "",                                cmd_gotob },
  523. X    { "hangup",    2,CThangup,    "hang up modem",                cmd_hangup },
  524. X    { "help",    2,CThelp,    "invoke help",                    0 },
  525. X    { "hexdump",0,0,        "",                                cmd_hexdump },
  526. X    { "home",    0,0,        "",                                cmd_home },
  527. X    { "icolor",    0,0,        "",                                cmd_icolor },
  528. X    { "ifi",    0,0,        "",                                cmd_ifi },
  529. X    { "ifs",    0,0,        "",                                cmd_ifs },
  530. X    { "insline",0,0,        "",                                cmd_insline },
  531. X    { "lbreak",    0,0,        "",                                cmd_lbreak },
  532. X    { "llp",    2,CTllp,    "set session log to /dev/lp",    0 },
  533. X    { "lgets",    0,0,        "",                                cmd_lgets },
  534. X    { "loff",    3,CTloff,    "turn off session logging",        0 },
  535. X    { "log",    3,CTlog,    "session logging control",        0 },
  536. X    { "logevent",0,0,        "",                                cmd_logevent },
  537. X    { "lookfor",0,0,        "",                                cmd_lookfor },
  538. X    { "mdump",    5,CTmdump,    "",                                0 },
  539. X/*    { "mkdir",    3,CTmkdir,    "mkdir <dirname>",                cmd_mkdir }, */
  540. X    { "mkvar",    0,0,        "",                                cmd_mkvar },
  541. X    { "nap",    0,0,        "",                                cmd_nap },
  542. X    { "nl",        2,CTnl,        "display CR/LF mapping",        0 },
  543. X    { "nlin",    3,CTnlin,    "set receive CR/LF mapping",    0 },
  544. X    { "nlout",    3,CTnlout,    "set transmit CR/LF mapping",    0 },
  545. X    { "oa",        2,CToa,        "octal to ascii char",            0 },
  546. X    { "parity",    3,CTparity,    "set/display line parity",        cmd_parity },
  547. X    { "pclose",    0,0,        "",                                cmd_pclose },
  548. X    { "pcmd",    2,CTpcmd,    "execute a procedure command",    0 },
  549. X    { "pid",    2,CTpid,    "display process ids",            0 },
  550. X    { "plog",    2,CTplog,    "control procedure logging",    cmd_plog },
  551. X    { "popen",    0,0,        "",                                cmd_popen },
  552. X    { "prompt",    0,0,        "",                                cmd_prompt },
  553. X    { "ptrace",    2,CTptrace,    "control procedure trace",        cmd_ptrace },
  554. X    { "putf",    0,0,        "",                                cmd_putf },
  555. X    { "pwd",    2,CTpwd,    "print working directory",        0 },
  556. X    { "redial",    3,CTredial,    "redial last number",            0 },
  557. X    { "return",    0,0,        "",                                cmd_return },
  558. X    { "rev",    3,CTrev,    "ecu revision/make date",        0 },
  559. X    { "rk",        2,CTrk,        "receive via C-Kermit",            cmd_rk },
  560. X    { "rname",    2,0,        "",                                cmd_rname },
  561. X    { "rs",        2,CTrs,        "receive via SEAlink",            cmd_rs },
  562. X    { "rtscts",    3,CTrtscts,    "control RTS/CTS flow control",    0 },
  563. X    { "rx",        2,CTrx,        "receive via XMODEM/CRC",        cmd_rx },
  564. X    { "ry",        2,CTry,        "receive via YMODEM Batch",        cmd_ry },
  565. X    { "rz",        2,CTrz,        "receive via ZMODEM/CRC32",        cmd_rz },
  566. X    { "scrdump",0,0,        "",                                cmd_scrdump },
  567. X    { "sdname",    3,CTsdname,    "select screen dump name",        0 },
  568. X    { "send",    0,0,        "",                                cmd_send },
  569. X    { "set",    0,0,        "",                                cmd_set },
  570. X    { "sgr",    2,CTsgr,    "",                                0 },
  571. X    { "sk",        2,CTsk,        "send via C-Kermit",            cmd_sk },
  572. X    { "ss",        2,CTss,        "send via SEAlink",                cmd_ss },
  573. X    { "stat",    2,CTstat,    "connection status",            0 },
  574. X    { "sx",        2,CTsx,        "send via XMODEM/CRC",            cmd_sx },
  575. X    { "sy",        2,CTsy,        "send via YMODEM Batch",        cmd_sy },
  576. X    { "system",    0,CTsy,        "",                                cmd_system },
  577. X    { "sz",        2,CTsz,        "send via ZMODEM/CRC32",        cmd_sz },
  578. X    { "time",    2,CTtime,    "time of day",                    0 },
  579. X    { "ts",        2,CTts,        "termio display",                0 },
  580. X    { "tty",    2,CTtty,    "console tty name",                0 },
  581. X    { "vidcolor",0,0,        "",                                cmd_vidcolor },
  582. X    { "vidnorm",0,0,        "",                                cmd_vidnorm },
  583. X    { "vidrev",    0,0,        "",                                cmd_vidrev },
  584. X    { "whilei",    0,0,        "",                                cmd_whilei },
  585. X    { "whiles",    0,0,        "",                                cmd_whiles },
  586. X    { "xa",        2,CTxa,        "hex to ascii char",            0 },
  587. X    { "xlog",    2,CTxlog,    "",                                0 },
  588. X    { "!",        1,CTshell,    "execute shell",                0 },
  589. X    { "",        0,-1,"",    0 },        /* list ends with token value of -1 */
  590. X};
  591. X#endif
  592. X
  593. X/* end of ecucmd.h */
  594. X/* vi: set tabstop=4 shiftwidth=4: */
  595. SHAR_EOF
  596. $TOUCH -am 0507233390 ecucmd.h &&
  597. chmod 0644 ecucmd.h ||
  598. echo "restore of ecucmd.h failed"
  599. set `wc -c ecucmd.h`;Wc_c=$1
  600. if test "$Wc_c" != "9132"; then
  601.     echo original size 9132, current size $Wc_c
  602. fi
  603. # ============= ecuerror.h ==============
  604. echo "x - extracting ecuerror.h (Text)"
  605. sed 's/^X//' << 'SHAR_EOF' > ecuerror.h &&
  606. X/* CHK=0x47D9 */
  607. X/*+-------------------------------------------------------------------------
  608. X    ecuerror.h
  609. X    wht%n4hgf@gatech.edu
  610. X
  611. Xe_... values must not be changed without careful looking through code
  612. Xerror numbers should be <= 0x7FFF to avoid problems with M_I286 versions
  613. X--------------------------------------------------------------------------*/
  614. X/*+:EDITS:*/
  615. X/*:05-07-1990-21:24-wht@n4hgf---- 2.80 --- */
  616. X/*:03-25-1990-14:11-wht@n4hgf------ x2.70 ------- */
  617. X/*:07-03-1989-22:57-wht------ x2.00 ----- */
  618. X/*:06-24-1989-16:53-wht-flush edits --- ecu 1.95 */
  619. X
  620. X#define e_USER                0x1000    /* user error differentiation */
  621. X
  622. X/* warning errors - do not stop proc execution */
  623. X#define e_WARNING            0x3000
  624. X#define eProcEmpty            0x3001  /* empty procedure */
  625. X#define eWARNING_ALREADY    0x3002  /* warning already printed */
  626. X#define eConnectFailed        0x3003    /* failed to connect */
  627. X#define eNoSwitches            0x3004    /* no switch(es) to command */
  628. X
  629. X/* fatal errors - stop proc execution */
  630. X#define e_FATAL                0x4000
  631. X#define eIllegalCommand        0x4003  /* invalid command */
  632. X#define eNoMemory            0x4004  /* no more memory available */
  633. X#define eSyntaxError        0x4005  /* syntax error */
  634. X#define eIllegalVarNumber    0x4006  /* variable number is invalid or out of range */
  635. X#define eIllegalVarType        0x4007  /* unrecognized variable type */
  636. X#define eNotInteger            0x4008  /* integer expected and not found */
  637. X#define eFATAL_ALREADY        0x4011  /* fatal to proc, info already printed */
  638. X#define eCONINT                0x4012  /* abort due to interrupt */
  639. X#define eInvalidFunction    0x4013  /* invalid function name */
  640. X#define eMissingLeftParen    0x4014  /* did not find expected left paren */
  641. X#define eMissingRightParen    0x4015  /* did not find expected right paren */
  642. X#define eCommaExpected        0x4016  /* expected comma not found */
  643. X#define eProcStackTooDeep    0x4017  /* procedure stack depth exceeded */
  644. X#define eInvalidRelOp        0x4018  /* invalid relational operator */
  645. X#define eInvalidIntOp        0x4019  /* invalid integer operator */
  646. X#define eInvalidStrOp        0x4020  /* invalid string operator */
  647. X#define eNotExecutingProc    0x4022  /* not executing DO at this time */
  648. X#define eInvalidLabel        0x4023  /* invalid label */
  649. X#define eInternalLogicError    0x4025  /* internal logic error ... whoops */
  650. X#define eEOF                0x4026  /* end of file or read error */
  651. X#define eBufferTooSmall        0x4027  /* string too long */
  652. X#define eNoParameter        0x4028  /* expected parameter not found */
  653. X#define eBadParameter        0x4029  /* bad parameter */
  654. X#define eInvalidHexNumber    0x402A    /* invalid hexadecimal digit */
  655. X#define eInvalidDecNumber    0x402B    /* invalid decimal digit */
  656. X#define eInvalidOctNumber    0x402C    /* invalid octal digit */
  657. X#define eInteractiveCmd        0x402E    /* interactive command */
  658. X#define eNoLineAttached        0x402F    /* no line (modem) attached */
  659. X#define eBadFileNumber        0x4030    /* file number out of range */
  660. X#define eNotImplemented        0x4031    /* not implemented */
  661. X#define eDuplicateMatch        0x4032    /* more than one condition matches */
  662. X#define eColonExpected        0x4033  /* expected colon not found */
  663. X#define eLabelInvalidHere    0x4034  /* label not allowed on this statement */
  664. X#define eNoCloseFrame        0x4035  /* missing '}' for '{' */
  665. X#define eNoFrame            0x4036  /* missing command or command group after 'while' or 'if' */
  666. X#define eMissingCommand        0x4037  /* expected command not found */
  667. X#define eBreakCommand        0x4038  /* 'break' outside 'while' */
  668. X#define eContinueCommand    0x4039  /* 'continue' outside 'while' */
  669. X#define eElseCommand        0x403A  /* 'else' without matching 'if' */
  670. X#define eInvalidVarName        0x403B  /* invalid variable name */
  671. X#define eNoSuchVariable        0x403C  /* variable by this name not defined */
  672. X#define eInvalidLogicOp        0x403D  /* invalid logical operator */
  673. X#define eExpectRespondFail    0x403E  /* expect-respond failed */
  674. X
  675. X/* DO attention getter */
  676. X#define e_ProcAttn            0x7000
  677. X#define eProcAttn_GOTO        0x7000  /* GOTO detected */
  678. X#define eProcAttn_GOTOB        0x7001  /* GOTOB detected */
  679. X#define eProcAttn_RETURN    0x7002  /* RETURN detected */
  680. X#define eProcAttn_ESCAPE    0x7003  /* ESCAPE detected */
  681. X#define eProcAttn_Interrupt    0x7004  /* procedure interrupted */
  682. X
  683. SHAR_EOF
  684. $TOUCH -am 0508023190 ecuerror.h &&
  685. chmod 0644 ecuerror.h ||
  686. echo "restore of ecuerror.h failed"
  687. set `wc -c ecuerror.h`;Wc_c=$1
  688. if test "$Wc_c" != "4085"; then
  689.     echo original size 4085, current size $Wc_c
  690. fi
  691. # ============= ecufkey.h ==============
  692. echo "x - extracting ecufkey.h (Text)"
  693. sed 's/^X//' << 'SHAR_EOF' > ecufkey.h &&
  694. X/* CHK=0xC2D0 */
  695. X/*+-------------------------------------------------------------------------
  696. X    ecufkey.h -- AT XENIX/UNIX function key phrases
  697. X    wht%n4hgf@gatech.edu
  698. X--------------------------------------------------------------------------*/
  699. X/*+:EDITS:*/
  700. X/*:05-07-1990-21:24-wht@n4hgf---- 2.80 --- */
  701. X/*:03-25-1990-14:11-wht@n4hgf------ x2.70 ------- */
  702. X/*:03-23-1990-14:19-wht@n4hgf-add KACT_REDISPLAY */
  703. X/*:07-03-1989-22:57-wht------ x2.00 ----- */
  704. X/*:06-24-1989-16:53-wht-flush edits --- ecu 1.95 */
  705. X
  706. X#define KDE_F1        0
  707. X#define KDE_F2        1
  708. X#define KDE_F3        2
  709. X#define KDE_F4        3
  710. X#define KDE_F5        4
  711. X#define KDE_F6        5
  712. X#define KDE_F7        6
  713. X#define KDE_F8        7
  714. X#define KDE_F9        8
  715. X#define KDE_F10        9
  716. X#define KDE_F11        10
  717. X#define KDE_F12        11
  718. X#define KDE_CUU        12
  719. X#define KDE_CUD        13
  720. X#define KDE_CUL        14
  721. X#define KDE_CUR        15
  722. X#define KDE_CU5        16
  723. X#define KDE_PGUP    17
  724. X#define KDE_PGDN    18
  725. X#define KDE_END        19
  726. X#define KDE_INS        20
  727. X#define KDE_BKTAB    21
  728. X#define KDE_HOME    22
  729. X
  730. X#define KDE_COUNT    23
  731. X
  732. X#define KDE_LOGICAL_MAX        12
  733. X#define KDE_OUTSTR_MAX        10
  734. X
  735. Xtypedef struct kde
  736. X{
  737. X    char logical[KDE_LOGICAL_MAX];
  738. X    uchar keyid;
  739. X    char outcount;
  740. X    char outstr[KDE_OUTSTR_MAX];
  741. X}    KDE;
  742. X
  743. X/* when an outcount is not a count but an action: */
  744. X#define KACT_COMMAND            -1
  745. X#define KACT_LOCAL_SHELL        -2
  746. X#define KACT_REDISPLAY            -3
  747. X
  748. Xtypedef struct XF_KDE_NAME
  749. X{
  750. X    uchar xf;
  751. X    char kde;
  752. X    char *name;
  753. X}    XF_KDE_NAME;
  754. X
  755. X/* vi: set tabstop=4 shiftwidth=4: */
  756. X/* end of ecufkey.h */
  757. SHAR_EOF
  758. $TOUCH -am 0507233390 ecufkey.h &&
  759. chmod 0644 ecufkey.h ||
  760. echo "restore of ecufkey.h failed"
  761. set `wc -c ecufkey.h`;Wc_c=$1
  762. if test "$Wc_c" != "1424"; then
  763.     echo original size 1424, current size $Wc_c
  764. fi
  765. # ============= ecufork.h ==============
  766. echo "x - extracting ecufork.h (Text)"
  767. sed 's/^X//' << 'SHAR_EOF' > ecufork.h &&
  768. X/* CHK=0xC0A0 */
  769. X/*+-------------------------------------------------------------------------
  770. X    ecufork.h 
  771. X    wht%n4hgf@gatech.edu
  772. X
  773. Xfor now just vehicle for deciding whether or not to debug fork/waits
  774. X--------------------------------------------------------------------------*/
  775. X/*+:EDITS:*/
  776. X/*:05-07-1990-21:24-wht@n4hgf---- 2.80 --- */
  777. X/*:03-25-1990-14:11-wht@n4hgf------ x2.70 ------- */
  778. X/*:07-03-1989-22:57-wht------ x2.00 ----- */
  779. X/*:06-24-1989-16:53-wht-flush edits --- ecu 1.95 */
  780. X
  781. X/* #define FORK_DEBUG */
  782. X/* vi: set tabstop=4 shiftwidth=4: */
  783. SHAR_EOF
  784. $TOUCH -am 0507233390 ecufork.h &&
  785. chmod 0644 ecufork.h ||
  786. echo "restore of ecufork.h failed"
  787. set `wc -c ecufork.h`;Wc_c=$1
  788. if test "$Wc_c" != "548"; then
  789.     echo original size 548, current size $Wc_c
  790. fi
  791. # ============= ecuhangup.h ==============
  792. echo "x - extracting ecuhangup.h (Text)"
  793. sed 's/^X//' << 'SHAR_EOF' > ecuhangup.h &&
  794. X/* CHK=0xF6EC */
  795. X/*+-------------------------------------------------------------------------
  796. X    ecuhangup.h -- hangup codes
  797. X    wht%n4hgf@gatech.edu
  798. X--------------------------------------------------------------------------*/
  799. X/*+:EDITS:*/
  800. X/*:05-07-1990-21:24-wht@n4hgf---- 2.80 --- */
  801. X/*:03-25-1990-14:11-wht@n4hgf------ x2.70 ------- */
  802. X/*:02-15-1990-16:03-wht-add HANGUP_SIG{1,N} */
  803. X/*:07-03-1989-22:57-wht------ x2.00 ----- */
  804. X/*:06-24-1989-16:53-wht-flush edits --- ecu 1.95 */
  805. X
  806. X/* HANGUP codes for supplying to hangup(): 1 - 64 reserved for signals */
  807. X#define HANGUP_OK                    0
  808. X#define HANGUP_SIG1                    1
  809. X#define HANGUP_SIGN                    64
  810. X#define HANGUP_LINE_READ_ERROR        129
  811. X#define HANGUP_XMTR_WRITE_ERROR        130
  812. X#define HANGUP_XMTR_LOGIC_ERROR        131
  813. X#define HANGUP_BSD4_IOCTL            132
  814. X#define HANGUP_SHM_ABL                133
  815. X#define HANGUP_SHM_RTL                134
  816. X#define HANGUP_NO_FORK_FOR_RCVR        135
  817. X#define HANGUP_TTYIN_READ_ERROR        136
  818. X#define HANGUP_LINE_OPEN_ERROR        137
  819. X#define HANGUP_PWENT_ERROR            138
  820. X#define HANGUP_USAGE                139
  821. X#define HANGUP_INIT_PROC_ERROR        192
  822. X/* 193 - 224 reserved for procedure 'exit' codes */
  823. X
  824. X/* vi: set tabstop=4 shiftwidth=4: */
  825. SHAR_EOF
  826. $TOUCH -am 0507233390 ecuhangup.h &&
  827. chmod 0644 ecuhangup.h ||
  828. echo "restore of ecuhangup.h failed"
  829. set `wc -c ecuhangup.h`;Wc_c=$1
  830. if test "$Wc_c" != "1130"; then
  831.     echo original size 1130, current size $Wc_c
  832. fi
  833. # ============= ecukey.h ==============
  834. echo "x - extracting ecukey.h (Text)"
  835. sed 's/^X//' << 'SHAR_EOF' > ecukey.h &&
  836. X/* CHK=0x1906 */
  837. X/*+-------------------------------------------------------------------------
  838. X    ecukey.h -- single key (ASCII) defines
  839. X    wht%n4hgf@gatech.edu
  840. X--------------------------------------------------------------------------*/
  841. X/*+:EDITS:*/
  842. X/*:05-07-1990-21:24-wht@n4hgf---- 2.80 --- */
  843. X/*:03-25-1990-14:11-wht@n4hgf------ x2.70 ------- */
  844. X/*:07-03-1989-22:57-wht------ x2.00 ----- */
  845. X/*:06-24-1989-16:53-wht-flush edits --- ecu 1.95 */
  846. X
  847. X#define CTL_B        0x02
  848. X#define CTL_C        0x03
  849. X#define CTL_D        0x04
  850. X#define BS            0x08
  851. X#define NL            0x0A
  852. X#define TAB            0x09
  853. X#define CTL_L        0x0C
  854. X#define CR            0x0D
  855. X#define XON            0x11
  856. X#define CTL_R        0x12
  857. X#define XOFF        0x13
  858. X#define CTL_U        0x15
  859. X#define ESC            0x1B
  860. X#define CTL_BSLASH    0x1C
  861. X#define CTL_Z        0x1A
  862. X#define SPACE        0x20
  863. X#define DEL            0x7F
  864. X/* vi: set tabstop=4 shiftwidth=4: */
  865. SHAR_EOF
  866. $TOUCH -am 0507233390 ecukey.h &&
  867. chmod 0644 ecukey.h ||
  868. echo "restore of ecukey.h failed"
  869. set `wc -c ecukey.h`;Wc_c=$1
  870. if test "$Wc_c" != "814"; then
  871.     echo original size 814, current size $Wc_c
  872. fi
  873. # ============= ecupde.h ==============
  874. echo "x - extracting ecupde.h (Text)"
  875. sed 's/^X//' << 'SHAR_EOF' > ecupde.h &&
  876. X/* CHK=0xEC49 */
  877. X/*+-----------------------------------------------------------------------
  878. X    ecupde.h
  879. X    wht%n4hgf@gatech.edu
  880. X------------------------------------------------------------------------*/
  881. X/*+:EDITS:*/
  882. X/*:05-07-1990-21:24-wht@n4hgf---- 2.80 --- */
  883. X/*:03-25-1990-14:11-wht@n4hgf------ x2.70 ------- */
  884. X/*:07-03-1989-22:57-wht------ x2.00 ----- */
  885. X/*:06-24-1989-16:53-wht-flush edits --- ecu 1.95 */
  886. X
  887. Xtypedef struct phone_directory_entry
  888. X{
  889. X    struct phone_directory_entry *next;
  890. X    struct phone_directory_entry *prev;
  891. X    char descr[64];        /* description of remote */
  892. X    char logical[64];    /* logical name of remote */
  893. X    char telno[20];        /* telephone number for remote or null */
  894. X    char tty[4];            /* ttyname for access */
  895. X    int parity;            /* 0,'e','o', maybe 'm','s' */
  896. X    uint baud;                
  897. X}    PDE;
  898. X
  899. X/* vi: set tabstop=4 shiftwidth=4: */
  900. SHAR_EOF
  901. $TOUCH -am 0507233390 ecupde.h &&
  902. chmod 0644 ecupde.h ||
  903. echo "restore of ecupde.h failed"
  904. set `wc -c ecupde.h`;Wc_c=$1
  905. if test "$Wc_c" != "825"; then
  906.     echo original size 825, current size $Wc_c
  907. fi
  908. # ============= ecushm.h ==============
  909. echo "x - extracting ecushm.h (Text)"
  910. sed 's/^X//' << 'SHAR_EOF' > ecushm.h &&
  911. X/* CHK=0x4F27 */
  912. X#define SHM_REV    0x0CDEF0005L    /* high 16-bits unique, low=revision */
  913. X/*+-------------------------------------------------------------------------
  914. X    ecushm.h -- ecu XENIX shared data segment
  915. X    wht%n4hgf@gatech.edu
  916. X--------------------------------------------------------------------------*/
  917. X/*+:EDITS:*/
  918. X/*:05-07-1990-21:24-wht@n4hgf---- 2.80 --- */
  919. X/*:03-25-1990-14:11-wht@n4hgf------ x2.70 ------- */
  920. X/*:03-12-1990-04:22-wht@n4hgf-add Lrname */
  921. X/*:11-17-1989-15:12-wht-add friend space */
  922. X/*:11-05-1989-16:48-wht-rename ansi_y to cursor_y, ansi_x to cursor_x */
  923. X/*:11-05-1989-16:08-wht-keep screen in shared memory */
  924. X/*:11-04-1989-07:00-wht-keep ansi cursor position in shm */
  925. X/*:11-04-1989-06:55-wht-externalize shm addr */
  926. X/*:07-03-1989-22:57-wht------ x2.00 ----- */
  927. X/*:06-24-1989-16:53-wht-flush edits --- ecu 1.95 */
  928. X
  929. X#if defined(M_I386)
  930. X#define FAR
  931. X#else
  932. X#define FAR far
  933. X#endif
  934. X
  935. X/* for header users which do not include ecu.h */
  936. X#if !defined(ushort)
  937. X#define ushort unsigned short
  938. X#endif
  939. X#if !defined(uchar)
  940. X#define uchar unsigned char
  941. X#endif
  942. X#if !defined(uint)
  943. X#define uint unsigned int
  944. X#endif
  945. X#if !defined(ulong)
  946. X#define ulong unsigned long
  947. X#endif
  948. X
  949. X#define SHM_STRLEN    256
  950. Xtypedef struct ecu_sds
  951. X{
  952. X    uchar screen[43][80];
  953. X    ulong shm_revision;
  954. X    int xcmd;            /* signal from xmtr to rcvr SIGUSR2 */
  955. X    int xi1;
  956. X    int xi2;
  957. X    int xi3;
  958. X    char xs1[SHM_STRLEN];
  959. X    int rcmd;            /* signal from rcvr to xmtr SIGUSR2 */
  960. X    int ri1;
  961. X    int ri2;
  962. X    char rs1[SHM_STRLEN];
  963. X    ulong rcvd_chars;        /* rcvr char count */
  964. X    ulong rcvd_chars_this_connect;    /* count since last connect */
  965. X    ulong xmit_chars;        /* xmit char count */
  966. X    ulong xmit_chars_this_connect;    /* count since last connect */
  967. X    int cursor_y;            /* program-maintained receive cursor */
  968. X    int cursor_x;            /* program-maintained receive cursor */
  969. X    int Ladd_nl_incoming;    /* when in ksr mode, add nl to cr on receive */
  970. X    int Ladd_nl_outgoing;    /* when in ksr mode, add nl to cr on xmit */
  971. X    int Lfull_duplex;        /* if non-zero, full duplex else half */
  972. X    int Liofd;                /* file descriptor for line */
  973. X    int Lmodem_already_init;/* true if modem already initialized */
  974. X    int Lmodem_off_hook;    /* we try to keep accurate */
  975. X    int Lparity;            /* 0==NONE, 'e' == even, 'o' == odd */
  976. X    uint Lbaud;                /* baud rate */
  977. X    char Ldescr[64];        /* description of remote */
  978. X    char Lline[64];            /* /dev/ttyname for outgoing line */
  979. X    char Llogical[64];        /* logical name of remote (from dial dir) */
  980. X    char Lrname[64];        /* logical name of remote (settable) */
  981. X    long Loff_hook_time;    /* time() at connect */
  982. X    char Ltelno[20];        /* telephone number for remote or null */
  983. X    int xmtr_pid;            /* transmitter process pid */
  984. X    int xmtr_ppid;            /* transmitter process' parent's pid */
  985. X    int xmtr_pgrp;            /* transmitter process group */
  986. X    char tty_name[64];
  987. X    ulong friend_space[128];/* space for friend programs */
  988. X} ECU_SDS;
  989. X
  990. Xextern ECU_SDS FAR *shm;        /* shared segment pointer */
  991. X
  992. X/* vi: set tabstop=4 shiftwidth=4: */
  993. X/* end of ecushm.h */
  994. SHAR_EOF
  995. $TOUCH -am 0507233390 ecushm.h &&
  996. chmod 0644 ecushm.h ||
  997. echo "restore of ecushm.h failed"
  998. set `wc -c ecushm.h`;Wc_c=$1
  999. if test "$Wc_c" != "2934"; then
  1000.     echo original size 2934, current size $Wc_c
  1001. fi
  1002. # ============= ecutty.h ==============
  1003. echo "x - extracting ecutty.h (Text)"
  1004. sed 's/^X//' << 'SHAR_EOF' > ecutty.h &&
  1005. X/* CHK=0xBFDE */
  1006. X/*+-------------------------------------------------------------------------
  1007. X    ecutty.h
  1008. X    wht%n4hgf@gatech.edu
  1009. X--------------------------------------------------------------------------*/
  1010. X/*+:EDITS:*/
  1011. X/*:05-07-1990-21:24-wht@n4hgf---- 2.80 --- */
  1012. X/*:03-25-1990-14:11-wht@n4hgf------ x2.70 ------- */
  1013. X/*:07-03-1989-22:57-wht------ x2.00 ----- */
  1014. X/*:06-24-1989-16:53-wht-flush edits --- ecu 1.95 */
  1015. X
  1016. Xtypedef struct color_type
  1017. X{
  1018. X    char *name;
  1019. X    int num;
  1020. X} COLOR;
  1021. X
  1022. X#ifdef DEFINE_TTY_DATA
  1023. XCOLOR colors[] =
  1024. X{
  1025. X    { "black",        0 },
  1026. X    { "blue",        1 },
  1027. X    { "brown",        6 },
  1028. X    { "cyan",        3 },
  1029. X    { "gray",        8 },
  1030. X    { "green",        2 },
  1031. X    { "hi_white",    15 },
  1032. X    { "lt_blue",    9 },
  1033. X    { "lt_cyan",    11 },
  1034. X    { "lt_green",    10 },
  1035. X    { "lt_magenta",    13 },
  1036. X    { "lt_red",        12 },
  1037. X    { "magenta",    5 },
  1038. X    { "red",        4 },
  1039. X    { "white",        7 },
  1040. X    { "yellow",        14 },
  1041. X    {(char *)0, -1}
  1042. X};
  1043. X#else
  1044. Xextern COLOR colors[];
  1045. X#endif
  1046. X
  1047. X/* color words are ulong:
  1048. X   MSB:  reverse video foreground
  1049. X         reverse video background
  1050. X         normal  video foreground
  1051. X   LSB:  normal  video background
  1052. X*/
  1053. X
  1054. X/* vi: set tabstop=4 shiftwidth=4: */
  1055. X/* end of ecutty.h */
  1056. SHAR_EOF
  1057. $TOUCH -am 0507233390 ecutty.h &&
  1058. chmod 0644 ecutty.h ||
  1059. echo "restore of ecutty.h failed"
  1060. set `wc -c ecutty.h`;Wc_c=$1
  1061. if test "$Wc_c" != "1101"; then
  1062.     echo original size 1101, current size $Wc_c
  1063. fi
  1064. # ============= ecuungetty.h ==============
  1065. echo "x - extracting ecuungetty.h (Text)"
  1066. sed 's/^X//' << 'SHAR_EOF' > ecuungetty.h &&
  1067. X/* CHK=0xFFA8 */
  1068. X/*+-------------------------------------------------------------------------
  1069. X    ecuungetty.h
  1070. X    wht%n4hgf@gatech.edu
  1071. X--------------------------------------------------------------------------*/
  1072. X/*+:EDITS:*/
  1073. X/*:05-07-1990-21:24-wht@n4hgf---- 2.80 --- */
  1074. X/*:03-25-1990-14:11-wht@n4hgf------ x2.70 ------- */
  1075. X/*:07-03-1989-22:57-wht------ x2.00 ----- */
  1076. X/*:06-29-1989-18:00-wht-creation */
  1077. X
  1078. X/* ungetty definitions */
  1079. X#define    UG_NOTENAB        0    /* on no-switch exec, line not enabled */
  1080. X#define    UG_ENAB            1    /* on no-switch exec, -r needed */
  1081. X#define    UG_RESTART        1    /* on -t exec, restart needed */
  1082. X#define    UG_FAIL            2    /* on no switch exec, line in use */
  1083. X
  1084. X/* extended ecuungetty codes */
  1085. X#define UGE_BADSWITCH    240    /* usage: bad switch */
  1086. X#define UGE_BADARGC        241    /* usage: bad arg count */
  1087. X#define UGE_NOTROOT        242    /* ecuungetty found it had no root privileges */
  1088. X#define UGE_CALLER        243    /* caller is not ecu or root */
  1089. X#define UGE_T_LOGIN        230 /* -t found utmp status US_LOGIN */
  1090. X#define UGE_T_LOGGEDIN    231 /* -t found utmp status US_LOGGGEDIN */
  1091. X#define UGE_T_NOTFOUND    232 /* -t found utmp status US_NOTFOUND */
  1092. X
  1093. X/* vi: set tabstop=4 shiftwidth=4: */
  1094. X/* end of ecuungetty.h */
  1095. SHAR_EOF
  1096. $TOUCH -am 0507233390 ecuungetty.h &&
  1097. chmod 0644 ecuungetty.h ||
  1098. echo "restore of ecuungetty.h failed"
  1099. set `wc -c ecuungetty.h`;Wc_c=$1
  1100. if test "$Wc_c" != "1182"; then
  1101.     echo original size 1182, current size $Wc_c
  1102. fi
  1103. # ============= ecuvmin.h ==============
  1104. echo "x - extracting ecuvmin.h (Text)"
  1105. sed 's/^X//' << 'SHAR_EOF' > ecuvmin.h &&
  1106. X/* CHK=0xB0D4 */
  1107. X/*+-------------------------------------------------------------------------
  1108. X    xenixvmin.h  --  set line default VMIN
  1109. X    wht%n4hgf@gatech.edu
  1110. X--------------------------------------------------------------------------*/
  1111. X/*+:EDITS:*/
  1112. X/*:05-07-1990-21:24-wht@n4hgf---- 2.80 --- */
  1113. X/*:03-25-1990-14:11-wht@n4hgf------ x2.70 ------- */
  1114. X/*:11-23-1989-03:11-wht-conditional compile for M_XENIX or M_UNIX */
  1115. X/*:07-03-1989-22:57-wht------ x2.00 ----- */
  1116. X/*:06-24-1989-16:53-wht-flush edits --- ecu 1.95 */
  1117. X
  1118. X#if defined(M_XENIX) || defined(M_UNIX)
  1119. X#if defined(BUILDING_LINT_ARGS    /* if building lint_args.h ... */)
  1120. X#define XENIX_VMIN        2    /* ... include vmin handling routines */
  1121. X#else
  1122. X#define XENIX_VMIN        1    /* this is the real value for vmin */
  1123. X#endif
  1124. X#endif
  1125. X/* vi: set tabstop=4 shiftwidth=4: */
  1126. SHAR_EOF
  1127. $TOUCH -am 0507233390 ecuvmin.h &&
  1128. chmod 0644 ecuvmin.h ||
  1129. echo "restore of ecuvmin.h failed"
  1130. set `wc -c ecuvmin.h`;Wc_c=$1
  1131. if test "$Wc_c" != "799"; then
  1132.     echo original size 799, current size $Wc_c
  1133. fi
  1134. # ============= ecuxkey.h ==============
  1135. echo "x - extracting ecuxkey.h (Text)"
  1136. sed 's/^X//' << 'SHAR_EOF' > ecuxkey.h &&
  1137. X/* CHK=0x30E8 */
  1138. X/*+-------------------------------------------------------------------------
  1139. X    ecuxkey.h -- XENIX function key single char value mapping
  1140. X    wht%n4hgf@gatech.edu
  1141. X--------------------------------------------------------------------------*/
  1142. X/*+:EDITS:*/
  1143. X/*:05-07-1990-21:24-wht@n4hgf---- 2.80 --- */
  1144. X/*:03-25-1990-14:11-wht@n4hgf------ x2.70 ------- */
  1145. X/*:11-04-1989-03:22-wht-alt-a thru alt-z */
  1146. X/*:07-03-1989-22:57-wht------ x2.00 ----- */
  1147. X/*:06-24-1989-16:53-wht-flush edits --- ecu 1.95 */
  1148. X
  1149. X#define XF_ALTA    0x80            /* depends on /usr/lib/keyboard keys ... */
  1150. X#define XF_ALTZ    (0x80+'z'-'a')    /* ... mapping ALT-a to 0x80, etc */
  1151. X
  1152. X#define XFcurup    (0x80 | 'A')    /* 0xC1 */
  1153. X#define XFcurdn    (0x80 | 'B')    /* 0xC2 */
  1154. X#define XFcurrt    (0x80 | 'C')    /* 0xC3 */
  1155. X#define XFcurlf    (0x80 | 'D')    /* 0xC4 */
  1156. X#define XFcur5    (0x80 | 'E')    /* 0xC5 */
  1157. X#define XFend    (0x80 | 'F')    /* 0xC6 */
  1158. X#define XFpgdn    (0x80 | 'G')    /* 0xC7 */
  1159. X#define XFhome    (0x80 | 'H')    /* 0xC8 */
  1160. X#define XFpgup    (0x80 | 'I')    /* 0xC9 */
  1161. X#define XFins    (0x80 | 'L')    /* 0xCA */
  1162. X#define XF1        (0x80 | 'M')    /* 0xCB */
  1163. X#define XF2        (0x80 | 'N')    /* 0xCC */
  1164. X#define XF3        (0x80 | 'O')    /* 0xCD */
  1165. X#define XF4        (0x80 | 'P')    /* 0xCE */
  1166. X#define XF5        (0x80 | 'Q')    /* 0xCF */
  1167. X#define XF6        (0x80 | 'R')    /* 0xD0 */
  1168. X#define XF7        (0x80 | 'S')    /* 0xD1 */
  1169. X#define XF8        (0x80 | 'T')    /* 0xD2 */
  1170. X#define XF9        (0x80 | 'U')    /* 0xD3 */
  1171. X#define XF10    (0x80 | 'V')    /* 0xD4 */
  1172. X#define XF11    (0x80 | 'W')    /* 0xD5 */
  1173. X#define XF12    (0x80 | 'X')    /* 0xD6 */
  1174. X#define XFbktab    (0x80 | 'Z')    /* 0xD7 */
  1175. X
  1176. X/* vi: set tabstop=4 shiftwidth=4: */
  1177. X/* end of ecuxkey.h */
  1178. SHAR_EOF
  1179. $TOUCH -am 0507233390 ecuxkey.h &&
  1180. chmod 0644 ecuxkey.h ||
  1181. echo "restore of ecuxkey.h failed"
  1182. set `wc -c ecuxkey.h`;Wc_c=$1
  1183. if test "$Wc_c" != "1580"; then
  1184.     echo original size 1580, current size $Wc_c
  1185. fi
  1186. # ============= esd.h ==============
  1187. echo "x - extracting esd.h (Text)"
  1188. sed 's/^X//' << 'SHAR_EOF' > esd.h &&
  1189. X/* CHK=0xA11F */
  1190. X/*+-----------------------------------------------------------------------
  1191. X    esd.h -- support header for users of esdutil.c
  1192. X    ...!gatech!emory!tridom!wht
  1193. X------------------------------------------------------------------------*/
  1194. X/*+:EDITS:*/
  1195. X/*:05-07-1990-21:24-wht@n4hgf---- 2.80 --- */
  1196. X/*:03-25-1990-14:11-wht@n4hgf------ x2.70 ------- */
  1197. X/*:07-03-1989-22:57-wht------ x2.00 ----- */
  1198. X/*:06-24-1989-16:53-wht-flush edits --- ecu 1.95 */
  1199. X
  1200. Xtypedef struct esd
  1201. X{
  1202. X    char    *pb;        /* full pointer to esd strings */
  1203. X    short    cb;            /* count of bytes */
  1204. X    short    maxcb;        /* maximum bytes allowed */
  1205. X    short    index;        /* next character of significance */
  1206. X    short    old_index;    /* last token (backup or error reporting) */
  1207. X}    ESD;
  1208. X
  1209. Xtypedef struct keyword_table_type    /* table terminated with null key_word */
  1210. X{
  1211. X    char    *key_word;          /* 12 char max key word */
  1212. X    int     key_token;          /* token returned on match */
  1213. X} KEYTAB;
  1214. X
  1215. XESD *make_esd();
  1216. X
  1217. X/* vi: set tabstop=4 shiftwidth=4: */
  1218. X/* end of esd.h */
  1219. SHAR_EOF
  1220. $TOUCH -am 0507232890 esd.h &&
  1221. chmod 0644 esd.h ||
  1222. echo "restore of esd.h failed"
  1223. set `wc -c esd.h`;Wc_c=$1
  1224. if test "$Wc_c" != "1006"; then
  1225.     echo original size 1006, current size $Wc_c
  1226. fi
  1227. # ============= feval.h ==============
  1228. echo "x - extracting feval.h (Text)"
  1229. sed 's/^X//' << 'SHAR_EOF' > feval.h &&
  1230. X/* CHK=0x95B2 */
  1231. X/*+-------------------------------------------------------------------------
  1232. X    feval.h
  1233. X    wht%n4hgf@gatech.edu
  1234. X--------------------------------------------------------------------------*/
  1235. X/*+:EDITS:*/
  1236. X/*:05-07-1990-21:24-wht@n4hgf---- 2.80 --- */
  1237. X/*:03-25-1990-14:11-wht@n4hgf------ x2.70 ------- */
  1238. X/*:07-03-1989-22:57-wht------ x2.00 ----- */
  1239. X/*:06-24-1989-16:53-wht-flush edits --- ecu 1.95 */
  1240. X
  1241. X#define FIinstr        1
  1242. X#define FIlen        2
  1243. X#define FIstoi        3
  1244. X#define FIctoi        4
  1245. X#define FIbaud        5
  1246. X#define FIconn        6
  1247. X#define FIcsec        7
  1248. X#define FIpid        8
  1249. X#define FIrchr        9
  1250. X#define FIrchrc        10
  1251. X#define FIxchr        11
  1252. X#define FIxchrc        12
  1253. X#define FIlgetc        13
  1254. X#define FIargc        14
  1255. X#define FIftell        15
  1256. X#define FIfmode        16
  1257. X#define FIisdir        17
  1258. X#define FIisreg        18
  1259. X#define FIischr        19
  1260. X#define FIfatime    20
  1261. X#define FIfmtime    21
  1262. X#define FIfsize        22
  1263. X#define FIcolors    23
  1264. X
  1265. X
  1266. XKEYTAB feval_int_tbl[] =
  1267. X{
  1268. X    {"argc",FIargc},
  1269. X    {"baud",FIbaud},
  1270. X    {"colors",FIcolors},
  1271. X    {"conn",FIconn},
  1272. X    {"csec",FIcsec},
  1273. X    {"ctoi",FIctoi},
  1274. X    {"fatime",FIfatime},
  1275. X    {"fmode",FIfmode},
  1276. X    {"fmtime",FIfmtime},
  1277. X    {"fsize",FIfsize},
  1278. X    {"ftell",FIftell},
  1279. X    {"instr",FIinstr},
  1280. X    {"ischr",FIischr},
  1281. X    {"isdir",FIisdir},
  1282. X    {"isreg",FIisreg},
  1283. X    {"len",FIlen},
  1284. X    {"lgetc",FIlgetc},
  1285. X    {"pid",FIpid},
  1286. X    {"rchr",FIrchr},
  1287. X    {"rchrc",FIrchrc},
  1288. X    {"stoi",FIstoi},
  1289. X    {"xchr",FIxchr},
  1290. X    {"xchrc",FIxchrc},
  1291. X    {(char *)0,0}
  1292. X};
  1293. X
  1294. X#define FSleft        2
  1295. X#define FSright        3
  1296. X#define FSmid        4
  1297. X#define FSdate        5
  1298. X#define FSmonth        6
  1299. X#define FSday        7
  1300. X#define FScgets        9
  1301. X#define FScgetc        10
  1302. X#define FSitos        11
  1303. X#define FSchr        12
  1304. X#define FSdir        13
  1305. X#define FStty        14
  1306. X#define FSrdesc        15
  1307. X#define FSrname        16
  1308. X#define FSline        17
  1309. X#define FSrtel        18
  1310. X#define FSargv        19
  1311. X#define FStime        20
  1312. X#define FStimes        21
  1313. X#define FSedate        22
  1314. X#define FSetime        23
  1315. X#define FSgetenv    24
  1316. X#define FSgetlogin    25
  1317. X
  1318. X
  1319. XKEYTAB feval_str_tbl[] =
  1320. X{
  1321. X    {"argv",FSargv},
  1322. X    {"cgetc",FScgetc},
  1323. X    {"cgets",FScgets},
  1324. X    {"chr",FSchr},
  1325. X    {"date",FSdate},
  1326. X    {"day",FSday},
  1327. X    {"dir",FSdir},
  1328. X    {"edate",FSedate},
  1329. X    {"etime",FSetime},
  1330. X    {"getenv",FSgetenv},
  1331. X    {"getlogin",FSgetlogin},
  1332. X    {"itos",FSitos},
  1333. X    {"left",FSleft},
  1334. X    {"line",FSline},
  1335. X    {"mid",FSmid},
  1336. X    {"month",FSmonth},
  1337. X    {"rdesc",FSrdesc},
  1338. X    {"right",FSright},
  1339. X    {"rname",FSrname},
  1340. X    {"rtelno",FSrtel},
  1341. X    {"time",FStime},
  1342. X    {"times",FStimes},
  1343. X    {"tty",FStty},
  1344. X    {(char *)0,0}
  1345. X};
  1346. X
  1347. X/* vi: set tabstop=4 shiftwidth=4: */
  1348. X/* end of feval.h */
  1349. SHAR_EOF
  1350. $TOUCH -am 0507233390 feval.h &&
  1351. chmod 0644 feval.h ||
  1352. echo "restore of feval.h failed"
  1353. set `wc -c feval.h`;Wc_c=$1
  1354. if test "$Wc_c" != "2322"; then
  1355.     echo original size 2322, current size $Wc_c
  1356. fi
  1357. echo "End of part 15, continue with part 16"
  1358. exit 0
  1359.  
  1360.