ecucmd.h 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570
  1. /*+-------------------------------------------------------------------------
  2. ecucmd.h -- command definitions
  3. wht@wht.net
  4. --------------------------------------------------------------------------*/
  5. /*+:EDITS:*/
  6. /*:04-26-2000-11:15-wht@bob-RELEASE 4.42 */
  7. /*:03-31-1998-21:50-wht@kepler-add CFG_TelnetServer support */
  8. /*:11-03-1997-02:10-wht@kepler-3.08a-option command */
  9. /*:01-25-1997-13:31-wht@yuriatin-add fflush */
  10. /*:01-24-1997-02:37-wht@yuriatin-SOURCE RELEASE 4.00 */
  11. /*:10-16-1996-03:32-wht@yuriatin-add kill,fork procedure command */
  12. /*:10-09-1996-21:00-wht@yuriatin-add whilez/whilenz */
  13. /*:09-18-1996-06:25-wht@yuriatin-CTayt Are You There added */
  14. /*:09-11-1996-20:00-wht@yuriatin-3.48-major telnet,curses,structural overhaul */
  15. /*:11-23-1995-11:20-wht@kepler-source control 3.37 for tsx-11 */
  16. /*:11-14-1995-10:23-wht@kepler-3.37.80-source control point: SOCKETS */
  17. /*:11-12-1995-00:02-wht@gyro-add telopt and ansif */
  18. /*:10-14-1995-23:22-wht@kepler-drop SEAlink support */
  19. /*:09-16-1995-16:32-root@kepler-add td - tcap display command */
  20. /*:05-09-1995-17:23-wht@kepler-add attrtest */
  21. /*:04-02-1995-04:48-wht@n4hgf-added sgrto1 and sgrto2 */
  22. /*:03-21-1995-14:59-wht@n4hgf-add erto and erverbose */
  23. /*:05-04-1994-04:38-wht@n4hgf-ECU release 3.30 */
  24. /*:08-07-1993-11:03-wht@n4hgf-resurrect mkdir cmd */
  25. /*:03-01-1993-03:53-wht@n4hgf-include conxout in interactive help */
  26. /*:12-24-1992-13:57-wht@n4hgf-add eeod */
  27. /*:10-18-1992-14:26-wht@n4hgf-add conxon */
  28. /*:09-10-1992-13:58-wht@n4hgf-ECU release 3.20 */
  29. /*:08-30-1992-23:06-wht@n4hgf-add fkmap */
  30. /*:08-22-1992-15:38-wht@n4hgf-ECU release 3.20 BETA */
  31. /*:04-19-1992-19:54-wht@n4hgf-kbdtest command now visible to users */
  32. /*:03-27-1992-16:21-wht@n4hgf-re-include protection for all .h files */
  33. /*:03-01-1992-13:28-wht@n4hgf-come up to modern times ... enum for CT */
  34. /*:11-16-1991-14:34-wht@n4hgf-add upon + rearrance pcmd_... decls */
  35. /*:11-11-1991-14:33-wht@n4hgf-add dcdwatch */
  36. /*:09-01-1991-18:12-wht@n4hgf2-add setline */
  37. /*:09-01-1991-18:11-wht@n4hgf2-add setline */
  38. /*:08-17-1991-16:41-wht@n4hgf-add kbdtest */
  39. /*:07-29-1991-17:57-wht@n4hgf-add memstat */
  40. /*:07-25-1991-12:55-wht@n4hgf-ECU release 3.10 */
  41. /*:07-04-1991-20:07-wht@n4hgf-add procedure rlog cmd */
  42. /*:05-21-1991-18:07-wht@n4hgf-add pushd/popd commands */
  43. /*:03-20-1991-05:25-root@n4hgf-experimental eto command */
  44. /*:03-16-1991-15:24-wht@n4hgf-add nice */
  45. /*:08-14-1990-20:40-wht@n4hgf-ecu3.00-flush old edit history */
  46. #ifndef _ecucmd_h
  47. #define _ecucmd_h
  48. /* interactive command tokens */
  49. enum CT_codes
  50. {
  51. CTRSVD = 15, /* codes 0-15 reserved */
  52. CTansif,
  53. CTattrtest,
  54. CTautorz,
  55. CTax,
  56. CTayt,
  57. CTbaud,
  58. CTbn,
  59. CTbreak,
  60. CTcd,
  61. CTclrx,
  62. CTconxon,
  63. CTda,
  64. CTdcdwatch,
  65. CTdial,
  66. CTdo,
  67. CTduplex,
  68. CTerto,
  69. CTerverbose,
  70. CTeto,
  71. CTexit,
  72. CTfasi,
  73. CTfi,
  74. CTfkey,
  75. CTfkmap,
  76. CTgetf,
  77. CThangup,
  78. CThelp,
  79. CTkbdtest,
  80. CTllp,
  81. CTloff,
  82. CTlog,
  83. CTmemstat,
  84. CTmkdir,
  85. CTnice,
  86. CTnl,
  87. CTnlin,
  88. CTnlout,
  89. CToa,
  90. CTparity,
  91. CTpcmd,
  92. CTpid,
  93. CTplog,
  94. CTpopd,
  95. CTptrace,
  96. CTpushd,
  97. CTputf,
  98. CTpwd,
  99. CTredial,
  100. CTrev,
  101. CTrk,
  102. CTrtscts,
  103. CTrx,
  104. CTry,
  105. CTrz,
  106. CTsdname,
  107. CTsgr,
  108. CTsgrto1,
  109. CTsgrto2,
  110. CTsk,
  111. CTstat,
  112. CTsx,
  113. CTsy,
  114. CTsz,
  115. CTtime,
  116. CTtd,
  117. CTtelopt,
  118. CTts,
  119. CTtty,
  120. CTxa,
  121. CTxlog,
  122. CTxon,
  123. #if defined(CFG_TelnetServer)
  124. CTserve,
  125. CTservewire,
  126. CTsockserve,
  127. CTsockclose,
  128. #endif
  129. CT____end,
  130. CTdummy1 = 120,
  131. CTdummy2,
  132. CTdummy3,
  133. CTdummy4
  134. };
  135. #define TOKEN_QUAN 128 /* for help package */
  136. /*
  137. * if compiling helpgen, we need dummy functions for linker
  138. * to resolve though they are never called; when compiling ecu,
  139. * we just declare them as integer functions
  140. */
  141. #if defined(HELPGEN)
  142. #define S static
  143. #define BODY {return(-1);}
  144. #else
  145. #define S
  146. #define BODY ;
  147. #endif
  148. S int
  149. pcmd_ansif() BODY
  150. S int
  151. pcmd_autorz() BODY
  152. S int
  153. pcmd_ayt() BODY
  154. S int
  155. pcmd_baud() BODY
  156. S int
  157. pcmd_break() BODY
  158. S int
  159. pcmd_cd() BODY
  160. S int
  161. pcmd_clrx() BODY
  162. S int
  163. pcmd_cls() BODY
  164. S int
  165. pcmd_color() BODY
  166. S int
  167. pcmd_continue() BODY
  168. S int
  169. pcmd_conxon() BODY
  170. S int
  171. pcmd_cursor() BODY
  172. S int
  173. pcmd_dcdwatch() BODY
  174. S int
  175. pcmd_delline() BODY
  176. S int
  177. pcmd_dial() BODY
  178. S int
  179. pcmd_do() BODY
  180. S int
  181. pcmd_duplex() BODY
  182. S int
  183. pcmd_echo() BODY
  184. S int
  185. pcmd_eeod() BODY
  186. S int
  187. pcmd_eeol() BODY
  188. S int
  189. pcmd_else() BODY
  190. S int
  191. pcmd_erto() BODY
  192. S int
  193. pcmd_erverbose() BODY
  194. S int
  195. pcmd_exec() BODY
  196. S int
  197. pcmd_exit() BODY
  198. S int
  199. pcmd_expresp() BODY
  200. S int
  201. pcmd_getf() BODY
  202. #if defined(FASI)
  203. S int
  204. pcmd_fasi() BODY
  205. #endif
  206. S int
  207. pcmd_fchmod() BODY
  208. S int
  209. pcmd_fclose() BODY
  210. S int
  211. pcmd_fflush() BODY
  212. S int
  213. pcmd_fgetc() BODY
  214. S int
  215. pcmd_fgets() BODY
  216. S int
  217. pcmd_fkey() BODY
  218. S int
  219. pcmd_fkmap() BODY
  220. S int
  221. pcmd_flush() BODY
  222. S int
  223. pcmd_fopen() BODY
  224. S int
  225. pcmd_fork() BODY
  226. S int
  227. pcmd_fputc() BODY
  228. S int
  229. pcmd_fputs() BODY
  230. S int
  231. pcmd_fread() BODY
  232. S int
  233. pcmd_fseek() BODY
  234. S int
  235. pcmd_fdel() BODY
  236. S int
  237. pcmd_fwrite() BODY
  238. S int
  239. pcmd_gosub() BODY
  240. S int
  241. pcmd_gosubb() BODY
  242. S int
  243. pcmd_goto() BODY
  244. S int
  245. pcmd_gotob() BODY
  246. S int
  247. pcmd_hangup() BODY
  248. S int
  249. pcmd_hexdump() BODY
  250. S int
  251. pcmd_home() BODY
  252. S int
  253. pcmd_icolor() BODY
  254. S int
  255. pcmd_insline() BODY
  256. S int
  257. pcmd_ifge() BODY
  258. S int
  259. pcmd_ifgt() BODY
  260. S int
  261. pcmd_ifi() BODY
  262. S int
  263. pcmd_ifle() BODY
  264. S int
  265. pcmd_iflt() BODY
  266. S int
  267. pcmd_ifnz() BODY
  268. S int
  269. pcmd_ifs() BODY
  270. S int
  271. pcmd_ifz() BODY
  272. S int
  273. pcmd_kill() BODY
  274. S int
  275. pcmd_lbreak() BODY
  276. S int
  277. pcmd_lgets() BODY
  278. S int
  279. pcmd_logevent() BODY
  280. S int
  281. pcmd_lookfor() BODY
  282. S int
  283. pcmd_mkdir() BODY
  284. S int
  285. pcmd_mkvar() BODY
  286. S int
  287. pcmd_nap() BODY
  288. S int
  289. pcmd_nice() BODY
  290. int
  291. pcmd_option() BODY
  292. S int
  293. pcmd_parity() BODY
  294. S int
  295. pcmd_pclose() BODY
  296. S int
  297. pcmd_plog() BODY
  298. S int
  299. pcmd_popd() BODY
  300. S int
  301. pcmd_popen() BODY
  302. S int
  303. pcmd_prompt() BODY
  304. S int
  305. pcmd_ptrace() BODY
  306. S int
  307. pcmd_pushd() BODY
  308. S int
  309. pcmd_putf() BODY
  310. S int
  311. pcmd_return() BODY
  312. S int
  313. pcmd_rk() BODY
  314. S int
  315. pcmd_rlog() BODY
  316. S int
  317. pcmd_rname() BODY
  318. S int
  319. pcmd_rtscts() BODY
  320. S int
  321. pcmd_rx() BODY
  322. S int
  323. pcmd_ry() BODY
  324. S int
  325. pcmd_rz() BODY
  326. S int
  327. pcmd_scrdump() BODY
  328. S int
  329. pcmd_send() BODY
  330. S int
  331. pcmd_set() BODY
  332. S int
  333. pcmd_setline() BODY
  334. S int
  335. pcmd_sk() BODY
  336. S int
  337. pcmd_sx() BODY
  338. S int
  339. pcmd_sy() BODY
  340. S int
  341. pcmd_system() BODY
  342. S int
  343. pcmd_sz() BODY
  344. S int
  345. pcmd_telopt() BODY
  346. S int
  347. pcmd_upon() BODY
  348. S int
  349. pcmd_vidcolor() BODY
  350. S int
  351. pcmd_vidnorm() BODY
  352. S int
  353. pcmd_vidrev() BODY
  354. S int
  355. pcmd_whilei() BODY
  356. S int
  357. pcmd_whilenz() BODY
  358. S int
  359. pcmd_whiles() BODY
  360. S int
  361. pcmd_whilez() BODY
  362. S int
  363. pcmd_xon() BODY
  364. #if defined(CFG_TelnetServer)
  365. S int pcmd_serve() BODY
  366. S int pcmd_servewire() BODY
  367. S int pcmd_sockserve() BODY
  368. S int pcmd_sockclose() BODY
  369. #endif
  370. /* command classification */
  371. #define ccG 1 /* general command */
  372. #define ccC 2 /* comm command */
  373. #define ccT 3 /* transfer command */
  374. #define ccP 4 /* procedure-related command */
  375. typedef struct p_cmd
  376. {
  377. char *cmd; /* command string */
  378. short min_ch; /* min chars for match (0 if not interactive) */
  379. short token; /* command number (if interactive) */
  380. char *descr; /* command description (if interactive) */
  381. PFI proc; /* procedure cmd handler (or 0) */
  382. short cmdclass; /* cc{C,G,P,X} or 0 (for help processor) */
  383. }
  384. P_CMD;
  385. #if !defined(DECLARE_P_CMD)
  386. #if defined(NEED_P_CMD)
  387. extern P_CMD icmd_cmds[];
  388. #endif
  389. #else
  390. P_CMD icmd_cmds[] =
  391. {
  392. {"ansif", 4, CTansif, "ANSI filter state", pcmd_ansif, ccG},
  393. {"ax", 2, CTax, "ascii char to hex/oct/dec", 0, ccG},
  394. {"ayt", 2, CTayt, "send telnet Are You There?", pcmd_ayt, ccC},
  395. {"attrtest", 5, CTattrtest, "console attribute test", 0, ccG},
  396. {"autorz", 6, CTautorz, "auto ZMODEM receive state", pcmd_autorz, ccT},
  397. {"baud", 2, CTbaud, "set/display line bit rate", pcmd_baud, ccC},
  398. {"bn", 2, CTbn, "all console event alarm", 0, ccG},
  399. {"break", 2, CTbreak, "send break to remote", pcmd_break, ccC},
  400. {"cd", 2, CTcd, "change current directory", pcmd_cd, ccG},
  401. {"clrx", 2, CTclrx, "clear local transmit XOFF", pcmd_clrx, ccC},
  402. {"cls", 0, 0, "", pcmd_cls, 0},
  403. {"color", 0, 0, "", pcmd_color, 0},
  404. {"continue", 0, 0, "", pcmd_continue, 0},
  405. {"conxon", 4, CTconxon, "console software flow control", pcmd_conxon, ccG},
  406. {"cursor", 0, 0, "", pcmd_cursor, 0},
  407. {"da", 2, CTda, "decimal to ascii char", 0, ccG},
  408. {"dcdwatch", 3, CTdcdwatch, "control DCD disconnect", pcmd_dcdwatch, ccC},
  409. {"dial", 1, CTdial, "dial remote destination", pcmd_dial, ccC},
  410. {"delline", 0, 0, "", pcmd_delline, 0},
  411. {"do", 2, CTdo, "perform procedure", pcmd_do, ccP},
  412. {"duplex", 2, CTduplex, "set/display duplex", pcmd_duplex, ccC},
  413. {"echo", 0, 0, "", pcmd_echo, 0},
  414. {"eeod", 0, 0, "", pcmd_eeod, 0},
  415. {"eeol", 0, 0, "", pcmd_eeol, 0},
  416. {"else", 0, 0, "", pcmd_else, 0},
  417. {"erto", 3, CTerto, "expect-respond timeout", pcmd_erto, ccC},
  418. {"erverbose", 3, CTerverbose, "expect-respond verbosity",
  419. pcmd_erverbose, ccC},
  420. {"eto", 3, CTeto, "ESC/fkey timeout", 0, ccG},
  421. {"exec", 0, 0, "", pcmd_exec, 0},
  422. {"exit", 2, CTexit, "hang up, exit program", pcmd_exit, ccG},
  423. {"expresp", 0, 0, "", pcmd_expresp, 0},
  424. #if defined(FASI)
  425. {"fasi", 2, CTfasi, "FAS/i driver control", pcmd_fasi, ccC},
  426. #endif
  427. {"fchmod", 0, 0, "", pcmd_fchmod, 0},
  428. {"fclose", 0, 0, "", pcmd_fclose, 0},
  429. {"fdel", 0, 0, "", pcmd_fdel, 0},
  430. {"fflush", 0, 0, "", pcmd_fflush, 0},
  431. {"fgetc", 0, 0, "", pcmd_fgetc, 0},
  432. {"fgets", 0, 0, "", pcmd_fgets, 0},
  433. {"fi", 2, CTfi, "send text file to line", 0, ccG},
  434. {"fkey", 3, CTfkey, "function key definition", pcmd_fkey, ccG},
  435. {"fkmap", 3, CTfkmap, "redefine function key map", pcmd_fkmap, ccG},
  436. {"flush", 0, 0, "", pcmd_flush, 0},
  437. {"fopen", 0, 0, "", pcmd_fopen, 0},
  438. {"fork", 0, 0, "", pcmd_fork, 0},
  439. {"fputc", 0, 0, "", pcmd_fputc, 0},
  440. {"fputs", 0, 0, "", pcmd_fputs, 0},
  441. {"fread", 0, 0, "", pcmd_fread, 0},
  442. {"fseek", 0, 0, "", pcmd_fseek, 0},
  443. {"fwrite", 0, 0, "", pcmd_fwrite, 0},
  444. {"getf", 0, 0, "", pcmd_getf, 0},
  445. {"gosub", 0, 0, "", pcmd_gosub, 0},
  446. {"gosubb", 0, 0, "", pcmd_gosubb, 0},
  447. {"goto", 0, 0, "", pcmd_goto, 0},
  448. {"gotob", 0, 0, "", pcmd_gotob, 0},
  449. {"hangup", 2, CThangup, "hang up modem", pcmd_hangup, ccC},
  450. {"help", 2, CThelp, "invoke help", 0, ccG},
  451. {"hexdump", 0, 0, "", pcmd_hexdump, 0},
  452. {"home", 0, 0, "", pcmd_home, 0},
  453. {"icolor", 0, 0, "", pcmd_icolor, 0},
  454. {"ifge", 0, 0, "", pcmd_ifge, 0},
  455. {"ifgt", 0, 0, "", pcmd_ifgt, 0},
  456. {"ifi", 0, 0, "", pcmd_ifi, 0},
  457. {"ifle", 0, 0, "", pcmd_ifle, 0},
  458. {"iflt", 0, 0, "", pcmd_iflt, 0},
  459. {"ifnz", 0, 0, "", pcmd_ifnz, 0},
  460. {"ifs", 0, 0, "", pcmd_ifs, 0},
  461. {"ifz", 0, 0, "", pcmd_ifz, 0},
  462. {"insline", 0, 0, "", pcmd_insline, 0},
  463. {"kbdtest", 4, CTkbdtest, "test keyboard mapping", 0, ccG},
  464. {"kill", 0, 0, "", pcmd_kill, 0},
  465. {"lbreak", 0, 0, "", pcmd_lbreak, 0},
  466. {"llp", 2, CTllp, "set session log to /dev/lp", 0, ccG},
  467. {"lgets", 0, 0, "", pcmd_lgets, 0},
  468. {"loff", 3, CTloff, "turn off session logging", 0, ccG},
  469. {"log", 3, CTlog, "session logging control", 0, ccG},
  470. {"logevent", 0, 0, "", pcmd_logevent, 0},
  471. {"lookfor", 0, 0, "", pcmd_lookfor, 0},
  472. #if defined(CFG_Malloc3X)
  473. {"memstat", 3, CTmemstat, "", 0, 0},
  474. #endif
  475. {"mkdir", 3, CTmkdir, "mkdir <dirname>", pcmd_mkdir, ccG},
  476. {"mkvar", 0, 0, "", pcmd_mkvar, 0},
  477. {"nap", 0, 0, "", pcmd_nap, 0},
  478. {"nice", 2, CTnice, "change process nice (0-39)", pcmd_nice, 0},
  479. {"nl", 2, CTnl, "display CR/LF mapping", 0, ccC},
  480. {"nlin", 3, CTnlin, "receive CR/LF mapping", 0, ccC},
  481. {"nlout", 3, CTnlout, "transmit CR/LF mapping", 0, ccC},
  482. {"oa", 2, CToa, "octal to ascii char", 0, ccG},
  483. {"option", 0, 0, "", pcmd_option, ccG},
  484. {"parity", 3, CTparity, "set/display line parity", pcmd_parity, ccC},
  485. {"pclose", 0, 0, "", pcmd_pclose, 0},
  486. {"pcmd", 2, CTpcmd, "execute procedure command", 0, ccP},
  487. {"pid", 2, CTpid, "display process ids", 0, ccG},
  488. {"plog", 2, CTplog, "control procedure logging", pcmd_plog, ccP},
  489. {"popd", 2, CTpopd, "pop to previous directory", pcmd_popd, ccG},
  490. {"popen", 0, 0, "", pcmd_popen, 0},
  491. {"prompt", 0, 0, "", pcmd_prompt, 0},
  492. {"ptrace", 2, CTptrace, "control procedure trace", pcmd_ptrace, ccP},
  493. {"pushd", 2, CTpushd, "push to new directory", pcmd_pushd, ccG},
  494. {"putf", 0, 0, "", pcmd_putf, 0},
  495. {"pwd", 2, CTpwd, "print working directory", 0, ccG},
  496. {"redial", 3, CTredial, "redial last number", 0, ccC},
  497. {"return", 0, 0, "", pcmd_return, 0},
  498. {"rev", 3, CTrev, "ecu revision/make date", 0, ccG},
  499. {"rk", 2, CTrk, "receive via C-Kermit", pcmd_rk, ccT},
  500. {"rlog", 0, 0, "", pcmd_rlog, 0},
  501. {"rname", 0, 0, "", pcmd_rname, 0},
  502. {"rtscts", 3, CTrtscts, "RTS/CTS flow control", pcmd_rtscts, ccC},
  503. {"rx", 2, CTrx, "receive via XMODEM/CRC", pcmd_rx, ccT},
  504. {"ry", 2, CTry, "receive via YMODEM Batch", pcmd_ry, ccT},
  505. {"rz", 2, CTrz, "receive via ZMODEM/CRC32", pcmd_rz, ccT},
  506. {"scrdump", 0, 0, "", pcmd_scrdump, 0},
  507. {"sdname", 3, CTsdname, "select screen dump name", 0, ccG},
  508. {"send", 0, 0, "", pcmd_send, 0},
  509. #if defined(CFG_TelnetServer)
  510. {"serve", 0, CTserve, "", pcmd_serve, 0},
  511. {"servewire", 0, CTservewire, "", pcmd_servewire, 0},
  512. {"sockserve", 0, CTsockserve, "", pcmd_sockserve, 0},
  513. {"sockclose", 0, CTsockclose, "", pcmd_sockclose, 0},
  514. #endif
  515. {"set", 0, 0, "", pcmd_set, 0},
  516. {"setline", 0, 0, "", pcmd_setline, 0},
  517. {"sgr", 3, CTsgr, "send command/get response", 0, ccC},
  518. {"sgrto1", 6, CTsgrto1, "set SGr 1st char timeout", 0, ccC},
  519. {"sgrto2", 6, CTsgrto2, "set SGr later char timeout", 0, ccC},
  520. {"sk", 2, CTsk, "send via C-Kermit", pcmd_sk, ccT},
  521. {"stat", 2, CTstat, "general status", 0, ccG},
  522. {"sx", 2, CTsx, "send via XMODEM/CRC", pcmd_sx, ccT},
  523. {"sy", 2, CTsy, "send via YMODEM Batch", pcmd_sy, ccT},
  524. {"system", 0, CTsy, "", pcmd_system, 0},
  525. {"sz", 2, CTsz, "send via ZMODEM/CRC32", pcmd_sz, ccT},
  526. {"telopt", 3, CTtelopt, "telnet options display state", pcmd_telopt, ccC},
  527. {"time", 2, CTtime, "time of day", 0, ccG},
  528. {"td", 2, CTtd, "termcap variable display", 0, ccG},
  529. {"ts", 2, CTts, "termio display", 0, ccC},
  530. {"tty", 2, CTtty, "console tty name", 0, ccG},
  531. {"upon", 0, 0, "", pcmd_upon, 0},
  532. {"vidcolor", 0, 0, "", pcmd_vidcolor, 0},
  533. {"vidnorm", 0, 0, "", pcmd_vidnorm, 0},
  534. {"vidrev", 0, 0, "", pcmd_vidrev, 0},
  535. {"whilei", 0, 0, "", pcmd_whilei, 0},
  536. {"whilenz", 0, 0, "", pcmd_whilenz, 0},
  537. {"whiles", 0, 0, "", pcmd_whiles, 0},
  538. {"whilez", 0, 0, "", pcmd_whilez, 0},
  539. {"xa", 2, CTxa, "hex to ascii char", 0, ccG},
  540. {"xlog", 2, CTxlog, "protocol packet logging", 0, ccT},
  541. {"xon", 2, CTxon, "line xon/xoff flow control", pcmd_xon, ccC},
  542. /*
  543. * These cmds are interecepted by special code in ecucmd.h and appear
  544. * here only so they will be picked up by the help system.
  545. */
  546. {"!", 1, CTdummy1, "execute shell (tty)", 0, ccG},
  547. {"$", 1, CTdummy2, "execute shell (comm line)", 0, ccG},
  548. {"-", 1, CTdummy3, "execute program", 0, ccG},
  549. {"?", 1, CTdummy4, "get help", 0, ccG},
  550. {"", 0, -1, "", 0, 0} /* list ends with token value of -1 */
  551. };
  552. #endif
  553. #endif /* _ecucmd_h */
  554. /* end of ecucmd.h */
  555. /* vi: set tabstop=4 shiftwidth=4: */