ckuus2.c
上传用户:dufan58
上传日期:2007-01-05
资源大小:3407k
文件大小:398k
源码类别:

通讯/手机编程

开发平台:

Windows_Unix

  1. /*  C K U U S 2  --  User interface strings & help text module for C-Kermit  */
  2. /*
  3.   Authors:
  4.     Frank da Cruz <fdc@columbia.edu>,
  5.     Jeffrey Altman <jaltman@columbia.edu>,
  6.     The Kermit Project
  7.     Columbia University
  8.     New York City
  9.   Copyright (C) 1985, 2000,
  10.     Trustees of Columbia University in the City of New York.
  11.     All rights reserved.  See the C-Kermit COPYING.TXT file or the
  12.     copyright text in the ckcmai.c module for disclaimer and permissions.
  13.   This module contains HELP command and other long text strings.
  14.   IMPORTANT: Character string constants longer than about 250 are not portable.
  15.   Longer strings should be broken up into arrays of strings and accessed with
  16.   hmsga() rather than hmsg().
  17. */
  18. #include "ckcsym.h"
  19. #include "ckcdeb.h"
  20. #include "ckcnet.h"
  21. #include "ckcasc.h"
  22. #include "ckcker.h"
  23. #include "ckuusr.h"
  24. #include "ckcxla.h"
  25. #ifdef OS2
  26. #ifdef NT
  27. #include <windows.h>
  28. #else /* not NT */
  29. #define INCL_KBD
  30. #ifdef OS2MOUSE
  31. #define INCL_MOU
  32. #endif /* OS2MOUSE */
  33. #define INCL_DOSMISC
  34. #define INCL_DOSDEVICES
  35. #include <os2.h> /* This pulls in a whole load of stuff */
  36. #undef COMMENT
  37. #endif /* NT */
  38. #include "ckocon.h"
  39. #include "ckokvb.h"
  40. #include "ckokey.h"
  41. #endif /* OS2 */
  42. extern xx_strp xxstring;
  43. extern char *ccntab[];
  44. #ifndef NOICP
  45. extern int cmflgs;
  46. #ifdef DCMDBUF
  47. extern char *cmdbuf, *atmbuf;
  48. #else
  49. extern char cmdbuf[], atmbuf[];
  50. #endif /* DCMDBUF */
  51. #endif /* NOICP */
  52. extern char *xarg0;
  53. extern int nrmt, nprm, dfloc, local, parity, escape;
  54. extern int turn, flow;
  55. extern int binary, quiet, keep;
  56. extern int success, xaskmore;
  57. #ifdef OS2
  58. extern int tt_rows[], tt_cols[];
  59. #else /* OS2 */
  60. extern int tt_rows, tt_cols;
  61. #endif /* OS2 */
  62. extern int cmd_rows, cmd_cols;
  63. extern long speed;
  64. extern char *dftty, *versio, *ckxsys;
  65. #ifndef NOHELP
  66. extern char *helpfile;
  67. #endif /* NOHELP */
  68. extern struct keytab prmtab[];
  69. #ifndef NOXFER
  70. extern struct keytab remcmd[];
  71. #endif /* NOXFER */
  72. #ifndef NOICP
  73. /*  Interactive help strings  */
  74. static char *tophlp[] = {
  75. "Trustees of Columbia University in the City of New York.n",
  76. #ifndef NOHELP
  77. #ifdef OS2
  78. "  Type INTRO   for a brief introduction to the Kermit Command screen.",
  79. #else
  80. "  Type INTRO   for a brief introduction to C-Kermit.",
  81. #endif /* OS2 */
  82. "  Type VERSION for version and copyright information.",
  83. "  Type HELP    followed by a command name for help about a specific command.",
  84. #ifndef NOPUSH
  85. #ifdef UNIX
  86. "  Type MANUAL  to access the C-Kermit manual page.",
  87. #else
  88. #ifdef VMS
  89. "  Type MANUAL  to access the C-Kermit help topic.",
  90. #else
  91. #ifdef OS2
  92. "  Type MANUAL  to access the K95 manual.",
  93. #else
  94. "  Type MANUAL  to access the C-Kermit manual.",
  95. #endif /* OS2 */
  96. #endif /* VMS */
  97. #endif /* UNIX */
  98. #endif /* NOPUSH */
  99. "  Type NEWS    for news about new features.",
  100. "  Type SUPPORT to learn how to get technical support.",
  101. "  Press ?      (question mark) at the prompt, or anywhere within a command,",
  102. "               for a menu (context-sensitive help, menu on demand).",
  103. #else
  104. "Press ? for a list of commands; see documentation for detailed descriptions.",
  105. #endif /* NOHELP */
  106. #ifndef NOCMDL
  107. #ifndef NOHELP
  108. " ",
  109. "  Type HELP OPTIONS for help with command-line options.",
  110. #endif /* NOHELP */
  111. #endif /* NOCMDL */
  112. " ",
  113. "DOCUMENTATION: "Using C-Kermit" by Frank da Cruz and Christine M. Gianone,",
  114. "Digital Press / Butterworth-Heinemann, latest edition.  Please purchase this",
  115. "book.  It shows you how to use C-Kermit, answers your questions, reduces the",
  116. "load on our help desk, and book sales are the primary source of funding for",
  117. "C-Kermit development.  More info: http://www.columbia.edu/kermit/.",
  118. #ifdef MAC
  119. " ",
  120. "Also see the Mac Kermit Doc and Bwr files on the Mac Kermit diskette.n",
  121. #else
  122. #ifdef HPUX10
  123. " ",
  124. "See the files in /usr/share/lib/kermit/ for additional information.",
  125. #endif /* HPUX10 */
  126. #endif /* MAC */
  127. ""
  128. };
  129. #ifndef NOHELP
  130. char *newstxt[] = {
  131. #ifdef OS2
  132. "Welcome to Kermit 95 1.1.18",
  133. " ",
  134. "Major new features (not necessarily available on all platforms) include:",
  135. #else
  136. "Welcome to C-Kermit 7.0.196.",
  137. " ",
  138. "Major new features (not necessarily available on all platforms) include:",
  139. #endif /* OS2 */
  140. " ",
  141. #ifndef NOIKSD
  142. " . Internet Kermit Service Daemon and client.",
  143. #endif /* NOIKSD */
  144. #ifdef CK_AUTHENTICATION
  145. #ifdef CK_ENCRYPTION
  146. " . Secure network authentication and encryption",
  147. #else
  148. " . Secure network authentication",
  149. #endif /* CK_ENCRYPTION */
  150. #ifdef NETCMD
  151. " . External communication program interface.",
  152. #endif /* NETCMD */
  153. #ifdef NETPTY
  154. " . Scripted control of local programs.",
  155. #endif /* NETPTY */
  156. #endif /* CK_AUTHENTICATION */
  157. " . More-powerful filename-matching patterns",
  158. " . Recursive directory-tree transfer and directory listing.",
  159. " . Automatic per-file text/binary mode switching.",
  160. #ifndef NOFAST
  161. " . Fast Kermit protocol settings are now the default.",
  162. #endif /* NOFAST */
  163. " . File-transfer selection and other option switches (HELP SEND, HELP GET).",
  164. #ifdef PIPESEND
  165. " . File-transfer pipes and filters.",
  166. #endif /* PIPESEND */
  167. " . New streaming Kermit protocol for use on reliable connections.",
  168. #ifdef CKREGEX
  169. " . More-flexible wildcards for filename matching (HELP WILDCARD).",
  170. #endif /* CKREGEX */
  171. #ifndef NOLOCAL
  172. " . Numerous modem and dialing improvements.",
  173. " . More/higher serial speeds on most platforms (SET SPEED ?).",
  174. " . New data-bits/parity/stop-bits options (HELP SET SERIAL).",
  175. #endif /* NOLOCAL */
  176. #ifdef CK_PERMS
  177. " . File-permission preservation in UNIX and VMS.",
  178. #endif /* CK_PERMS */
  179. " . Improvements in CD and other directory-related commands.",
  180. #ifndef NOCSETS
  181. #ifdef UNICODE
  182. " . Unicode - the Universal Character Set (UCS-2 and UTF-8)",
  183. #endif /* UNICODE */
  184. #ifndef NOGREEK
  185. " . Greek character sets.",
  186. #endif /* NOGREEK */
  187. " . New Euro-compliant and other character sets.",
  188. " . Automatic character-set switching (HELP ASSOCIATE).",
  189. #endif /* NOCSETS */
  190. #ifndef NOSPL
  191. " . New script programming features, functions, and variables.",
  192. " . "kerbang" scripts.",
  193. " . General-purpose file i/o and floating-point arithmetic packages.",
  194. #endif /* NOSPL */
  195. #ifdef CXLOGDIAL
  196. " . New connection log (HELP LOG).",
  197. #endif /* CXLOGDIAL */
  198. #ifndef NOHELP
  199. " . New MANUAL command to access online documentation (HELP MANUAL).",
  200. #endif /* NOHELP */
  201. " . Performance improvements.",
  202. " . Bug fixes.",
  203. " ",
  204. "These new features are documented in the ckermit2.txt file, to be used as",
  205. "a supplement to the manual, "Using C-Kermit", second edition (1997),",
  206. "until the third edition is ready.",
  207. #ifdef OS2
  208. " ",
  209. "And in the online Kermit 95 manual, accessible via the MANUAL command.",
  210. #endif /* OS2 */
  211. " ",
  212. "If the release date shown by the VERSION command is long past, be sure to",
  213. "check with the Kermit Project to see if there have been updates.",
  214. ""
  215. };
  216. #endif /* NOHELP */
  217. #ifndef NOHELP
  218. char *introtxt[] = {
  219. #ifdef NT
  220. "Welcome to K-95, Kermit communications software for:",
  221. #else
  222. #ifdef OS2
  223. "Welcome to Kermit/2, Kermit communications software for:",
  224. #else
  225. #ifdef UNIX
  226. #ifdef HPUX
  227. "Welcome to HP-UX C-Kermit communications software for:",
  228. #else
  229. "Welcome to UNIX C-Kermit communications software for:",
  230. #endif /* HPUX */
  231. #else
  232. #ifdef VMS
  233. "Welcome to VMS C-Kermit communications software for:",
  234. #else
  235. #ifdef VOS
  236. "Welcome to VOS C-Kermit communications software for:",
  237. #else
  238. #ifdef MAC
  239. "Welcome to Mac Kermit communications software for:",
  240. #else
  241. "Welcome to C-Kermit communications software for:",
  242. #endif /* MAC */
  243. #endif /* VOS */
  244. #endif /* VMS */
  245. #endif /* UNIX */
  246. #endif /* OS2 */
  247. #endif /* NT */
  248. #ifndef NOXFER
  249. " . Error-free and efficient file transfer",
  250. #endif /* NOXFER */
  251. #ifndef NOLOCAL
  252. #ifdef OS2
  253. " . VT320/220/102/100/52, ANSI, Wyse, DG, Televideo, and other emulations",
  254. #else
  255. #ifdef MAC
  256. " . VT220 terminal emulation",
  257. #else
  258. " . Terminal connection",
  259. #endif /* MAC */
  260. #endif /* OS2 */
  261. #endif /* NOLOCAL */
  262. #ifndef NOSPL
  263. " . Script programming",
  264. #endif /* NOSPL */
  265. #ifndef NOICS
  266. " . International character set conversion",
  267. #endif /* NOICS */
  268. #ifndef NOLOCAL
  269. "nSupporting:",
  270. " . Serial connections, direct or dialed.",
  271. #ifndef NODIAL
  272. " . Automatic modem dialing",
  273. #endif /* NODIAL */
  274. #ifdef TCPSOCKET
  275. " . TCP/IP network connections",
  276. #endif /* TCPSOCKET */
  277. #ifdef ANYX25
  278. " . X.25 network connections",
  279. #endif /* ANYX25 */
  280. #ifdef OS2
  281. #ifdef DECNET
  282. " . DECnet/PATHWORKS LAT Ethernet connections",
  283. #endif /* DECNET */
  284. #ifdef SUPERLAT
  285. " . Meridian Technologies' SuperLAT connections",
  286. #endif /* SUPERLAT */
  287. #ifdef NPIPE
  288. " . Named-pipe connections",
  289. #endif /* NPIPE */
  290. #ifdef CK_NETBIOS
  291. " . NETBIOS connections",
  292. #endif /* CK_NETBIOS */
  293. #endif /* OS2 */
  294. #endif /* NOLOCAL */
  295. "nWhile typing commands, you may use the following special characters:",
  296. " . DEL, RUBOUT, BACKSPACE, CTRL-H: Delete the most recent character typed.",
  297. " . CTRL-W:  Delete the most recent word typed.",
  298. " . CTRL-U:  Delete the current line.",
  299. " . CTRL-R:  Redisplay the current line.",
  300. #ifdef CK_RECALL
  301. #ifdef OS2
  302. " . 30 or CTRL-B: Command recall - go backwards in command recall buffer.",
  303. " . 31 or CTRL-N: Command recall - go forward in command recall buffer.",
  304. #else
  305. " . CTRL-P:  Command recall - go backwards in command recall buffer.",
  306. " . CTRL-B:  Command recall - same as Ctrl-P.",
  307. " . CTRL-N:  Command recall - go forward in command recall buffer.",
  308. #endif /* OS2 */
  309. #endif /* CK_RECALL */
  310. " . ?        (question mark) Display a menu for the current command field.",
  311. " . ESC      (or TAB) Attempt to complete the current field.",
  312. " . \        (backslash) include the following character literally",
  313. #ifndef NOSPL
  314. "            or introduce a backslash code, variable, or function.",
  315. #else
  316. "            or introduce a numeric backslash code.",
  317. #endif /* NOSPL */
  318. "  Command words other than filenames can be abbreviated in most contexts.",
  319. #ifdef OS2
  320. #ifdef NT
  321. "nBasic K-95 commands:",
  322. "  EXIT          exit from K-95",
  323. #else /* NT */
  324. "nBasic Kermit/2 commands:",
  325. "  EXIT          exit from Kermit/2",
  326. #endif /* NT */
  327. #else /* OS2 */
  328. "nBasic C-Kermit commands:",
  329. "  EXIT          exit from C-Kermit",
  330. #endif /* NT */
  331. "  HELP          request general help",
  332. "  HELP command  request help about the given command",
  333. "  TAKE          execute commands from a file",
  334. "  TYPE          display a file on your screen",
  335. #ifndef NOXFER
  336. "nCommands for file transfer:",
  337. "  SEND          send files",
  338. "  RECEIVE       receive files",
  339. "  GET           get files from a Kermit server",
  340. #ifdef CK_RESEND
  341. "  RESEND        recover an interrupted send",
  342. "  REGET         recover an interrupted get from a server",
  343. #endif /* CK_RESEND */
  344. #ifndef NOSERVER
  345. "  SERVER        be a Kermit server",
  346. #endif /* NOSERVER */
  347. "nFile-transfer speed selection:",
  348. "  FAST          use fast settings -- THIS IS THE DEFAULT",
  349. "  CAUTIOUS      use slower, more cautious settings",
  350. "  ROBUST        use extremely slow and cautious settings",
  351. "nFile-transfer performance fine tuning:",
  352. "  SET RECEIVE PACKET-LENGTH  Kermit packet size",
  353. "  SET WINDOW                 number of sliding window slots",
  354. "  SET PREFIXING              amount of control-character prefixing",
  355. #endif /* NOXFER */
  356. "nImportant settings:",
  357. "  SET PARITY    communications parity",
  358. #ifdef CK_RTSCTS
  359. "  SET FLOW      communications flow control, such as RTS/CTS",
  360. #else
  361. "  SET FLOW      communications flow control, such as XON/XOFF",
  362. #endif /* CK_RTSCTS */
  363. "  SET FILE      file settings, for example TYPE TEXT or TYPE BINARY",
  364. #ifndef NOLOCAL
  365. "nTo make a direct serial connection:",
  366. #ifdef OS2
  367. #ifdef NT
  368. #ifdef CK_TAPI
  369. "  SET TAPI LINE select TAPI communication device",
  370. #endif /* CK_TAPI */
  371. "  SET PORT      select serial communication device",
  372. #else
  373. "  SET PORT      select serial communication port or server",
  374. #endif /* NT */
  375. #else
  376. "  SET LINE      select serial communication device",
  377. #endif /* OS2 */
  378. "  SET SPEED     select communication speed",
  379. "  CONNECT       begin terminal connection",
  380. #ifndef NODIAL
  381. "nTo dial out with a modem:",
  382. "  SET DIAL DIRECTORY     specify dialing directory file (optional)",
  383. "  SET DIAL COUNTRY-CODE  country you are dialing from (*)",
  384. "  SET DIAL AREA-CODE     area-code you are dialing from (*)",
  385. "  LOOKUP                 lookup entries in your dialing directory (*)",
  386. "  SET MODEM TYPE         select modem type",
  387. #ifdef OS2
  388. #ifdef NT
  389. #ifdef CK_TAPI
  390. "  SET TAPI LINE select TAPI communication device",
  391. #endif /* CK_TAPI */
  392. "  SET PORT      select serial communication device",
  393. #else
  394. "  SET PORT      select serial communication port or server",
  395. #endif /* NT */
  396. #else
  397. "  SET LINE      select serial communication device",
  398. #endif /* OS2 */
  399. "  SET SPEED     select communication speed",
  400. "  DIAL          dial the phone number",
  401. "  CONNECT       begin terminal connection",
  402. #ifdef OS2
  403. "Further info:   HELP DIAL, HELP SET MODEM, HELP SET PORT, HELP SET DIAL",
  404. #else
  405. "Further info:   HELP DIAL, HELP SET MODEM, HELP SET LINE, HELP SET DIAL",
  406. #endif /* OS2 */
  407. "(*) (For use with optional dialing directory)",
  408. #endif /* NODIAL */
  409. #ifdef NETCONN
  410. "nTo make a network connection:",
  411. #ifndef NODIAL
  412. "  SET NETWORK DIRECTORY  Specify a network services directory (optional)",
  413. "  LOOKUP                 Lookup entries in your network directory",
  414. #endif /* NODIAL */
  415. "  SET NETWORK TYPE       Select network type (if more than one available)",
  416. "  SET HOST               Make a network connection but stay in command mode",
  417. "  CONNECT                Begin terminal connection",
  418. #ifdef TNCODE
  419. "  TELNET                 Select a TCP/IP host and CONNECT to it",
  420. #endif /* TNCODE */
  421. #ifdef RLOGCODE
  422. "  RLOGIN                 Select a TCP/IP host and RLOGIN to it",
  423. #endif /* RLOGCODE */
  424. #endif /* NETCONN */
  425. #ifdef NT
  426. "nTo return from the terminal window to the K-95> prompt:",
  427. #else
  428. #ifdef OS2
  429. "nTo return from the terminal window to the K/2> prompt:",
  430. #else
  431. "nTo return from a terminal connection to the C-Kermit prompt:",
  432. #endif /* OS2 */
  433. #endif /* NT */
  434. #ifdef OS2
  435. "  
  436. Press the key or key-combination shown after "Prompt:" in the status line",
  437. "  (such as Alt-x) or type your escape character followed by the letter C.",
  438. #else
  439. "  Type your escape character followed by the letter C.",
  440. #endif /* OS2 */
  441. " ",
  442. "To display your escape character:",
  443. "  SHOW ESCAPE",
  444. " ",
  445. "To display other settings:",
  446. "  SHOW COMMUNICATIONS, SHOW TERMINAL, SHOW FILE, SHOW PROTOCOL, etc.",
  447. #else  /* !NOLOCAL */
  448. " ",
  449. "To display settings:",
  450. "  SHOW COMMUNICATIONS, SHOW FILE, SHOW PROTOCOL, etc.",
  451. #endif /* NOLOCAL */
  452. " ",
  453. "For further information about a particular command, type HELP xxx,",
  454. "where xxx is the name of the command.  For documentation, news of new",
  455. "releases, and information about other Kermit software, contact:",
  456. " ",
  457. "  The Kermit Project         E-mail: kermit-orders@columbia.edu",
  458. "  Columbia University        Web:    http://www.columbia.edu/kermit/",
  459. "  612 West 115th Street      Voice:  +1 (212) 854-3703",
  460. "  New York NY  10025-7799    Fax:    +1 (212) 663-8202",
  461. "  USA",
  462. ""
  463. };
  464. static char *hmxxscrn[] = {
  465. "Syntax: SCREEN { CLEAR, CLEOL, MOVE row column }",
  466. #ifdef OS2
  467. "  Performs screen-formatting actions.",
  468. #else
  469. "  Performs screen-formatting actions.  Correct operation of these commands",
  470. "  depends on proper terminal setup on both ends of the connection -- mainly",
  471. "  that the host terminal type is set to agree with the kind of terminal or",
  472. "  the emulation you are viewing C-Kermit through.",
  473. #endif /* OS2 */
  474. " ",
  475. "SCREEN CLEAR",
  476. "  Moves the cursor to home position and clears the entire screen.",
  477. #ifdef OS2
  478. "  Synonyms: CLS, CLEAR SCREEN, CLEAR COMMAND-SCREEN ALL",
  479. #else
  480. "  Synonyms: CLS, CLEAR SCREEN.",
  481. #endif /* OS2 */
  482. " ",
  483. "SCREEN CLEOL",
  484. "  Clears from the current cursor position to the end of the line.",
  485. #ifdef OS2
  486. "  Synonym: CLEAR COMMAND-SCREEN EOL",
  487. #endif /* OS2 */
  488. " ",
  489. "SCREEN MOVE row column",
  490. "  Moves the cursor to the indicated row and column.  The row and column",
  491. "  numbers are 1-based so on a 24x80 screen, the home position is 1 1 and",
  492. "  the lower right corner is 24 80.  If a row or column number is given that",
  493. "  too large for what Kermit or the operating system thinks is your screen",
  494. "  size, the appropriate number is substituted.",
  495. " ",
  496. "Also see:",
  497. #ifdef OS2
  498. "  HELP FUNCTION SCRNCURX, HELP FUNCTION SCRNCURY, HELP FUNCTION SCRSTR,",
  499. #endif /* OS2 */
  500. "  SHOW VARIABLE TERMINAL, SHOW VARIABLE COLS, SHOW VAR ROWS, SHOW COMMAND.",
  501. ""
  502. };
  503. #ifndef NOSPL
  504. static char *hxxinp[] = {
  505. "Syntax:  INPUT { number-of-seconds, time-of-day } [ text ]",
  506. "Example: INPUT 5 Login:  or  INPUT 23:59:59 RING",
  507. "  Waits up to the given number of seconds, or until the given time of day",
  508. "  for the given text to arrive on the connection.  If no text is given,",
  509. "  INPUT waits for any character.  For use in script programs with IF FAILURE",
  510. "  and IF SUCCESS.  Also see MINPUT, REINPUT, SET INPUT.  See HELP PAUSE for",
  511. "  details on time-of-day format.  The text, if given, can be a \pattern()",
  512. "  invocation, in which case it is treated as a regular expression rather than"
  513. ,
  514. "  a literal string (HELP REGULAR-EXPRESSIONS for details).",
  515. ""};
  516. static char *hxxout[] = {
  517. "Syntax: OUTPUT textn",
  518. "  Sends the text out the communications connection, as if you had typed it",
  519. "  during CONNECT mode.  The text may contain backslash codes, variables,",
  520. "  etc, plus the following special codes:",
  521. " ",
  522. "    \N - Send a NUL (ASCII 0) character (you can't use \0 for this).",
  523. "    \B - Send a BREAK signal.",
  524. "    \L - Send a Long BREAK signal.",
  525. " ",
  526. "Also see SET OUTPUT.",
  527. "" };
  528. #endif /* NOSPL */
  529. static char *hxypari[] = {
  530. "SET PARITY NONE",
  531. "  Chooses 8 data bits and no parity.",
  532. " ",
  533. "SET PARITY { EVEN, ODD, MARK, SPACE }",
  534. "  Chooses 7 data bits plus the indicated kind of parity.",
  535. "  Forces 8th-bit prefixing during file transfer.",
  536. " ",
  537. #ifdef HWPARITY
  538. "SET PARITY HARDWARE { EVEN, ODD }",
  539. "  Chooses 8 data bits plus the indicated kind of parity.",
  540. " ",
  541. "Also see SET TERMINAL BYTESIZE, SET SERIAL, and SET STOP-BITS.",
  542. #else
  543. "Also see SET TERMINAL BYTESIZE and SET SERIAL.",
  544. #endif /* HWPARITY */
  545. ""};
  546. #ifndef NOLOCAL
  547. static char *hxyesc[] = {
  548. #ifdef OS2
  549. "Syntax: SET ESCAPE number",
  550. "  Decimal ASCII value for escape character during CONNECT, normally 29",
  551. "  (Control-]).  Type the escape character followed by C to get back to the",
  552. "  C-Kermit prompt or followed by ? to see other options, or use the \Kexit",
  553. "  keyboard verb, normally assigned to Alt-x.",
  554. #else
  555. #ifdef NEXT
  556. "Syntax: SET ESCAPE number",
  557. "  Decimal ASCII value for escape character during CONNECT, normally 29",
  558. "  (Control-]).  Type the escape character followed by C to get back to the",
  559. "  C-Kermit prompt or followed by ? to see other options.",
  560. #else
  561. "Syntax: SET ESCAPE number",
  562. "  Decimal ASCII value for escape character during CONNECT, normally 28",
  563. "  (Control-\).  Type the escape character followed by C to get back to the",
  564. "  C-Kermit prompt or followed by ? to see other options.",
  565. #endif /* NEXT */
  566. #endif /* OS2 */
  567. " ",
  568. "You may also enter the escape character as ^X (circumflex followed by a",
  569. "letter or one of: @, ^, _, [, \, or ], to indicate a control character;",
  570. "for example, SET ESC ^_ sets your escape character to Ctrl-Underscore.",
  571. "" };
  572. #endif /* NOLOCAL */
  573. #ifndef NOSPL
  574. static char *hxyout[] = {
  575. "SET OUTPUT PACING <number>n",
  576. "  How many milliseconds to pause after sending each OUTPUT character,",
  577. "  normally 0.",
  578. " ",
  579. "SET OUTPUT SPECIAL-ESCAPES { ON, OFF }n",
  580. "  Whether to process the special OUTPUT-only escapes \B, \L, and \N.",
  581. "  Normally ON (they are processed).",
  582. "" };
  583. static char *hxyinp[] = {
  584. "Syntax: SET INPUT parameter value",
  585. " ",
  586. #ifdef CK_AUTODL
  587. "SET INPUT AUTODOWNLOAD { ON, OFF }",
  588. "  Controls whether autodownloads are allowed during INPUT command execution.",
  589. " ",
  590. #endif /* CK_AUTODL */
  591. "SET INPUT BUFFER-LENGTH number-of-bytes",
  592. "  Removes the old INPUT buffer and creates a new one with the given length.",
  593. " ",
  594. "SET INPUT CANCELLATION { ON, OFF }",
  595. "Whether an INPUT in progress can be can interrupted from the keyboard.",
  596. " ",
  597. "SET INPUT CASE { IGNORE, OBSERVE }",
  598. "  Tells whether alphabetic case is to be significant in string comparisons.",
  599. "  This setting is local to the current macro or command file, and is",
  600. "  inherited by subordinate macros and take files.",
  601. " ",
  602. "SET INPUT ECHO { ON, OFF }",
  603. "  Tells whether to display arriving characters read by INPUT on the screen.",
  604. " ",
  605. "SET INPUT SILENCE <number>",
  606. "  The maximum number to seconds of silence (no input at all) before the",
  607. "  INPUT command times out, 0 for no maximum.",
  608. " ",
  609. #ifdef OS2
  610. "SET INPUT TERMINAL { ON, OFF }",
  611. "  Determines whether the data received during an INPUT command is displayed",
  612. "  in the terminal window.  Default is ON.",
  613. " ",
  614. #endif /* OS2 */
  615. "SET INPUT TIMEOUT-ACTION { PROCEED, QUIT }",
  616. "  Tells whether to proceed or quit from a script program if an INPUT command",
  617. "  fails.  PROCEED (default) allows use of IF SUCCESS / IF FAILURE commands.",
  618. "  This setting is local to the current macro or command file, and is",
  619. "  inherited by subordinate macros and take files.",
  620. "" };
  621. static char *hxyfunc[] = {
  622. "SET FUNCTION DIAGNOSTICS { ON, OFF }",
  623. "  Whether to issue diagnostic messages for illegal function calls and",
  624. "  references to nonexistent built-in variables.  ON by default.",
  625. " ",
  626. "SET FUNCTION ERROR { ON, OFF }",
  627. "  Whether an illegal function call or reference to a nonexistent built-in",
  628. "  variable should cause a command to fail.  OFF by default.",
  629. "" };
  630. #endif /* NOSPL */
  631. static char *hxyxyz[] = {
  632. #ifdef CK_XYZ
  633. #ifdef XYZ_INTERNAL
  634. /* This is for built-in protocols */
  635. "Syntax: SET PROTOCOL { KERMIT, XMODEM, YMODEM, ZMODEM } [ s1 s2 [ s3 ] ]",
  636. "  Selects protocol to use for transferring files.  String s1 is a command to",
  637. "  send to the remote host prior to SENDing files with this protocol in",
  638. "  binary mode; string s2 is the same thing but for text mode.  Use "%" in",
  639. "  any of these strings to represent the filename(s).  If the protocol is",
  640. "  KERMIT, you may also specify a string s3, the command to start a Kermit",
  641. "  server on the remote host when you give a GET, REGET, REMOTE, or other",
  642. "  client command.  Use { braces } if any command contains spaces.  Examples:",
  643. " ",
  644. "    set proto xmodem {rx %s} {rx -a %s}",
  645. "    set proto kermit {kermit -YQir} {kermit -YQTr} {kermit -YQx}",
  646. #else /* This is for when non-Kermit protocols are external */
  647. "Syntax: 
  648. SET PROTOCOL { KERMIT, XMODEM, YMODEM, ZMODEM } [ s1 s2 s3 s4 s5 s6 ]",
  649. "  Selects protocol to use for transferring files.  s1 and s2 are commands to",
  650. "  output prior to SENDing with this protocol, to automatically start the",
  651. "  RECEIVE process on the other end in binary or text mode, respectively.",
  652. "  If the protocol is KERMIT, s3 is the command to start a Kermit server on",
  653. "  the remote computer, and there are no s4-s6 commands.  Otherwise, s3 and",
  654. "  s4 are commands used on this computer for sending files with this protocol",
  655. "  in binary or text mode, respectively; s5 and s6 are the commands for",
  656. "  receiving files with this protocol.  Use "%s" in any of these strings",
  657. "  to represent the filename(s).  Use { braces } if any command contains",
  658. "  spaces.  Examples:",
  659. " ",
  660. "    set proto kermit {kermit -YQir} {kermit -YQTr} {kermit -YQx}",
  661. "    set proto ymodem rb {rb -a} {sb %s} {sb -a %s} rb rb",
  662. " ",
  663. "External protocols require REDIRECT and external file transfer programs that",
  664. "use redirectable standard input/output.",
  665. #endif /* XYZ_INTERNAL */
  666. #else
  667. "Syntax: 
  668. SET PROTOCOL KERMIT [ s1 [ s2 [ s3 ] ] ]",
  669. "  Lets you specify the autoupload binary, autoupload text, and autoserver",
  670. "  command strings to be sent to the remote system in advance of any SEND",
  671. "  or GET commands.  By default these are "kermit -ir", "kermit -r", and",
  672. "  "kermit -x".  Use { braces } around any command that contains spaces.",
  673. "  Example:",
  674. " ",
  675. "    set proto kermit {kermit -YQir} {kermit -YQTr} {kermit -YQx}",
  676. #endif /* CK_XYZ */
  677. " ",
  678. "  SHOW PROTOCOL displays the current settings.",
  679. ""};
  680. static char *hmxxbye = "Syntax: BYEn
  681.   Shut down and log out a remote Kermit server";
  682. static char *hmxxdir[] = {
  683. #ifdef DOMYDIR
  684. "Syntax: DIRECTORY [ switches ] [ filespec ]",
  685. "  Lists files.  The filespec may be a filename, possibly containing wildcard",
  686. "  characters, or a directory name.  If no filespec is given, all files in",
  687. "  the current directory are listed.  If a directory name is given, all the",
  688. "  files in it are listed.  Optional switches:",
  689. " ",
  690. "   /BRIEF         List filenames only.",
  691. #ifdef CK_PERMS
  692. "   /VERBOSE     + Also list permissions, size, and date.",
  693. #else
  694. "   /VERBOSE     + Also list date and size.",
  695. #endif /* CK_PERMS */
  696. "   /FILES         Show files but not directories.",
  697. "   /DIRECTORIES   Show directories but not files.",
  698. "   /ALL         + Show both files and directories.",
  699. "   /ARRAY:&a      Store file list in specified array (e.g. \%a[]).",
  700. "   /PAGE          Pause after each screenful.",
  701. "   /NOPAGE        Don't pause after each screenful.",
  702. #ifdef UNIXOROSK
  703. "   /DOTFILES      Include files whose names start with dot (period).",
  704. "   /NODOTFILES  + Don't include files whose names start with dot.",
  705. "   /BACKUP      + Include backup files (names end with .~n~).",
  706. "   /NOBACKUP      Don't include backup files.",
  707. #endif /* UNIXOROSK */
  708. "   /HEADING       Include heading and summary.",
  709. "   /NOHEADING   + Don't include heading or summary.",
  710. "   /XFERMODE      Show pattern-based transfer mode (T=Text, B=Binary).",
  711. "   /MESSAGE:text  Add brief message to each listing line.",
  712. "   /NOMESSAGE   + Don't add message to each listing line.",
  713. "   /NOXFERMODE  + Don't show pattern-based transfer mode",
  714. "   /ISODATE     + In verbose listings, show date in ISO 8061 format.",
  715. "   /ENGLISHDATE   In verbose listings, show date in "English" format.",
  716. #ifdef RECURSIVE
  717. "   /RECURSIVE     Descend through subdirectories.",
  718. "   /NORECURSIVE + Don't descend through subdirectories.",
  719. #endif /* RECURSIVE */
  720. "   /SORT:key      Sort by key, NAME, DATE, or SIZE; default key is NAME.",
  721. "   /NOSORT      + Don't sort.",
  722. "   /ASCENDING   + If sorting, sort in ascending order.",
  723. "   /REVERSE       If sorting, sort in reverse order.",
  724. " ",
  725. "Factory defaults are marked with +.  Default for paging depends on SET",
  726. "COMMAND MORE-PROMPTING.  Use SET OPTIONS DIRECTORY [ switches ] to change",
  727. "defaults; use SHOW OPTIONS to display customized defaults.",
  728. #else
  729. "Syntax: DIRECTORY [ filespec ]",
  730. "  Lists the specified file or files.  If no filespec is given, all files",
  731. "  in the current directory are listed.",
  732. #endif /* DOMYDIR */
  733. ""};
  734. static char *hmxxdel[] = {
  735. "Syntax: DELETE [ switches... ] filespec",
  736. "  Deletes a file or files on the computer where C-Kermit is running.",
  737. "  The filespec may denote a single file or can include wildcard characters",
  738. "  to match multiple files.  RM is a synonym for DELETE.  Switches include:",
  739. " ",
  740. "/AFTER:date-time",
  741. #ifdef VMS
  742. "  Specifies that only those files created after the given date-time are",
  743. #else
  744. "  Specifies that only those files modified after the given date-time are",
  745. #endif /* VMS */
  746. "  to be deleted.  HELP DATE for info about date-time formats.",
  747. " ",
  748. "/BEFORE:date-time",
  749. #ifdef VMS
  750. "  Specifies that only those files modified before the given date-time",
  751. #else
  752. "  Specifies that only those files modified before the given date-time",
  753. #endif /* VMS */
  754. "  are to be deleted.",
  755. " ",
  756. "/NOT-AFTER:date-time",
  757. #ifdef VMS
  758. "  Specifies that only those files modified at or before the given date-time",
  759. #else
  760. "  Specifies that only those files modified at or before the given date-time",
  761. #endif /* VMS */
  762. "  are to be deleted.",
  763. " ",
  764. "/NOT-BEFORE:date-time",
  765. #ifdef VMS
  766. "  Specifies that only those files modified at or after the given date-time",
  767. #else
  768. "  Specifies that only those files modified at or after the given date-time",
  769. #endif /* VMS */
  770. "  are to be deleted.",
  771. " ",
  772. "/LARGER-THAN:number",
  773. "  Specifies that only those files longer than the given number of bytes are",
  774. "  to be deleted.",
  775. " ",
  776. "/SMALLER-THAN:number",
  777. "  Specifies that only those files smaller than the given number of bytes are",
  778. "  to be sent.",
  779. " ",
  780. "/EXCEPT:pattern",
  781. "  Specifies that any files whose names match the pattern, which can be a",
  782. "  regular filename or may contain wildcards, are not to be deleted.  To",
  783. "  specify multiple patterns (up to 8), use outer braces around the group",
  784. "  and inner braces around each pattern:",
  785. " ",
  786. "    /EXCEPT:{{pattern1}{pattern2}...}",
  787. " ",
  788. #ifdef UNIXOROSK
  789. "/DOTFILES",
  790. "  Include (delete) files whose names begin with ".".",
  791. " ",
  792. "/NODOTFILES",
  793. "  Skip (don't delete) files whose names begin with ".".",
  794. " ",
  795. #endif /* UNIXOROSK */
  796. "/LIST",
  797. "  List each file and tell whether it was deleted.  Synonyms: /LOG, /VERBOSE.",
  798. " ",
  799. "/NOLIST",
  800. "  Don't list files while deleting.  Synonyms: /NOLOG, /QUIET.",
  801. " ",
  802. "/HEADING",
  803. "  Print heading and summary information.",
  804. " ",
  805. "/NOHEADING",
  806. "  Don't print heading and summary information.",
  807. " ",
  808. "/PAGE",
  809. "  If listing, pause after each screenful.",
  810. " ",
  811. "/NOPAGE",
  812. "  Don't pause after each screenful.",
  813. " ",
  814. "/ASK",
  815. "  Interactively ask permission to delete each file.",
  816. " ",
  817. "/NOASK",
  818. "  Delete files without asking permission.",
  819. " ",
  820. "/SIMULATE",
  821. "  Preview files selected for deletion without actually deleting them.",
  822. "  Implies /LIST.",
  823. " ",
  824. "Use SET OPTIONS DELETE to make selected switches effective for every DELETE",
  825. "command 
  826. unless you override them; use SHOW OPTIONS to see selections currently",
  827. "in effect.  Also see HELP PURGE, HELP WILDCARD.",
  828. ""};
  829. #ifndef NOHTTP
  830. static char *hmxxhttp[] = {
  831. "Syntax:",
  832. "HTTP [ <switches> ] GET <remote-filename> [ <local-filename> ]",
  833. "  Retrieves the named file.  If a <local-filename> is given, the file is",
  834. "  stored locally under that name; otherwise it is stored with its own name.",
  835. " ",
  836. "HTTP [ <switches> ] HEAD <remote-filename> <local-filename>",
  837. "  Like GET except without actually getting the file; instead it gets only",
  838. "  the headers, storing them into the given file, whose name must be given,",
  839. "  one line per header item, as shown in the /ARRAY: switch description.",
  840. " ",
  841. "HTTP [ <switches> ] INDEX <remote-directory> [ <local-filename> ]",
  842. "  Retrieves the file listing for the given server directory.",
  843. "  NOTE: This command is not supported by most Web servers.",
  844. " ",
  845. "HTTP [ <switches> ] POST [ /MIME-TYPE:<type> ] <local-file> <remote-file>",
  846. "  Used to send a response as if it were sent from a form.  The data to be",
  847. "  posted must be read from a file.",
  848. " ",
  849. "HTTP [ <switches> ] PUT [ /MIME-TYPE:<type> ] <local-file> <remote-file>",
  850. "  Uploads a local file to a server file.",
  851. " ",
  852. "HTTP [ <switches> ] DELETE <remote-filename>",
  853. "  Instructs the server to delete the specified filename.",
  854. " ",
  855. "where <switches> are:",
  856. "/AGENT:<user-agent>",
  857. "  Identifies the client to the server; "C-Kermit" or "Kermit-95"",
  858. "  by default.",
  859. " ",
  860. "/HEADER:<header-line>",
  861. "  Used for specifying any optional headers.  A list of headers is provided",
  862. "  using braces for grouping:",
  863. " ",
  864. "    /HEADER:{{<tag>:<value>}{<tag>:<value>}...}",
  865. " ",
  866. "  For a listing of valid <tag> value and <value> formats see RFC 1945:",
  867. "  "Hypertext Transfer Protocol -- HTTP/1.0".  A maximum of eight headers",
  868. "  may be specified.",
  869. " ",
  870. "/USER:<name>",
  871. "  In case a page requires a username for access.",
  872. " ",
  873. "/PASSWORD:<password>",
  874. "  In case a page requires a password for access.",
  875. " ",
  876. "/ARRAY:<arrayname>",
  877. "  Tells Kermit to store the response headers in the given array, one line",
  878. "  per element.  The array need not be declared in advance.  Example:",
  879. " ",
  880. "    http /array:c get kermit/index.html",
  881. "    show array c",
  882. "    Dimension = 9",
  883. "    1. Date: Fri, 26 Nov 1999 23:12:22 GMT",
  884. "    2. Server: Apache/1.3.4 (Unix)",
  885. "    3. Last-Modified: Mon, 06 Sep 1999 22:35:58 GMT",
  886. "    4. ETag: "bc049-f72-37d441ce"",
  887. "    5. Accept-Ranges: bytes",
  888. "    6. Content-Length: 3954",
  889. "    7. Connection: close     ",
  890. "    8. Content-Type: text/html",
  891. " ",
  892. "As you can see, the header lines are like MIME e-mail header lines:",
  893. "identifier, colon, value.  The /ARRAY switch is the only method available",
  894. "to a script to process the server responses for a POST or PUT command.",
  895. " ",
  896. "The HTTP commands are only applicable when a connection has already been",
  897. "established to a host using the SET HOST command.",
  898. " ",
  899. #ifdef CK_SSL
  900. "HTTP over SSLv3 or TLSv1 made be performed by using the /SSL or /TLS",
  901. "protocol switches when establishing the connection with SET HOST.",
  902. " ",
  903. #endif /* CK_SSL */
  904. ""
  905. };
  906. #endif /* NOHTTP */
  907. #ifdef CK_KERBEROS
  908. static char *hmxxauth[] = {
  909. "Syntax:",
  910. "AUTHENTICATE { KERBEROS4, KERBEROS5 [ switches ] } <action> [ switches ]",
  911. "  Obtains or destroys Kerberos tickets and lists information about them.",
  912. "  Actions are INITIALIZE, DESTROY, and LIST-CREDENTIALS.  KERBEROS4 can be",
  913. "  abbreviated K4 or KRB4; KERBEROS5 can be abbreviated K5 or KRB5.  Use ? to",
  914. "  see which keywords, switches, or other quantities are valid at each point",
  915. "  in the command.",
  916. " ",
  917. "  The actions are INITIALIZE, DESTROY, and LIST-CREDENTIALS:",
  918. "   ",
  919. "    AUTH { K4, K5 } { INITIALIZE [switches], DESTROY,",
  920. "      LIST-CREDENTIALS [switches] }",
  921. " ",
  922. "  The INITIALIZE action is the most complex, and its format is different",
  923. "  for Kerberos 4 and Kerberos 5.  The format for Kerberos 4 is:",
  924. " ",
  925. "  AUTH K4 INITIALIZE [ /INSTANCE:<name> /LIFETIME:<minutes> -",
  926. "    /PASSWORD:<password> /PREAUTH /REALM:<name> <principal> ]",
  927. " ",
  928. "  All switches are optional.  Kerberos 4 INITIALIZE switches are:",
  929. " ",
  930. "  /INSTANCE:<name>",
  931. "    Allows an Instance (such as a hostname) to be specified.",
  932. " ",
  933. "  /LIFETIME:<number>",
  934. "    Specifies the requested lifetime in minutes for the ticket.  If no",
  935. "    lifetime is specified, 600 minutes is used.  If the lifetime is greater",
  936. "    than the maximum supported by the ticket granting service, the resulting",
  937. "    lifetime is shortened accordingly.",
  938. " ",
  939. "  /NOT-PREAUTH",
  940. "    Instructs Kermit to send a ticket getting ticket (TGT) request to the",
  941. "    KDC without any preauthentication data.",
  942. " ",
  943. "  /PASSWORD:<string>",
  944. "    Allows a password to be included on the command line or in a script",
  945. "    file.  If no /PASSWORD switch is included, you are prompted on a separate"
  946. ,
  947. "    line.  The password switch is provided on a use-at-your-own-risk basis",
  948. "    for use in automated scripts.  WARNING: Passwords should not be stored in"
  949. ,
  950. "    files.",
  951. " ",
  952. "  /PREAUTH",
  953. "    Instructs Kermit to send a preauthenticated Ticket-Getting Ticket (TGT)",
  954. "    request to the KDC instead of a plaintext request.  The default when",
  955. "    supported by the Kerberos libraries.",
  956. " ",
  957. "  /REALM:<name>",
  958. "    Allows a realm to be specified (overriding the default realm).",
  959. " ",
  960. "  <principal>",
  961. "    Your identity in the given or default Kerberos realm, of the form:",
  962. "    userid[.instance[.instance]]@[realm]  ",
  963. "    Can be omitted if it is the same as your username or SET LOGIN USERID",
  964. "    value on the client system.",
  965. " ",
  966. "  The format for Kerberos 5 is as follows:",
  967. " ",
  968. "  AUTH K5 [ /CACHE:<filename> ] { INITIALIZE [ switches ], DESTROY,",
  969. "    LIST-CREDENTIALS ...}",
  970. " ",
  971. "The INITIALIZE command for Kerberos 5 can include a number of switches;",
  972. "all are optional:",
  973. " ",
  974. "AUTH K5 [ /CACHE:<filename> ] INITITIALIZE [ /ADDRESSES:<addr-list>",
  975. "  /FORWARDABLE /KERBEROS4 /LIFETIME:<minutes> /PASSWORD:<password>",
  976. "  /POSTDATE:<date-time> /PROXIABLE /REALM:<name> /RENEW /RENEWABLE:<minutes>",
  977. "  /SERVICE:<name> /VALIDATE <principal> ]",
  978. " ",
  979. "  All Kerberos 5 INITIALIZE switches are optional:",
  980. " ",
  981. "  /ADDRESSES:{list of ip-addresses}",
  982. "    Specifies a list of IP addresses that should be placed in the Ticket",
  983. "    Getting Ticket in addition to the local machine addresses.",
  984. " ",
  985. "  /FORWARDABLE",
  986. "    Requests forwardable tickets.",
  987. " ",
  988. "  /INSTANCE:<name>",
  989. "    Allows an Instance (such as a hostname) to be specified.",
  990. " ",
  991. "  /KERBEROS4",
  992. "    Instructs Kermit to get Kerberos 4 tickets in addition to Kerberos 5",
  993. "    tickets.  If Kerberos 5 tickets are not supported by the server, a",
  994. "    mild warning is printed and Kerberos 4 tickets are requested.",
  995. " ",
  996. "  /LIFETIME:<number>",
  997. "    Specifies the requested lifetime in minutes for the ticket.  If no",
  998. "    lifetime is specified, 600 minutes is used.  If the lifetime is greater",
  999. "    than the maximum supported by the ticket granting service, the resulting",
  1000. "    lifetime is shortened.",
  1001. " ",
  1002. "  /NO-KERBEROS4",
  1003. "    Instructs Kermit to not attempt to retrieve Kerberos 4 credentials.",
  1004. " ",
  1005. "  /NOT-FORWARDABLE",
  1006. "    Requests non-forwardable tickets.",
  1007. " ",
  1008. "  /NOT-PROXIABLE",
  1009. "    Requests non-proxiable tickets.",
  1010. " ",
  1011. "  /PASSWORD:<string>",
  1012. "    Allows a password to be included on the command line or in a script",
  1013. "    file.  If no /PASSWORD switch is included, you are prompted on a separate"
  1014. ,
  1015. "    line.  The password switch is provided on a use-at-your-own-risk basis",
  1016. "    for use in automated scripts.  WARNING: Passwords should not be stored in"
  1017. ,
  1018. "    files.",
  1019. " ",
  1020. "  /POSTDATE:<date-time>",
  1021. "    Requests a postdated ticket, valid starting at <date-time>.  Postdated",
  1022. "    tickets are issued with the invalid flag set, and need to be fed back to",
  1023. "    the KDC before use with the /VALIDATE switch.  Type HELP DATE for info",
  1024. "    on date-time formats.",
  1025. " ",
  1026. "  /PROXIABLE",
  1027. "    Requests proxiable tickets.",
  1028. " ",
  1029. "  /REALM:<string>",
  1030. "    Allows an alternative realm to be specified.",
  1031. " ",
  1032. "  /RENEW",
  1033. "    Requests renewal of a renewable Ticket-Granting Ticket.  Note that ",
  1034. "    an expired ticket cannot be renewed even if it is within its renewable ",
  1035. "    lifetime.",
  1036. " ",
  1037. "  /RENEWABLE:<number>",
  1038. "    Requests renewable tickets, with a total lifetime of <number> minutes.",
  1039. " ",
  1040. "  /SERVICE:<string>",
  1041. "    Allows a service other than the ticket granting service to be specified.",
  1042. " ",
  1043. "  /VALIDATE",
  1044. "    Requests that the Ticket Granting Ticket in the cache (with the invalid",
  1045. "    flag set) be passed to the KDC for validation.  If the ticket is within",
  1046. "    its requested time range, the cache is replaced with the validated",
  1047. "    ticket.",
  1048. " ",
  1049. "  <principal>",
  1050. "    Your identity in the given or default Kerberos realm, of the form:",
  1051. "    userid[/instance][@realm]  ",
  1052. "    Can be omitted if it is the same as your username or SET LOGIN USERID",
  1053. "    value on the client system.",
  1054. " ",
  1055. "  Note: Kerberos 5 always attempts to retrieve a Ticket-Getting Ticket (TGT)",
  1056. "  using the preauthenticated TGT request.",
  1057. " ",
  1058. "  AUTHORIZE K5 LIST-CREDENTIALS [ /ADDRESSES /FLAGS /ENCRYPTION ]",
  1059. " ",
  1060. "  Shows start time, expiration time, service or principal name, plus",
  1061. "  the following additional information depending the switches:",
  1062. " ",
  1063. "  /ADDRESSES displays the hostnames and/or IP addresses embedded within",
  1064. "    the tickets.",
  1065. " ",
  1066. "  /FLAGS provides the following information (if applicable) for each ticket:",
  1067. "    F - Ticket is Forwardable",
  1068. "    f - Ticket was Forwarded",
  1069. "    P - Ticket is Proxiable",
  1070. "    p - Ticket is a Proxy",
  1071. "    D - Ticket may be Postdated",
  1072. "    d - Ticket has been Postdated",
  1073. "    i - Ticket is Invalid",
  1074. "    R - Ticket is Renewable",
  1075. "    I - Ticket is the Initial Ticket",
  1076. "    H - Ticket has been authenticated by Hardware",
  1077. "    A - Ticket has been Pre-authenticated",
  1078. " ",
  1079. "  /ENCRYPTION displays the encryption used by each ticket (if applicable):",
  1080. "    DES-CBC-CRC",
  1081. "    DES-CBC-MD4",
  1082. "    DES-CBC-MD5",
  1083. "    DES3-CBC-SHA",
  1084. ""
  1085. };
  1086. #endif /* CK_KERBEROS */
  1087. #ifndef NOCSETS
  1088. static char *hmxxassoc[] = {
  1089. "ASSOCIATE FILE-CHARACTER-SET <file-character-set> <transfer-character-set>",
  1090. "  Tells C-Kermit that whenever the given file-character set is selected, and",
  1091. "  SEND CHARACTER-SET (q.v.) is AUTOMATIC, the given transfer character-set",
  1092. "  is selected automatically.",
  1093. " ",
  1094. "ASSOCIATE XFER-CHARACTER-SET <xfer-character-set> <file-character-set>",
  1095. "  Tells C-Kermit that whenever the given transfer-character set is selected,",
  1096. "  either by command or by an announcer attached to an incoming text file,",
  1097. "  and SEND CHARACTER-SET is AUTOMATIC, the specified file character-set is",
  1098. "  to be selected automatically.  Synonym: ASSOCIATE TRANSFER-CHARACTER-SET.",
  1099. " ",
  1100. "Use SHOW ASSOCIATIONS to list the current character-set associations, and",
  1101. "SHOW CHARACTER-SETS to list the current settings.",
  1102. ""
  1103. };
  1104. #endif /* NOCSETS */
  1105. static char *hmxxwild[] = {
  1106. "A "wildcard" or "regular expression" is notation used in a filename",
  1107. "to match multiple files or in a search string when searching through text.",
  1108. "For example, in "send *.txt" the asterisk is a wildcard.  Kermit commands",
  1109. "that accept filenames also accepts wildcards, except commands that are",
  1110. "allowed to operate on only one file, such as TRANSMIT or COPY.",
  1111. "This version of Kermit accepts the following wildcards:",
  1112. " ",
  1113. "* Matches any sequence of zero or more characters.  For example, "ck*.c"",
  1114. "  matches all files whose names start with "ck" and end with ".c"",
  1115. "  including "ck.c".",
  1116. " ",
  1117. #ifdef VMS
  1118. "% Matches any single character.  For example, "ck%.c" matches all files",
  1119. #else
  1120. "? Matches any single character.  For example, "ck?.c" matches all files",
  1121. #endif /* VMS */
  1122. "  whose names are exactly 5 characters long and start with "ck" and end",
  1123. #ifdef VMS
  1124. "  with ".c".",
  1125. #else
  1126. "  with ".c".  When typing commands at the prompt, you must precede any",
  1127. "  question mark to be used for matching by a backslash (\) to override the",
  1128. "  normal function of question mark, which is providing menus and file lists.",
  1129. #endif /* VMS */
  1130. " ",
  1131. #ifdef OS2ORUNIX
  1132. #ifdef CKREGEX
  1133. "[abc]",
  1134. "  Square brackets enclosing a list of characters matches any character in",
  1135. "  the list.  Example: ckuusr.[ch] matches ckuusr.c and ckuusr.h.",
  1136. " ",
  1137. "[a-z]",
  1138. "  Square brackets enclosing a range of characters matches any character in",
  1139. "  the range; a hyphen (-) separates the low and high elements of the range.",
  1140. "  For example, [a-z] matches any character from a to z.",
  1141. " ",
  1142. "[acdm-z]",
  1143. "  Lists and ranges may be combined.  This example matches a, c, d, or any",
  1144. "  letter from m through z.",
  1145. " ",
  1146. "{string1,string2,...}",
  1147. "  Braces enclose a list of strings to be matched.  For example:",
  1148. "  ck{ufio,vcon,cmai}.c matches ckufio.c, ckvcon.c, or ckcmai.c.  The strings",
  1149. "  may themselves contain *, ?, [abc], [a-z], or other lists of strings.",
  1150. #endif /* CKREGEX */
  1151. #endif /* OS2ORUNIX */
  1152. #ifndef NOSPL
  1153. " ",
  1154. "To force a special pattern character to be taken literally, precede it with",
  1155. "a backslash, e.g. [a\-z] matches a, hyphen, and z rather than a through z.",
  1156. " ",
  1157. "The same wildcard syntax can be used for patterns in the IF MATCH command,",
  1158. "in SWITCH case labels, the \fsearch(), \frsearch(), \fpattern(), and",
  1159. "\farraylook() functions, and in file binary- and text-patterns (see HELP IF,"
  1160. ,
  1161. "HELP SWITCH, HELP FUNC, HELP SET FILE).",
  1162. #endif /* NOSPL */
  1163. "" };
  1164. #ifndef NOXFER
  1165. static char *hmxxfast[] = {
  1166. "FAST, CAUTIOUS, and ROBUST are predefined macros that set several",
  1167. "file-transfer parameters at once to achieve the desired file-transfer goal.",
  1168. "FAST chooses a large packet size, a large window size, and a fair amount of",
  1169. "control-character unprefixing at the risk of possible failure on some",
  1170. "connections.  FAST is the default tuning in C-Kermit 7.0 and later.  In case",
  1171. "FAST file transfers fail for you on a particular connection, try CAUTIOUS.",
  1172. "If that fails too, try ROBUST.  You can also change the definitions of each",
  1173. "macro with the DEFINE command.  To see the current definitions, type",
  1174. ""show macro fast", "show macro cautious", or "show macro robust".",
  1175. ""
  1176. };
  1177. #endif /* NOXFER */
  1178. #ifdef VMS
  1179. static char * hmxxpurge[] = {
  1180. "Syntax: PURGE [ switches ] [ filespec ]",
  1181. "  Runs the DCL PURGE command.  Switches and filespec are not parsed or",
  1182. "  verified by Kermit, but passed directly to DCL.",
  1183. ""
  1184. };
  1185. #else
  1186. #ifdef CKPURGE
  1187. static char * hmxxpurge[] = {
  1188. "Syntax: PURGE [ switches ] [ filespec ]",
  1189. "  Deletes backup files; that is, files whose names end in ".~n~", where",
  1190. "  n is a number.  PURGE by itself deletes all backup files in the current",
  1191. "  directory.  Switches:",
  1192. " ",
  1193. "/AFTER:date-time",
  1194. #ifdef VMS
  1195. "  Specifies that only those files created after the given date-time are",
  1196. #else
  1197. "  Specifies that only those files modified after the given date-time are",
  1198. #endif /* VMS */
  1199. "  to be purged.  HELP DATE for info about date-time formats.",
  1200. " ",
  1201. "/BEFORE:date-time",
  1202. #ifdef VMS
  1203. "  Specifies that only those files modified before the given date-time",
  1204. #else
  1205. "  Specifies that only those files modified before the given date-time",
  1206. #endif /* VMS */
  1207. "  are to be purged.",
  1208. " ",
  1209. "/NOT-AFTER:date-time",
  1210. #ifdef VMS
  1211. "  Specifies that only those files modified at or before the given date-time",
  1212. #else
  1213. "  Specifies that only those files modified at or before the given date-time",
  1214. #endif /* VMS */
  1215. "  are to be purged.",
  1216. " ",
  1217. "/NOT-BEFORE:date-time",
  1218. #ifdef VMS
  1219. "  Specifies that only those files modified at or after the given date-time",
  1220. #else
  1221. "  Specifies that only those files modified at or after the given date-time",
  1222. #endif /* VMS */
  1223. "  are to be purged.",
  1224. " ",
  1225. "/LARGER-THAN:number",
  1226. "  Specifies that only those files longer than the given number of bytes are",
  1227. "  to be purged.",
  1228. " ",
  1229. "/SMALLER-THAN:number",
  1230. "  Specifies that only those files smaller than the given number of bytes are",
  1231. "  to be sent.",
  1232. " ",
  1233. "/EXCEPT:pattern",
  1234. "  Specifies that any files whose names match the pattern, which can be a",
  1235. "  regular filename or may contain wildcards, are not to be purged.  To",
  1236. "  specify multiple patterns (up to 8), use outer braces around the group",
  1237. "  and inner braces around each pattern:",
  1238. " ",
  1239. "    /EXCEPT:{{pattern1}{pattern2}...}",
  1240. " ",
  1241. #ifdef UNIXOROSK
  1242. "/DOTFILES",
  1243. "  Include (purge) files whose names begin with ".".",
  1244. " ",
  1245. "/NODOTFILES",
  1246. "  Skip (don't purge) files whose names begin with ".".",
  1247. " ",
  1248. #endif /* UNIXOROSK */
  1249. #ifdef RECURSIVE
  1250. "/RECURSIVE",
  1251. "  Descends through the current or specified directory tree.",
  1252. " ",
  1253. #endif /* RECURSIVE */
  1254. "/KEEP:n",
  1255. "  Retain the 'n' most recent (highest-numbered) backup files for each file.",
  1256. "  By default, none are kept.  If /KEEP is given without a number, 1 is used.",
  1257. " ",
  1258. "/LIST",
  1259. "  Display each file as it is processed and say whether it is purged or kept.",
  1260. "  Synonyms: /LOG, /VERBOSE.",
  1261. " ",
  1262. "/NOLIST",
  1263. "  The PURGE command should operate silently (default).",
  1264. "  Synonyms: /NOLOG, /QUIET.",
  1265. " ",
  1266. "/HEADING",
  1267. "  Print heading and summary information.",
  1268. " ",
  1269. "/NOHEADING",
  1270. "  Don't print heading and summary information.",
  1271. " ",
  1272. "/PAGE",
  1273. "  When /LIST is in effect, pause at the end of each screenful, even if",
  1274. "  COMMAND MORE-PROMPTING is OFF.",
  1275. " ",
  1276. "/NOPAGE",
  1277. "  Don't pause, even if COMMAND MORE-PROMPTING is ON.",
  1278. " ",
  1279. "/ASK",
  1280. "  Interactively ask permission to delete each backup file.",
  1281. " ",
  1282. "/NOASK",
  1283. "  Purge backup files without asking permission.",
  1284. " ",
  1285. "/SIMULATE",
  1286. "  Inhibits the actual deletion of files; use to preview which files would",
  1287. "  actually be deleted.  Implies /LIST.",
  1288. " ",
  1289. "Use SET OPTIONS PURGE [ switches ] to change defaults; use SHOW OPTIONS to",
  1290. "display customized defaults.  Also see HELP DELETE, HELP WILDCARD.",
  1291. ""
  1292. };
  1293. #endif /* CKPURGE */
  1294. #endif /* VMS */
  1295. static char *hmxxclo[] = {
  1296. "Syntax:  CLOSE [ item ]",
  1297. "  Close the indicated item.  The default item is CONNECTION, which is the",
  1298. "  current SET LINE or SET HOST connection.  The other items are:",
  1299. " ",
  1300. #ifdef CKLOGDIAL
  1301. "    CX-LOG          (connection log, opened with LOG CX)",
  1302. #endif /* CKLOGDIAL */
  1303. #ifndef NOLOCAL
  1304. "    SESSION-LOG     (opened with LOG SESSION)",
  1305. #endif /* NOLOCAL */
  1306. #ifdef TLOG
  1307. "    TRANSACTION-LOG (opened with LOG TRANSACTIONS)",
  1308. #endif /* TLOG */
  1309. "    PACKET-LOG      (opened with LOG PACKETS)",
  1310. #ifdef DEBUG
  1311. "    DEBUG-LOG       (opened with LOG DEBUG)",
  1312. #endif /* DEBUG */
  1313. #ifndef NOSPL
  1314. "    READ-FILE       (opened with OPEN READ)",
  1315. "    WRITE-FILE      (opened with OPEN WRITE or OPEN APPEND)",
  1316. #endif /* NOSPL */
  1317. " ",
  1318. "Type HELP LOG and HELP OPEN for further info.", "" };
  1319. #ifdef CK_MINPUT
  1320. static char *hmxxminp[] = {
  1321. "Syntax:  MINPUT n [ string1 [ string2 [ ... ] ] ]",
  1322. "Example: MINPUT 5 Login: {Username: } {NO CARRIER} BUSY RING",
  1323. "  For use in script programs.  Waits up to n seconds for any one of the",
  1324. "  strings to arrive on the communication device.  If no strings are given,",
  1325. "  the command waits for any character at all to arrive.  Strings are",
  1326. "  separated by spaces; use { braces } for grouping.  If any of the strings",
  1327. "  is encountered within the timeout interval, the command succeeds and the",
  1328. "  \v(minput) variable is set to the number of the string that was matched:",
  1329. "  1, 2, 3, etc.  If none of the strings arrives, the command times out,",
  1330. "  fails, and \v(minput) is set to 0.",
  1331. " ",
  1332. "Also see: INPUT, REINPUT, SET INPUT.",
  1333. "" };
  1334. #endif /* CK_MINPUT */
  1335. #ifndef NOLOCAL
  1336. static char *hmxxcon[] = {
  1337. "Syntax: CONNECT (or C, or CQ) [ switches ]",
  1338. "  Connect to a remote computer via the serial communications device given in",
  1339. #ifdef OS2
  1340. "  the most recent SET PORT command, or to the network host named in the most",
  1341. #else
  1342. "  the most recent SET LINE command, or to the network host named in the most",
  1343. #endif /* OS2 */
  1344. "  recent SET HOST command.  Type the escape character followed by C to get",
  1345. "  back to the C-Kermit prompt, or followed by ? for a list of CONNECT-mode",
  1346. #ifdef OS2
  1347. "  escape commands.  You can also assign the \Kexit verb to the key or",
  1348. "  key-combination of your choice; by default it is assigned to Alt-x.",
  1349. #else
  1350. "  escape commands.",
  1351. " ",
  1352. "Include the /QUIETLY switch to suppress the informational message that",
  1353. "tells you how to escape back, etc.  CQ is a synonym for CONNECT /QUIETLY.",
  1354. #endif /* OS2 */
  1355. " ",
  1356. "Other switches include:",
  1357. #ifdef CK_TRIGGER
  1358. " ",
  1359. "/TRIGGER:string",
  1360. "  One or more strings to look for that will cause automatic return to",
  1361. "  command mode.  To specify one string, just put it right after the",
  1362. "  colon, e.g. "/TRIGGER:Goodbye".  If the string contains any spaces, you",
  1363. "  must enclose it in braces, e.g. "/TRIGGER:{READY TO SEND...}".  To",
  1364. "  specify more than one trigger, use the following format:",
  1365. " ",
  1366. "    /TRIGGER:{{string1}{string2}...{stringn}}",
  1367. " ",
  1368. "  Upon return from CONNECT mode, the variable \v(trigger) is set to the",
  1369. "  trigger string, if any, that was actually encountered.  This value, like",
  1370. "  all other CONNECT switches applies only to the CONNECT command with which",
  1371. "  it is given, and overrides (temporarily) any global SET TERMINAL TRIGGER",
  1372. "  string that might be in effect.",
  1373. #endif /* CK_TRIGGER */
  1374. #ifdef OS2
  1375. " ",
  1376. "/IDLE-LIMIT:number",
  1377. "  The number of seconds of idle time, after which Kermit returns",
  1378. "  automatically to command mode; default 0 (no limit).",
  1379. " ",
  1380. "/IDLE-INTERVAL:number",
  1381. "  The number of seconds of idle time, after which Kermit automatically",
  1382. "  transmits the idle string.",
  1383. " ",
  1384. "/IDLE-STRING:string",
  1385. "  The string to transmit whenever the idle interval has passed.",
  1386. " ",
  1387. "/TIME-LIMIT:number",
  1388. "  The maximum number of seconds for which the CONNECT session may last.",
  1389. "  The default is 0 (no limit).  If a nonzero number is given, Kermit returns",
  1390. "  automatically to command mode after this many seconds.",
  1391. #endif /* OS2 */
  1392. "" };
  1393. #endif /* NOLOCAL */
  1394. static char *hmxxmget[] = {
  1395. "Syntax: MGET [ switches... ] remote-filespec [ remote-filespec ... ]",
  1396. " ",
  1397. "Just like GET (q.v.) except allows a list of remote file specifications,",
  1398. "separated by spaces.",
  1399. ""
  1400. };
  1401. static char *hmxxget[] = {
  1402. "Syntax: GET [ switches... ] remote-filespec [ as-name ]",
  1403. "  Tells the other Kermit, which must be in (or support autoswitching into)",
  1404. "  server mode, to send the named file or files.  If the remote-filespec or",
  1405. "  the as-name contain spaces, they must be enclosed in braces.  If as-name",
  1406. "  is the name of an existing local directory, incoming files are placed in",
  1407. "  that directory; if it is the name of directory that does not exist, Kermit",
  1408. "  tries to create it.  Optional switches include:",
  1409. " ",
  1410. "/AS-NAME:text",
  1411. "  Specifies "text" as the name to store the incoming file under, or",
  1412. "  directory to store it in.  You can also specify the as-name as the second",
  1413. "  filename on the GET command line.",
  1414. " ",
  1415. "/BINARY",
  1416. "  Performs this transfer in binary mode without affecting the global",
  1417. "  transfer mode.",
  1418. " ",
  1419. "/COMMAND",
  1420. "  Receives the file into the standard input of a command, rather than saving",
  1421. "  it on  disk.  The /AS-NAME or the second "filename" on the GET command",
  1422. "  line is interpreted as the name of a command.",
  1423. " ",
  1424. "/DELETE",
  1425. "  Asks the other Kermit to delete the file (or each file in the group)",
  1426. "  after it has been transferred successfully.",
  1427. " ",
  1428. "/EXCEPT:pattern",
  1429. "  Specifies that any files whose names match the pattern, which can be a",
  1430. "  regular filename, or may contain "*" and/or "?" metacharacters,",
  1431. "  are to be refused.  To specify multiple patterns (up to 8), use outer",
  1432. "  braces around the group, and inner braces around each pattern:",
  1433. " ",
  1434. "    /EXCEPT:{{pattern1}{pattern2}...}",
  1435. " ",
  1436. "/FILENAMES:{CONVERTED,LITERAL}",
  1437. "  Overrides the global SET FILE NAMES setting for this transfer only.",
  1438. " ",
  1439. "/FILTER:command",
  1440. "  Causes the incoming file to passed through the given command (standard",
  1441. "  input/output filter) before being written to disk.",
  1442. " ",
  1443. #ifdef VMS
  1444. "/IMAGE",
  1445. "  Transfer in image mode.",
  1446. " ",
  1447. #endif /* VMS */
  1448. #ifdef CK_LABELED
  1449. "/LABELED",
  1450. "  VMS and OS/2 only: Specifies labeled transfer mode.",
  1451. " ",
  1452. #endif /* CK_LABELED */
  1453. "/MOVE-TO:directory-name",
  1454. "  Specifies that each file that arrives should be moved to the specified",
  1455. "  directory after, and only if, it has been received successfully.",
  1456. " ",
  1457. "/PATHNAMES:{OFF,ABSOLUTE,RELATIVE,AUTO}",
  1458. "  Overrides the global SET RECEIVE PATHNAMES setting for this transfer.",
  1459. " ",
  1460. "/QUIET",
  1461. "  When sending in local mode, this suppresses the file-transfer display.",
  1462. " ",
  1463. "/RECOVER",
  1464. "  Used to recover from a previously interrupted transfer; GET /RECOVER",
  1465. "  is equivalent REGET.  Works only in binary mode.",
  1466. " ",
  1467. "/RECURSIVE",
  1468. "  Tells the server to descend through the directory tree when locating",
  1469. "  the files to be sent.",
  1470. " ",
  1471. "/RENAME-TO:string",
  1472. "  Specifies that each file that arrives should be renamed as specified",
  1473. "  after, and only if, it has been received successfully.  The string should",
  1474. "  normally contain variables like \v(filename) or \v(filenum).",
  1475. " ",
  1476. "/TEXT",
  1477. "  Performs this transfer in text mode without affecting the global",
  1478. "  transfer mode.",
  1479. " ",
  1480. "Also see HELP MGET, HELP SEND, HELP RECEIVE, HELP SERVER, HELP REMOTE.",
  1481. ""};
  1482. static char *hmxxlg[] = {
  1483. "Syntax: LOG (or L) filename [ { NEW, APPEND } ]",
  1484. " ",
  1485. "Record information in a log file:",
  1486. " ",
  1487. #ifdef CKLOGDIAL
  1488. "CX",
  1489. "  Connections made with SET LINE, SET PORT, SET HOST, DIAL, TELNET, etc.",
  1490. "  The default filename is CX.LOG in your home directory and APPEND is the",
  1491. "  default mode for opening.",
  1492. " ",
  1493. #endif /* CKLOGDIAL */
  1494. #ifdef DEBUG
  1495. "DEBUG",
  1496. "  Debugging information, to help track down bugs in the C-Kermit program.",
  1497. "  The default log name is debug.log in current directory.",
  1498. " ",
  1499. #endif /* DEBUG */
  1500. "PACKETS",
  1501. "  Kermit packets, to help with protocol problems.  The default filename is",
  1502. "  packet.log in current directory.",
  1503. " ",
  1504. #ifndef NOLOCAL
  1505. "SESSION",
  1506. "  Records your CONNECT session (default: session.log in current directory).",
  1507. " ",
  1508. #endif /* NOLOCAL */
  1509. #ifdef TLOG
  1510. "TRANSACTIONS",
  1511. "  Names and statistics about files transferred (default: transact.log in",
  1512. "  current directory; see HELP SET TRANSACTION-LOG for transaction-log format",
  1513. "  options.)",
  1514. " ",
  1515. #endif /* TLOG */
  1516. "If you include the APPEND keyword after the filename, the existing log file,",
  1517. "if any, is appended to; otherwise a new file is created (except APPEND is",
  1518. "the default for the connection log).  Use CLOSE <keyword> to stop logging.",
  1519. #ifdef OS2ORUNIX
  1520. " ",
  1521. "Note: The filename can also be a pipe, e.g.:",
  1522. " ",
  1523. "  log transactions |lpr",
  1524. "  log debug {| grep "^TELNET" > debug.log}",
  1525. " ",
  1526. "Braces are required if the pipeline or filename contains spaces.",
  1527. #endif /* OS2ORUNIX */
  1528. "" };
  1529. #ifndef NOSCRIPT
  1530. static char *hmxxlogi[] = { "
  1531. Syntax: SCRIPT text",
  1532. "  A limited and cryptic "login assistant", carried over from old C-Kermit",
  1533. "  releases for comptability, but not recommended for use.  Instead, please",
  1534. "  use the full script programming language described in chapters 17-19 of",
  1535. "  "Using C-Kermit".",
  1536. " ",
  1537. "  Login to a remote system using the text provided.  The login script",
  1538. "  is intended to operate similarly to UNIX uucp "L.sys" entries.",
  1539. "  A login script is a sequence of the form:",
  1540. " ",
  1541. "    expect send [expect send] . . .",
  1542. " ",
  1543. "  where 'expect' is a prompt or message to be issued by the remote site, and",
  1544. "  'send' is the names, numbers, etc, to return.  The send may also be the",
  1545. "  keyword EOT to send Control-D, or BREAK (or \\b) to send a break signal.",
  1546. "  Letters in send may be prefixed by ~ to send special characters:",
  1547. " ",
  1548. "  ~b backspace, ~s space, ~q '?', ~n linefeed, ~r return, ~c don't",
  1549. "  append a return, and ~o[o[o]] for octal of a character.  As with some",
  1550. "  UUCP systems, sent strings are followed by ~r unless they end with ~c.",
  1551. " ",
  1552. "  Only the last 7 characters in each expect are matched.  A null expect,",
  1553. "  e.g. ~0 or two adjacent dashes, causes a short delay.  If you expect",
  1554. "  that a sequence might not arrive, as with uucp, conditional sequences",
  1555. "  may be expressed in the form:",
  1556. " ",
  1557. "    -send-expect[-send-expect[...]]",
  1558. " ",
  1559. "  where dashed sequences are followed as long as previous expects fail.",
  1560. "" };
  1561. #endif /* NOSCRIPT */
  1562. #ifndef NOFRILLS
  1563. static char * hmxxtyp[] = {
  1564. "Syntax: TYPE [ switches... ] file",
  1565. "  Displays a file on the screen.  Pauses automatically at end of each",
  1566. "  screenful if COMMAND MORE-PROMPTING is ON.  Optional switches:",
  1567. " ",
  1568. "  /PAGE",
  1569. "     Pause at the end of each screenful even if COMMAND MORE-PROMPTING OFF.",
  1570. "     Synonym: /MORE",
  1571. "  /NOPAGE",
  1572. "     Don't pause at the end of each screen even if COMMAND MORE-PROMPTING ON."
  1573. ,
  1574. "  /HEAD:n",
  1575. "     Only type the first 'n' lines of the file.",
  1576. "  /TAIL:n",
  1577. "     Only type the last 'n' lines of the file.",
  1578. "  /MATCH:pattern",
  1579. "     Only type lines that match the given pattern.  HELP WILDCARDS for info",
  1580. "     info about patterns.  /HEAD and /TAIL apply after /MATCH.",
  1581. "  /PREFIX:string",
  1582. "     Print the given string at the beginning of each line.",
  1583. "  /WIDTH:number",
  1584. "     Truncate each line at the given column number before printing.",
  1585. "  /COUNT",
  1586. "     Count lines (and matches) and print the count(s) but not the lines.",
  1587. " ",
  1588. "You can use SET OPTIONS TYPE to set the defaults for /PAGE or /NOPAGE and",
  1589. "/WIDTH.  Use SHOW OPTIONS to see current TYPE options.",
  1590. ""
  1591. };
  1592. static char * hmxxcle[] = {
  1593. "Syntax: CLEAR [ item-name ]",
  1594. " ",
  1595. "Clears the named item.  If no item is named, DEVICE-AND-INPUT is assumed.",
  1596. " ",
  1597. "  ALARM            Clears any pending alarm (see SET ALARM).",
  1598. #ifdef CK_APC
  1599. "  APC-STATUS       Clears Application Program Command status.",
  1600. #endif /* CK_APC */
  1601. #ifdef PATTERNS
  1602. "  BINARY-PATTERNS  Clears the file binary-patterns list.",
  1603. #endif /* PATTERNS */
  1604. #ifdef OS2
  1605. "  COMMAND-SCREEN   Clears the current command screen.",
  1606. #endif /* OS2 */
  1607. "  DEVICE           Clears the current port or network input buffer.",
  1608. "  DEVICE-AND-INPUT Clears both the device and the INPUT buffer.",
  1609. "  DIAL-STATUS      Clears the \v(dialstatus) variable.",
  1610. "  
  1611. INPUT            Clears the INPUT command buffer and the \v(input) variable.",
  1612. #ifdef OS2
  1613. "  
  1614. SCROLLBACK       empties the scrollback buffer including the current screen.",
  1615. #endif /* OS2 */
  1616. "  SEND-LIST        Clears the current SEND list (see ADD).",
  1617. #ifdef OS2
  1618. "  
  1619. TERMINAL-SCREEN  Clears the current screen a places it into the scrollback.",
  1620. "    buffer.",
  1621. #endif /* OS2 */
  1622. #ifdef PATTERNS
  1623. "  TEXT-PATTERNS    Clears the file text-patterns list.",
  1624. #endif /* PATTERNS */
  1625. ""};
  1626. #endif /* NOFRILLS */
  1627. static char * hmxxdate[] = {
  1628. "Syntax: DATE [ date-time ]",
  1629. "  Prints the current date and time in standard format: yyyymmdd_hh:mm:ss.",
  1630. "  If a date-time is given, converts it to standard format.  Various date-time"
  1631. ,"  formats are acceptable.  The rules for the date-time are:",
  1632. " ",
  1633. "  . The date, if given, must precede the time.",
  1634. "  . The year must be four digits.",
  1635. "  . If the year comes first, the second field is the month.",
  1636. "  . The day, month, and year may be separated by spaces, /, -, or underscore."
  1637. ,"  . The date and time may be separated by spaces or underscore.",
  1638. "  . The month may be numeric (1 = January) or spelled out or abbreviated in",
  1639. "    English.",
  1640. "  . The time may be in 24-hour format or 12-hour format.",
  1641. "  . If the hour is 12 or less, AM is assumed unless AM or PM is included.",
  1642. "  . If the date is omitted but a time is given, the current date is assumed.",
  1643. "  . If the time is given but date omitted, 00:00:00 is assumed.",
  1644. "  . If both the date and time are omitted, the current date and time are",
  1645. "    assumed.",
  1646. " ",
  1647. "  The following shortcuts can also be used:",
  1648. " ",
  1649. "  TODAY",
  1650. "    Today's date, optionally followed by a time; 00:00:00 if no time given.",
  1651. " ",
  1652. "  YESTERDAY",
  1653. "    Yesterday's date, optionally followed by a time (default 00:00:00).",
  1654. " ",
  1655. "  TOMORROW",
  1656. "    Tomorrows's date, optionally followed by a time (default 00:00:00).",
  1657. " ",
  1658. " + <number> <timeunits>",
  1659. "  A date in the future relative to the current date; <timeunits> may be DAYS",
  1660. "  WEEKS, MONTHS, or YEARS.  Optionally followed by a time (default 00:00:00)."
  1661. ,
  1662. "  Examples: +3days, +7weeks.",
  1663. " ",
  1664. " - <number> <timeunits>",
  1665. "  A date in the past relative to the current date, optionally followed by a",
  1666. "  time (default 00:00:00).  Examples: -1year, -37months.",
  1667. " ",
  1668. "All the formats shown above are acceptable as arguments to date-time switches"
  1669. ,
  1670. "such as /AFTER: or /BEFORE, and to functions such as \fcvtdate() that take",
  1671. "date-time strings as arguments.",
  1672. ""
  1673. };
  1674. #ifndef NOXFER
  1675. static char * hmxxsen[] = {
  1676. "Syntax: SEND (or S) [ switches...] [ filespec [ as-name ] ]",
  1677. "  Sends the file or files specified by filespec.  If the filespec is omitted",
  1678. "  the SEND-LIST is used (HELP ADD for more info).  The filespec may contain",
  1679. "  wildcard characters.  An 'as-name' may be given to specify the name(s)",
  1680. "  the files(s) are sent under; if the as-name is omitted, each file is",
  1681. "  sent under its own name.  Also see HELP MSEND, HELP WILDCARD.",
  1682. "  Optional switches include:",
  1683. " ",
  1684. #ifndef NOSPL
  1685. "/ARRAY:<arrayname>",
  1686. "  Specifies that the data to be sent comes from the given array, such as",
  1687. "  \&a[].  A range may be specified, e.g. SEND /ARRAY:&a[100:199].  Leave",
  1688. "  the brackets empty or omit them altogether to send the whole 1-based array."
  1689. ,
  1690. "  Include /TEXT to have Kermit supply a line terminator at the end of each",
  1691. "  array element (and translate character sets if character-set translations",
  1692. "  are set up), or /BINARY to treat the array as one long string of characters"
  1693. ,
  1694. "  to be sent as-is.  If an as-name is not specified, the array is sent with",
  1695. "  the name _ARRAY_X_, where "X" is replaced by actual array letter.",
  1696. " ",
  1697. #endif /* NOSPL */
  1698. "/AS-NAME:<text>",
  1699. "  Specifies <text> as the name to send the file under instead of its real",
  1700. "  name.  This is equivalent to giving an as-name after the filespec.",
  1701. " ",
  1702. "/BINARY",
  1703. "  Performs this transfer in binary mode without affecting the global",
  1704. "  transfer mode.",
  1705. " ",
  1706. "/TEXT",
  1707. "  Performs this transfer in text mode without affecting the global",
  1708. "  transfer mode.",
  1709. " ",
  1710. "/NOBACKUP",
  1711. "  Skip (don't send) Kermit or EMACS backup files (files with names that",
  1712. "  end with .~n~, where n is a number).",
  1713. " ",
  1714. #ifdef UNIXOROSK
  1715. "/DOTFILES",
  1716. "  Include (send) files whose names begin with ".".",
  1717. " ",
  1718. "/NODOTFILES",
  1719. "  Don't send files whose names begin with ".".",
  1720. " ",
  1721. #endif /* UNIXOROSK */
  1722. #ifdef VMS
  1723. "/IMAGE",
  1724. "  Performs this transfer in image mode without affecting the global",
  1725. "  transfer mode.",
  1726. " ",
  1727. #endif /* VMS */
  1728. #ifdef CK_LABELED
  1729. "/LABELED",
  1730. "  Performs this transfer in labeled mode without affecting the global",
  1731. "  transfer mode.",
  1732. " ",
  1733. #endif /* CK_LABELED */
  1734. "/COMMAND",
  1735. "  Sends the output from a command, rather than the contents of a file.",
  1736. "  The first "filename" on the SEND command line is interpreted as the name",
  1737. "  of a command; the second (if any) is the as-name.",
  1738. " ",
  1739. "/FILENAMES:{CONVERTED,LITERAL}",
  1740. "  Overrides the global SET FILE NAMES setting for this transfer only.",
  1741. " ",
  1742. "/PATHNAMES:{OFF,ABSOLUTE,RELATIVE}",
  1743. "  Overrides the global SET SEND PATHNAMES setting for this transfer.",
  1744. " ",
  1745. "/FILTER:command",
  1746. "  Specifies a command 
  1747. (standard input/output filter) to pass the file through",
  1748. "  before sending it.",
  1749. " ",
  1750. "/DELETE",
  1751. "  Deletes the file (or each file in the group) after it has been sent",
  1752. "  successfully (applies only to real files).",
  1753. " ",
  1754. "/QUIET",
  1755. "  When sending in local mode, this suppresses the file-transfer display.",
  1756. " ",
  1757. "/RECOVER",
  1758. "  Used to recover from a previously interrupted transfer; SEND /RECOVER",
  1759. "  is equivalent RESEND (use in binary mode only).",
  1760. " ",
  1761. "/RECURSIVE",
  1762. "  Tells C-Kermit to look not only in the given or current directory for",
  1763. "  files that match the filespec, but also in all its subdirectories, and",
  1764. "  all their subdirectories, etc.",
  1765. " ",
  1766. "/RENAME-TO:name",
  1767. "  Tells C-Kermit to rename each source file that is sent successfully to",
  1768. "  the given name (usually you should include \v(filename) in the new name,",
  1769. "  which is replaced by the original filename.",
  1770. " ",
  1771. "/MOVE-TO:directory",
  1772. "  Tells C-Kermit to move each source file that is sent successfully to",
  1773. "  the given directory.",
  1774. " ",
  1775. "/STARTING:number",
  1776. "  Starts sending the file from the given byte position.",
  1777. "  SEND /STARTING:n filename is equivalent to PSEND filename n.",
  1778. " ",
  1779. "/SUBJECT:text",
  1780. "  Specifies the subject of an email message, to be used with /MAIL.  If the",
  1781. "  text contains spaces, it must be enclosed in braces.",
  1782. " ",
  1783. "/MAIL:address",
  1784. "  Sends the file as e-mail to the given address; use with /SUBJECT:.",
  1785. " ",
  1786. "/PRINT:options",
  1787. "  Sends the file to be printed, with optional options for the printer.",
  1788. " ",
  1789. #ifdef CK_XYZ
  1790. "/PROTOCOL:name",
  1791. "  Uses the given protocol to send the file (Kermit, Zmodem, etc) for this",
  1792. "  transfer without changing global protocol.",
  1793. " ",
  1794. #endif /* CK_XYZ */
  1795. "/AFTER:date-time",
  1796. #ifdef VMS
  1797. "  Specifies that only those files created after the given date-time are",
  1798. #else
  1799. "  Specifies that only those files modified after the given date-time are",
  1800. #endif /* VMS */
  1801. "  to be sent.  HELP DATE for info about date-time formats.",
  1802. " ",
  1803. "/BEFORE:date-time",
  1804. #ifdef VMS
  1805. "  Specifies that only those files modified before the given date-time",
  1806. #else
  1807. "  Specifies that only those files modified before the given date-time",
  1808. #endif /* VMS */
  1809. "  are to be sent.",
  1810. " ",
  1811. "/NOT-AFTER:date-time",
  1812. #ifdef VMS
  1813. "  Specifies that only those files modified at or before the given date-time",
  1814. #else
  1815. "  Specifies that only those files modified at or before the given date-time",
  1816. #endif /* VMS */
  1817. "  are to be sent.",
  1818. " ",
  1819. "/NOT-BEFORE:date-time",
  1820. #ifdef VMS
  1821. "  Specifies that only those files modified at or after the given date-time",
  1822. #else
  1823. "  Specifies that only those files modified at or after the given date-time",
  1824. #endif /* VMS */
  1825. "  are to be sent.",
  1826. " ",
  1827. "/LARGER-THAN:number",
  1828. "  Specifies that only those files longer than the given number of bytes are",
  1829. "  to be sent.",
  1830. " ",
  1831. "/SMALLER-THAN:number",
  1832. "  Specifies that only those files smaller than the given number of bytes are",
  1833. "  to be sent.",
  1834. " ",
  1835. "/EXCEPT:pattern",
  1836. "  Specifies that any files whose names match the pattern, which can be a",
  1837. "  regular filename, or may contain "*" and/or "?" metacharacters,",
  1838. "  are not to be sent.  To specify multiple patterns (up to 8), use outer",
  1839. "  braces around the group, and inner braces around each pattern:",
  1840. " ",
  1841. "    /EXCEPT:{{pattern1}{pattern2}...}",
  1842. " ",
  1843. "/LISTFILE:filename",
  1844. "  Specifies the name of a file that contains the list of names of files",
  1845. "  that are to be sent.  The filenames should be listed one name per line",
  1846. "  in this file (but a name can contain wildcards).",
  1847. " ",
  1848. "Also see HELP RECEIVE, HELP GET, HELP SERVER, HELP REMOTE.",
  1849. ""};
  1850. static char *hmxxrc[] = {
  1851. "Syntax: RECEIVE (or R) [ switches... ] [ as-name ]",
  1852. "  Wait for a file to arrive from the other Kermit, which must be given a",
  1853. "  SEND command.  If the optional as-name is given, the incoming file or",
  1854. "  files are stored under that name, otherwise it will be stored under",
  1855. #ifndef CK_TMPDIR
  1856. "  the name it arrives with.",
  1857. #else
  1858. #ifdef OS2
  1859. "  the name it arrives with.  If the filespec denotes a disk and/or",
  1860. "  directory, the incoming file or files will be stored there.",
  1861. #else
  1862. "  the name it arrives with.  If the filespec denotes a directory, the",
  1863. "  incoming file or files will be placed in that directory.",
  1864. #endif /* OS2 */
  1865. #endif /* CK_TMPDIR */
  1866. " ",
  1867. "Optional switches include:",
  1868. " ",
  1869. "/AS-NAME:text",
  1870. "  Specifies "text" as the name to store the incoming file under.",
  1871. "  You can also specify the as-name as a filename on the command line.",
  1872. " ",
  1873. "/BINARY",
  1874. "  Skips text-mode conversions unless the incoming file arrives with binary",
  1875. "  attribute",
  1876. " ",
  1877. "/COMMAND",
  1878. "  Receives the file into the standard input of a command, rather than saving",
  1879. "  it on disk.  The /AS-NAME or the "filename" on the RECEIVE command line",
  1880. "  is interpreted as the name of a command.",
  1881. " ",
  1882. "/EXCEPT:pattern",
  1883. "  Specifies that any files whose names match the pattern, which can be a",
  1884. "  regular filename, or may contain "*" and/or "?" metacharacters,",
  1885. "  are to be refused.  To specify multiple patterns (up to 8), use outer",
  1886. "  braces around the group, and inner braces around each pattern:",
  1887. " ",
  1888. "    /EXCEPT:{{pattern1}{pattern2}...}",
  1889. " ",
  1890. "/FILENAMES:{CONVERTED,LITERAL}",
  1891. "  Overrides the global SET FILE NAMES setting for this transfer only.",
  1892. " ",
  1893. "/FILTER:command",
  1894. "  Causes the incoming file to passed through the given command (standard",
  1895. "  input/output filter) before being written to disk.",
  1896. " ",
  1897. #ifdef VMS
  1898. "/IMAGE",
  1899. "  Receives the file in image mode.",
  1900. " ",
  1901. #endif /* VMS */
  1902. #ifdef CK_LABELED
  1903. "/LABELED",
  1904. "  Specifies labeled transfer mode.",
  1905. " ",
  1906. #endif /* CK_LABELED */
  1907. "/MOVE-TO:directory-name",
  1908. "  Specifies that each file that arrives should be moved to the specified",
  1909. "  directory after, and only if, it has been received successfully.",
  1910. " ",
  1911. "/PATHNAMES:{OFF,ABSOLUTE,RELATIVE,AUTO}",
  1912. "  Overrides the global SET RECEIVE PATHNAMES setting for this transfer.",
  1913. " ",
  1914. "/PROTOCOL:name",
  1915. "  Use the given protocol to receive the incoming file(s).",
  1916. " ",
  1917. "/QUIET",
  1918. "  When sending in local mode, this suppresses the file-transfer display.",
  1919. " ",
  1920. "/RECURSIVE",
  1921. "  Equivalent to /PATHNAMES:RELATIVE.",
  1922. " ",
  1923. "/RENAME-TO:string",
  1924. "  Specifies that each file that arrives should be renamed as specified",
  1925. "  after, and only if, it has been received successfully.  The string should",
  1926. "  normally contain variables like \v(filename) or \v(filenum).",
  1927. " ",
  1928. "/TEXT",
  1929. "  Forces text-mode conversions unless the incoming file has the binary",
  1930. "  attribute",
  1931. " ",
  1932. "Also see HELP SEND, HELP GET, HELP SERVER, HELP REMOTE.",
  1933. "" };
  1934. #ifndef NORESEND
  1935. static char *hmxxrsen = "
  1936. Syntax: RESEND filespec [name]nn
  1937.   Resend the file or files, whose previous transfer was interrupted.n
  1938.   Picks up from where previous transfer left off, IF the receiver was toldn
  1939.   to SET FILE INCOMPLETE KEEP.  Only works for binary-mode transfers.n
  1940.   Requires the other Kermit to have RESEND capability.";
  1941. static char *hmxxrget = "
  1942. Syntax: REGET filespecnn
  1943.   Ask a server to RESEND a file to C-Kermit.";
  1944. static char *hmxxpsen = "
  1945. Syntax: PSEND filespec position [name]nn
  1946.   Just like SEND, except sends the file starting at the given byte position.";
  1947. #endif /* NORESEND */
  1948. #ifndef NOMSEND
  1949. static char *hmxxmse[] = {
  1950. "Syntax: MSEND [ switches... ] filespec [ filespec [ ... ] ]",
  1951. "  Sends the files specified by the filespecs.  One or more filespecs may be",
  1952. "  listed, separated by spaces.  Any or all filespecs may contain wildcards",
  1953. "  and they may be in different directories.  Alternative names cannot be",
  1954. "  given.  Switches include /BINARY /DELETE /MAIL /PROTOCOL /QUIET /RECOVER",
  1955. "  /TEXT; see HELP SEND for descriptions.",
  1956. ""
  1957. };
  1958. #endif /* NOMSEND */
  1959. static char *hmxxadd[] = {
  1960. #ifndef NOMSEND
  1961. "ADD SEND-LIST filespec [ <mode> [ <as-name> ] ]",
  1962. "  Adds the specified file or files to the current SEND list.  Use SHOW",
  1963. "  SEND-LIST and CLEAR SEND-LIST to display and clear the list; use SEND",
  1964. "  by itself to send the files from it.",
  1965. " ",
  1966. #endif /* NOMSEND */
  1967. #ifdef PATTERNS
  1968. "ADD BINARY-PATTERNS [ <pattern> [ <pattern> ... ] ]",
  1969. "  Adds the pattern(s), if any, to the SET FILE BINARY-PATTERNS list.",
  1970. " ",
  1971. "ADD TEXT-PATTERNS [ <pattern> [ <pattern> ... ] ]",
  1972. "  Adds the pattern(s), if any, to the SET FILE TEXT-PATTERNS list.",
  1973. "  Use SHOW PATTERNS to see the lists.  See HELP SET FILE for further info.",
  1974. #endif /* PATTERNS */
  1975. ""};
  1976. static char *hmxxremv[] = {
  1977. #ifdef PATTERNS
  1978. "REMOVE BINARY-PATTERNS [ <pattern> [ <pattern> ... ] ]",
  1979. "  Removes the pattern(s), if any, from the SET FILE BINARY-PATTERNS list",
  1980. " ",
  1981. "REMOVE TEXT-PATTERNS [ <pattern> [ <pattern> ... ] ]",
  1982. "  Removes the given patterns from the SET FILE TEXT-PATTERNS list.",
  1983. "  Use SHOW PATTERNS to see the lists.  See HELP SET FILE for further info.",
  1984. #endif /* PATTERNS */
  1985. ""};
  1986. #endif /* NOXFER */
  1987. #ifndef NOSERVER
  1988. static char *hmxxser = "Syntax: SERVERn
  1989.   Enter server mode on the current connection.  All further commandsn
  1990.   are taken in packet form from the other Kermit program.  Use FINISH,n
  1991.   BYE, or REMOTE EXIT to get C-Kermit out of server mode.";
  1992. #endif /* NOSERVER */
  1993. static char *hmhset[] = {
  1994. "  The SET command establishes communication, file, scripting, or other",
  1995. "  parameters.  The SHOW command can be used to display the values of",
  1996. "  SET parameters.  Help is available for each individual parameter;",
  1997. "  type HELP SET ? to see what's available.",
  1998. "" };
  1999. #ifndef NOSETKEY
  2000. static char *hmhskey[] = {
  2001. "Syntax: SET KEY k text",
  2002. "Or:     SET KEY CLEAR",
  2003. "  Configure the key whose "scan code" is k to send the given text when",
  2004. "  pressed during CONNECT mode.  SET KEY CLEAR restores all the default",
  2005. "  key mappings.  If there is no text, the default key binding is restored",
  2006. #ifndef NOCSETS
  2007. "  for the key k.  SET KEY mappings take place before terminal character-set",
  2008. "  translation.",
  2009. #else
  2010. "  the key k.",
  2011. #endif /* NOCSETS */
  2012. #ifdef OS2
  2013. " ",
  2014. "  The text may contain "\Kverbs" to denote actions, to stand for DEC",
  2015. "  keypad, function, or editing keys, etc.  For a list of available keyboard",
  2016. "  verbs, type SHOW KVERBS.",
  2017. #endif /* OS2 */
  2018. " ",
  2019. "  To find out the scan code and mapping for a particular key, use the",
  2020. "  SHOW KEY command.",
  2021. ""};
  2022. #endif /* NOSETKEY */
  2023. static char *hmxychkt[] = { "Syntax: SET BLOCK-CHECK type",
  2024. " ",
  2025. "  Type of packet block check to be used for error detection, 1, 2, 3, or",
  2026. "  BLANK-FREE-2.  Type 1 is standard, and catches most errors.  Types 2 and 3",
  2027. "  specify more rigorous checking at the cost of higher overhead.  The",
  2028. "  BLANK-FREE-2 type is the same as Type 2, but is guaranteed to contain no",
  2029. "  blanks.",
  2030. "" };
  2031. static char * hmxydeb[] = {
  2032. "Syntax: SET DEBUG { SESSION, ON, OFF, TIMESTAMP }",
  2033. " ",
  2034. "SET DEBUG ON",
  2035. #ifdef DEBUG
  2036. "  Opens a debug log file named debug.log in the current directory.",
  2037. "  Use LOG DEBUG if you want specify a different log file name or path.",
  2038. #else
  2039. "  (Has no effect in this version of Kermit.)",
  2040. #endif /* DEBUG */
  2041. " ",
  2042. "SET DEBUG OFF",
  2043. "  Stops debug logging and session debugging.",
  2044. " ",
  2045. "SET DEBUG SESSION",
  2046. #ifndef NOLOCAL
  2047. "  Displays control and 8-bit characters symbolically during CONNECT mode.",
  2048. "  Equivalent to SET TERMINAL DEBUG ON.",
  2049. #else
  2050. "  (Has no effect in this version of Kermit.)",
  2051. #endif /* NOLOCAL */
  2052. " ",
  2053. "SET DEBUG TIMESTAMP { ON, OFF }",
  2054. "  Enables/Disables timestamps on debug log entries.",
  2055. "" };
  2056. #ifdef CK_SPEED
  2057. static char *hmxyqctl[] = {
  2058. "Syntax: SET CONTROL-CHARACTER { PREFIXED, UNPREFIXED } { <code>..., ALL }",
  2059. " ",
  2060. "  <code> is the numeric ASCII code for a control character 1-31,127-159,255."
  2061. ,
  2062. "  The word "ALL" means all characters in this range.",
  2063. " ",
  2064. "  PREFIXED <code> means the given control character must be converted to a",
  2065. "  printable character and prefixed, the default for all control characters.",
  2066. " ",
  2067. "  UNPREFIXED <code> means you think it is safe to send the given control",
  2068. "  character as-is, without a prefix.  USE THIS OPTION AT YOUR OWN RISK!",
  2069. " ",
  2070. "  SHOW CONTROL to see current settings.  SET CONTROL PREFIXED ALL is",
  2071. "  recommended for safety.  You can include multiple <code> values in one",
  2072. "  command, separated by spaces.",
  2073. "" };
  2074. #endif /* CK_SPEED */
  2075. #ifndef NODIAL
  2076. static char *hxymodm[] = {
  2077. "Syntax: SET MODEM <parameter> <value> ...",
  2078. " ",
  2079. "Note: Many of the SET MODEM parameters are configured automatically when",
  2080. "you SET MODEM TYPE, according to the modem's capabilities.  SHOW MODEM to",
  2081. "see them.  Also see HELP DIAL and HELP SET DIAL.",
  2082. " ",
  2083. "SET MODEM TYPE <name>",
  2084. "  Tells Kermit which kind of modem you have, so it can issue the appropriate",
  2085. "  modem-specific commands for configuration, dialing, and hanging up.  For a",
  2086. "  list of the modem types known to Kermit, type "set modem type ?".",
  2087. "  Use SET MODEM TYPE NONE (the default) for direct serial connections.  Use",
  2088. "  SET MODEM TYPE USER-DEFINED to use a type of modem that is not built in",
  2089. "  to Kermit, and then user SET MODEM CAPABILITIES, SET MODEM DIAL-COMMAND,",
  2090. "  and SET MODEM COMMAND to tell Kermit how to configure and control it.",
  2091. " ",
  2092. #ifdef UNIX
  2093. "  Give the SET MODEM TYPE command BEFORE the SET LINE command so Kermit can",
  2094. "  open the communications device in the correct mode for dialing.",
  2095. " ",
  2096. #endif /* UNIX */
  2097. "SET MODEM CAPABILITIES <list>",
  2098. "  Use this command for changing Kermit's idea of your modem's capabilities,",
  2099. "  for example, if your modem is supposed to have built-in error correction",
  2100. "  but in fact does not.  Also use this command to define the capabilities",
  2101. "  of a USER-DEFINED modem.  Capabilities are:",
  2102. " ",
  2103. "    AT      AT-commands",
  2104. "    DC      data-compression",
  2105. "    EC      error-correction",
  2106. "    HWFC    hardware-flow",
  2107. "    ITU     v25bis-commands",
  2108. "    SWFC    software-flow",
  2109. "    KS      kermit-spoof",
  2110. "    SB      speed-buffering",
  2111. "    TB      Telebit",
  2112. " ",
  2113. "SET MODEM CARRIER-WATCH { AUTO, ON, OFF }",
  2114. "  Synonym for SET CARRIER-WATCH (q.v.)",
  2115. " ",
  2116. "SET MODEM COMPRESSION { ON, OFF }",
  2117. "  Enables/disables the modem's data compression feature, if any.",
  2118. " ",
  2119. "SET MODEM DIAL-COMMAND <text>",
  2120. "  The text replaces Kermit's built-in modem dialing command.  It must",
  2121. "  include '%s' (percent s) as a place-holder for the telephone numbers",
  2122. "  given in your DIAL commands.",
  2123. " ",
  2124. "SET MODEM ERROR-CORRECTION { ON, OFF }",
  2125. "  Enables/disables the modem's error-correction feature, if any.",
  2126. " ",
  2127. "SET MODEM ESCAPE-CHARACTER number",
  2128. "  Numeric ASCII value of modem's escape character, e.g. 43 for '+'.",
  2129. "  For Hayes-compatible modems, Kermit uses three copies, e.g. "+++".",
  2130. " ",
  2131. "SET MODEM FLOW-CONTROL {AUTO, NONE, RTS/CTS, XON/XOFF}",
  2132. "  Selects the type of local flow control to be used by the modem.",
  2133. " ",
  2134. "SET MODEM HANGUP-METHOD { MODEM-COMMAND, RS232-SIGNAL }",
  2135. "  How hangup operations should be done.  MODEM-COMMAND means try to",
  2136. "  escape back to the modem's command processor and give a modem-specific",
  2137. "  hangup command.  RS232-SIGNAL means turn off the DTR signal.",
  2138. " ",
  2139. "SET MODEM KERMIT-SPOOF {ON, OFF}",
  2140. "  If the selected modem type supports the Kermit protocol directly,",
  2141. "  use this command to turn its Kermit protocol function on or off.",
  2142. " ",
  2143. "SET MODEM MAXIMUM-SPEED <number>",
  2144. "  Specify the maximum interface speed for the modem.",
  2145. " ",
  2146. "SET MODEM NAME <text>",
  2147. "  Descriptive name for a USER-DEFINED modem.",
  2148. " ",
  2149. "SET MODEM SPEAKER {ON, OFF}",
  2150. "  Turns the modem's speaker on or off during dialing.",
  2151. " ",
  2152. "SET MODEM SPEED-MATCHING {ON, OFF}",
  2153. "  ON means that C-Kermit changes its serial interface speed to agree with",
  2154. "  the speed reported by the modem's CONNECT message, if any.  OFF means",
  2155. "  Kermit should not change its interface speed.",
  2156. " ",
  2157. "SET MODEM VOLUME {LOW, MEDIUM, HIGH}",
  2158. "  Selects the desired modem speaker volume for when the speaker is ON.",
  2159. " ",
  2160. "SET MODEM COMMAND commands are used to override built-in modem commands for",
  2161. "each modem type, or to fill in commands for the USER-DEFINED modem type.",
  2162. "Omitting the optional [ text ] restores the built-in modem-specific command,",
  2163. "if any:",
  2164. " ",
  2165. "SET MODEM COMMAND AUTOANSWER {ON, OFF} [ text ]",
  2166. "  Modem commands to turn autoanswer on and off.",
  2167. " ",
  2168. "SET MODEM COMMAND COMPRESSION {ON, OFF} [ text ]",
  2169. "  Modem commands to turn data compression on and off.",
  2170. " ",
  2171. "SET MODEM COMMAND ERROR-CORRECTION {ON, OFF} [ text ]",
  2172. "  Modem commands to turn error correction on and off.",
  2173. " ",
  2174. "SET MODEM COMMAND HANGUP [ text ]",
  2175. "  Command that tells the modem to hang up the connection.",
  2176. " ",
  2177. "SET MODEM COMMAND IGNORE-DIALTONE [ text ]",
  2178. "  Command that tells the modem not to wait for dialtone before dialing.",
  2179. " ",
  2180. "SET MODEM COMMAND INIT-STRING [ text ]",
  2181. "  The 'text' is a replacement for C-Kermit's built-in initialization command",
  2182. "  for the modem.",
  2183. " ",
  2184. "SET MODEM COMMAND PREDIAL-INIT [ text ]",
  2185. "  A second INIT-STRING that is to be sent to the modem just prior to 
  2186. dialing.",
  2187. " ",
  2188. "SET MODEM COMMAND HARDWARE-FLOW [ text ]",
  2189. "  Modem command to enable hardware flow control (RTS/CTS) in the modem.",
  2190. " ",
  2191. "SET MODEM COMMAND SOFTWARE-FLOW [ text ]",
  2192. "  Modem command to enable local software flow control (Xon/Xoff) in modem.",
  2193. " ",
  2194. "SET MODEM COMMAND SPEAKER { ON, OFF } [ text ]",
  2195. "  Modem command to turn the modem's speaker on or off.",
  2196. " ",
  2197. "SET MODEM COMMAND NO-FLOW-CONTROL [ text ]",
  2198. "  Modem command to disable local flow control in the modem.",
  2199. " ",
  2200. "SET MODEM COMMAND PULSE [ text ]",
  2201. "  Modem command to select pulse dialing.",
  2202. " ",
  2203. "SET MODEM COMMAND TONE [ text ]",
  2204. "  Modem command to select tone dialing.",
  2205. " ",
  2206. "SET MODEM COMMAND VOLUME { LOW, MEDIUM, HIGH } [ text ]",
  2207. "  Modem command to set the modem's speaker volume.",
  2208. ""};
  2209. static char *hmxydial[] = {
  2210. "The SET DIAL command establishes or changes all parameters related to",
  2211. "dialing the telephone.  Also see HELP DIAL and HELP SET MODEM.  Use SHOW",
  2212. "DIAL to display all of the SET DIAL values.",
  2213. " ",
  2214. "SET DIAL COUNTRY-CODE <number>",
  2215. "  Tells Kermit the telephonic country-code of the country you are dialing",
  2216. "  from, so it can tell whether a portable-format phone number from your",
  2217. "  dialing directory will result in a national or an international call.",
  2218. "  Examples: 1 for USA, Canada, Puerto Rico, etc; 7 for Russia, 39 for Italy,",
  2219. "  351 for Portugal, 47 for Norway, 44 for the UK, 972 for Israel, 81 for",
  2220. "  Japan, ...",
  2221. " ",
  2222. "  If you have not already set your DIAL INTL-PREFIX and LD-PREFIX, then this",
  2223. "  command sets default values for them: 011 and 1, respectively, for country",
  2224. "  code 1; 00 and 0, respectively, for all other country codes.  If these are",
  2225. "  not your true international and long-distance dialing prefixes, then you",
  2226. "  should follow this command by DIAL INTL-PREFIX and LD-PREFIX to let Kermit",
  2227. "  know what they really are.",
  2228. " ",
  2229. "SET DIAL AREA-CODE [ <number> ]",
  2230. "  Tells Kermit the area or city code that you are dialing from, so it can",
  2231. "  tell whether a portable-format phone number from the dialing directory is",
  2232. "  local or long distance.  Be careful not to include your long-distance",
  2233. "  dialing prefix as part of your area code; for example, the area code for",
  2234. "  central London is 171, not 0171.",
  2235. " ",
  2236. "SET DIAL CONFIRMATION {ON, OFF}",
  2237. "  Kermit does various transformations on a telephone number retrieved from",
  2238. "  the dialing directory prior to dialing (use LOOKUP <name> to see them).",
  2239. "  In case the result might be wrong, you can use SET DIAL CONFIRM ON to have",
  2240. "  Kermit ask you if it is OK to dial the number, and if not, to let you type",
  2241. "  in a replacement.",
  2242. " ",
  2243. "SET DIAL CONNECT { AUTO, ON, OFF }",
  2244. "  Whether to CONNECT (enter terminal mode) automatically after successfully",
  2245. "  dialing.  ON means to do this; OFF means not to.  AUTO (the default) means",
  2246. "  do it if the DIAL command was given interactively, but don't do it if the",
  2247. "  DIAL command was issued from a macro or command file.  If you specify ON",
  2248. "  or AUTO, you may follow this by one of the keywords VERBOSE or QUIET, to",
  2249. "  indicate whether the verbose 4-line 'Connecting...' message is to be",
  2250. "  displayed if DIAL succeeds and Kermit goes into CONNECT mode.",
  2251. " ",
  2252. "SET DIAL CONVERT-DIRECTORY {ASK, ON, OFF}",
  2253. "  The format of Kermit's dialing directory changed in version 5A(192).  This",
  2254. "  command tells Kermit what to do when it encounters an old-style directory:",
  2255. "  ASK you whether to convert it, or convert it automatically (ON), or leave",
  2256. "  it alone (OFF).  Old-style directories can still be used without",
  2257. "  conversion, but the parity and speed fields are ignored.",
  2258. " ",
  2259. "SET DIAL DIRECTORY [ filename [ filename [ filename [ ... ] ] ] ]",
  2260. "  The name(s) of your dialing directory file(s).  If you do not supply any",
  2261. "  filenames, the  dialing directory feature is disabled and all numbers are",
  2262. "  dialed literally as given in the DIAL command.  If you supply more than",
  2263. "  one directory, all of them are searched.",
  2264. " ",
  2265. "SET DIAL SORT {ON, OFF}",
  2266. "  When multiple entries are obtained from your dialing directory, they are",
  2267. "  sorted in "cheapest-first" order.  If this does not produce the desired",
  2268. "  effect, SET DIAL SORT OFF to disable sorting, and the numbers will be",
  2269. "  dialed in the order in which they were found.",
  2270. " ",
  2271. "SET DIAL DISPLAY {ON, OFF}",
  2272. "  Whether to display dialing progress on the screen; default is OFF.",
  2273. " ",
  2274. "SET DIAL HANGUP {ON, OFF}",
  2275. "  Whether to hang up the phone prior to dialing; default is ON.",
  2276. " ",
  2277. "SET DIAL IGNORE-DIALTONE {ON, OFF}",
  2278. "  Whether to ignore dialtone when dialing; default is OFF.",
  2279. " ",
  2280. #ifndef NOSPL
  2281. "SET DIAL MACRO [ name ]",
  2282. "  Specify the name of a macro to execute on every phone number dialed, just",
  2283. "  prior to dialing it, in order to perform any last-minute alterations.",
  2284. " ",
  2285. #endif /* NOSPL */
  2286. "SET DIAL METHOD {AUTO, DEFAULT, TONE, PULSE}",
  2287. "  Whether to use the modem's DEFAULT dialing method, or to force TONE or",
  2288. "  PULSE dialing.  AUTO (the default) means to choose tone or pulse dialing",
  2289. "  based on the country code.  (Also see SET DIAL TONE-COUNTRIES and SET DIAL",
  2290. "  PULSE-COUNTRIES.)",
  2291. " ",
  2292. "SET DIAL PACING number",
  2293. "  How many milliseconds to pause between sending each character to the modem",
  2294. "  dialer.  The default is -1, meaning to use the number from the built-in",
  2295. " modem database.",
  2296. "  ",
  2297. "SET DIAL PULSE-COUNTRIES [ cc [ cc [ ... ] ] ]",
  2298. "  Sets the list of countries in which pulse dialing is required.  Each cc",
  2299. "  is a country code.",
  2300. " ",
  2301. "SET DIAL TEST { ON, OFF }",
  2302. "  OFF for normal dialing.  Set to ON to test dialing procedures without",
  2303. "  actually dialing.",
  2304. " ",
  2305. "SET DIAL TONE-COUNTRIES [ cc [ cc [ ... ] ] ]",
  2306. "  Sets the list of countries in which tone dialing is available.  Each cc",
  2307. "  is a country code.",
  2308. " ",
  2309. "SET DIAL TIMEOUT number",
  2310. "  How many seconds to wait for a dialed call to complete.  Use this command",
  2311. "  to override the DIAL command's automatic timeout calculation.  A value",
  2312. "  of 0 turns off this feature and returns to Kermit's automatic dial",
  2313. "  timeout calculation.",
  2314. " ",
  2315. "SET DIAL RESTRICT { INTERNATIONAL, LOCAL, LONG-DISTANCE, NONE }",
  2316. "  Prevents placing calls of the type indicated, or greater.  For example",
  2317. "  SET DIAL RESTRICT LONG prevents placing of long-distance and international",
  2318. "  calls.  If this command is not given, there are no restrictions.  Useful",
  2319. "  when dialing a list of numbers fetched from a dialing directory.",
  2320. " ",
  2321. "SET DIAL RETRIES <number>",
  2322. "  How many times to redial each number if the dialing result is busy or no",
  2323. "  no answer, until the call is succesfully answered.  The default is 0",
  2324. "  because automatic redialing is illegal in some countries.",
  2325. " ",
  2326. "SET DIAL INTERVAL <number>",
  2327. "  How many seconds to pause between automatic redial attempts; default 10.",
  2328. " ",
  2329. "The following commands apply to all phone numbers, whether given literally",
  2330. "or found in the dialing directory:",
  2331. " ",
  2332. "SET DIAL PREFIX [ text ]",
  2333. "  Establish a prefix to be applied to all phone numbers that are dialed,",
  2334. "  for example to disable call waiting.",
  2335. " ",
  2336. "SET DIAL SUFFIX [ text ]",
  2337. "  Establish a suffix to be added after all phone numbers that are dialed.",
  2338. " ",
  2339. "The following commands apply only to portable-format numbers obtained from",
  2340. "the dialing directory; i.e. numbers that start with a "+" sign and",
  2341. "country code, followed by area code in parentheses, followed by the phone",
  2342. "number.",
  2343. " ",
  2344. "SET DIAL LC-AREA-CODES [ <list> ]",
  2345. "  Species a list of area codes to which dialing is local, i.e. does not",
  2346. "  require the LD-PREFIX.  Up to 32 area codes may be listed, separated by",
  2347. "  spaces.  Any area codes in this list will be included in the final dial",
  2348. "  string so do not include your own area code if it should not be dialed.",
  2349. " ",
  2350. "SET DIAL LC-PREFIX [ <text> ]",
  2351. "  Specifies a prefix to be applied to local calls made from portable dialing",
  2352. "  directory entries.  Normally no prefix is used for local calls.",
  2353. " ",
  2354. "SET DIAL LC-SUFFIX [ <text> ]",
  2355. "  Specifies a suffix to be applied to local calls made from portable dialing",
  2356. "  directory entries.  Normally no suffix is used for local calls.",
  2357. " ",
  2358. "SET DIAL LD-PREFIX [ <text> ]",
  2359. "  Your long-distance dialing prefix, to be used with portable dialing",
  2360. "  directory entries that result in long-distance calls.",
  2361. " ",
  2362. "SET DIAL LD-SUFFIX [ <text> ]",
  2363. "  Long-distance dialing suffix, if any, to be used with portable dialing",
  2364. "  directory entries that result in long-distance calls.  This would normally",
  2365. "  be used for appending a calling-card number to the phone number.",
  2366. " ",
  2367. "SET DIAL FORCE-LONG-DISTANCE { ON, OFF }",
  2368. "  Whether to force long-distance dialing for calls that normally would be",
  2369. "  local.  For use (e.g.) in France.",
  2370. " ",
  2371. "SET DIAL TOLL-FREE-AREA-CODE [ <number> [ <number> [ ... ] ] ]",
  2372. "  Tells Kermit the toll-free area code(s) in your country.",
  2373. " ",
  2374. "SET DIAL TOLL-FREE-PREFIX [ <text> ]",
  2375. "  You toll-free dialing prefix, in case it is different from your long-",
  2376. "  distance dialing prefix.",
  2377. " ",
  2378. "SET DIAL INTL-PREFIX <text>",
  2379. "  Your international dialing prefix, to be used with portable dialing",
  2380. "  directory entries that result in international calls.",
  2381. " ",
  2382. "SET DIAL INTL-SUFFIX <text>",
  2383. "  International dialing suffix, if any, to be used with portable dialing",
  2384. "  directory entries that result in international calls.",
  2385. " ",
  2386. "SET DIAL PBX-OUTSIDE-PREFIX <text>",
  2387. "  Use this to tell Kermit how to get an outside line when dialing from a",
  2388. "  Private Branch Exchange (PBX).",
  2389. " ",
  2390. "SET DIAL PBX-EXCHANGE <text> [ <text> [ ... ] ]",
  2391. "  If PBX-OUTSIDE-PREFIX is set, then you can use this command to tell Kermit",
  2392. "  the leading digits of one or more local phone numbers that identify it as",
  2393. "  being on your PBX, so it can make an internal call by deleting those digits"
  2394. ,
  2395. "  from the phone number.",
  2396. " ",
  2397. "SET DIAL PBX-INTERNAL-PREFIX <text>",
  2398. "  If PBX-EXCHANGE is set, and Kermit determines from it that a call is",
  2399. "  internal, then this prefix, if any, is added to the number prior to",
  2400. "  
  2401. dialing.  Use this if internal calls from your PBX require a special prefix.",
  2402. "" };
  2403. #endif /* NODIAL */
  2404. static char *hmxyflo[] = { "Syntax: SET FLOW [ switch ] value",
  2405. " ",
  2406. #ifndef NOLOCAL
  2407. "  Selects the type of flow control to use during file transfer, terminal",
  2408. "  connection, and script execution.",
  2409. #else
  2410. "  Selects the type of flow control to use during file transfer.",
  2411. #endif /* NOLOCAL */
  2412. " ",
  2413. "  Switches let you associate a particular kind of flow control with each",
  2414. "  kind of connection: /REMOTE, /MODEM, /DIRECT-SERIAL, /TCPIP, etc; type",
  2415. "  "set flow ?" for a list of available switches.  Then whenever you make",
  2416. "  a connection, the associated flow-control is chosen automatically.",
  2417. "  The flow-control values are NONE, KEEP, XON/XOFF, and possibly RTS/CTS",
  2418. "  and some others; again, type "set flow ?" for a list.  KEEP tells Kermit",
  2419. "  not to try to change the current flow-control method for the connection.",
  2420. " ",
  2421. "  If you omit the switch and simply supply a value, this value becomes the",
  2422. "  current flow control type, overriding any default value that might have",
  2423. "  been chosen in your most recent SET LINE, SET PORT, or SET HOST, or other",
  2424. "  connection-establishment command.",
  2425. " ",
  2426. "  Type SHOW FLOW-CONTROL to see the current defaults for each connection type"
  2427. ,
  2428. "  as well as the current connection type and flow-control setting.  SHOW",
  2429. "  COMMUNICATIONS also shows the current flow-control setting.",
  2430. ""};
  2431. static char *hmxyf[] = {
  2432. "Syntax: SET FILE parameter value",
  2433. " ",
  2434. "Sets file-related parameters.  Use SHOW FILE to view them.  Also see SET",
  2435. "TRANSFER and SET PROTOCOL.",
  2436. " ",
  2437. #ifdef VMS
  2438. "SET FILE TYPE { TEXT, BINARY, IMAGE, LABELED }",
  2439. #else
  2440. #ifdef STRATUS
  2441. "SET FILE TYPE { TEXT, BINARY, LABELED }",
  2442. #else
  2443. #ifdef MAC
  2444. "SET FILE TYPE { TEXT, BINARY, MACBINARY }",
  2445. #else
  2446. "SET FILE TYPE { TEXT, BINARY }",
  2447. #endif /* STRATUS */
  2448. #endif /* MAC */
  2449. #endif /* VMS */
  2450. "  How file contents are to be treated during file transfer in the absence",
  2451. "  of any other indication.  TYPE can be TEXT for conversion of record format",
  2452. "  and character set, which is usually needed when transferring text files",
  2453. "  between unlike platforms (such as UNIX and Windows), or BINARY for no",
  2454. "  conversion if TRANSFER MODE is MANUAL, which is not the default.  Use",
  2455. "  BINARY with TRANSFER MODE MANUAL for executable programs or binary data or",
  2456. "  whenever you wish to duplicate the original contents of the file, byte for"
  2457. ,
  2458. "  byte.  In most modern Kermit programs, the file sender informs the receiver"
  2459. ,
  2460. "  of the file type automatically.  However, when sending files from C-Kermit",
  2461. "  to an ancient or non-Columbia Kermit implementation, you might need to set",
  2462. "  the corresponding file type at the receiver as well.",
  2463. " ",
  2464. #ifdef VMS
  2465. "  FILE TYPE settings of TEXT and BINARY have no effect when sending files,",
  2466. "  since VMS C-Kermit determines each file's type automatically from its",
  2467. "  record format: binary for fixed, text for others.  For incoming files,",
  2468. "  these settings are effective only in the absence of a file-type indication",
  2469. "  from the sender.",
  2470. " ",
  2471. "  You may include an optional record-format after the word BINARY.  This may",
  2472. "  be FIXED (the default) or UNDEFINED.  UNDEFINED is used when you need to",
  2473. "  receive binary files in binary mode and have them stored with UNDEFINED",
  2474. "  record format, which is required by certain VMS applications.",
  2475. " ",
  2476. "  Two additional VMS file types are also supported: IMAGE and LABELED.",
  2477. "  IMAGE means raw block i/o, no interference from RMS, applies to file",
  2478. "  transmission only, and overrides the normal automatica file type",
  2479. "  determination.   LABELED means to send or interpret RMS attributes",
  2480. "  with the file.",
  2481. " ",
  2482. #else
  2483. "  When TRANSFER MODE is AUTOMATIC (as it is by default), various automatic",
  2484. "  methods (depending on the platform) are used to determine whether a file",
  2485. "  is transferred in text or binary mode; these methods (which might include",
  2486. "  filename pattern matching (see SET FILE PATTERNS below), client/server",
  2487. "  "kindred-spirit" recognition, or source file record format) supersede",
  2488. "  the FILE TYPE setting but can, themselves, be superseded by including a",
  2489. "  /BINARY or /TEXT switch in the SEND, GET, or RECEIVE command.",
  2490. " ",
  2491. "  When TRANSFER MODE is MANUAL, the FILE TYPE setting takes precedence.",
  2492. #endif /* VMS */
  2493. " ",
  2494. #ifndef NOXFER
  2495. #ifdef PATTERNS
  2496. "SET FILE PATTERNS { ON, OFF, AUTO }",
  2497. "  ON means to use filename pattern lists to determine whether to send a file",
  2498. "  in text or binary mode.  OFF means to send all files in the prevailing",
  2499. "  mode.  AUTO (the default) is like ON if the other Kermit accepts Attribute",
  2500. "  packets and like OFF otherwise.",
  2501. " ",
  2502. "SET FILE BINARY-PATTERNS [ <pattern> [ <pattern> ... ] ]",
  2503. "  Zero or more filename patterns which, if matched, cause a file to be sent",
  2504. "  in binary mode when FILE PATTERNS are ON.  HELP WILDCARDS for a description"
  2505. ,
  2506. "  of pattern syntax.  SHOW PATTERNS to see the current file pattern lists.",
  2507. " ",
  2508. "SET FILE TEXT-PATTERNS [ <pattern> [ <pattern> ... ] ]",
  2509. "  Zero or more filename patterns which, if matched, cause a file to be sent",
  2510. "  in text mode when FILE PATTERNS is ON; if a file does not match a text or",
  2511. "  binary pattern, the prevailing SET FILE TYPE is used.",
  2512. " ",
  2513. #endif /* PATTERNS */
  2514. "SET FILE BYTESIZE { 7, 8 }",
  2515. "  Normally 8.  If 7, truncate the 8th bit of all file bytes.",
  2516. " ",
  2517. #ifndef NOCSETS
  2518. "SET FILE CHARACTER-SET name",
  2519. "  Tells the encoding of the local file, ASCII by default.",
  2520. "  The names ITALIAN, PORTUGUESE, NORWEGIAN, etc, refer to 7-bit ISO-646",
  2521. "  national character sets.  LATIN1 is the 8-bit ISO 8859-1 Latin Alphabet 1",
  2522. "  for Western European languages.",
  2523. "  NEXT is the 8-bit character set of the NeXT workstation.",
  2524. "  The CPnnn sets are for PCs.  MACINTOSH-LATIN is for the Macintosh.",
  2525. #ifndef NOLATIN2
  2526. "  LATIN2 is ISO 8859-2 for Eastern European languages that are written with",
  2527. "  Roman letters.  Mazovia is a PC code page used in Poland.",
  2528. #endif /* NOLATIN2 */
  2529. #ifdef CYRILLIC
  2530. "  KOI-CYRILLIC, CYRILLIC-ISO, and CP866 are 8-bit Cyrillic character sets.",
  2531. "  SHORT-KOI is a 7-bit ASCII coding for Cyrillic.  BULGARIA-PC is a PC code",
  2532. "  page used in Bulgaria",
  2533. #endif /* CYRILLIC */
  2534. #ifdef HEBREW
  2535. "  HEBREW-ISO is ISO 8859-8 Latin/Hebrew.  CP862 is the Hebrew PC code page.",
  2536. "  HEBREW-7 is like ASCII with the lowercase letters replaced by Hebrew.",
  2537. #endif /* HEBREW */
  2538. #ifdef GREEK
  2539. "  GREEK-ISO is ISO 8859-7 Latin/Greek.  CP869 is the Greek PC code page.",
  2540. "  ELOT-927 is like ASCII with the lowercase letters replaced by Greek.",
  2541. #endif /* GREEK */
  2542. #ifdef KANJI
  2543. "  JAPANESE-EUC, JIS7-KANJI, DEC-KANJI, and SHIFT-JIS-KANJI are Japanese",
  2544. "  Kanji character sets.",
  2545. #endif /* KANJI */
  2546. #ifdef UNICODE
  2547. "  UCS-2 is the 2-byte form of the Universal Character Set.",
  2548. "  UTF-8 is the serialized form of the Universal Character Set.",
  2549. #endif /* UNICODE */
  2550. "  Type SET FILE CHAR ? for a complete list of file character sets.",
  2551. " ",
  2552. #endif /* NOCSETS */
  2553. "SET FILE COLLISION option",
  2554. "  Tells what to do when a file arrives that has the same name as",
  2555. "  an existing file.  The options are:",
  2556. "   BACKUP (default) - Rename the old file to a new, unique name and store",
  2557. "     the incoming file under the name it was sent with.",
  2558. "   OVERWRITE - Overwrite (replace) the existing file.",
  2559. "   APPEND - Append the incoming file to the end of the existing file.",
  2560. "   DISCARD - Refuse and/or discard the incoming file.",
  2561. "   RENAME - Give the incoming file a unique name.",
  2562. "   UPDATE - Accept the incoming file only if newer than the existing file.",
  2563. " ",
  2564. "SET FILE DESTINATION { DISK, PRINTER, SCREEN, NOWHERE }",
  2565. "  DISK (default): Store incoming files on disk.",
  2566. "  PRINTER:        Send incoming files to SET PRINTER device.",
  2567. "  SCREEN:         Display incoming files on screen (local mode only).",
  2568. "  NOWHERE:        Do not put incoming files anywhere (use for calibration).",
  2569. " ",
  2570. "SET FILE DISPLAY option",
  2571. "  Selects the format of the file transfer display for local-mode file",
  2572. "  transfer.  The choices are:",
  2573. " ",
  2574. "  BRIEF      A line per file, showing size, mode, status, and throughput.",
  2575. "  SERIAL     One dot is printed for every K bytes transferred.",
  2576. "  CRT        Numbers are continuously updated on a single screen line.",
  2577. "             This format can be used on any video display terminal.",
  2578. #ifdef CK_CURSES
  2579. "  FULLSCREEN A fully formatted 24x80 screen showing lots of information.",
  2580. "             This requires a terminal or terminal emulator.",
  2581. #endif /* CK_CURSES */
  2582. "  NONE       No file transfer display at all.",
  2583. " ",
  2584. "SET FILE DOWNLOAD-DIRECTORY [ <directory-name> ]",
  2585. "  The directory into which all received files should be placed.  By default,",
  2586. "  received files go into your current directory.",
  2587. " ",
  2588. #endif /* NOXFER */
  2589. #ifdef CK_CTRLZ
  2590. "SET FILE EOF { CTRL-Z, LENGTH }",
  2591. "  End-Of-File detection method, normally LENGTH.  Applies only to text-mode",
  2592. "  transfers.  When set to CTRL-Z, this makes the file sender treat the first",
  2593. "  Ctrl-Z in the input file as the end of file (EOF), and it makes the file",
  2594. "  receiver tack a Ctrl-Z onto the end of the output file if it does not",
  2595. "  already end with Ctrl-Z.",
  2596. " ",
  2597. #endif /* CK_CTRLZ */
  2598. "SET FILE END-OF-LINE { CR, CRLF, LF }",
  2599. "  Use this command to specify nonstandard line terminators for text files.",
  2600. " ",
  2601. #ifndef NOXFER
  2602. "SET FILE INCOMPLETE { AUTO, KEEP, DISCARD }",
  2603. "  What to do with an incompletely received file: KEEP (default), or DISCARD.",
  2604. "  AUTO (the default) means DISCARD if transfer is in text mode, KEEP if it",
  2605. "  is in binary mode.",
  2606. " ",
  2607. #ifdef VMS
  2608. "SET FILE LABEL { ACL, BACKUP-DATE, NAME, OWNER, PATH } { ON, OFF }",
  2609. "  Tells which items to include (ON) or exclude (OFF) in labeled file",
  2610. "  transfers",
  2611. " ",
  2612. #else
  2613. #ifdef OS2
  2614. "SET FILE LABEL { ARCHIVE, READ-ONLY, HIDDEN, SYSTEM, EXTENDED } { ON, OFF }",
  2615. "  Tells which items to include (ON) or exclude (OFF) in labeled file",
  2616. "  transfers.",
  2617. " ",
  2618. #endif /* OS2 */
  2619. #endif /* VMS */
  2620. "SET FILE NAMES { CONVERTED, LITERAL }",
  2621. "  File names are normally CONVERTED to "common form" during transmission",
  2622. "  (e.g. lowercase to uppercase, extra periods changed to underscore, etc).",
  2623. "  LITERAL means use filenames literally (useful between like systems).  Also",
  2624. "  see SET SEND PATHNAMES and SET RECEIVE PATHNAMES.",
  2625. " ",
  2626. #ifdef UNIX
  2627. "SET FILE OUTPUT { { BUFFERED, UNBUFFERED } [ size ], BLOCKING, NONBLOCKING }",
  2628. "  Lets you control the disk output buffer for incoming files.  Buffered",
  2629. "  blocking writes are normal.  Nonblocking writes might be faster on some",
  2630. "  systems but might also be risky, depending on the underlying file service.",
  2631. "  Unbuffered writes might be useful in critical applications to ensure that",
  2632. "  cached disk writes are not lost in a crash, but will probably also be",
  2633. "  slower.  The optional size parameter after BUFFERED or UNBUFFERED lets you",
  2634. "  change the disk output buffer size; this might make a difference in",
  2635. "  performance.",
  2636. " ",
  2637. #endif /* UNIX */
  2638. #ifdef VMS
  2639. "SET FILE RECORD-LENGTH number",
  2640. "  Sets the record length for received files of type BINARY.  Use this to",
  2641. "  receive VMS BACKUP savesets or other fixed-format files that do not use",
  2642. "  the default record length of 512.",
  2643. " ",
  2644. #endif /* VMS */
  2645. #ifdef UNICODE
  2646. "SET FILE UCS BOM { ON, OFF }",
  2647. "  Whether to write a Byte Order Mark when creating a UCS-2 file.",
  2648. " ",
  2649. "SET FILE UCS BYTE-ORDER { BIG-ENDIAN, LITTLE-ENDIAN }",
  2650. "  Byte order to use when creating UCS-2 files, and to use when reading UCS-2",
  2651. "  files that do not start with a Byte Order Mark.",
  2652. " ",
  2653. #endif /* UNICODE */
  2654. "SET FILE WARNING { ON, OFF }",
  2655. "  SET FILE WARNING is superseded by the newer command, SET FILE",
  2656. "  COLLISION.  SET FILE WARNING ON is equivalent to SET FILE COLLISION RENAME",
  2657. "  and SET FILE WARNING OFF is equivalent to SET FILE COLLISION OVERWRITE.",
  2658. #endif /* NOXFER */
  2659. "" };
  2660. static char *hmxyhsh[] = {
  2661. "Syntax: SET HANDSHAKE { NONE, XON, LF, BELL, ESC, CODE number }",
  2662. "  Character to use for half duplex line turnaround handshake during file",
  2663. "  transfer.  C-Kermit waits for this character from the other computer",
  2664. "  before sending its next packet.  Default is NONE; you can give one of the",
  2665. "  other names like BELL or ESC, or use SET HANDSHAKE CODE to specify the",
  2666. "  numeric code value of the handshake character.  Type SET HANDSH ? for a",
  2667. "  complete list of possibilities.",
  2668. "" };
  2669. #ifndef NOSERVER
  2670. static char *hsetsrv[] = {
  2671. "SET SERVER CD-MESSAGE {ON,OFF}",
  2672. "  Tells whether the server, after successfully executing a REMOTE CD",
  2673. "  command, should send the contents of the new directory's READ.ME",