| #ifdef SSHTEST |
| #define SSHBUILTIN |
| #endif /* SSHTEST */ |
| |
| /* C K U U S 2 -- User interface strings & help text module for C-Kermit */ |
| |
| /* |
| Authors: |
| Frank da Cruz <fdc@columbia.edu>, |
| The Kermit Project, Columbia University, New York City |
| Jeffrey E Altman <jaltman@secure-endpoints.com> |
| Secure Endpoints Inc., New York City |
| |
| Copyright (C) 1985, 2004, |
| Trustees of Columbia University in the City of New York. |
| All rights reserved. See the C-Kermit COPYING.TXT file or the |
| copyright text in the ckcmai.c module for disclaimer and permissions. |
| |
| This module contains HELP command and other long text strings. |
| |
| IMPORTANT: Character string constants longer than about 250 are not portable. |
| Longer strings should be broken up into arrays of strings and accessed with |
| hmsga() rather than hmsg(). |
| */ |
| #include "ckcsym.h" |
| #include "ckcdeb.h" |
| #include "ckcnet.h" |
| #include "ckcasc.h" |
| #include "ckcker.h" |
| #include "ckuusr.h" |
| #include "ckcxla.h" |
| #ifdef OS2 |
| #ifdef NT |
| #include <windows.h> |
| #else /* not NT */ |
| #define INCL_KBD |
| #ifdef OS2MOUSE |
| #define INCL_MOU |
| #endif /* OS2MOUSE */ |
| #define INCL_DOSMISC |
| #define INCL_DOSDEVICES |
| #include <os2.h> /* This pulls in a whole load of stuff */ |
| #undef COMMENT |
| #endif /* NT */ |
| #include "ckocon.h" |
| #include "ckokvb.h" |
| #include "ckokey.h" |
| #endif /* OS2 */ |
| |
| extern xx_strp xxstring; |
| extern char * ccntab[]; |
| /* |
| hlptok contains the string for which the user requested help. This is |
| useful for distinguishing synonyms, in case different help text is needed |
| depending on which synonym was given. |
| */ |
| extern char * hlptok; |
| |
| #ifndef NOIKSD |
| extern int inserver; |
| #endif /* IKSD */ |
| |
| #ifndef NOICP |
| extern int cmflgs; |
| |
| #ifdef DCMDBUF |
| extern char *cmdbuf, *atmbuf; |
| #else |
| extern char cmdbuf[], atmbuf[]; |
| #endif /* DCMDBUF */ |
| #endif /* NOICP */ |
| |
| extern char *xarg0; |
| extern int nrmt, nprm, dfloc, local, parity, escape; |
| extern int turn, flow; |
| extern int binary, quiet, keep; |
| extern int success, xaskmore; |
| #ifdef OS2 |
| extern int tt_rows[], tt_cols[]; |
| #else /* OS2 */ |
| extern int tt_rows, tt_cols; |
| #endif /* OS2 */ |
| extern int cmd_rows, cmd_cols; |
| |
| extern long speed; |
| extern char *dftty, *versio, *ckxsys; |
| #ifndef NOHELP |
| extern char *helpfile; |
| #endif /* NOHELP */ |
| extern struct keytab prmtab[]; |
| #ifndef NOXFER |
| extern struct keytab remcmd[]; |
| #endif /* NOXFER */ |
| |
| #ifndef NOICP |
| |
| /* Interactive help strings */ |
| |
| /* Top-level HELP text. IMPORTANT: Also see tophlpi[] for IKSD. */ |
| |
| static char *tophlp[] = { |
| "Trustees of Columbia University in the City of New York.\n", |
| |
| #ifndef NOHELP |
| " Type EXIT to exit.", |
| #ifdef OS2 |
| " Type INTRO for a brief introduction to the Kermit Command screen.", |
| " Type LICENSE to see the Kermit 95 license.", |
| #else |
| " Type INTRO for a brief introduction to C-Kermit.", |
| " Type LICENSE to see the C-Kermit license.", |
| #endif /* OS2 */ |
| " Type HELP followed by a command name for help about a specific command.", |
| #ifndef NOPUSH |
| #ifdef UNIX |
| " Type MANUAL to access the C-Kermit manual page.", |
| #else |
| #ifdef VMS |
| " Type MANUAL to access the C-Kermit help topic.", |
| #else |
| #ifdef OS2 |
| " Type MANUAL to access the K95 manual.", |
| #else |
| " Type MANUAL to access the C-Kermit manual.", |
| #endif /* OS2 */ |
| #endif /* VMS */ |
| #endif /* UNIX */ |
| #endif /* NOPUSH */ |
| " Type NEWS for news about new features.", |
| " Type SUPPORT to learn how to get technical support.", |
| " Press ? (question mark) at the prompt, or anywhere within a command,", |
| " for a menu (context-sensitive help, menu on demand).", |
| #else |
| "Press ? for a list of commands; see documentation for detailed descriptions.", |
| #endif /* NOHELP */ |
| |
| #ifndef NOCMDL |
| #ifndef NOHELP |
| " ", |
| " Type HELP OPTIONS for help with command-line options.", |
| #endif /* NOHELP */ |
| #endif /* NOCMDL */ |
| " ", |
| #ifndef OS2 |
| #ifdef MAC |
| "Documentation for Command Window: \"Using C-Kermit\" by Frank da Cruz and", |
| "Christine M. Gianone, Digital Press, 1997, ISBN: 1-55558-164-1. To order,", |
| "call +1 212 854-3703 or +1 800 366-2665.", |
| #else |
| "DOCUMENTATION: \"Using C-Kermit\" by Frank da Cruz and Christine M. Gianone,", |
| "2nd Edition, Digital Press / Butterworth-Heinemann 1997, ISBN 1-55558-164-1,", |
| "plus supplements at http://www.columbia.edu/kermit/ckermit.html.", |
| #endif /* MAC */ |
| #endif /* OS2 */ |
| #ifdef MAC |
| " ", |
| "Also see the Mac Kermit Doc and Bwr files on the Mac Kermit diskette.\n", |
| #else |
| #ifdef HPUX10 |
| " ", |
| "See the files in /usr/share/lib/kermit/ for additional information.", |
| #endif /* HPUX10 */ |
| #endif /* MAC */ |
| "" |
| }; |
| |
| #ifndef NOIKSD |
| static char *tophlpi[] = { /* Top-level help for IKSD */ |
| |
| "Trustees of Columbia University in the City of New York.\n", |
| |
| #ifndef NOHELP |
| " Type INTRO for a brief introduction to Kermit commands.", |
| " Type VERSION for version and copyright information.", |
| " Type HELP followed by a command name for help about a specific command.", |
| " Type SUPPORT to learn how to get technical support.", |
| " Type LOGOUT (or EXIT) to log out.", |
| " Press ? (question mark) at the prompt, or anywhere within a command,", |
| " for a menu (context-sensitive help, menu on demand).", |
| #else |
| "Press ? for a list of commands; see documentation for detailed descriptions.", |
| #endif /* NOHELP */ |
| " ", |
| "DOCUMENTATION: \"Using C-Kermit\" by Frank da Cruz and Christine M. Gianone,", |
| "2nd Edition, Digital Press / Butterworth-Heinemann 1997, ISBN 1-55558-164-1.", |
| "To order: +1 212 854-3703 or +1 800 366-2665. More info at the Kermit", |
| |
| "Project website, http://www.columbia.edu/kermit/.", |
| "" |
| }; |
| #endif /* NOIKSD */ |
| |
| #ifndef NOHELP |
| char *newstxt[] = { |
| #ifdef OS2 |
| "Welcome to Kermit 95 2.1.3. Major new features include:", |
| #else |
| "Welcome to C-Kermit 8.0.206. Major new features include:", |
| #endif /* OS2 */ |
| #ifdef NT |
| #ifdef KUI |
| " . Runs in GUI window", |
| #else |
| " . GUI version available", |
| #endif /* KUI */ |
| #endif /* NT */ |
| #ifdef SSHBUILTIN |
| " . New built-in SSH v1 and v2 clients", |
| #endif /* SSHBUILTIN */ |
| #ifdef NEWFTP |
| " . A new built-in FTP client", |
| #endif /* NEWFTP */ |
| #ifndef NOHTTP |
| " . A new HTTP 1.1 client", |
| #endif /* NOHTTP */ |
| #ifdef TN_COMPORT |
| " . Telnet Com Port Option for dialing from Telnet modem servers", |
| #endif /* TN_COMPORT */ |
| " . File scanning for automatic text/binary determination", |
| #ifdef CKLEARN |
| #ifndef OS2 |
| " . Learned scripts", |
| #endif /* OS2 */ |
| #endif /* CKLEARN */ |
| #ifndef NOSPL |
| #ifndef NOSEXP |
| " . LISP-like S-Expressions and natural floating-point arithmetic", |
| #endif /* NOSEXP */ |
| " . Lots of script programming improvements", |
| #endif /* NOSPL */ |
| " . Performance improvements and bug fixes", |
| " ", |
| "Documentation:", |
| " 1. \"Using C-Kermit\", second edition (1997), current with C-Kermit 6.0.", |
| " 2. http://www.columbia.edu/kermit/ckermit70.html", |
| " which documents the new features of C-Kermit 7.0.", |
| " 3. http://www.columbia.edu/kermit/ckermit80.html", |
| " which documents the new features of C-Kermit 8.0.", |
| " ", |
| "If the release date shown by the VERSION command is long past, be sure to", |
| "check with the Kermit Project to see if there have been updates.", |
| "" |
| }; |
| #endif /* NOHELP */ |
| |
| #ifndef NOHELP |
| char *introtxt[] = { |
| #ifdef OS2 |
| "Welcome to K-95, Kermit communications software for:", |
| #else |
| #ifdef UNIX |
| #ifdef HPUX |
| "Welcome to HP-UX C-Kermit communications software for:", |
| #else |
| "Welcome to UNIX C-Kermit communications software for:", |
| #endif /* HPUX */ |
| #else |
| #ifdef VMS |
| "Welcome to VMS C-Kermit communications software for:", |
| #else |
| #ifdef VOS |
| "Welcome to VOS C-Kermit communications software for:", |
| #else |
| #ifdef MAC |
| "Welcome to Mac Kermit communications software for:", |
| #else |
| "Welcome to C-Kermit communications software for:", |
| #endif /* MAC */ |
| #endif /* VOS */ |
| #endif /* VMS */ |
| #endif /* UNIX */ |
| #endif /* OS2 */ |
| #ifndef NOXFER |
| " . Error-free and efficient file transfer", |
| #endif /* NOXFER */ |
| #ifndef NOLOCAL |
| #ifdef OS2 |
| " . VT320/220/102/100/52, ANSI, Wyse, Linux, Televideo, and other emulations", |
| #else |
| #ifdef MAC |
| " . VT220 terminal emulation", |
| #else |
| " . Terminal connection", |
| #endif /* MAC */ |
| #endif /* OS2 */ |
| #endif /* NOLOCAL */ |
| #ifndef NOSPL |
| " . Script programming", |
| #endif /* NOSPL */ |
| #ifndef NOICS |
| " . International character set conversion", |
| #endif /* NOICS */ |
| #ifndef NODIAL |
| #ifndef NOSPL |
| " . Numeric and alphanumeric paging", |
| #endif /* NOSPL */ |
| #endif /* NODIAL */ |
| |
| #ifndef NOLOCAL |
| " ", |
| "Supporting:", |
| " . Serial connections, direct or dialed.", |
| #ifndef NODIAL |
| " . Automatic modem dialing", |
| #endif /* NODIAL */ |
| #ifdef TCPSOCKET |
| " . TCP/IP network connections:", |
| #ifdef TNCODE |
| " - Telnet sessions", |
| #endif /* TNCODE */ |
| #ifdef SSHBUILTIN |
| " - SSH v1 and v2 connections", |
| #else |
| #ifdef ANYSSH |
| " - SSH connections via external agent", |
| #endif /* ANYSSH */ |
| #endif /* SSHBUILTIN */ |
| #ifdef RLOGCODE |
| " - Rlogin sessions", |
| #endif /* RLOGCODE */ |
| #ifdef NEWFTP |
| " - FTP sessions", |
| #endif /* NEWFTP */ |
| #ifdef CKHTTP |
| " - HTTP 1.1 sessions", |
| #endif /* CKHTTP */ |
| #ifdef IKSD |
| " - Internet Kermit Service", |
| #endif /* IKSD */ |
| #endif /* TCPSOCKET */ |
| #ifdef ANYX25 |
| " . X.25 network connections", |
| #endif /* ANYX25 */ |
| #ifdef OS2 |
| #ifdef DECNET |
| " . DECnet/PATHWORKS LAT Ethernet connections", |
| #endif /* DECNET */ |
| #ifdef SUPERLAT |
| " . Meridian Technologies' SuperLAT connections", |
| #endif /* SUPERLAT */ |
| #ifdef NPIPE |
| " . Named-pipe connections", |
| #endif /* NPIPE */ |
| #ifdef CK_NETBIOS |
| " . NETBIOS connections", |
| #endif /* CK_NETBIOS */ |
| #endif /* OS2 */ |
| #endif /* NOLOCAL */ |
| |
| " ", |
| "While typing commands, you may use the following special characters:", |
| " . DEL, RUBOUT, BACKSPACE, CTRL-H: Delete the most recent character typed.", |
| " . CTRL-W: Delete the most recent word typed.", |
| " . CTRL-U: Delete the current line.", |
| " . CTRL-R: Redisplay the current line.", |
| |
| #ifdef CK_RECALL |
| #ifdef OS2 |
| " . Uparrow: Command recall - go backwards in command recall buffer.", |
| " . Downarrow: Command recall - go forward in command recall buffer.", |
| #ifndef NOIKSD |
| " (Note: Arrow keys can be used only on the PC's physical keyboard.)", |
| #endif /* NOIKSD */ |
| #endif /* OS2 */ |
| " . CTRL-P: Command recall - go backwards in command recall buffer.", |
| " . CTRL-B: Command recall - same as Ctrl-P.", |
| " . CTRL-N: Command recall - go forward in command recall buffer.", |
| #endif /* CK_RECALL */ |
| |
| " . ? (question mark) Display a menu for the current command field." |
| , |
| " . ESC (or TAB) Attempt to complete the current field.", |
| " . \\ (backslash) include the following character literally", |
| #ifndef NOSPL |
| " or introduce a backslash code, variable, or function.", |
| #else |
| " or introduce a numeric backslash code.", |
| #endif /* NOSPL */ |
| " ", |
| |
| "IMPORTANT: Since backslash (\\) is Kermit's command-line escape character,", |
| "you must enter DOS, Windows, or OS/2 pathnames using either forward slash (/)" |
| , |
| "or double backslash (\\\\) as the directory separator in most contexts.", |
| "Examples: C:/TMP/README.TXT, C:\\\\TMP\\\\README.TXT.", |
| " ", |
| |
| "Command words other than filenames can be abbreviated in most contexts.", |
| " ", |
| |
| "Basic commands:", |
| " EXIT Exit from Kermit", |
| " HELP Request general help", |
| " HELP command Request help about the given command", |
| " TAKE Execute commands from a file", |
| " TYPE Display a file on your screen", |
| " ORIENTATION Explains directory structure", |
| " ", |
| |
| #ifndef NOXFER |
| "Commands for file transfer:", |
| " SEND Send files", |
| " RECEIVE Receive files", |
| " GET Get files from a Kermit server", |
| #ifdef CK_RESEND |
| " RESEND Recover an interrupted send", |
| " REGET Recover an interrupted get from a server", |
| #endif /* CK_RESEND */ |
| #ifndef NOSERVER |
| " SERVER Be a Kermit server", |
| #endif /* NOSERVER */ |
| " ", |
| "File-transfer speed selection:", |
| " FAST Use fast settings -- THIS IS THE DEFAULT", |
| " CAUTIOUS Use slower, more cautious settings", |
| " ROBUST Use extremely slow and cautious settings", |
| " ", |
| "File-transfer performance fine tuning:", |
| " SET RECEIVE PACKET-LENGTH Kermit packet size", |
| " SET WINDOW Number of sliding window slots", |
| " SET PREFIXING Amount of control-character prefixing", |
| #endif /* NOXFER */ |
| |
| #ifndef NOLOCAL |
| " ", |
| "To make a direct serial connection:", |
| #ifdef OS2 |
| #ifdef NT |
| #ifdef CK_TAPI |
| " SET PORT TAPI Select TAPI communication device", |
| #endif /* CK_TAPI */ |
| " SET PORT Select serial communication device", |
| #else |
| " SET PORT Select serial communication port or server", |
| #endif /* NT */ |
| #else |
| " SET LINE Select serial communication device", |
| #endif /* OS2 */ |
| " SET SPEED Select communication speed", |
| " SET PARITY Communications parity (if necessary)", |
| #ifdef CK_RTSCTS |
| " SET FLOW Communications flow control, such as RTS/CTS", |
| #else |
| " SET FLOW Communications flow control, such as XON/XOFF", |
| #endif /* CK_RTSCTS */ |
| " CONNECT Begin terminal connection", |
| |
| #ifndef NODIAL |
| " ", |
| "To dial out with a modem:", |
| " SET DIAL DIRECTORY Specify dialing directory file (optional)", |
| " SET DIAL COUNTRY-CODE Country you are dialing from (*)", |
| " SET DIAL AREA-CODE Area-code you are dialing from (*)", |
| " LOOKUP Lookup entries in your dialing directory (*)", |
| " SET MODEM TYPE Select modem type", |
| #ifdef OS2 |
| #ifdef NT |
| #ifdef CK_TAPI |
| " SET PORT TAPI Select TAPI communication device", |
| #endif /* CK_TAPI */ |
| " SET PORT Select serial communication device", |
| #else |
| " SET PORT Select serial communication port or server", |
| #endif /* NT */ |
| #else |
| " SET LINE Select serial communication device", |
| #endif /* OS2 */ |
| " SET SPEED Select communication speed", |
| " SET PARITY Communications parity (if necessary)", |
| " DIAL Dial the phone number", |
| " CONNECT Begin terminal connection", |
| " ", |
| #ifdef OS2 |
| "Further info: HELP DIAL, HELP SET MODEM, HELP SET PORT, HELP SET DIAL", |
| #else |
| "Further info: HELP DIAL, HELP SET MODEM, HELP SET LINE, HELP SET DIAL", |
| #endif /* OS2 */ |
| "(*) (For use with optional dialing directory)", |
| #endif /* NODIAL */ |
| |
| #ifdef NETCONN |
| " ", |
| "To make a network connection:", |
| #ifndef NODIAL |
| " SET NETWORK DIRECTORY Specify a network services directory (optional)", |
| " LOOKUP Lookup entries in your network directory", |
| #endif /* NODIAL */ |
| " SET NETWORK TYPE Select network type (if more than one available)", |
| " SET HOST Make a network connection but stay in command mode", |
| " CONNECT Begin terminal connection", |
| #ifdef TNCODE |
| " TELNET Select a Telnet host and CONNECT to it", |
| #endif /* TNCODE */ |
| #ifdef RLOGCODE |
| " RLOGIN Select an Rlogin host and CONNECT to it", |
| #endif /* RLOGCODE */ |
| #ifdef ANYSSH |
| " SSH [ OPEN ] Select an SSH host and CONNECT to it", |
| #endif /* ANYSSH */ |
| #ifdef NEWFTP |
| " FTP [ OPEN ] Make an FTP connection", |
| #endif /* NEWFTP */ |
| #ifdef CKHTTP |
| " HTTP OPEN Make an HTTP connection", |
| #endif /* CKHTTP */ |
| #endif /* NETCONN */ |
| |
| #ifdef NT |
| " ", |
| "To return from the terminal window to the K-95> prompt:", |
| #else |
| #ifdef OS2 |
| " ", |
| "To return from the terminal window to the K/2> prompt:", |
| #else |
| " ", |
| "To return from a terminal connection to the C-Kermit prompt:", |
| #endif /* OS2 */ |
| #endif /* NT */ |
| #ifdef OS2 |
| " \ |
| Press the key or key-combination shown after \"Command:\" in the status line", |
| " (such as Alt-x) or type your escape character followed by the letter C.", |
| #else |
| " Type your escape character followed by the letter C.", |
| #endif /* OS2 */ |
| " ", |
| "To display your escape character:", |
| " SHOW ESCAPE", |
| " ", |
| "To display other settings:", |
| " SHOW COMMUNICATIONS, SHOW TERMINAL, SHOW FILE, SHOW PROTOCOL, etc.", |
| #else /* !NOLOCAL */ |
| " ", |
| "To display settings:", |
| " SHOW COMMUNICATIONS, SHOW FILE, SHOW PROTOCOL, etc.", |
| #endif /* NOLOCAL */ |
| " ", |
| #ifdef OS2 |
| "For a Kermit 95 tutorial, visit:", |
| " http://www.columbia.edu/kermit/k95tutor.html", |
| " ", |
| #endif /* OS2 */ |
| "For a C-Kermit tutorial, visit:", |
| " http://www.columbia.edu/kermit/ckututor.html", |
| " ", |
| "To learn about script programming and automation:", |
| " Read the manual, \"Using C-Kermit\". For a brief tutorial, visit:", |
| " http://www.columbia.edu/kermit/ckscripts.html", |
| " ", |
| "For further information about a particular command, type HELP xxx,", |
| "where xxx is the name of the command. For documentation, news of new", |
| "releases, and information about other Kermit software, contact:", |
| " ", |
| " The Kermit Project E-mail: kermit@columbia.edu", |
| " Columbia University Web: http://www.columbia.edu/kermit/", |
| " 612 West 115th Street Voice: +1 (212) 854-3703", |
| " New York NY 10025-7799 Fax: +1 (212) 662-6442", |
| " USA", |
| "" |
| }; |
| |
| static char * hmxymatch[] = { |
| "SET MATCH { DOTFILE, FIFO } { ON, OFF }", |
| " Tells whether wildcards should match dotfiles (files whose names begin", |
| " with period) or UNIX FIFO special files. MATCH FIFO default is OFF.", |
| " MATCH DOTFILE default is OFF in UNIX, ON elsewhere.", |
| "" |
| }; |
| |
| #ifdef OS2 |
| #ifdef KUI |
| static char * hmxygui[] = { |
| "SET GUI DIALOGS { ON, OFF }", |
| " ON means that popups, alerts, use GUI dialogs; OFF means to use", |
| " text-mode popups or prompts. ON by default.", |
| " ", |
| "SET GUI FONT name size", |
| " Chooses the font and size. Type \"set gui font ?\" to see the list of", |
| " choices. The size can be a whole number or can contain a decimal point", |
| " and a fraction (which is rounded to the nearest half point).", |
| " ", |
| "SET GUI RGBCOLOR colorname redvalue greenvalue bluevalue", |
| " Specifies the red-green-blue mixture to be used to render the given", |
| " color name. Type \"set gui rgbcolor\" to see a list of colornames.", |
| " the RGB values are whole numbers from 0 to 255.", |
| " ", |
| "SET GUI WINDOW POSITION x y", |
| " Moves the K95 window to the given X,Y coordinates, pixels from top left.", |
| " (Not yet implemented -- use command-line options to do this.)", |
| " ", |
| "SET GUI WINDOW RESIZE-MODE { CHANGE-DIMENSIONS, SCALE-FONT }", |
| " Default is CHANGE-DIMENSIONS.", |
| "", |
| "SET GUI WINDOW RUN-MODE { MAXIMIZE, MINIMIZE, RESTORE }", |
| " Changes the run mode state of the GUI window.", |
| "" |
| }; |
| #endif /* KUI */ |
| #endif /* OS2 */ |
| |
| #ifdef ANYSSH |
| static char * hmxxssh[] = { |
| #ifdef SSHBUILTIN |
| "Syntax: SSH { ADD, AGENT, CLEAR, KEY, [ OPEN ], V2 } operands...", |
| " Performs an SSH-related action, depending on the keyword that follows:", |
| " ", |
| "SSH ADD LOCAL-PORT-FORWARD local-port host port", |
| " Adds a port forwarding triplet to the local port forwarding list.", |
| " The triplet specifies a local port to be forwarded and the hostname /", |
| " ip-address and port number to which the port should be forwarded from", |
| " the remote host. Port forwarding is activated at connection", |
| " establishment and continues until the connection is terminated.", |
| " ", |
| "SSH ADD REMOTE-PORT-FORWARD remote-port host port", |
| " Adds a port forwarding triplet to the remote port forwarding list.", |
| " The triplet specifies a remote port to be forwarded and the", |
| " hostname/ip-address and port number to which the port should be", |
| " forwarded from the local machine. Port forwarding is activated at", |
| " connection establishment and continues until the connection is", |
| " terminated.", |
| " ", |
| "SSH AGENT ADD [ identity-file ]", |
| " Adds the contents of the identity-file (if any) to the SSH AGENT", |
| " private key cache. If no identity-file is specified, all files", |
| " specified with SET SSH IDENTITY-FILE are added to the cache.", |
| " ", |
| "SSH AGENT DELETE [ identity-file ]", |
| " Deletes the contents of the identity-file (if any) from the SSH AGENT", |
| " private key cache. If no identity-file is specified, all files", |
| " specified with SET SSH IDENTITY-FILE are deleted from the cache.", |
| " ", |
| "SSH AGENT LIST [ /FINGERPRINT ]", |
| " Lists the contents of the SSH AGENT private key cache. If /FINGERPRINT", |
| " is specified, the fingerprint of the private keys are displayed instead", |
| " of the keys.", |
| " ", |
| "SSH CLEAR LOCAL-PORT-FORWARD", |
| " Clears the local port forwarding list.", |
| " ", |
| "SSH CLEAR REMOTE-PORT-FORWARD", |
| " Clears the remote port forwarding list.", |
| " ", |
| "SSH KEY commands:", |
| " The SSH KEY commands create and manage public and private key pairs", |
| " (identities). There are three forms of SSH keys. Each key pair is", |
| " stored in its own set of files:", |
| " ", |
| " Key Type Private Key File Public Key File", |
| " v1 RSA keys \\v(appdata)ssh/identity \\v(appdata)ssh/identity.pub", |
| " v2 RSA keys \\v(appdata)ssh/id_rsa \\v(appdata)ssh/id_rsa.pub", |
| " v2 DSA keys \\v(appdata)ssh/id_dsa \\v(appdata)ssh/id_dsa.pub", |
| " ", |
| " Keys are stored using the OpenSSH keyfile format. The private key", |
| " files can be (optionally) protected by specifying a passphrase. A", |
| " passphrase is a longer version of a password. English text provides", |
| " no more than 2 bits of key data per character. 56-bit keys can be", |
| " broken by a brute force attack in approximately 24 hours. When used,", |
| " private key files should therefore be protected by a passphrase of at", |
| " least 40 characters (about 80 bits).", |
| " ", |
| " To install a public key file on the host, you must transfer the file", |
| " to the host and append it to your \"authorized_keys\" file. The file", |
| " permissions must be 600 (or equivalent).", |
| " ", |
| "SSH KEY CHANGE-PASSPHRASE [ /NEW-PASSPHRASE:passphrase", |
| " /OLD-PASSPHRASE:passphrase ] filename", |
| " This re-encrypts the specified private key file with a new passphrase.", |
| " The old passphrase is required. If the passphrases (and filename) are", |
| " not provided Kermit prompts your for them.", |
| " ", |
| "SSH KEY CREATE [ /BITS:bits /PASSPHRASE:passphrase", |
| " /TYPE:{ V1-RSA, V2-DSA, V2-RSA } /V1-RSA-COMMENT:comment ] filename", |
| " This command creates a new private/public key pair. The defaults are:", |
| " BITS:1024 and TYPE:V2-RSA. The filename is the name of the private", |
| " key file. The public key is created with the same name with .pub", |
| " appended to it. If a filename is not specified Kermit prompts you for", |
| " it. V1 RSA key files may have an optional comment, which is ignored", |
| " for other key types.", |
| " ", |
| "SSH KEY DISPLAY [ /FORMAT:{FINGERPRINT,IETF,OPENSSH,SSH.COM} ] filename", |
| " This command displays the contents of a public or private key file.", |
| " The default format is OPENSSH.", |
| " ", |
| "SSH KEY V1 SET-COMMENT filename comment", |
| " This command replaces the comment associated with a V1 RSA key file.", |
| " ", |
| "SSH [ OPEN ] host [ port ] [ /COMMAND:command /USER:username", |
| " /PASSWORD:pwd /VERSION:{ 1, 2 } /X11-FORWARDING:{ ON, OFF } ]", |
| " This command establishes a new connection using SSH version 1 or", |
| " version 2 protocol. The connection is made to the specified host on", |
| " the SSH port (you can override the port by including a port name or", |
| " number after the host name). Once the connection is established the", |
| " authentication negotiations begin. If the authentication is accepted,", |
| " the local and remote port forwarding lists are used to establish the", |
| " desired connections. If X11 Forwarding is active, this results in a", |
| " remote port forwarding between the X11 clients on the remote host and", |
| " X11 Server on the local machine. If a /COMMAND is provided, the", |
| " command is executed on the remote host in place of your default shell.", |
| " ", |
| " An example of a /COMMAND to execute C-Kermit in SERVER mode is:", |
| " SSH OPEN hostname /COMMAND:{kermit -x -l 0}", |
| " ", |
| "SSH V2 REKEY", |
| " Requests that an existing SSH V2 connection generate new session keys.", |
| #else /* SSHBUILTIN */ |
| "Syntax: SSH [ options ] <hostname> [ command ]", |
| " Makes an SSH connection using the external ssh program via the SET SSH", |
| " COMMAND string, which is \"ssh -e none\" by default. Options for the", |
| " external ssh program may be included. If the hostname is followed by a", |
| " command, the command is executed on the host instead of an interactive", |
| " shell.", |
| #endif /* SSHBUILTIN */ |
| "" |
| }; |
| |
| static char *hmxyssh[] = { |
| #ifdef SSHBUILTIN |
| "SET SSH AGENT-FORWARDING { ON, OFF }", |
| " If an authentication agent is in use, setting this value to ON", |
| " results in the connection to the agent being forwarded to the remote", |
| " computer. The default is OFF.", |
| " ", |
| "SET SSH CHECK-HOST-IP { ON, OFF }", |
| " Specifies whether the remote host's ip-address should be checked", |
| " against the matching host key in the known_hosts file. This can be", |
| " used to determine if the host key changed as a result of DNS spoofing.", |
| " The default is ON.", |
| " ", |
| "SET SSH COMPRESSION { ON, OFF }", |
| " Specifies whether compression will be used. The default is ON.", |
| " ", |
| "SET SSH DYNAMIC-FORWARDING { ON, OFF }", |
| " Specifies whether Kermit is to act as a SOCKS4 service on port 1080", |
| " when connected to a remote host via SSH. When Kermit acts as a SOCKS4", |
| " service, it accepts connection requests and forwards the connections", |
| " through the remote host. The default is OFF.", |
| " ", |
| "SET SSH GATEWAY-PORTS { ON, OFF }", |
| " Specifies whether Kermit should act as a gateway for forwarded", |
| " connections received from the remote host. The default is OFF.", |
| " ", |
| "SET SSH GSSAPI DELEGATE-CREDENTIALS { ON, OFF }", |
| " Specifies whether Kermit should delegate GSSAPI credentials to ", |
| " the remote host after authentication. Delegating credentials allows", |
| " the credentials to be used from the remote host. The default is OFF.", |
| " ", |
| "SET SSH HEARTBEAT-INTERVAL <seconds>", |
| " Specifies a number of seconds of idle time after which an IGNORE", |
| " message will be sent to the server. This pulse is useful for", |
| " maintaining connections through HTTP Proxy servers and Network", |
| " Address Translators. The default is OFF (0 seconds).", |
| " ", |
| "SET SSH IDENTITY-FILE filename [ filename [ ... ] ]", |
| " Specifies one or more files from which the user's authorization", |
| " identities (private keys) are to be read when using public key", |
| " authorization. These are files used in addition to the default files:", |
| " ", |
| " \\v(appdata)ssh/identity V1 RSA", |
| " \\v(appdata)ssh/id_rsa V2 RSA", |
| " \\v(appdata)ssh/id_dsa V2 DSA", |
| " ", |
| "SET SSH KERBEROS4 TGT-PASSING { ON, OFF }", |
| " Specifies whether Kermit should forward Kerberos 4 TGTs to the host.", |
| " The default is OFF.", |
| " ", |
| "SET SSH KERBEROS5 TGT-PASSING { ON, OFF }", |
| " Specifies whether Kermit should forward Kerberos 5 TGTs to to the", |
| " host. The default is OFF.", |
| " ", |
| "SET SSH PRIVILEGED-PORT { ON, OFF }", |
| " Specifies whether a privileged port (less than 1024) should be used", |
| " when connecting to the host. Privileged ports are not required except", |
| " when using SSH V1 with Rhosts or RhostsRSA authorization. The default", |
| " is OFF.", |
| " ", |
| "SET SSH QUIET { ON, OFF }", |
| " Specifies whether all messages generated in conjunction with SSH", |
| " protocols should be suppressed. The default is OFF.", |
| " ", |
| "SET SSH STRICT-HOST-KEY-CHECK { ASK, ON, OFF }", |
| " Specifies how Kermit should behave if the the host key check fails.", |
| " When strict host key checking is OFF, the new host key is added to the", |
| " protocol-version-specific user-known-hosts-file. When strict host key", |
| " checking is ON, the new host key is refused and the connection is", |
| " dropped. When set to ASK, Kermit prompt you to say whether the new", |
| " host key should be accepted. The default is ASK.", |
| " ", |
| " Strict host key checking protects you against Trojan horse attacks.", |
| " It depends on you to maintain the contents of the known-hosts-file", |
| " with current and trusted host keys.", |
| " ", |
| "SET SSH USE-OPENSSH-CONFIG { ON, OFF }", |
| " Specifies whether Kermit should parse an OpenSSH configuration file", |
| " after applying Kermit's SET SSH commands. The configuration file", |
| " would be located at \\v(home)ssh/ssh_config. The default is OFF.", |
| " ", |
| "SET SSH V1 CIPHER { 3DES, BLOWFISH, DES }", |
| " Specifies which cipher should be used to protect SSH version 1", |
| " connections. The default is 3DES.", |
| " ", |
| "SET SSH V1 GLOBAL-KNOWN-HOSTS-FILE filename", |
| " Specifies the location of the system-wide known-hosts file. The", |
| " default is:", |
| " ", |
| " \v(common)ssh_known_hosts", |
| " ", |
| "SET SSH V1 USER-KNOWN-HOSTS-FILE filename", |
| " Specifies the location of the user-known-hosts-file. The default", |
| " location is:", |
| " ", |
| " \\v(appdata)ssh/known_hosts", |
| " ", |
| "SET SSH V2 AUTHENTICATION { EXTERNAL-KEYX, GSSAPI, HOSTBASED, ", |
| " KEYBOARD-INTERACTIVE, PASSWORD, PUBKEY, SRP-GEX-SHA1 } [ ... ]", |
| " Specifies an ordered list of SSH version 2 authentication methods to", |
| " be used when connecting to the remote host. The default list is:", |
| " ", |
| " external-keyx gssapi hostbased publickey srp-gex-sha1 publickey", |
| " keyboard-interactive password none", |
| " ", |
| "SET SSH V2 AUTO-REKEY { ON, OFF }", |
| " Specifies whether Kermit automatically issues rekeying requests", |
| " once an hour when SSH version 2 in in use. The default is ON.", |
| " ", |
| "SET SSH V2 CIPHERS { 3DES-CBC, AES128-CBC AES192-CBC AES256-CBC", |
| " ARCFOUR BLOWFISH-CBC CAST128-CBC RIJNDAEL128-CBC RIJNDAEL192-CBC", |
| " RIJNDAEL256-CBC }", |
| " Specifies an ordered list of SSH version ciphers to be used to encrypt", |
| " the established connection. The default list is:", |
| " ", |
| " aes128-cbc 3des-cbc blowfish-cbc cast128-cbc arcfour aes192-cbc", |
| " aes256-cbc", |
| " ", |
| " \"rijndael\" is an alias for \"aes\".", |
| " ", |
| "SET SSH V2 GLOBAL-KNOWN-HOSTS-FILE filename", |
| " Specifies the location of the system-wide known-hosts file. The default", |
| " location is:", |
| " ", |
| " \\v(common)ssh/known_hosts2", |
| " ", |
| "SET SSH V2 HOSTKEY-ALGORITHMS { SSH-DSS, SSH-RSA }", |
| " Specifies an ordered list of hostkey algorithms to be used to verify", |
| " the identity of the host. The default list is", |
| " ", |
| " ssh-rsa ssh-dss", |
| " ", |
| "SET SSH V2 MACS { HMAC-MD5 HMAC-MD5-96 HMAC-RIPEMD160 HMAC-SHA1", |
| " HMAC-SHA1-96 }", |
| " Specifies an ordered list of Message Authentication Code algorithms to", |
| " be used for integrity protection of the established connection. The", |
| " default list is:", |
| " ", |
| " hmac-md5 hmac-sha1 hmac-ripemd160 hmac-sha1-96 hmac-md5-96", |
| " ", |
| "SET SSH V2 USER-KNOWN-HOSTS-FILE filename", |
| " Specifies the location of the user-known-hosts file. The default", |
| " location is:", |
| " ", |
| " \\v(appdata)ssh/known_hosts2", |
| " ", |
| "SET SSH VERBOSE level", |
| " Specifies how many messages should be generated by the OpenSSH engine.", |
| " The level can range from 0 to 7. The default value is 2.", |
| " ", |
| "SET SSH VERSION { 1, 2, AUTOMATIC }", |
| " Specifies which SSH version should be negotiated. The default is", |
| " AUTOMATIC which means use version 2 if supported; otherwise to fall", |
| " back to version 1.", |
| " ", |
| "SET SSH X11-FORWARDING { ON, OFF }", |
| " Specifies whether X Windows System Data is to be forwarded across the", |
| " established SSH connection. The default is OFF. When ON, the DISPLAY", |
| " value is either set using the SET TELNET ENV DISPLAY command or read", |
| " from the DISPLAY environment variable.", |
| " ", |
| "SET SSH XAUTH-LOCATION filename", |
| " Specifies the location of the xauth executable (if provided with the", |
| " X11 Server software.)", |
| #else /* SSHBUILTIN */ |
| "Syntax: SET SSH COMMAND command", |
| " Specifies the external command to be used to make an SSH connection.", |
| " By default it is \"ssh -e none\" (ssh with no escape character).", |
| #endif /* SSHBUILTIN */ |
| "" |
| }; |
| #endif /* ANYSSH */ |
| |
| #ifdef NEWFTP |
| static char *hmxygpr[] = { |
| "Syntax: SET GET-PUT-REMOTE { AUTO, FTP, KERMIT}", |
| " Tells Kermit whether GET, PUT, and REMOTE commands should be directed", |
| " at a Kermit server or an FTP server. The default is AUTO, meaning that", |
| " if you have only one active connection, the appropriate action is taken", |
| " when you give a GET, PUT, or REMOTE command. SET GET-PUT-REMOTE FTP forces" |
| , |
| " Kermit to treat GET, PUT, and REMOTE as FTP client commands; setting this", |
| " to KERMIT forces these commands to be treated as Kermit client commands.", |
| " NOTE: PUT includes SEND, MPUT, MSEND, and all other similar commands.", |
| " Also see HELP REMOTE, HELP SET LOCUS, HELP FTP.", |
| "" |
| }; |
| #endif /* NEWFTP */ |
| |
| #ifdef LOCUS |
| static char *hmxylocus[] = { |
| #ifdef KUI |
| "Syntax: SET LOCUS { ASK, AUTO, LOCAL, REMOTE }", |
| #else |
| "Syntax: SET LOCUS { AUTO, LOCAL, REMOTE }", |
| #endif /* KUI */ |
| " Specifies whether unprefixed file management commands should operate", |
| " locally or (when there is a connection to a remote FTP or Kermit", |
| " server) sent to the server. The affected commands are: CD (CWD), PWD,", |
| " CDUP, DIRECTORY, DELETE, RENAME, MKDIR, and RMDIR. To force any of", |
| " these commands to be executed locally, give it an L-prefix: LCD, LDIR,", |
| " etc. To force remote execution, use the R-prefix: RCD, RDIR, and so", |
| " on. SHOW COMMAND shows the current Locus.", |
| " ", |
| " By default, the Locus for file management commands is switched", |
| " automatically whenever you make or close a connection: if you make an", |
| " FTP connection, the Locus becomes REMOTE; if you close an FTP connection", |
| " or make any other kind of connection, the Locus becomes LOCAL.", |
| #ifdef KUI |
| " ", |
| " There are two kinds of automatic switching: ASK (the default) which", |
| " asks you if it's OK to switch, and AUTO, which switches without asking.", |
| #endif /* KUI */ |
| " ", |
| " If you give a SET LOCUS LOCAL or SET LOCUS REMOTE command, this sets", |
| " the locus as indicated and disables automatic switching.", |
| #ifdef KUI |
| " SET LOCUS AUTO or SET LOCUS ASK restores automatic switching.", |
| " You can also change Locus switching and behavior in the Actions menu.", |
| #else |
| " SET LOCUS AUTO restores automatic switching.", |
| #endif /* KUI */ |
| "", |
| }; |
| #endif /* LOCUS */ |
| |
| static char *hmxxtak[] = { |
| "Syntax: TAKE filename [ arguments ]", |
| " Tells Kermit to execute commands from the named file. Optional argument", |
| " words, are automatically assigned to the macro argument variables \\%1", |
| " through \\%9. Kermit command files may themselves contain TAKE commands,", |
| " up to any reasonable depth of nesting.", |
| "" |
| }; |
| |
| #ifdef TCPSOCKET |
| static char *hmxxfirew[] = { |
| #ifdef OS2 |
| "Firewall Traversal in Kermit 95", |
| #else |
| "Firewall Traversal in C-Kermit", |
| #endif |
| " ", |
| #ifndef NEWFTP |
| #ifndef CKHTTP |
| #ifndef CK_SOCKS |
| #define NOFIREWALL |
| #endif |
| #endif |
| #endif |
| #ifdef NOFIREWALL |
| "This version of Kermit was built with no support for firewall traversal", |
| "protocols. Kermit can be built with support for HTTP Proxy Servers,", |
| "SOCKS authorized firewall traversal, and FTP Passive connection modes.", |
| " ", |
| #else /* NOFIREWALL */ |
| #ifdef CKHTTP |
| "The simplist form of firewall traversal is the HTTP CONNECT command. The", |
| "CONNECT command was implemented to allow a public web server which usually", |
| "resides on the boundary between the public and private networks to forward", |
| "HTTP requests from clients on the private network to public web sites. To", |
| "allow secure web connections, the HTTP CONNECT command authenticates the", |
| "client with a username/password and then establishes a tunnel to the", |
| "desired host.", |
| |
| " ", |
| |
| "Web servers that support the CONNECT command can be configured to allow", |
| "outbound connections for authenticated users to any TCP/IP hostname-port", |
| "combination accessible to the Web server. HTTP CONNECT can be used only", |
| "with TCP-based protocols. Protocols such as Kerberos authentication that", |
| "use UDP/IP cannot be tunneled using HTTP CONNECT.", |
| |
| " ", |
| |
| "SET TCP HTTP-PROXY [switches] [<hostname or ip-address>[:<port>]]", |
| " If a hostname or ip-address is specified, Kermit uses the given", |
| " proxy server when attempting outgoing TCP connections. If no hostnamer", |
| " or ip-address is specified, any previously specified Proxy server is", |
| " removed. If no port number is specified, the \"http\" service is used.", |
| " [switches] can be one or more of:", |
| " /AGENT:<agent> /USER:<user> /PASSWORD:<password>", |
| " Switch parameters are used when connecting to the proxy server and", |
| " override any other values associated with the connection.", |
| " ", |
| |
| #endif /* CKHTTP */ |
| #ifdef CK_SOCKS |
| |
| "In the early 1990s as firewalls were becoming prevalent, David Koblas", |
| "developed the SOCKS protocol for TCP/IP firewall traversal. Two versions", |
| "of SOCKS are currently in use: Version 4.2 lets TCP/IP client applications", |
| "traverse firewalls, similar to HTTP CONNECT, except that the SOCKS client", |
| "is aware of the public source IP address and port, which can be used within", |
| "the application protocol to assist in securing the connection (e.g. FTP", |
| "sessions secured with GSSAPI Kerberos 5).", |
| |
| " ", |
| |
| "In 1995 the IETF issued SOCKS Protocol Version 5 (RFC 1928), which is", |
| "significantly more general than version 4. Besides supporting client-", |
| "to-server TCP/IP connections, it also includes:", |
| |
| " ", |
| " . Authenticated firewall traversal of UDP/IP packets.", |
| " . Authenticated binding of incoming public ports on the firewall.", |
| " ", |
| |
| "This lets a service on the private network offer public services. It also", |
| "lets client applications like FTP establish a temporary public presence", |
| "that can be used by the FTP server to create a data channel. By allowing", |
| "the client to bind to a public port on the firewall and be aware of the", |
| "public address, SOCKS 5 lets the application protocol communicate this", |
| "information to the server.", |
| |
| " ", |
| |
| #ifdef OS2 |
| #ifdef NT |
| "Kermit 95 supports SOCKS 4.2. The SOCKS Server is specified with:", |
| " ", |
| " SET TCP SOCKS-SERVER hostname/ip-address", |
| " ", |
| "The SOCKS.CONF file is found by examining the ETC environment variable;", |
| "searching in \\WINDOWS on Windows 95/98/ME; or the", |
| "\\WINDOWS\\SYSTEM\\DRIVERS\\ETC directory on NT\\2000\\XP systems.", |
| |
| #else /* NT */ |
| |
| "Kermit/2 provides support for SOCKS 4.2 servers when using IBM TCP/IP 2.0,", |
| "IBM OS/2 WARP, or a compatible protocol stack. SOCKS is one popular means", |
| "of implementing a firewall between a private network and the Internet.", |
| " ", |
| "Kermit/2 shares the same SOCKS environment variables as IBM Gopher. It also", |
| "supports the use of local SOCKS configuration files.", |
| " ", |
| "To specify the default SOCKS Server, add SET SOCKS_SERVER= to your", |
| "CONFIG.SYS file.", |
| " ", |
| "If you must use a SOCKS Distributed Name Server, add SET SOCKS_NS= to your", |
| "CONFIG.SYS file.", |
| " ", |
| |
| "If you must use a specific with your SOCKS server, be sure to add SET USER=", |
| "to your CONFIG.SYS file. Otherwise, \"os2user\" is used by default.", |
| |
| " ", |
| |
| "The SOCKS configuration file must be placed in the directory pointed to by", |
| "the ETC environment variable as declared in your CONFIG.SYS file. The name", |
| "should be SOCKS.CONF. On a FAT file system, use SOCKS.CNF.", |
| |
| " ", |
| "The format of the lines in the SOCKS configuration file are as follows:", |
| " ", |
| " . # comments", |
| " . deny [*=userlist] dst_addr dst_mask [op port]", |
| " . direct [*=userlist] dst_addr dst_mask [op port]", |
| " . sockd [@=serverlist] [*=userlist] dst_addr dst_mask [op port]", |
| " ", |
| |
| "op must be one of 'eq', 'neq', 'lt', 'gt', 'le', or 'ge'. dst_addr,", |
| "dst_mask, and port may be either numeric or name equivalents.", |
| |
| " ", |
| |
| "Kermit/2 ignores the [*=userlist] and [@=serverlist] fields. Matches are", |
| "determined on a first match not a best match basis. Addresses for which no", |
| "match is found default to \"sockd\".", |
| |
| " ", |
| |
| "For completeness: Fields in square brackets are optional. The optional", |
| "@=serverlist field with a 'sockd' line specifies the list of SOCKS servers", |
| "the client should try (in the given order) instead of the default SOCKS", |
| "server. If the @=serverlist part is omitted, then the default SOCKS server", |
| "is used. Commas are used in the userlist and serverlist as separators, no", |
| "white spaces are allowed.", |
| |
| #endif /* NT */ |
| |
| " ", |
| |
| #else /* OS2 */ |
| #ifdef CK_SOCKS5 |
| "This version of C-Kermit supports SOCKS version 5.", |
| #else /* CK_SOCKS5 */ |
| "This version of C-Kermit supports SOCKS version 4.", |
| #endif /* CK_SOCKS5 */ |
| |
| "See the man page (or other system documentation) for information on", |
| "configuring the SOCKS library via the /etc/socks.conf file.", |
| |
| #endif /* OS2 */ |
| " ", |
| #endif /* CK_SOCKS */ |
| |
| #ifdef NEWFTP |
| |
| "FTP is one of the few well-known Internet services that requires", |
| "multiple connections. As described above, FTP originally required the", |
| "server to establish the data connection to the client using a destination", |
| "address and port provided by the client. This doesn't work with port", |
| "filtering firewalls.", |
| |
| " ", |
| |
| "Later, FTP protocol added a \"passive\" mode, in which connections for", |
| "the data channels are created in the reverse direction. Instead of the", |
| "server establishing a connection to the client, the client makes a second", |
| "connection with the server as the destination. This works just fine as", |
| "long as the client is behind the firewall and the server is in public", |
| "address space. If the server is behind a firewall then the traditional", |
| "active mode must be used. If both the client and server are behind their", |
| "own port filtering firewalls then data channels cannot be established.", |
| |
| " ", |
| |
| "In Kermit's FTP client, passive mode is controlled with the command:", |
| |
| " ", |
| " SET FTP PASSIVE-MODE { ON, OFF }", |
| " ", |
| |
| "The default is ON, meaning to use passive mode.", |
| |
| #endif /* NEWFTP */ |
| #endif /* NOFIREWALL */ |
| |
| "" |
| }; |
| #endif /* TCPSOCKET */ |
| |
| static char *hmxxsave[] = { |
| "Syntax: SAVE item filename { NEW, APPEND }", |
| " Saves the requested material in the given file. A new file is created", |
| " by default; include APPEND at the end of the command to append to an", |
| " existing file. Items:", |
| #ifndef NOSETKEY |
| " KEYMAP Saves the current key settings.", |
| #endif /* NOSETKEY */ |
| #ifdef CK_RECALL |
| " COMMAND HISTORY Saves the current command recall (history) buffer", |
| #endif /* CK_RECALL */ |
| #ifdef OS2 |
| " COMMAND SCROLLBACK Saves the current command-screen scrollback buffer", |
| " TERMINAL SCROLLBACK Saves the current terminal-screen scrollback buffer", |
| #endif /* OS2 */ |
| "" |
| }; |
| |
| #ifdef CKROOT |
| static char *hmxxchroot[] = { |
| "Syntax: SET ROOT directoryname", |
| " Sets the root for file access to the given directory and disables access", |
| " to system and shell commands and external programs. Once this command", |
| " is given, no files or directories outside the tree rooted by the given", |
| " directory can be opened, read, listed, deleted, renamed, or accessed in", |
| " any other way. This command can not be undone by a subsequent SET ROOT", |
| " command. Primarily for use with server mode, to restrict access of", |
| " clients to a particular directory tree. Synonym: CHROOT.", |
| "" |
| }; |
| #endif /* CKROOT */ |
| |
| static char *hmxxscrn[] = { |
| "Syntax: SCREEN { CLEAR, CLEOL, MOVE row column }", |
| #ifdef OS2 |
| " Performs screen-formatting actions.", |
| #else |
| " Performs screen-formatting actions. Correct operation of these commands", |
| " depends on proper terminal setup on both ends of the connection -- mainly", |
| " that the host terminal type is set to agree with the kind of terminal or", |
| " the emulation you are viewing C-Kermit through.", |
| #endif /* OS2 */ |
| " ", |
| "SCREEN CLEAR", |
| " Moves the cursor to home position and clears the entire screen.", |
| #ifdef OS2 |
| " Synonyms: CLS, CLEAR SCREEN, CLEAR COMMAND-SCREEN ALL", |
| #else |
| " Synonyms: CLS, CLEAR SCREEN.", |
| #endif /* OS2 */ |
| " ", |
| "SCREEN CLEOL", |
| " Clears from the current cursor position to the end of the line.", |
| #ifdef OS2 |
| " Synonym: CLEAR COMMAND-SCREEN EOL", |
| #endif /* OS2 */ |
| " ", |
| "SCREEN MOVE row column", |
| " Moves the cursor to the indicated row and column. The row and column", |
| " numbers are 1-based so on a 24x80 screen, the home position is 1 1 and", |
| " the lower right corner is 24 80. If a row or column number is given that", |
| " too large for what Kermit or the operating system thinks is your screen", |
| " size, the appropriate number is substituted.", |
| " ", |
| "Also see:", |
| #ifdef OS2 |
| " HELP FUNCTION SCRNCURX, HELP FUNCTION SCRNCURY, HELP FUNCTION SCRSTR,", |
| #endif /* OS2 */ |
| " SHOW VARIABLE TERMINAL, SHOW VARIABLE COLS, SHOW VAR ROWS, SHOW COMMAND.", |
| "" |
| }; |
| |
| #ifndef NOSPL |
| static char *hmfword[] = { |
| "\\fword(s1,n1,s2,s3,n2,n3) - Extract word from string.", |
| " s1 = source string", |
| " n1 = word number (1-based)", |
| " s2 = optional break set.", |
| " s3 = optional include set.", |
| " n2 = optional grouping mask.", |
| " n3 = optional separator flag:", |
| " 0 = collapse adjacent separators", |
| " 1 = don't collapse adjacent separators.", |
| " ", |
| " Default break set is all characters except ASCII letters and digits.", |
| " ASCII (C0) control characters are always treated as break characters.", |
| " Default include set is null.", |
| " ", |
| " If grouping mask given and nonzero, words can be grouped by quotes or", |
| " brackets selected by the sum of the following:", |
| " ", |
| " 1 = doublequotes: \"a b c\"", |
| " 2 = braces: {a b c}", |
| " 4 = apostrophes: 'a b c'", |
| " 8 = parentheses: (a b c)", |
| " 16 = square brackets: [a b c]", |
| " 32 = angle brackets: <a b c>", |
| " ", |
| " Nesting is possible with {}()[]<> but not with quotes or apostrophes.", |
| " ", |
| "Returns string:", |
| " Word number n, if there is one, otherwise an empty string.", |
| "" |
| }; |
| |
| static char *hmxxprompt[] = { |
| "Syntax: PROMPT [ text ]", |
| " Enters interactive command level from within a script in such a way that", |
| " the script can be continued with an END or RETURN command. STOP, EXIT,", |
| " SHOW STACK, TRACE, and Ctrl-C all have their normal effects. The PROMPT", |
| " command allows variables to be examined or changed, or any other commands", |
| " to be given, in any number, prior to returning to the script, allowing", |
| " Kermit to serve as its own debugger; adding the PROMPT command to a script", |
| " is like setting a breakpoint. If the optional text is included, it is", |
| " used as the new prompt for this level, e.g. \"prompt Breakpoint_1>\".", |
| "" |
| }; |
| |
| static char *hxxinp[] = { |
| "Syntax: INPUT [ /NOMATCH ] { number-of-seconds, time-of-day } [ text ]", |
| "Example: INPUT 5 Login: or INPUT 23:59:59 RING", |
| " Waits up to the given number of seconds, or until the given time of day,", |
| " for the given text to arrive on the connection. If no text is given,", |
| " INPUT waits for any character. If the /NOMATCH switch is included, INPUT", |
| " does not attempt to match any characters, but continues reading from the", |
| " communication connection until the timeout interval expires. If the", |
| " timeout interval is 0, the INPUT command does not wait; i.e. the given", |
| " text must already be available for reading for the INPUT command to", |
| " succeed. If the interval is negative, the INPUT command waits forever.", |
| " For use in script programs with IF FAILURE and IF SUCCESS. Also see", |
| " MINPUT, REINPUT, SET INPUT. See HELP PAUSE for details on time-of-day", |
| " format. The text, if given, can be a \\pattern() invocation, in which", |
| " case it is treated as a pattern rather than a literal string (HELP", |
| " PATTERNS for details).", |
| ""}; |
| |
| static char *hxxout[] = { |
| "Syntax: OUTPUT text", |
| " Sends the text out the communications connection, as if you had typed it", |
| " during CONNECT mode. The text may contain backslash codes, variables,", |
| " etc, plus the following special codes:", |
| " ", |
| " \\N - Send a NUL (ASCII 0) character (you can't use \\0 for this).", |
| " \\B - Send a BREAK signal.", |
| " \\L - Send a Long BREAK signal.", |
| " ", |
| "Also see SET OUTPUT.", |
| "" }; |
| #endif /* NOSPL */ |
| |
| static char *hxypari[] = { |
| "SET PARITY NONE", |
| " Chooses 8 data bits and no parity.", |
| " ", |
| "SET PARITY { EVEN, ODD, MARK, SPACE }", |
| " Chooses 7 data bits plus the indicated kind of parity.", |
| " Forces 8th-bit prefixing during file transfer.", |
| " ", |
| #ifdef HWPARITY |
| "SET PARITY HARDWARE { EVEN, ODD }", |
| " Chooses 8 data bits plus the indicated kind of parity.", |
| " ", |
| "Also see SET TERMINAL BYTESIZE, SET SERIAL, and SET STOP-BITS.", |
| #else |
| "Also see SET TERMINAL BYTESIZE and SET SERIAL.", |
| #endif /* HWPARITY */ |
| ""}; |
| |
| #ifndef NOLOCAL |
| static char *hxyesc[] = { |
| #ifdef OS2 |
| "Syntax: SET ESCAPE number", |
| " Decimal ASCII value for escape character during CONNECT, normally 29", |
| " (Control-]). Type the escape character followed by C to get back to the", |
| " C-Kermit prompt or followed by ? to see other options, or use the \\Kexit", |
| " keyboard verb, normally assigned to Alt-x.", |
| #else |
| #ifdef NEXT |
| "Syntax: SET ESCAPE number", |
| " Decimal ASCII value for escape character during CONNECT, normally 29", |
| " (Control-]). Type the escape character followed by C to get back to the", |
| " C-Kermit prompt or followed by ? to see other options.", |
| #else |
| "Syntax: SET ESCAPE number", |
| " Decimal ASCII value for escape character during CONNECT, normally 28", |
| " (Control-\\). Type the escape character followed by C to get back to the", |
| " C-Kermit prompt or followed by ? to see other options.", |
| #endif /* NEXT */ |
| #endif /* OS2 */ |
| " ", |
| "You may also enter the escape character as ^X (circumflex followed by a", |
| "letter or one of: @, ^, _, [, \\, or ], to indicate a control character;", |
| "for example, SET ESC ^_ sets your escape character to Ctrl-Underscore.", |
| " ", |
| "You can also specify an 8-bit character (128-255) as your escape character,", |
| "either by typing it literally or by entering its numeric code.", |
| "" }; |
| #endif /* NOLOCAL */ |
| |
| #ifndef NOSPL |
| static char *hxyout[] = { |
| "SET OUTPUT PACING <number>", |
| " How many milliseconds to pause after sending each OUTPUT character,", |
| " normally 0.", |
| " ", |
| "SET OUTPUT SPECIAL-ESCAPES { ON, OFF }", |
| " Whether to process the special OUTPUT-only escapes \\B, \\L, and \\N.", |
| " Normally ON (they are processed).", |
| "" }; |
| |
| static char *hxyinp[] = { |
| "Syntax: SET INPUT parameter value", |
| " ", |
| #ifdef CK_AUTODL |
| "SET INPUT AUTODOWNLOAD { ON, OFF }", |
| " Controls whether autodownloads are allowed during INPUT command execution.", |
| " ", |
| #endif /* CK_AUTODL */ |
| "SET INPUT BUFFER-LENGTH number-of-bytes", |
| " Removes the old INPUT buffer and creates a new one with the given length.", |
| " ", |
| "SET INPUT CANCELLATION { ON, OFF }", |
| " Whether an INPUT in progress can be can interrupted from the keyboard.", |
| " ", |
| "SET INPUT CASE { IGNORE, OBSERVE }", |
| " Tells whether alphabetic case is to be significant in string comparisons.", |
| " This setting is local to the current macro or command file, and is", |
| " inherited by subordinate macros and take files.", |
| " ", |
| "SET INPUT ECHO { ON, OFF }", |
| " Tells whether to display arriving characters read by INPUT on the screen.", |
| " ", |
| #ifdef CKFLOAT |
| "SET INPUT SCALE-FACTOR <number>", |
| " A number to multiply all INPUT timeouts by, which may include a fractional", |
| " part, e.g. 2.5. All INPUT commands that specify a timeout in seconds", |
| " (as opposed to a specific time of day) have their time limit adjusted", |
| " automatically by this factor, which is also available in the built-in", |
| " read-only variable \\v(inscale). The default value is 1.0.", |
| " ", |
| |
| #endif /* CKFLOAT */ |
| |
| "SET INPUT SILENCE <number>", |
| " The maximum number to seconds of silence (no input at all) before the", |
| " INPUT command times out, 0 for no maximum.", |
| " ", |
| #ifdef OS2 |
| "SET INPUT TERMINAL { ON, OFF }", |
| " Determines whether the data received during an INPUT command is displayed", |
| " in the terminal window. Default is ON.", |
| " ", |
| #endif /* OS2 */ |
| "SET INPUT TIMEOUT-ACTION { PROCEED, QUIT }", |
| " Tells whether to proceed or quit from a script program if an INPUT command", |
| " fails. PROCEED (default) allows use of IF SUCCESS / IF FAILURE commands.", |
| " This setting is local to the current macro or command file, and is", |
| " inherited by subordinate macros and take files.", |
| "" }; |
| |
| static char *hxyfunc[] = { |
| "SET FUNCTION DIAGNOSTICS { ON, OFF }", |
| " Whether to issue diagnostic messages for illegal function calls and", |
| " references to nonexistent built-in variables. ON by default.", |
| " ", |
| "SET FUNCTION ERROR { ON, OFF }", |
| " Whether an illegal function call or reference to a nonexistent built-in", |
| " variable should cause a command to fail. OFF by default.", |
| "" }; |
| #endif /* NOSPL */ |
| |
| static char *hxyxyz[] = { |
| #ifdef CK_XYZ |
| #ifdef XYZ_INTERNAL |
| |
| /* This is for built-in protocols */ |
| |
| "Syntax: SET PROTOCOL { KERMIT, XMODEM, YMODEM, ZMODEM } [ s1 s2 [ s3 ] ]", |
| " Selects protocol to use for transferring files. String s1 is a command to", |
| " send to the remote host prior to SENDing files with this protocol in", |
| " binary mode; string s2 is the same thing but for text mode. Use \"%\" in", |
| " any of these strings to represent the filename(s). If the protocol is", |
| " KERMIT, you may also specify a string s3, the command to start a Kermit", |
| " server on the remote host when you give a GET, REGET, REMOTE, or other", |
| " client command. Use { braces } if any command contains spaces. Examples:", |
| " ", |
| " set proto xmodem {rx %s} {rx -a %s}", |
| " set proto kermit {kermit -YQir} {kermit -YQTr} {kermit -YQx}", |
| |
| #else /* This is for when non-Kermit protocols are external */ |
| |
| "Syntax: \ |
| SET PROTOCOL { KERMIT, XMODEM, YMODEM, ZMODEM } [ s1 s2 s3 s4 s5 s6 ]", |
| " Selects protocol to use for transferring files. s1 and s2 are commands to", |
| " output prior to SENDing with this protocol, to automatically start the", |
| " RECEIVE process on the other end in binary or text mode, respectively.", |
| " If the protocol is KERMIT, s3 is the command to start a Kermit server on", |
| " the remote computer, and there are no s4-s6 commands. Otherwise, s3 and", |
| " s4 are commands used on this computer for sending files with this protocol", |
| " in binary or text mode, respectively; s5 and s6 are the commands for", |
| " receiving files with this protocol. Use \"%s\" in any of these strings", |
| " to represent the filename(s). Use { braces } if any command contains", |
| " spaces. Examples:", |
| " ", |
| " set proto kermit {kermit -YQir} {kermit -YQTr} {kermit -YQx}", |
| " set proto ymodem rb {rb -a} {sb %s} {sb -a %s} rb rb", |
| " ", |
| "External protocols require REDIRECT and external file transfer programs that", |
| "use redirectable standard input/output.", |
| #endif /* XYZ_INTERNAL */ |
| #else |
| "Syntax: \ |
| SET PROTOCOL KERMIT [ s1 [ s2 [ s3 ] ] ]", |
| " Lets you specify the autoupload binary, autoupload text, and autoserver", |
| " command strings to be sent to the remote system in advance of any SEND", |
| " or GET commands. By default these are \"kermit -ir\", \"kermit -r\", and", |
| " \"kermit -x\". Use { braces } around any command that contains spaces.", |
| " Example:", |
| " ", |
| " set proto kermit {kermit -Yir} {kermit -YTr} {kermit -Yx}", |
| #endif /* CK_XYZ */ |
| " ", |
| " SHOW PROTOCOL displays the current settings.", |
| ""}; |
| |
| static char *hmxxbye = "Syntax: BYE\n\ |
| Shut down and log out a remote Kermit server"; |
| |
| #ifdef CK_PERMS |
| #ifdef UNIX |
| static char *hmxxchmod[] = { |
| "Syntax: CHMOD [ switches ] code filespec", |
| " UNIX only. Changes permissions of the given file(s) to the given code,", |
| " which must be an octal number such as 664 or 775. Optional switches:", |
| " ", |
| " /FILES Only change permissions of regular files.", |
| " /DIRECTORIES Only change permissions of directory files.", |
| " /TYPE:BINARY Only change permissions of binary files.", |
| " /TYPE:TEXT Only change permissions of text files.", |
| " /DOTFILES Include files whose names begin with dot (.).", |
| " /RECURSIVE Change permissions in subdirectories too.", |
| " /LIST List each file (synonym: /VERBOSE).", |
| " /NOLIST Operate silently (synonym: /QUIET).", |
| " /PAGE When listing, pause at end of each screen (implies /LIST).", |
| " /NOPAGE When listing, don't pause at end of each screen.", |
| " /SIMULATE Show what would be done but don't actually do it.", |
| "" |
| }; |
| #endif /* UNIX */ |
| #endif /* CK_PERMS */ |
| |
| #ifndef NOSPL |
| #ifndef NOSEXP |
| static char *hmxxsexp[] = { |
| "Syntax: (operation operand [ operand [ ... ] ])", |
| " ", |
| " C-Kermit includes a simple LISP-like S-Expression parser operating on", |
| " numbers only. An S-Expression is always enclosed in parentheses. The", |
| " parentheses can contain (a) a number, (b) a variable, (c) a function that", |
| " returns a number, or (d) an operator followed by one or more operands.", |
| " Operands can be any of (a) through (c) or an S-Expression. Numbers can be", |
| " integers or floating-point. Any operand that is not a number and does not", |
| " start with backslash (\\) is treated as a Kermit macro name. Operators:", |
| " ", |
| " Operator Action Example Value", |
| " EVAL (.) Returns the contained value (6) 6", |
| " QUOTE (') Inhibits evaluation of following value (quote a) a", |
| " SETQ Assigns a value to a global variable (setq a 2) 2", |
| " LET Assigns a value to a local variable (let b -1.3) -1.3", |
| " + Adds all operands (1 or more) (+ a b) 0.7", |
| " - Subtracts all operands (1 or more) (- 9 5 2 1) 1", |
| " * Multiplies all operands (1 or more) (* a (+ b 1) 3) -1.8", |
| " / Divides all operands (1 or more) (/ b a 2) -0.325", |
| " ^ Raise given number to given power (^ 3 2) 9", |
| " ++ Increments a variable (++ a 1.2) 3.2", |
| " -- Decrements a variable (-- a) 1", |
| " ABS Absolute value of 1 operand (abs (* a b 3)) 7.8", |
| " MAX Maximum of all operands (1 or more) (max 1 2 3 4) 4", |
| " MIN Minimum of all operands (1 or more) (min 1 2 3 4) 1", |
| " MOD Modulus of all operands (1 or more) (mod 7 4 2) 1", |
| " TRUNCATE Integer part of floating-point operand (truncate 1.333) 1", |
| " CEILING Ceiling of floating-point operand (ceiling 1.25) 2", |
| " FLOOR Floor of floating-point operand (floor 1.25) 1", |
| " ROUND Operand rounded to nearest integer (round 1.75) 2", |
| " SQRT Square root of 1 operand (sqrt 2) 1.414..", |
| " EXP e (2.71828..) to the given power (exp -1) 0.367..", |
| " SIN Sine of angle expressed in radians (sin (/ pi 2)) 1.0", |
| " COS Cosine of given number (cos pi) -1.0", |
| " TAN Tangent of given number (tan pi) 0.0", |
| " LOG Natural log (base e) of given number (log 2.7183) 1.000..", |
| " LOG10 Log base 10 of given number (log10 1000) 3.0", |
| " ", |
| "Predicate operators return 0 if false, 1 if true, and if it is the outermost", |
| "operator, sets SUCCESS or FAILURE accordingly:", |
| " ", |
| " < Operands in strictly descending order (< 6 5 4 3 2 1) 1", |
| " <= Operands in descending order (<= 6 6 5 4 3 2) 1", |
| " != Operands are not equal (!= 1 1 1.0) 0", |
| " = (==) All operands are equal (= 3 3 3 3) 1", |
| " > Operands in strictly ascending order (> 1 2 3 4 5 6) 1", |
| " >= Operands in ascending order (> 1 1 2 3 4 5) 1", |
| " AND (&&) Operands are all true (and 1 1 1 1 0) 0", |
| " OR (||) At least one operand is true (or 1 1 1 1 0) 1", |
| " XOR Logical Exclusive OR (xor 3 1) 0", |
| " NOT (!) Reverses truth value of operand (not 3) 0", |
| " ", |
| "Bit-oriented operators:", |
| " ", |
| " & Bitwise AND (& 7 2) 2", |
| " | Bitwise OR (| 1 2 3 4) 7", |
| " # Bitwise Exclusive OR (# 3 1) 2", |
| " ~ Reverses all bits (~ 3) -4", |
| " ", |
| "Operators that work on truth values:", |
| " ", |
| " IF Conditional evaluation (if (1) 2 3) 2", |
| " ", |
| "Operators can also be names of Kermit macros that return either numeric", |
| "values or no value at all.", |
| " ", |
| "Built-in constants are:", |
| " ", |
| " t True (1)", |
| " nil False (empty)", |
| " pi The value of Pi (3.1415926...)", |
| " ", |
| "If SET SEXPRESSION ECHO-RESULT is AUTO (the default), the value of the", |
| "S-Expression is printed if the S-Expression is given at top level; if ON,", |
| "it is printed at any level; if OFF it is not printed. At all levels, the", |
| "variable \\v(sexpression) is set to the most recent S-Expression, and", |
| "\\v(svalue) is set to its value. You can use the \\fsexpresssion() function", |
| "to evaluate an S-Expression anywhere in a Kermit command.", |
| "" |
| }; |
| #endif /* NOSEXP */ |
| #endif /* NOSPL */ |
| |
| static char *hmxxgrep[] = { |
| #ifdef UNIXOROSK |
| "Syntax: GREP [ options ] pattern filespec", |
| #else |
| "Syntax: FIND [ options ] pattern filespec", |
| #endif /* UNIXOROSK */ |
| " Searches through the given file or files for the given character string", |
| " or pattern. In the normal case, all lines containing any text that matches" |
| , |
| " the pattern are printed. Pattern syntax is as described in HELP PATTERNS", |
| " except that '*' is implied at the beginning unless the pattern starts with", |
| " '^' and also at the end unless the pattern ends with '$'. Therefore,", |
| " \"grep something *.txt\" lists all lines in all *.txt files that contain", |
| " the word \"something\", but \"grep ^something *.txt\" lists only the lines", |
| " that START with \"something\". The command succeeds if any of the given", |
| " files contained any lines that match the pattern, otherwise it fails.", |
| #ifdef UNIXOROSK |
| " Synonym: FIND.", |
| #else |
| " Synonym: GREP.", |
| #endif /* UNIXOROSK */ |
| " ", |
| "File selection options:", |
| " /NOBACKUPFILES", |
| " Excludes backup files (like oofa.txt.~3~) from the search.", |
| " /DOTFILES", |
| " Includes files whose names start with dot (.) in the search.", |
| " /NODOTFILES", |
| " Excludes files whose names start with dot (.) from the search.", |
| #ifdef RECURSIVE |
| " /RECURSIVE", |
| " Searches through files in subdirectories too.", |
| #endif /* RECURSIVE */ |
| " /TYPE:TEXT", |
| " Search only text files (requires FILE SCAN ON).", |
| " /TYPE:BINARY", |
| " Search only binary files (requires FILE SCAN ON).", |
| " ", |
| "Pattern-matching options:", |
| " /NOCASE", |
| " Ignores case of letters (ASCII only) when comparing.", |
| " /NOMATCH", |
| " Searches for lines that do NOT match the pattern.", |
| " ", |
| "Display options:", |
| " /COUNT:variable-name", |
| " For each file, prints only the filename and a count of matching lines", |
| " and assigns the total match count to the variable, if one is given.", |
| " /NAMEONLY", |
| " Prints the name of each file that contains at least one matching line,", |
| " one name per line, rather than showing each matching line.", |
| " /NOLIST", |
| " Doesn't print anything (but sets SUCCESS or FAILURE appropriately).", |
| " /LINENUMBERS", |
| " Precedes each file line by its line number within the file.", |
| " /PAGE", |
| " Pauses after each screenful.", |
| " /NOPAGE", |
| " Doesn't pause after each screenful.", |
| " /OUTPUT:name", |
| " Sends results to the given file. If this switch is omitted, the", |
| " results appear on your screen. This switch overrides any express or", |
| " implied /PAGE switch.", |
| ""}; |
| |
| static char *hmxxdir[] = { |
| #ifdef DOMYDIR |
| "Syntax: DIRECTORY [ switches ] [ filespec [ filespec [ ... ] ] ]", |
| #ifdef LOCUS |
| " If LOCUS is REMOTE or LOCUS is AUTO and you have an FTP connection,", |
| " this command is equivalent to REMOTE DIRECTORY (RDIR). Otherwise:", |
| " ", |
| #endif /* LOCUS */ |
| " Lists local files. The filespec may be a filename, possibly containing", |
| " wildcard characters, or a directory name. If no filespec is given, all", |
| " files in the current directory are listed. If a directory name is given,", |
| " all the files in it are listed. Multiple filespecs can be given.", |
| " Optional switches:", |
| " ", |
| " /BRIEF List filenames only.", |
| #ifdef CK_PERMS |
| " /VERBOSE + Also list permissions, size, and date.", |
| #else |
| " /VERBOSE + Also list date and size.", |
| #endif /* CK_PERMS */ |
| " /FILES Show files but not directories.", |
| " /DIRECTORIES Show directories but not files.", |
| " /ALL + Show both files and directories.", |
| " /ARRAY:&a Store file list in specified array (e.g. \\%a[]).", |
| " /PAGE Pause after each screenful.", |
| " /NOPAGE Don't pause after each screenful.", |
| #ifdef UNIXOROSK |
| " /DOTFILES Include files whose names start with dot (period).", |
| " /NODOTFILES + Don't include files whose names start with dot.", |
| " /FOLLOWLINKS Follow symbolic links.", |
| " /NOFOLLOWLINKS + Don't follow symbolic links.", |
| " /BACKUP + Include backup files (names end with .~n~).", |
| " /NOBACKUPFILES Don't include backup files.", |
| #endif /* UNIXOROSK */ |
| " /OUTPUT:file Store directory listing in the given file.", |
| " /HEADING Include heading and summary.", |
| " /NOHEADING + Don't include heading or summary.", |
| " /SUMMARY Print only count and total size of matching files.", |
| " /XFERMODE Show pattern-based transfer mode (T=Text, B=Binary).", |
| " /TYPE: Show only files of the specified type (text or binary).", |
| " /MESSAGE:text Add brief message to each listing line.", |
| " /NOMESSAGE + Don't add message to each listing line.", |
| " /NOXFERMODE + Don't show pattern-based transfer mode", |
| " /ISODATE + In verbose listings, show date in ISO 8061 format.", |
| " /ENGLISHDATE In verbose listings, show date in \"English\" format.", |
| #ifdef RECURSIVE |
| " /RECURSIVE Descend through subdirectories.", |
| " /NORECURSIVE + Don't descend through subdirectories.", |
| #endif /* RECURSIVE */ |
| " /SORT:key Sort by key, NAME, DATE, or SIZE; default key is NAME.", |
| " /NOSORT + Don't sort.", |
| " /ASCENDING + If sorting, sort in ascending order.", |
| " /REVERSE If sorting, sort in reverse order.", |
| " ", |
| "Factory defaults are marked with +. Default for paging depends on SET", |
| "COMMAND MORE-PROMPTING. Use SET OPTIONS DIRECTORY [ switches ] to change", |
| "defaults; use SHOW OPTIONS to display customized defaults.", |
| #else |
| "Syntax: DIRECTORY [ filespec ]", |
| " Lists the specified file or files. If no filespec is given, all files", |
| " in the current directory are listed.", |
| #endif /* DOMYDIR */ |
| ""}; |
| |
| |
| #ifndef NOSPL |
| static char *hmxxkcd[] = { |
| "Syntax: KCD symbolic-directory-name", |
| " Kermit Change Directory: Like CD (q.v.) but (a) always acts locally, and", |
| " (b) takes a symbolic directory name rather than an actual directory name.", |
| " The symbolic names correspond to Kermit's directory-valued built-in", |
| " variables, such as \\v(download), \\v(exedir), and so on. Here's the list:" |
| , |
| " ", |
| #ifdef NT |
| " appdata Your personal Kermit 95 application data directory", |
| " common Kermit 95's application data directory for all users", |
| " desktop Your Windows desktop", |
| #endif /* NT */ |
| " download Your download directory (if any)", |
| #ifdef OS2ORUNIX |
| " exedir The directory where the Kermit executable resides", |
| #endif /* OS2ORUNIX */ |
| " home Your home, login, or default directory", |
| " inidir The directory where Kermit's initialization was found", |
| #ifdef UNIX |
| " lockdir The UNIX UUCP lockfile directory on this computer", |
| #endif /* UNIX */ |
| #ifdef NT |
| " personal Your \"My Documents\" directory", |
| #endif /* NT */ |
| " startup Your current directory at the time Kermit started", |
| " textdir The directory where Kermit text files reside, if any", |
| " tmpdir Your temporary directory", |
| " ", |
| " Also see CD, SET FILE DOWNLOAD, SET TEMP-DIRECTORY.", |
| "" |
| }; |
| #endif /* NOSPL */ |
| |
| static char *hmxxcwd[] = { |
| #ifdef LOCUS |
| " If LOCUS is REMOTE or LOCUS is AUTO and you have an FTP connection,", |
| " this command is equivalent to REMOTE CD (RCD). Otherwise:", |
| " ", |
| #endif /* LOCUS */ |
| #ifdef vms |
| "Syntax: CD [ directory or device:directory ]", |
| " Change Working Directory. Equivalent to VMS SET DEFAULT command.", |
| #else |
| #ifdef datageneral |
| "Change Working Directory, equivalent to AOS/VS 'dir' command.", |
| #else |
| #ifdef OS2 |
| "Syntax: CD [ disk or directory name ]", |
| " Change Disk or Directory. If a disk or directory name is not specified,", |
| " your current directory becomes the one specified by HOME environment", |
| " variable, if any. A disk letter must be followed by a colon.", |
| #else |
| "Syntax: CD [ directory name ]", |
| " Change Directory. Changes your current, working, default directory to the", |
| " one given, so that future non-absolute filename references are relative to", |
| " this directory. If the directory name is omitted, your home (login)", |
| " directory is supplied.", |
| #endif /* OS2 */ |
| #endif /* datageneral */ |
| #endif /* vms */ |
| " C-Kermit's default prompt shows your current directory.", |
| " Synonyms: LCD, CWD.", |
| #ifdef LOCUS |
| " Also see: SET LOCUS, PWD, CDUP, BACK, REMOTE CD (RCD), SET CD, SET PROMPT.", |
| #else |
| " Also see: PWD, CDUP, BACK, REMOTE CD (RCD), SET CD, SET PROMPT.", |
| #endif /* LOCUS */ |
| #ifndef NOSPL |
| " And see: HELP KCD.", |
| #endif /* NOSPL */ |
| " Relevant environment variables: CDPATH, HOME.", |
| ""}; |
| |
| static char *hmxxdel[] = { |
| "Syntax: DELETE [ switches... ] filespec", |
| #ifdef LOCUS |
| " If LOCUS is REMOTE or LOCUS is AUTO and you have an FTP connection,", |
| " this command is equivalent to REMOTE DELETE (RDELETE). Otherwise:", |
| " ", |
| #endif /* LOCUS */ |
| " Deletes a file or files on the computer where C-Kermit is running.", |
| " The filespec may denote a single file or can include wildcard characters", |
| " to match multiple files. RM is a synonym for DELETE. Switches include:", |
| " ", |
| "/AFTER:date-time", |
| #ifdef VMS |
| " Specifies that only those files created after the given date-time are", |
| #else |
| " Specifies that only those files modified after the given date-time are", |
| #endif /* VMS */ |
| " to be deleted. HELP DATE for info about date-time formats.", |
| " ", |
| "/BEFORE:date-time", |
| #ifdef VMS |
| " Specifies that only those files modified before the given date-time", |
| #else |
| " Specifies that only those files modified before the given date-time", |
| #endif /* VMS */ |
| " are to be deleted.", |
| " ", |
| "/NOT-AFTER:date-time", |
| #ifdef VMS |
| " Specifies that only those files modified at or before the given date-time", |
| #else |
| " Specifies that only those files modified at or before the given date-time", |
| #endif /* VMS */ |
| " are to be deleted.", |
| " ", |
| "/NOT-BEFORE:date-time", |
| #ifdef VMS |
| " Specifies that only those files modified at or after the given date-time", |
| #else |
| " Specifies that only those files modified at or after the given date-time", |
| #endif /* VMS */ |
| " are to be deleted.", |
| " ", |
| "/LARGER-THAN:number", |
| " Specifies that only those files longer than the given number of bytes are", |
| " to be deleted.", |
| " ", |
| "/SMALLER-THAN:number", |
| " Specifies that only those files smaller than the given number of bytes are", |
| " to be sent.", |
| " ", |
| "/EXCEPT:pattern", |
| " Specifies that any files whose names match the pattern, which can be a", |
| " regular filename or may contain wildcards, are not to be deleted. To", |
| " specify multiple patterns (up to 8), use outer braces around the group", |
| " and inner braces around each pattern:", |
| " ", |
| " /EXCEPT:{{pattern1}{pattern2}...}", |
| " ", |
| #ifdef UNIXOROSK |
| "/DOTFILES", |
| " Include (delete) files whose names begin with \".\".", |
| " ", |
| "/NODOTFILES", |
| " Skip (don't delete) files whose names begin with \".\".", |
| " ", |
| #endif /* UNIXOROSK */ |
| "/TYPE:TEXT", |
| " Delete only regular text files (requires FILE SCAN ON)", |
| " ", |
| "/TYPE:BINARY", |
| " Delete only regular binary files (requires FILE SCAN ON)", |
| " ", |
| "/DIRECTORIES", |
| " Include directories. If this switch is not given, only regular files", |
| " are deleted. If it is given, Kermit attempts to delete any directories", |
| " that match the given file specification, which succeeds only if the", |
| " directory is empty.", |
| " ", |
| #ifdef RECURSIVE |
| "/RECURSIVE", |
| " The DELETE command applies to the entire directory tree rooted in the", |
| " current or specified directory. When the /DIRECTORIES switch is also", |
| " given, Kermit deletes all the (matching) files in each directory before", |
| " attempting to delete the directory itself.", |
| " ", |
| #endif /* RECURSIVE */ |
| #ifdef UNIX |
| #ifdef RECURSIVE |
| "/ALL", |
| " This is a shortcut for /RECURSIVE /DIRECTORIES /DOTFILES.", |
| #else |
| "/ALL", |
| " This is a shortcut for /DIRECTORIES /DOTFILES.", |
| #endif /* RECURSIVE */ |
| #else /* !UNIX */ |
| #ifdef RECURSIVE |
| "/ALL", |
| " This is a shortcut for /RECURSIVE /DIRECTORIES.", |
| #else |
| "/ALL", |
| " This is a synonym for /DIRECTORIES.", |
| #endif /* RECURSIVE */ |
| #endif /* UNIX */ |
| " ", |
| "/LIST", |
| " List each file and tell whether it was deleted. Synonyms: /LOG, /VERBOSE.", |
| " ", |
| "/NOLIST", |
| " Don't list files while deleting. Synonyms: /NOLOG, /QUIET.", |
| " ", |
| "/HEADING", |
| " Print heading and summary information.", |
| " ", |
| "/NOHEADING", |
| " Don't print heading and summary information.", |
| " ", |
| "/SUMMARY", |
| " Like /HEADING /NOLIST, but only prints the summary line.", |
| " ", |
| "/PAGE", |
| " If listing, pause after each screenful.", |
| " ", |
| "/NOPAGE", |
| " Don't pause after each screenful.", |
| " ", |
| "/ASK", |
| " Interactively ask permission to delete each file. Reply Yes or OK to", |
| " delete it, No not to delete it, Quit to cancel the DELETE command, and", |
| " Go to go ahead and delete all the rest of the files without asking.", |
| " ", |
| "/NOASK", |
| " Delete files without asking permission.", |
| " ", |
| "/SIMULATE", |
| " Preview files selected for deletion without actually deleting them.", |
| " Implies /LIST.", |
| " ", |
| "Use SET OPTIONS DELETE to make selected switches effective for every DELETE", |
| "command \ |
| unless you override them; use SHOW OPTIONS to see selections currently", |
| #ifdef LOCUS |
| "in effect. Also see HELP SET LOCUS, HELP PURGE, HELP WILDCARD.", |
| #else |
| "in effect. Also see HELP PURGE, HELP WILDCARD.", |
| #endif /* LOCUS */ |
| ""}; |
| |
| #ifndef NOHTTP |
| static char *hmxxhttp[] = { |
| "Syntax:", |
| #ifdef CK_SSL |
| "HTTP [ <switches> ] OPEN [{ /SSL, /TLS }] <hostname> <service/port>", |
| #else |
| "HTTP [ <switches> ] OPEN <hostname> <service/port>", |
| #endif /*CK_SSL */ |
| " Instructs Kermit to open a new connection for HTTP communication with", |
| " the specified host on the specified port. The default port is \"http\".", |
| #ifdef CK_SSL |
| " If /SSL or /TLS are specified or if the service is \"https\" or port 443,", |
| " a secure connection will be established using the current authentication", |
| " settings. See HELP SET AUTH for details.", |
| #endif /* CK_SSL */ |
| " If <switches> are specified, they are applied to all subsequent HTTP", |
| " actions (GET, PUT, ...) until an HTTP CLOSE command is executed.", |
| " A URL can be included in place of the hostname and service or port.", |
| " ", |
| "HTTP CLOSE", |
| " Instructs Kermit to close any open HTTP connection and clear any saved", |
| " switch values.", |
| " ", |
| "HTTP [ <switches> ] CONNECT <host>[:<port>]", |
| " Instructs the server to establish a connection with the specified host", |
| " and to redirect all data transmitted between Kermit and the host for the", |
| " life of the connection.", |
| " ", |
| "HTTP [ <switches> ] GET <remote-filename> [ <local-filename> ]", |
| " Retrieves the named file on the currently open HTTP connection. The", |
| " default local filename is the same as the remote filename, but with any", |
| " path stripped. If you want the file to be displayed on the screen instead", |
| " of stored on disk, include the /TOSCREEN switch and omit the local", |
| " filename. If you give a URL instead of a remote filename, this commands", |
| " opens the connection, GETs the file, and closes the connection; the same", |
| " is true for the remaining HTTP commands for which you can specify a", |
| " remote filename, directory name, or path.", |
| " ", |
| "HTTP [ <switches> ] HEAD <remote-filename> [ <local-filename> ]", |
| " Like GET except without actually getting the file; instead it gets only", |
| " the headers, storing them into the given file (if a local filename is", |
| " specified), one line per header item as shown in the /ARRAY: switch", |
| " description.", |
| " ", |
| "HTTP [ <switches> ] INDEX <remote-directory> [ <local-filename> ]", |
| " Retrieves the file listing for the given server directory.", |
| " NOTE: This command is not supported by most Web servers, and even when", |
| " the server understand it, there is no stardard response format.", |
| " ", |
| "HTTP [ <switches> ] POST [ /MIME-TYPE:<type> ] <local-file> <remote-path>", |
| " [ <dest-file> ]", |
| " Used to send a response as if it were sent from a form. The data to be", |
| " posted must be read from a file.", |
| " ", |
| "HTTP [ <switches> ] PUT [ /MIME-TYPE:<type> ] <local-file> <remote-file>", |
| " [ <dest-file> ]", |
| " Uploads the given local file to server file. If the remote filename is", |
| " omitted, the local name is used, but with any path stripped.", |
| " ", |
| "HTTP [ <switches> ] DELETE <remote-filename>", |
| " Instructs the server to delete the specified filename.", |
| " ", |
| "where <switches> are:", |
| "/AGENT:<user-agent>", |
| " Identifies the client to the server; \"C-Kermit\" or \"Kermit-95\"", |
| " by default.", |
| " ", |
| "/HEADER:<header-line>", |
| " Used for specifying any optional headers. A list of headers is provided", |
| " using braces for grouping:", |
| " ", |
| " /HEADER:{{<tag>:<value>}{<tag>:<value>}...}", |
| " ", |
| " For a listing of valid <tag> value and <value> formats see RFC 1945:", |
| " \"Hypertext Transfer Protocol -- HTTP/1.0\". A maximum of eight headers", |
| " may be specified.", |
| " ", |
| "/TOSCREEN", |
| " Display server responses on the screen.", |
| " ", |
| "/USER:<name>", |
| " In case a page requires a username for access.", |
| " ", |
| "/PASSWORD:<password>", |
| " In case a page requires a password for access.", |
| " ", |
| "/ARRAY:<arrayname>", |
| " Tells Kermit to store the response headers in the given array, one line", |
| " per element. The array need not be declared in advance. Example:", |
| " ", |
| " http /array:c get kermit/index.html", |
| " show array c", |
| " Dimension = 9", |
| " 1. Date: Fri, 26 Nov 1999 23:12:22 GMT", |
| " 2. Server: Apache/1.3.4 (Unix)", |
| " 3. Last-Modified: Mon, 06 Sep 1999 22:35:58 GMT", |
| " 4. ETag: \"bc049-f72-37d441ce\"", |
| " 5. Accept-Ranges: bytes", |
| " 6. Content-Length: 3954", |
| " 7. Connection: close ", |
| " 8. Content-Type: text/html", |
| " ", |
| "As you can see, the header lines are like MIME e-mail header lines:", |
| "identifier, colon, value. The /ARRAY switch is the only method available", |
| "to a script to process the server responses for a POST or PUT command.", |
| " ", |
| "" |
| }; |
| #endif /* NOHTTP */ |
| |
| #ifdef CK_KERBEROS |
| static char *hmxxauth[] = { |
| "Syntax:", |
| "AUTHENTICATE { KERBEROS4, KERBEROS5 [ switches ] } <action> [ switches ]", |
| " Obtains or destroys Kerberos tickets and lists information about them.", |
| " Actions are INITIALIZE, DESTROY, and LIST-CREDENTIALS. KERBEROS4 can be", |
| " abbreviated K4 or KRB4; KERBEROS5 can be abbreviated K5 or KRB5. Use ? to", |
| " see which keywords, switches, or other quantities are valid at each point", |
| " in the command.", |
| " ", |
| " The actions are INITIALIZE, DESTROY, and LIST-CREDENTIALS:", |
| " ", |
| " AUTH { K4, K5 } { INITIALIZE [switches], DESTROY,", |
| " LIST-CREDENTIALS [switches] }", |
| " ", |
| " The INITIALIZE action is the most complex, and its format is different", |
| " for Kerberos 4 and Kerberos 5. The format for Kerberos 4 is:", |
| " ", |
| " AUTH K4 INITIALIZE [ /INSTANCE:<name> /LIFETIME:<minutes> -", |
| " /PASSWORD:<password> /PREAUTH /REALM:<name> <principal> ]", |
| " ", |
| " All switches are optional. Kerberos 4 INITIALIZE switches are:", |
| " ", |
| " /INSTANCE:<name>", |
| " Allows an Instance (such as a hostname) to be specified.", |
| " ", |
| " /LIFETIME:<number>", |
| " Specifies the requested lifetime in minutes for the ticket. If no", |
| " lifetime is specified, 600 minutes is used. If the lifetime is greater", |
| " than the maximum supported by the ticket granting service, the resulting", |
| " lifetime is shortened accordingly.", |
| " ", |
| " /NOT-PREAUTH", |
| " Instructs Kermit to send a ticket getting ticket (TGT) request to the", |
| " KDC without any preauthentication data.", |
| " ", |
| " /PASSWORD:<string>", |
| " Allows a password to be included on the command line or in a script", |
| " file. If no /PASSWORD switch is included, you are prompted on a separate" |
| , |
| " line. The password switch is provided on a use-at-your-own-risk basis", |
| " for use in automated scripts. WARNING: Passwords should not be stored in" |
| , |
| " files.", |
| " ", |
| " /PREAUTH", |
| " Instructs Kermit to send a preauthenticated Ticket-Getting Ticket (TGT)", |
| " request to the KDC instead of a plaintext request. The default when", |
| " supported by the Kerberos libraries.", |
| " ", |
| " /REALM:<name>", |
| " Allows a realm to be specified (overriding the default realm).", |
| " ", |
| " <principal>", |
| " Your identity in the given or default Kerberos realm, of the form:", |
| " userid[.instance[.instance]]@[realm] ", |
| " Can be omitted if it is the same as your username or SET LOGIN USERID", |
| " value on the client system.", |
| " ", |
| " The format for Kerberos 5 is as follows:", |
| " ", |
| " AUTH K5 [ /CACHE:<filename> ] { INITIALIZE [ switches ], DESTROY,", |
| " LIST-CREDENTIALS ...}", |
| " ", |
| "The INITIALIZE command for Kerberos 5 can include a number of switches;", |
| "all are optional:", |
| " ", |
| "AUTH K5 [ /CACHE:<filename> ] INITITIALIZE [ /ADDRESSES:<addr-list>", |
| " /FORWARDABLE /KERBEROS4 /LIFETIME:<minutes> /PASSWORD:<password>", |
| " /POSTDATE:<date-time> /PROXIABLE /REALM:<name> /RENEW /RENEWABLE:<minutes>", |
| " /SERVICE:<name> /VALIDATE <principal> ]", |
| " ", |
| " All Kerberos 5 INITIALIZE switches are optional:", |
| " ", |
| " /ADDRESSES:{list of ip-addresses}", |
| " Specifies a list of IP addresses that should be placed in the Ticket", |
| " Getting Ticket in addition to the local machine addresses.", |
| " ", |
| " /FORWARDABLE", |
| " Requests forwardable tickets.", |
| " ", |
| " /INSTANCE:<name>", |
| " Allows an Instance (such as a hostname) to be specified.", |
| " ", |
| " /KERBEROS4", |
| " Instructs Kermit to get Kerberos 4 tickets in addition to Kerberos 5", |
| " tickets. If Kerberos 5 tickets are not supported by the server, a", |
| " mild warning is printed and Kerberos 4 tickets are requested.", |
| " ", |
| " /LIFETIME:<number>", |
| " Specifies the requested lifetime in minutes for the ticket. If no", |
| " lifetime is specified, 600 minutes is used. If the lifetime is greater", |
| " than the maximum supported by the ticket granting service, the resulting", |
| " lifetime is shortened.", |
| " ", |
| " /NO-KERBEROS4", |
| " Instructs Kermit to not attempt to retrieve Kerberos 4 credentials.", |
| " ", |
| " /NOT-FORWARDABLE", |
| " Requests non-forwardable tickets.", |
| " ", |
| " /NOT-PROXIABLE", |
| " Requests non-proxiable tickets.", |
| " ", |
| " /PASSWORD:<string>", |
| " Allows a password to be included on the command line or in a script", |
| " file. If no /PASSWORD switch is included, you are prompted on a separate" |
| , |
| " line. The password switch is provided on a use-at-your-own-risk basis", |
| " for use in automated scripts. WARNING: Passwords should not be stored in" |
| , |
| " files.", |
| " ", |
| " /POSTDATE:<date-time>", |
| " Requests a postdated ticket, valid starting at <date-time>. Postdated", |
| " tickets are issued with the invalid flag set, and need to be fed back to", |
| " the KDC before use with the /VALIDATE switch. Type HELP DATE for info", |
| " on date-time formats.", |
| " ", |
| " /PROXIABLE", |
| " Requests proxiable tickets.", |
| " ", |
| " /REALM:<string>", |
| " Allows an alternative realm to be specified.", |
| " ", |
| " /RENEW", |
| " Requests renewal of a renewable Ticket-Granting Ticket. Note that ", |
| " an expired ticket cannot be renewed even if it is within its renewable ", |
| " lifetime.", |
| " ", |
| " /RENEWABLE:<number>", |
| " Requests renewable tickets, with a total lifetime of <number> minutes.", |
| " ", |
| " /SERVICE:<string>", |
| " Allows a service other than the ticket granting service to be specified.", |
| " ", |
| " /VALIDATE", |
| " Requests that the Ticket Granting Ticket in the cache (with the invalid", |
| " flag set) be passed to the KDC for validation. If the ticket is within", |
| " its requested time range, the cache is replaced with the validated", |
| " ticket.", |
| " ", |
| " <principal>", |
| " Your identity in the given or default Kerberos realm, of the form:", |
| " userid[/instance][@realm] ", |
| " Can be omitted if it is the same as your username or SET LOGIN USERID", |
| " value on the client system.", |
| " ", |
| " Note: Kerberos 5 always attempts to retrieve a Ticket-Getting Ticket (TGT)", |
| " using the preauthenticated TGT request.", |
| " ", |
| " AUTHORIZE K5 LIST-CREDENTIALS [ /ADDRESSES /FLAGS /ENCRYPTION ]", |
| " ", |
| " Shows start time, expiration time, service or principal name, plus", |
| " the following additional information depending the switches:", |
| " ", |
| " /ADDRESSES displays the hostnames and/or IP addresses embedded within", |
| " the tickets.", |
| " ", |
| " /FLAGS provides the following information (if applicable) for each ticket:", |
| " F - Ticket is Forwardable", |
| " f - Ticket was Forwarded", |
| " P - Ticket is Proxiable", |
| " p - Ticket is a Proxy", |
| " D - Ticket may be Postdated", |
| " d - Ticket has been Postdated", |
| " i - Ticket is Invalid", |
| " R - Ticket is Renewable", |
| " I - Ticket is the Initial Ticket", |
| " H - Ticket has been authenticated by Hardware", |
| " A - Ticket has been Pre-authenticated", |
| " ", |
| " /ENCRYPTION displays the encryption used by each ticket (if applicable):", |
| " DES-CBC-CRC", |
| " DES-CBC-MD4", |
| " DES-CBC-MD5", |
| " DES3-CBC-SHA", |
| "" |
| }; |
| #endif /* CK_KERBEROS */ |
| |
| #ifndef NOCSETS |
| static char *hmxxassoc[] = { |
| "ASSOCIATE FILE-CHARACTER-SET <file-character-set> <transfer-character-set>", |
| " Tells C-Kermit that whenever the given file-character set is selected, and", |
| " SEND CHARACTER-SET (q.v.) is AUTOMATIC, the given transfer character-set", |
| " is selected automatically.", |
| " ", |
| "ASSOCIATE XFER-CHARACTER-SET <xfer-character-set> <file-character-set>", |
| " Tells C-Kermit that whenever the given transfer-character set is selected,", |
| " either by command or by an announcer attached to an incoming text file,", |
| " and SEND CHARACTER-SET is AUTOMATIC, the specified file character-set is", |
| " to be selected automatically. Synonym: ASSOCIATE TRANSFER-CHARACTER-SET.", |
| " ", |
| "Use SHOW ASSOCIATIONS to list the current character-set associations, and", |
| "SHOW CHARACTER-SETS to list the current settings.", |
| "" |
| }; |
| #endif /* NOCSETS */ |
| |
| static char *hmxxpat[] = { |
| "A \"pattern\" is notation used in a search string when searching through", |
| "text. C-Kermit uses three kinds of patterns: floating patterns, anchored", |
| "patterns, and wildcards. Wildcards are anchored patterns that are used to", |
| "match file names; type HELP WILDCARD to learn about them.", |
| " ", |
| "In a pattern, certain characters are special:", |
| " ", |
| "* Matches any sequence of zero or more characters. For example, \"k*t\"", |
| " matches all strings that start with \"k\" and end with \"t\" including", |
| " \"kt\", \"kit\", \"knight\", or \"kermit\".", |
| " ", |
| #ifdef VMS |
| "% Matches any single character. For example, \"k%%%%t\" matches all strings", |
| #else |
| "? Matches any single character. For example, \"k????t\" matches all strings", |
| #endif /* VMS */ |
| " that are exactly 6 characters long and start with \"k\" and end with", |
| #ifdef VMS |
| " with \"t\".", |
| #else |
| " with \"t\". When typing commands at the prompt, you must precede any", |
| " question mark to be used for matching by a backslash (\\) to override the", |
| " normal function of question mark, which is providing menus and file lists.", |
| #endif /* VMS */ |
| " ", |
| #ifdef OS2ORUNIX |
| #ifdef CKREGEX |
| "[abc]", |
| " Square brackets enclosing a list of characters matches any character in", |
| " the list. Example: h[aou]t matches hat, hot, and hut.", |
| " ", |
| "[a-z]", |
| " Square brackets enclosing a range of characters matches any character in", |
| " the range; a hyphen (-) separates the low and high elements of the range.", |
| " For example, [a-z] matches any character from a to z.", |
| " ", |
| "[acdm-z]", |
| " Lists and ranges may be combined. This example matches a, c, d, or any", |
| " letter from m through z.", |
| " ", |
| "{string1,string2,...}", |
| " Braces enclose a list of strings to be matched. For example:", |
| " ker{mit,nel,beros} matches kermit, kernel, and kerberos. The strings", |
| " may themselves contain *, ?, [abc], [a-z], or other lists of strings.", |
| #endif /* CKREGEX */ |
| #endif /* OS2ORUNIX */ |
| #ifndef NOSPL |
| " ", |
| "To force a special pattern character to be taken literally, precede it with", |
| "a backslash, e.g. [a\\-z] matches a, hyphen, and z rather than a through z.", |
| " ", |
| "A floating pattern can also include the following special characters:", |
| " ", |
| "^ (First character of pattern) Anchors the pattern at the beginning.", |
| "$ (Last character of pattern) Anchors the pattern at the end.", |
| " ", |
| "If a floating pattern does not start with \"^\", the pattern can match", |
| "anywhere in the string instead of only at the beginning; in other words, a", |
| "leading \"*\" is assumed. Similarly, if the pattern doesn't end with \"$\",", |
| "a trailing \"*\" is assumed.", |
| " ", |
| "The following commands and functions use floating patterns:", |
| " GREP [ <switches> ] <pattern> <filespec>", |
| " TYPE /MATCH:<pattern> <file>", |
| " \\farraylook(<pattern>,<arrayname>)", |
| " \\fsearch(<pattern>,<string>[,<offset>])", |
| " \\frsearch(<pattern>,<string>[,<offset>])", |
| " The /EXCEPT: clause in SEND, GET, DELETE, etc.", |
| " ", |
| "Example:", |
| " \\fsearch(abc,xxabcxxx) succeeds because xxabcxx contains abc.", |
| " \\fsearch(^abc,xxabcxx) fails because xxabcxx does not start with abc.", |
| " ", |
| "All other commands and functions that use patterns use anchored patterns,", |
| "meaning that ^ and $ are not treated specially, and * is not assumed at the", |
| "beginning or end of the pattern. This is true mainly of filename patterns", |
| "(wildcards), since you would not want a command like \"delete x\" to delete", |
| "all files whose names contained \"x\"!", |
| " ", |
| "You can use anchored patterns not only in filenames, but also in SWITCH", |
| "case labels, in the INPUT and MINPUT commands, and in file binary- and", |
| "text-patterns for filenames. The IF MATCH pattern is also anchored.", |
| #endif /* NOSPL */ |
| "" }; |
| |
| static char *hmxxwild[] = { |
| |
| "A \"wildcard\" is a notation used in a filename to match multiple files.", |
| "For example, in \"send *.txt\" the asterisk is a wildcard. Kermit commands", |
| "that accept filenames also accepts wildcards, except commands that are", |
| "allowed to operate on only one file, such as TRANSMIT.", |
| "This version of Kermit accepts the following wildcards:", |
| " ", |
| "* Matches any sequence of zero or more characters. For example, \"ck*.c\"", |
| " matches all files whose names start with \"ck\" and end with \".c\"", |
| " including \"ck.c\".", |
| " ", |
| #ifdef VMS |
| "% Matches any single character. For example, \"ck%.c\" matches all files", |
| #else |
| "? Matches any single character. For example, \"ck?.c\" matches all files", |
| #endif /* VMS */ |
| " whose names are exactly 5 characters long and start with \"ck\" and end", |
| #ifdef VMS |
| " with \".c\".", |
| #else |
| " with \".c\". When typing commands at the prompt, you must precede any", |
| " question mark to be used for matching by a backslash (\\) to override the", |
| " normal function of question mark, which is providing menus and file lists.", |
| #endif /* VMS */ |
| " ", |
| #ifdef OS2ORUNIX |
| #ifdef CKREGEX |
| "[abc]", |
| " Square brackets enclosing a list of characters matches any character in", |
| " the list. Example: ckuusr.[ch] matches ckuusr.c and ckuusr.h.", |
| " ", |
| "[a-z]", |
| " Square brackets enclosing a range of characters matches any character in", |
| " the range; a hyphen (-) separates the low and high elements of the range.", |
| " For example, [a-z] matches any character from a to z.", |
| " ", |
| "[acdm-z]", |
| " Lists and ranges may be combined. This example matches a, c, d, or any", |
| " letter from m through z.", |
| " ", |
| "{string1,string2,...}", |
| " Braces enclose a list of strings to be matched. For example:", |
| " ck{ufio,vcon,cmai}.c matches ckufio.c, ckvcon.c, or ckcmai.c. The strings", |
| " may themselves contain *, ?, [abc], [a-z], or other lists of strings.", |
| #endif /* CKREGEX */ |
| #endif /* OS2ORUNIX */ |
| " ", |
| "To force a special pattern character to be taken literally, precede it with", |
| "a backslash, e.g. [a\\-z] matches a, hyphen, and z rather than a through z.", |
| " ", |
| #ifndef NOSPL |
| "Similar notation can be used in general-purpose string matching. Type HELP", |
| "PATTERNS for details. Also see HELP SET MATCH.", |
| #endif /* NOSPL */ |
| "" }; |
| |
| #ifndef NOXFER |
| static char *hmxxfast[] = { |
| "FAST, CAUTIOUS, and ROBUST are predefined macros that set several", |
| "file-transfer parameters at once to achieve the desired file-transfer goal.", |
| "FAST chooses a large packet size, a large window size, and a fair amount of", |
| "control-character unprefixing at the risk of possible failure on some", |
| "connections. FAST is the default tuning in C-Kermit 7.0 and later. In case", |
| "FAST file transfers fail for you on a particular connection, try CAUTIOUS.", |
| "If that fails too, try ROBUST. You can also change the definitions of each", |
| "macro with the DEFINE command. To see the current definitions, type", |
| "\"show macro fast\", \"show macro cautious\", or \"show macro robust\".", |
| "" |
| }; |
| #endif /* NOXFER */ |
| |
| #ifdef VMS |
| static char * hmxxpurge[] = { |
| "Syntax: PURGE [ switches ] [ filespec ]", |
| " Runs the DCL PURGE command. Switches and filespec are not parsed or", |
| " verified by Kermit, but passed directly to DCL.", |
| "" |
| }; |
| #else |
| #ifdef CKPURGE |
| static char * hmxxpurge[] = { |
| "Syntax: PURGE [ switches ] [ filespec ]", |
| " Deletes backup files; that is, files whose names end in \".~n~\", where", |
| " n is a number. PURGE by itself deletes all backup files in the current", |
| " directory. Switches:", |
| |
| " ", |
| "/AFTER:date-time", |
| #ifdef VMS |
| " Specifies that only those files created after the given date-time are", |
| #else |
| " Specifies that only those files modified after the given date-time are", |
| #endif /* VMS */ |
| " to be purged. HELP DATE for info about date-time formats.", |
| " ", |
| "/BEFORE:date-time", |
| #ifdef VMS |
| " Specifies that only those files modified before the given date-time", |
| #else |
| " Specifies that only those files modified before the given date-time", |
| #endif /* VMS */ |
| " are to be purged.", |
| " ", |
| "/NOT-AFTER:date-time", |
| #ifdef VMS |
| " Specifies that only those files modified at or before the given date-time", |
| #else |
| " Specifies that only those files modified at or before the given date-time", |
| #endif /* VMS */ |
| " are to be purged.", |
| " ", |
| "/NOT-BEFORE:date-time", |
| #ifdef VMS |
| " Specifies that only those files modified at or after the given date-time", |
| #else |
| " Specifies that only those files modified at or after the given date-time", |
| #endif /* VMS */ |
| " are to be purged.", |
| " ", |
| "/LARGER-THAN:number", |
| " Specifies that only those files longer than the given number of bytes are", |
| " to be purged.", |
| " ", |
| "/SMALLER-THAN:number", |
| " Specifies that only those files smaller than the given number of bytes are", |
| " to be purged.", |
| " ", |
| "/EXCEPT:pattern", |
| " Specifies that any files whose names match the pattern, which can be a", |
| " regular filename or may contain wildcards, are not to be purged. To", |
| " specify multiple patterns (up to 8), use outer braces around the group", |
| " and inner braces around each pattern:", |
| " ", |
| " /EXCEPT:{{pattern1}{pattern2}...}", |
| " ", |
| #ifdef UNIXOROSK |
| "/DOTFILES", |
| " Include (purge) files whose names begin with \".\".", |
| " ", |
| "/NODOTFILES", |
| " Skip (don't purge) files whose names begin with \".\".", |
| " ", |
| #endif /* UNIXOROSK */ |
| #ifdef RECURSIVE |
| "/RECURSIVE", |
| " Descends through the current or specified directory tree.", |
| " ", |
| #endif /* RECURSIVE */ |
| "/KEEP:n", |
| " Retain the 'n' most recent (highest-numbered) backup files for each file.", |
| " By default, none are kept. If /KEEP is given without a number, 1 is used.", |
| " ", |
| "/LIST", |
| " Display each file as it is processed and say whether it is purged or kept.", |
| " Synonyms: /LOG, /VERBOSE.", |
| " ", |
| "/NOLIST", |
| " The PURGE command should operate silently (default).", |
| " Synonyms: /NOLOG, /QUIET.", |
| " ", |
| "/HEADING", |
| " Print heading and summary information.", |
| " ", |
| "/NOHEADING", |
| " Don't print heading and summary information.", |
| " ", |
| "/PAGE", |
| " When /LIST is in effect, pause at the end of each screenful, even if", |
| " COMMAND MORE-PROMPTING is OFF.", |
| " ", |
| "/NOPAGE", |
| " Don't pause, even if COMMAND MORE-PROMPTING is ON.", |
| " ", |
| "/ASK", |
| " Interactively ask permission to delete each backup file.", |
| " ", |
| "/NOASK", |
| " Purge backup files without asking permission.", |
| " ", |
| "/SIMULATE", |
| " Inhibits the actual deletion of files; use to preview which files would", |
| " actually be deleted. Implies /LIST.", |
| " ", |
| "Use SET OPTIONS PURGE [ switches ] to change defaults; use SHOW OPTIONS to", |
| "display customized defaults. Also see HELP DELETE, HELP WILDCARD.", |
| "" |
| }; |
| #endif /* CKPURGE */ |
| #endif /* VMS */ |
| |
| static char *hmxxclo[] = { |
| "Syntax: CLOSE [ item ]", |
| " Close the indicated item. The default item is CONNECTION, which is the", |
| " current SET LINE or SET HOST connection. The other items are:", |
| " ", |
| #ifdef CKLOGDIAL |
| " CX-LOG (connection log, opened with LOG CX)", |
| #endif /* CKLOGDIAL */ |
| #ifndef NOLOCAL |
| " SESSION-LOG (opened with LOG SESSION)", |
| #endif /* NOLOCAL */ |
| #ifdef TLOG |
| " TRANSACTION-LOG (opened with LOG TRANSACTIONS)", |
| #endif /* TLOG */ |
| " PACKET-LOG (opened with LOG PACKETS)", |
| #ifdef DEBUG |
| " DEBUG-LOG (opened with LOG DEBUG)", |
| #endif /* DEBUG */ |
| #ifndef NOSPL |
| " READ-FILE (opened with OPEN READ)", |
| " WRITE-FILE (opened with OPEN WRITE or OPEN APPEND)", |
| #endif /* NOSPL */ |
| " ", |
| "Type HELP LOG and HELP OPEN for further info.", |
| "" |
| }; |
| |
| #ifdef CKLEARN |
| static char * hmxxlearn[] = { |
| "Syntax: LEARN [ /ON /OFF /CLOSE ] [ filename ]", |
| " Records a login script. If you give a filename, the file is opened for", |
| " subsequent recording. If you don't give any switches, /ON is assumed.", |
| " /ON enables recording to the current file (if any); /OFF disables", |
| " recording. /CLOSE closes the current file (if any). After LEARN /CLOSE", |
| " or exit from Kermit, your script is available for execution by the TAKE", |
| " command.", |
| "" |
| }; |
| #endif /* CKLEARN */ |
| |
| #ifdef CK_MINPUT |
| static char *hmxxminp[] = { |
| "Syntax: MINPUT n [ string1 [ string2 [ ... ] ] ]", |
| "Example: MINPUT 5 Login: {Username: } {NO CARRIER} BUSY RING", |
| " For use in script programs. Waits up to n seconds for any one of the", |
| " strings to arrive on the communication device. If no strings are given,", |
| " the command waits for any character at all to arrive. Strings are", |
| " separated by spaces; use { braces } for grouping. If any of the strings", |
| " is encountered within the timeout interval, the command succeeds and the", |
| " \\v(minput) variable is set to the number of the string that was matched:", |
| " 1, 2, 3, etc. If none of the strings arrives, the command times out,", |
| " fails, and \\v(minput) is set to 0. If the timeout interval is 0 the", |
| " MINPUT command does not wait; i.e. the given text must already be", |
| " available for reading for the MINPUT command to succeed. If the interval", |
| " is negative, the MINPUT command waits forever.", |
| " ", |
| "Also see: INPUT, REINPUT, SET INPUT.", |
| "" }; |
| #endif /* CK_MINPUT */ |
| |
| #ifndef NOLOCAL |
| static char *hmxxcon[] = { |
| "Syntax: CONNECT (or C, or CQ) [ switches ]", |
| " Connect to a remote computer via the serial communications device given in", |
| #ifdef OS2 |
| " the most recent SET PORT command, or to the network host named in the most", |
| #else |
| " the most recent SET LINE command, or to the network host named in the most", |
| #endif /* OS2 */ |
| " recent SET HOST command. Type the escape character followed by C to get", |
| " back to the C-Kermit prompt, or followed by ? for a list of CONNECT-mode", |
| #ifdef OS2 |
| " escape commands. You can also assign the \\Kexit verb to the key or", |
| " key-combination of your choice; by default it is assigned to Alt-x.", |
| #else |
| " escape commands.", |
| " ", |
| "Include the /QUIETLY switch to suppress the informational message that", |
| "tells you how to escape back, etc. CQ is a synonym for CONNECT /QUIETLY.", |
| #endif /* OS2 */ |
| " ", |
| "Other switches include:", |
| #ifdef CK_TRIGGER |
| " ", |
| "/TRIGGER:string", |
| " One or more strings to look for that will cause automatic return to", |
| " command mode. To specify one string, just put it right after the", |
| " colon, e.g. \"/TRIGGER:Goodbye\". If the string contains any spaces, you", |
| " must enclose it in braces, e.g. \"/TRIGGER:{READY TO SEND...}\". To", |
| " specify more than one trigger, use the following format:", |
| " ", |
| " /TRIGGER:{{string1}{string2}...{stringn}}", |
| " ", |
| " Upon return from CONNECT mode, the variable \\v(trigger) is set to the", |
| " trigger string, if any, that was actually encountered. This value, like", |
| " all other CONNECT switches applies only to the CONNECT command with which", |
| " it is given, and overrides (temporarily) any global SET TERMINAL TRIGGER", |
| " string that might be in effect.", |
| #endif /* CK_TRIGGER */ |
| #ifdef OS2 |
| " ", |
| "/IDLE-LIMIT:number", |
| " The number of seconds of idle time, after which Kermit returns", |
| " automatically to command mode; default 0 (no limit).", |
| " ", |
| "/IDLE-INTERVAL:number", |
| " The number of seconds of idle time, after which Kermit automatically", |
| " transmits the idle string.", |
| " ", |
| "/IDLE-STRING:string", |
| " The string to transmit whenever the idle interval has passed.", |
| " ", |
| "/TIME-LIMIT:number", |
| " The maximum number of seconds for which the CONNECT session may last.", |
| " The default is 0 (no limit). If a nonzero number is given, Kermit returns", |
| " automatically to command mode after this many seconds.", |
| #endif /* OS2 */ |
| "" }; |
| #endif /* NOLOCAL */ |
| |
| static char *hmxxmget[] = { |
| "Syntax: MGET [ switches... ] remote-filespec [ remote-filespec ... ]", |
| " ", |
| "Just like GET (q.v.) except allows a list of remote file specifications,", |
| "separated by spaces.", |
| "" |
| }; |
| |
| static char *hmxxget[] = { |
| "Syntax: GET [ switches... ] remote-filespec [ as-name ]", |
| " Tells the other Kermit, which must be in (or support autoswitching into)", |
| " server mode, to send the named file or files. If the remote-filespec or", |
| " the as-name contain spaces, they must be enclosed in braces. If as-name", |
| " is the name of an existing local directory, incoming files are placed in", |
| " that directory; if it is the name of directory that does not exist, Kermit", |
| " tries to create it. Optional switches include:", |
| " ", |
| "/AS-NAME:text", |
| " Specifies \"text\" as the name to store the incoming file under, or", |
| " directory to store it in. You can also specify the as-name as the second", |
| " filename on the GET command line.", |
| " ", |
| "/BINARY", |
| " Performs this transfer in binary mode without affecting the global", |
| " transfer mode.", |
| " ", |
| "/COMMAND", |
| " Receives the file into the standard input of a command, rather than saving", |
| " it on disk. The /AS-NAME or the second \"filename\" on the GET command", |
| " line is interpreted as the name of a command.", |
| " ", |
| "/DELETE", |
| " Asks the other Kermit to delete the file (or each file in the group)", |
| " after it has been transferred successfully.", |
| " ", |
| "/EXCEPT:pattern", |
| " Specifies that any files whose names match the pattern, which can be a", |
| " regular filename, or may contain \"*\" and/or \"?\" metacharacters,", |
| " are to be refused. To specify multiple patterns (up to 8), use outer", |
| " braces around the group, and inner braces around each pattern:", |
| " ", |
| " /EXCEPT:{{pattern1}{pattern2}...}", |
| " ", |
| "/FILENAMES:{CONVERTED,LITERAL}", |
| " Overrides the global SET FILE NAMES setting for this transfer only.", |
| " ", |
| "/FILTER:command", |
| " Causes the incoming file to passed through the given command (standard", |
| " input/output filter) before being written to disk.", |
| " ", |
| #ifdef VMS |
| "/IMAGE", |
| " Transfer in image mode.", |
| " ", |
| #endif /* VMS */ |
| #ifdef CK_LABELED |
| "/LABELED", |
| " VMS and OS/2 only: Specifies labeled transfer mode.", |
| " ", |
| #endif /* CK_LABELED */ |
| |
| "/MOVE-TO:directory-name", |
| " Specifies that each file that arrives should be moved to the specified", |
| " directory after, and only if, it has been received successfully.", |
| " ", |
| "/PATHNAMES:{OFF,ABSOLUTE,RELATIVE,AUTO}", |
| " Overrides the global SET RECEIVE PATHNAMES setting for this transfer.", |
| " ", |
| "/PIPES:{ON,OFF}", |
| " Overrides the TRANSFER PIPES setting for this command only. ON allows", |
| " reception of files with names like \"!tar xf -\" to be automatically", |
| " directed to a pipeline.", |
| " ", |
| "/QUIET", |
| " When sending in local mode, this suppresses the file-transfer display.", |
| " ", |
| "/RECOVER", |
| " Used to recover from a previously interrupted transfer; GET /RECOVER", |
| " is equivalent REGET. Works only in binary mode.", |
| " ", |
| "/RECURSIVE", |
| " Tells the server to descend through the directory tree when locating", |
| " the files to be sent.", |
| " ", |
| "/RENAME-TO:string", |
| " Specifies that each file that arrives should be renamed as specified", |
| " after, and only if, it has been received successfully. The string should", |
| " normally contain variables like \\v(filename) or \\v(filenum).", |
| " ", |
| "/TEXT", |
| " Performs this transfer in text mode without affecting the global", |
| " transfer mode.", |
| " ", |
| "/TRANSPARENT", |
| " Inhibits character-set translation of incoming text files for the duration", |
| " of the GET command without affecting subsequent commands.", |
| " ", |
| "Also see HELP MGET, HELP SEND, HELP RECEIVE, HELP SERVER, HELP REMOTE.", |
| ""}; |
| |
| static char *hmxxlg[] = { |
| "Syntax: LOG (or L) log-type [ filename [ { NEW, APPEND } ] ]", |
| " ", |
| "Record information in a log file:", |
| " ", |
| #ifdef CKLOGDIAL |
| "CX", |
| " Connections made with SET LINE, SET PORT, SET HOST, DIAL, TELNET, etc.", |
| " The default filename is CX.LOG in your home directory and APPEND is the", |
| " default mode for opening.", |
| " ", |
| #endif /* CKLOGDIAL */ |
| #ifdef DEBUG |
| "DEBUG", |
| " Debugging information, to help track down bugs in the C-Kermit program.", |
| " The default log name is debug.log in current directory.", |
| " ", |
| #endif /* DEBUG */ |
| "PACKETS", |
| " Kermit packets, to help with protocol problems. The default filename is", |
| " packet.log in current directory.", |
| " ", |
| #ifndef NOLOCAL |
| "SESSION", |
| " Records your CONNECT session (default: session.log in current directory).", |
| " ", |
| #endif /* NOLOCAL */ |
| #ifdef TLOG |
| "TRANSACTIONS", |
| " Names and statistics about files transferred (default: transact.log in", |
| " current directory; see HELP SET TRANSACTION-LOG for transaction-log format", |
| " options.)", |
| " ", |
| #endif /* TLOG */ |
| "If you include the APPEND keyword after the filename, the existing log file,", |
| "if any, is appended to; otherwise a new file is created (except APPEND is", |
| "the default for the connection log). Use CLOSE <keyword> to stop logging.", |
| #ifdef OS2ORUNIX |
| " ", |
| "Note: The filename can also be a pipe, e.g.:", |
| " ", |
| " log transactions |lpr", |
| " log debug {| grep \"^TELNET\" > debug.log}", |
| " ", |
| "Braces are required if the pipeline or filename contains spaces.", |
| #endif /* OS2ORUNIX */ |
| "" }; |
| |
| #ifndef NOSCRIPT |
| static char *hmxxlogi[] = { "\ |
| Syntax: SCRIPT text", |
| " A limited and cryptic \"login assistant\", carried over from old C-Kermit", |
| " releases for comptability, but not recommended for use. Instead, please", |
| " use the full script programming language described in chapters 17-19 of", |
| " \"Using C-Kermit\".", |
| " ", |
| " Login to a remote system using the text provided. The login script", |
| " is intended to operate similarly to UNIX uucp \"L.sys\" entries.", |
| " A login script is a sequence of the form:", |
| " ", |
| " expect send [expect send] . . .", |
| " ", |
| " where 'expect' is a prompt or message to be issued by the remote site, and", |
| " 'send' is the names, numbers, etc, to return. The send may also be the", |
| " keyword EOT to send Control-D, or BREAK (or \\\\b) to send a break signal.", |
| " Letters in send may be prefixed by ~ to send special characters:", |
| " ", |
| " ~b backspace, ~s space, ~q '?', ~n linefeed, ~r return, ~c don\'t", |
| " append a return, and ~o[o[o]] for octal of a character. As with some", |
| " UUCP systems, sent strings are followed by ~r unless they end with ~c.", |
| " ", |
| " Only the last 7 characters in each expect are matched. A null expect,", |
| " e.g. ~0 or two adjacent dashes, causes a short delay. If you expect", |
| " that a sequence might not arrive, as with uucp, conditional sequences", |
| " may be expressed in the form:", |
| " ", |
| " -send-expect[-send-expect[...]]", |
| " ", |
| " where dashed sequences are followed as long as previous expects fail.", |
| "" }; |
| #endif /* NOSCRIPT */ |
| |
| #ifndef NOFRILLS |
| static char * hmxxtyp[] = { |
| "Syntax: TYPE [ switches... ] file", |
| " Displays a file on the screen. Pauses automatically at end of each", |
| " screenful if COMMAND MORE-PROMPTING is ON. Optional switches:", |
| " ", |
| " /PAGE", |
| " Pause at the end of each screenful even if COMMAND MORE-PROMPTING OFF.", |
| " Synonym: /MORE", |
| " /NOPAGE", |
| " Don't pause at the end of each screen even if COMMAND MORE-PROMPTING ON." |
| , |
| " /HEAD:n", |
| " Only type the first 'n' lines of the file.", |
| " /TAIL:n", |
| " Only type the last 'n' lines of the file.", |
| " /MATCH:pattern", |
| " Only type lines that match the given pattern. HELP WILDCARDS for info", |
| " info about patterns. /HEAD and /TAIL apply after /MATCH.", |
| " /PREFIX:string", |
| " Print the given string at the beginning of each line.", |
| " /NUMBER", |
| " Add line numbers (conflicts with /PREFIX)", |
| " /WIDTH:number", |
| " Truncate each line at the given column number before printing.", |
| #ifdef KUI |
| " Or when combined with /GUI specifies the width of the dialog box.", |
| " /HEIGHT:number", |
| " When combined with /GUI specifies the height of the dialog box.", |
| " /GUI:string", |
| " Specifies the title to use for the dialog box.", |
| #endif /* KUI */ |
| " /COUNT", |
| " Count lines (and matches) and print the count(s) but not the lines.", |
| #ifdef UNICODE |
| " /CHARACTER-SET:name", |
| " Translates from the named character set.", |
| #ifndef OS2 |
| " /TRANSLATE-TO:name", |
| " Translates to the named character set (default = current file charset).", |
| #endif /* OS2 */ |
| " /TRANSPARENT", |
| " Inhibits character-set translation.", |
| #endif /* UNICODE */ |
| " /OUTPUT:name", |
| " Sends results to the given file. If this switch is omitted, the", |
| " results appear on your screen. This switch overrides any express or", |
| " implied /PAGE switch.", |
| " ", |
| "You can use SET OPTIONS TYPE to set the defaults for /PAGE or /NOPAGE and", |
| "/WIDTH. Use SHOW OPTIONS to see current TYPE options.", |
| "" |
| }; |
| |
| static char * hmxxcle[] = { |
| "Syntax: CLEAR [ item-name ]", |
| " ", |
| "Clears the named item. If no item is named, DEVICE-AND-INPUT is assumed.", |
| " ", |
| " ALARM Clears any pending alarm (see SET ALARM).", |
| #ifdef CK_APC |
| " APC-STATUS Clears Application Program Command status.", |
| #endif /* CK_APC */ |
| #ifdef PATTERNS |
| " BINARY-PATTERNS Clears the file binary-patterns list.", |
| #endif /* PATTERNS */ |
| #ifdef OS2 |
| " COMMAND-SCREEN Clears the current command screen.", |
| #endif /* OS2 */ |
| " DEVICE Clears the current port or network input buffer.", |
| " DEVICE-AND-INPUT Clears both the device and the INPUT buffer.", |
| " DIAL-STATUS Clears the \\v(dialstatus) variable.", |
| " \ |
| INPUT Clears the INPUT-command buffer and the \\v(input) variable.", |
| " KEYBOARD-BUFFER Clears the command terminal keyboard input buffer.", |
| #ifdef OS2 |
| " \ |
| SCROLLBACK empties the scrollback buffer including the current screen.", |
| #endif /* OS2 */ |
| " SEND-LIST Clears the current SEND list (see ADD).", |
| #ifdef OS2 |
| " \ |
| TERMINAL-SCREEN Clears the current screen a places it into the scrollback.", |
| " buffer.", |
| #endif /* OS2 */ |
| #ifdef PATTERNS |
| " TEXT-PATTERNS Clears the file text-patterns list.", |
| #endif /* PATTERNS */ |
| ""}; |
| #endif /* NOFRILLS */ |
| |
| static char * hmxxdate[] = { |
| "Syntax: DATE [ date-time [ timezone ] ] [ delta-time ]", |
| " Prints a date-time in standard format: yyyymmdd_hh:mm:ss.", |
| " Various date-time formats are accepted:", |
| " ", |
| " . The date, if given, must precede the time.", |
| " . The year must be four digits or else a 2-digit format dd mmm yy,", |
| " in which case if (yy < 50) yyyy = yy + 2000; else yyyy = yy + 1900.", |
| " . If the year comes first, the second field is the month.", |
| " . The day, month, and year may be separated by spaces, /, -, or underscore." |
| ," . The date and time may be separated by spaces or underscore.", |
| " . The month may be numeric (1 = January) or spelled out or abbreviated in", |
| " English.", |
| " . The time may be in 24-hour format or 12-hour format.", |
| " . If the hour is 12 or less, AM is assumed unless AM or PM is included.", |
| " . If the date is omitted but a time is given, the current date is supplied." |
| , |
| " . If the time is given but date omitted, 00:00:00 is supplied.", |
| " . If both the date and time are omitted, the current date and time are", |
| " supplied.", |
| " ", |
| " The following shortcuts can also be used in place of dates:", |
| " ", |
| " TODAY", |
| " Today's date, optionally followed by a time; 00:00:00 if no time given.", |
| " ", |
| " YESTERDAY", |
| " Yesterday's date, optionally followed by a time (default 00:00:00).", |
| " ", |
| " TOMORROW", |
| " Tomorrows's date, optionally followed by a time (default 00:00:00).", |
| " ", |
| " Timezone specifications are similar to those used in e-mail and HTTP", |
| " headers, either a USA timezone name, e.g. EST or a signed four-digit", |
| " timezone offset, {+,-}hhmm, e.g., -0500; it is used to convert date-time," |
| , |
| " a local time in that timezone, to GMT which is then converted to the", |
| " local time at the host. If no timezone is given, the date-time is local." |
| , |
| " ", |
| " Delta times are given as {+,-}[number date-units][hh[:mm[:ss]]]", |
| " A date in the future/past relative to the date-time; date-units may be", |
| " DAYS, WEEKS, MONTHS, YEARS: +3days, -7weeks, +3:00, +1month 8:00.", |
| " ", |
| "All the formats shown above are acceptable as arguments to date-time switches" |
| , |
| "such as /AFTER: or /BEFORE:, and to functions such as \\fcvtdate(),", |
| "\\fdiffdate(), and \\futcdate(), that take date-time strings as arguments.", |
| "" |
| }; |
| |
| |
| #ifndef NOXFER |
| static char * hmxxsen[] = { |
| "Syntax: SEND (or S) [ switches...] [ filespec [ as-name ] ]", |
| " Sends the file or files specified by filespec. If the filespec is omitted", |
| " the SEND-LIST is used (HELP ADD for more info). The filespec may contain", |
| " wildcard characters. An 'as-name' may be given to specify the name(s)", |
| " the files(s) are sent under; if the as-name is omitted, each file is", |
| " sent under its own name. Also see HELP MSEND, HELP WILDCARD.", |
| " Optional switches include:", |
| " ", |
| #ifndef NOSPL |
| "/ARRAY:<arrayname>", |
| " Specifies that the data to be sent comes from the given array, such as", |
| " \\&a[]. A range may be specified, e.g. SEND /ARRAY:&a[100:199]. Leave", |
| " the brackets empty or omit them altogether to send the whole 1-based array." |
| , |
| " Include /TEXT to have Kermit supply a line terminator at the end of each", |
| " array element (and translate character sets if character-set translations", |
| " are set up), or /BINARY to treat the array as one long string of characters" |
| , |
| " to be sent as-is. If an as-name is not specified, the array is sent with", |
| " the name _ARRAY_X_, where \"X\" is replaced by actual array letter.", |
| " ", |
| #endif /* NOSPL */ |
| |
| "/AS-NAME:<text>", |
| " Specifies <text> as the name to send the file under instead of its real", |
| " name. This is equivalent to giving an as-name after the filespec.", |
| " ", |
| "/BINARY", |
| " Performs this transfer in binary mode without affecting the global", |
| " transfer mode.", |
| " ", |
| "/TEXT", |
| " Performs this transfer in text mode without affecting the global", |
| " transfer mode.", |
| " ", |
| "/TRANSPARENT", |
| " Inhibits character-set translation for text files for the duration of", |
| " the SEND command without affecting subsequent commands.", |
| " ", |
| "/NOBACKUPFILES", |
| " Skip (don't send) Kermit or EMACS backup files (files with names that", |
| " end with .~n~, where n is a number).", |
| " ", |
| #ifdef UNIXOROSK |
| "/DOTFILES", |
| " Include (send) files whose names begin with \".\".", |
| " ", |
| "/NODOTFILES", |
| " Don't send files whose names begin with \".\".", |
| " ", |
| "/FOLLOWLINKS", |
| " Send files that are pointed to by symbolic links.", |
| " ", |
| "/NOFOLLOWLINKS", |
| " Skip over symbolic links (default).", |
| " ", |
| #endif /* UNIXOROSK */ |
| |
| #ifdef VMS |
| "/IMAGE", |
| " Performs this transfer in image mode without affecting the global", |
| " transfer mode.", |
| " ", |
| #endif /* VMS */ |
| #ifdef CK_LABELED |
| "/LABELED", |
| " Performs this transfer in labeled mode without affecting the global", |
| " transfer mode.", |
| " ", |
| #endif /* CK_LABELED */ |
| "/COMMAND", |
| " Sends the output from a command, rather than the contents of a file.", |
| " The first \"filename\" on the SEND command line is interpreted as the name", |
| " of a command; the second (if any) is the as-name.", |
| " ", |
| "/FILENAMES:{CONVERTED,LITERAL}", |
| " Overrides the global SET FILE NAMES setting for this transfer only.", |
| " ", |
| "/PATHNAMES:{OFF,ABSOLUTE,RELATIVE}", |
| " Overrides the global SET SEND PATHNAMES setting for this transfer.", |
| " ", |
| "/FILTER:command", |
| " Specifies a command \ |
| (standard input/output filter) to pass the file through", |
| " before sending it.", |
| " ", |
| "/DELETE", |
| " Deletes the file (or each file in the group) after it has been sent", |
| " successfully (applies only to real files).", |
| " ", |
| "/QUIET", |
| " When sending in local mode, this suppresses the file-transfer display.", |
| " ", |
| "/RECOVER", |
| " Used to recover from a previously interrupted transfer; SEND /RECOVER", |
| " is equivalent RESEND (use in binary mode only).", |
| " ", |
| "/RECURSIVE", |
| " Tells C-Kermit to look not only in the given or current directory for", |
| " files that match the filespec, but also in all its subdirectories, and", |
| " all their subdirectories, etc.", |
| " ", |
| "/RENAME-TO:name", |
| " Tells C-Kermit to rename each source file that is sent successfully to", |
| " the given name (usually you should include \\v(filename) in the new name,", |
| " which is replaced by the original filename.", |
| " ", |
| "/MOVE-TO:directory", |
| " Tells C-Kermit to move each source file that is sent successfully to", |
| " the given directory.", |
| " ", |
| "/STARTING:number", |
| " Starts sending the file from the given byte position.", |
| " SEND /STARTING:n filename is equivalent to PSEND filename n.", |
| " ", |
| "/SUBJECT:text", |
| " Specifies the subject of an email message, to be used with /MAIL. If the", |
| " text contains spaces, it must be enclosed in braces.", |
| " ", |
| "/MAIL:address", |
| " Sends the file as e-mail to the given address; use with /SUBJECT:.", |
| " ", |
| "/PRINT:options", |
| " Sends the file to be printed, with optional options for the printer.", |
| " ", |
| #ifdef CK_XYZ |
| "/PROTOCOL:name", |
| " Uses the given protocol to send the file (Kermit, Zmodem, etc) for this", |
| " transfer without changing global protocol.", |
| " ", |
| #endif /* CK_XYZ */ |
| "/AFTER:date-time", |
| #ifdef VMS |
| " Specifies that only those files created after the given date-time are", |
| #else |
| " Specifies that only those files modified after the given date-time are", |
| #endif /* VMS */ |
| " to be sent. HELP DATE for info about date-time formats.", |
| " ", |
| "/BEFORE:date-time", |
| #ifdef VMS |
| " Specifies that only those files modified before the given date-time", |
| #else |
| " Specifies that only those files modified before the given date-time", |
| #endif /* VMS */ |
| " are to be sent.", |
| " ", |
| "/NOT-AFTER:date-time", |
| #ifdef VMS |
| " Specifies that only those files modified at or before the given date-time", |
| #else |
| " Specifies that only those files modified at or before the given date-time", |
| #endif /* VMS */ |
| " are to be sent.", |
| " ", |
| "/NOT-BEFORE:date-time", |
| #ifdef VMS |
| " Specifies that only those files modified at or after the given date-time", |
| #else |
| " Specifies that only those files modified at or after the given date-time", |
| #endif /* VMS */ |
| " are to be sent.", |
| " ", |
| "/LARGER-THAN:number", |
| " Specifies that only those files longer than the given number of bytes are", |
| " to be sent.", |
| " ", |
| "/SMALLER-THAN:number", |
| " Specifies that only those files smaller than the given number of bytes are", |
| " to be sent.", |
| " ", |
| "/EXCEPT:pattern", |
| " Specifies that any files whose names match the pattern, which can be a", |
| " regular filename, or may contain \"*\" and/or \"?\" metacharacters,", |
| " are not to be sent. To specify multiple patterns (up to 8), use outer", |
| " braces around the group, and inner braces around each pattern:", |
| " ", |
| " /EXCEPT:{{pattern1}{pattern2}...}", |
| " ", |
| "/TYPE:{ALL,TEXT,BINARY}", |
| " Send only files of the given type (see SET FILE SCAN).", |
| " ", |
| "/LISTFILE:filename", |
| " Specifies the name of a file that contains the list of names of files", |
| " that are to be sent. The filenames should be listed one name per line", |
| " in this file (but a name can contain wildcards).", |
| " ", |
| "Also see HELP RECEIVE, HELP GET, HELP SERVER, HELP REMOTE.", |
| ""}; |
| |
| static char *hmxxrc[] = { |
| "Syntax: RECEIVE (or R) [ switches... ] [ as-name ]", |
| " Wait for a file to arrive from the other Kermit, which must be given a", |
| " SEND command. If the optional as-name is given, the incoming file or", |
| " files are stored under that name, otherwise it will be stored under", |
| #ifndef CK_TMPDIR |
| " the name it arrives with.", |
| #else |
| #ifdef OS2 |
| " the name it arrives with. If the filespec denotes a disk and/or", |
| " directory, the incoming file or files will be stored there.", |
| #else |
| " the name it arrives with. If the filespec denotes a directory, the", |
| " incoming file or files will be placed in that directory.", |
| #endif /* OS2 */ |
| #endif /* CK_TMPDIR */ |
| " ", |
| "Optional switches include:", |
| " ", |
| "/AS-NAME:text", |
| " Specifies \"text\" as the name to store the incoming file under.", |
| " You can also specify the as-name as a filename on the command line.", |
| " ", |
| "/BINARY", |
| " Skips text-mode conversions unless the incoming file arrives with binary", |
| " attribute", |
| " ", |
| "/COMMAND", |
| " Receives the file into the standard input of a command, rather than saving", |
| " it on disk. The /AS-NAME or the \"filename\" on the RECEIVE command line", |
| " is interpreted as the name of a command.", |
| " ", |
| "/EXCEPT:pattern", |
| " Specifies that any files whose names match the pattern, which can be a", |
| " regular filename, or may contain \"*\" and/or \"?\" metacharacters,", |
| " are to be refused. To specify multiple patterns (up to 8), use outer", |
| " braces around the group, and inner braces around each pattern:", |
| " ", |
| " /EXCEPT:{{pattern1}{pattern2}...}", |
| " ", |
| "/FILENAMES:{CONVERTED,LITERAL}", |
| " Overrides the global SET FILE NAMES setting for this transfer only.", |
| " ", |
| "/FILTER:command", |
| " Causes the incoming file to passed through the given command (standard", |
| " input/output filter) before being written to disk.", |
| " ", |
| #ifdef VMS |
| "/IMAGE", |
| " Receives the file in image mode.", |
| " ", |
| #endif /* VMS */ |
| #ifdef CK_LABELED |
| "/LABELED", |
| " Specifies labeled transfer mode.", |
| " ", |
| #endif /* CK_LABELED */ |
| |
| "/MOVE-TO:directory-name", |
| " Specifies that each file that arrives should be moved to the specified", |
| " directory after, and only if, it has been received successfully.", |
| " ", |
| "/PATHNAMES:{OFF,ABSOLUTE,RELATIVE,AUTO}", |
| " Overrides the global SET RECEIVE PATHNAMES setting for this transfer.", |
| " ", |
| "/PIPES:{ON,OFF}", |
| " Overrides the TRANSFER PIPES setting for this command only. ON allows", |
| " reception of files with names like \"!tar xf -\" to be automatically", |
| " directed to a pipeline.", |
| " ", |
| "/PROTOCOL:name", |
| " Use the given protocol to receive the incoming file(s).", |
| " ", |
| "/QUIET", |
| " When sending in local mode, this suppresses the file-transfer display.", |
| " ", |
| "/RECURSIVE", |
| " Equivalent to /PATHNAMES:RELATIVE.", |
| " ", |
| "/RENAME-TO:string", |
| " Specifies that each file that arrives should be renamed as specified", |
| " after, and only if, it has been received successfully. The string should", |
| " normally contain variables like \\v(filename) or \\v(filenum).", |
| " ", |
| "/TEXT", |
| " Forces text-mode conversions unless the incoming file has the binary", |
| " attribute", |
| " ", |
| "/TRANSPARENT", |
| " Inhibits character-set translation of incoming text files for the duration", |
| " of the RECEIVE command without affecting subsequent commands.", |
| " ", |
| "Also see HELP SEND, HELP GET, HELP SERVER, HELP REMOTE.", |
| "" }; |
| |
| #ifndef NORESEND |
| static char *hmxxrsen = "\ |
| Syntax: RESEND filespec [name]\n\n\ |
| Resend the file or files, whose previous transfer was interrupted.\n\ |
| Picks up from where previous transfer left off, IF the receiver was told\n\ |
| to SET FILE INCOMPLETE KEEP. Only works for binary-mode transfers.\n\ |
| Requires the other Kermit to have RESEND capability."; |
| |
| static char *hmxxrget = "\ |
| Syntax: REGET filespec\n\n\ |
| Ask a server to RESEND a file to C-Kermit."; |
| |
| static char *hmxxpsen = "\ |
| Syntax: PSEND filespec position [name]\n\n\ |
| Just like SEND, except sends the file starting at the given byte position."; |
| #endif /* NORESEND */ |
| |
| #ifndef NOMSEND |
| static char *hmxxmse[] = { |
| "Syntax: MSEND [ switches... ] filespec [ filespec [ ... ] ]", |
| " Sends the files specified by the filespecs. One or more filespecs may be", |
| " listed, separated by spaces. Any or all filespecs may contain wildcards", |
| " and they may be in different directories. Alternative names cannot be", |
| " given. Switches include /BINARY /DELETE /MAIL /PROTOCOL /QUIET /RECOVER", |
| " /TEXT /TYPE; see HELP SEND for descriptions.", |
| "" |
| }; |
| #endif /* NOMSEND */ |
| |
| static char *hmxxadd[] = { |
| #ifndef NOMSEND |
| "ADD SEND-LIST filespec [ <mode> [ <as-name> ] ]", |
| " Adds the specified file or files to the current SEND list. Use SHOW", |
| " SEND-LIST and CLEAR SEND-LIST to display and clear the list; use SEND", |
| " by itself to send the files from it.", |
| " ", |
| #endif /* NOMSEND */ |
| #ifdef PATTERNS |
| "ADD BINARY-PATTERNS [ <pattern> [ <pattern> ... ] ]", |
| " Adds the pattern(s), if any, to the SET FILE BINARY-PATTERNS list.", |
| " ", |
| "ADD TEXT-PATTERNS [ <pattern> [ <pattern> ... ] ]", |
| " Adds the pattern(s), if any, to the SET FILE TEXT-PATTERNS list.", |
| " Use SHOW PATTERNS to see the lists. See HELP SET FILE for further info.", |
| #endif /* PATTERNS */ |
| ""}; |
| |
| static char *hmxxremv[] = { |
| #ifdef PATTERNS |
| "REMOVE BINARY-PATTERNS [ <pattern> [ <pattern> ... ] ]", |
| " Removes the pattern(s), if any, from the SET FILE BINARY-PATTERNS list", |
| " ", |
| "REMOVE TEXT-PATTERNS [ <pattern> [ <pattern> ... ] ]", |
| " Removes the given patterns from the SET FILE TEXT-PATTERNS list.", |
| " Use SHOW PATTERNS to see the lists. See HELP SET FILE for further info.", |
| #endif /* PATTERNS */ |
| ""}; |
| #endif /* NOXFER */ |
| |
| #ifndef NOSERVER |
| static char *hmxxser = "Syntax: SERVER\n\ |
| Enter server mode on the current connection. All further commands\n\ |
| are taken in packet form from the other Kermit program. Use FINISH,\n\ |
| BYE, or REMOTE EXIT to get C-Kermit out of server mode."; |
| #endif /* NOSERVER */ |
| |
| static char *hmhset[] = { |
| " The SET command establishes communication, file, scripting, or other", |
| " parameters. The SHOW command can be used to display the values of", |
| " SET parameters. Help is available for each individual parameter;", |
| " type HELP SET ? to see what's available.", |
| "" }; |
| |
| #ifndef NOSETKEY |
| static char *hmhskey[] = { |
| "Syntax: SET KEY k text", |
| "Or: SET KEY CLEAR", |
| " Configure the key whose \"scan code\" is k to send the given text when", |
| " pressed during CONNECT mode. SET KEY CLEAR restores all the default", |
| " key mappings. If there is no text, the default key binding is restored", |
| #ifndef NOCSETS |
| " for the key k. SET KEY mappings take place before terminal character-set", |
| " translation.", |
| #else |
| " the key k.", |
| #endif /* NOCSETS */ |
| #ifdef OS2 |
| " ", |
| " The text may contain \"\\Kverbs\" to denote actions, to stand for DEC", |
| " keypad, function, or editing keys, etc. For a list of available keyboard", |
| " verbs, type SHOW KVERBS.", |
| #endif /* OS2 */ |
| " ", |
| " To find out the scan code and mapping for a particular key, use the", |
| " SHOW KEY command.", |
| ""}; |
| #endif /* NOSETKEY */ |
| |
| static char *hmxychkt[] = { "Syntax: SET BLOCK-CHECK type", |
| " ", |
| " Type of packet block check to be used for error detection, 1, 2, 3, or", |
| " BLANK-FREE-2. Type 1 is standard, and catches most errors. Types 2 and 3", |
| " specify more rigorous checking at the cost of higher overhead. The", |
| " BLANK-FREE-2 type is the same as Type 2, but is guaranteed to contain no", |
| " blanks.", |
| "" }; |
| |
| static char * hmxydeb[] = { |
| "Syntax: SET DEBUG { SESSION, ON, OFF, TIMESTAMP }", |
| " ", |
| "SET DEBUG ON", |
| #ifdef DEBUG |
| " Opens a debug log file named debug.log in the current directory.", |
| " Use LOG DEBUG if you want specify a different log file name or path.", |
| #else |
| " (Has no effect in this version of Kermit.)", |
| #endif /* DEBUG */ |
| " ", |
| "SET DEBUG OFF", |
| " Stops debug logging and session debugging.", |
| " ", |
| "SET DEBUG SESSION", |
| #ifndef NOLOCAL |
| " Displays control and 8-bit characters symbolically during CONNECT mode.", |
| " Equivalent to SET TERMINAL DEBUG ON.", |
| #else |
| " (Has no effect in this version of Kermit.)", |
| #endif /* NOLOCAL */ |
| " ", |
| "SET DEBUG TIMESTAMP { ON, OFF }", |
| " Enables/Disables timestamps on debug log entries.", |
| "" }; |
| |
| #ifdef CK_SPEED |
| static char *hmxyqctl[] = { |
| "Syntax: SET CONTROL-CHARACTER { PREFIXED, UNPREFIXED } { <code>..., ALL }", |
| " ", |
| " <code> is the numeric ASCII code for a control character 1-31,127-159,255." |
| , |
| " The word \"ALL\" means all characters in this range.", |
| " ", |
| " PREFIXED <code> means the given control character must be converted to a", |
| " printable character and prefixed, the default for all control characters.", |
| " ", |
| " UNPREFIXED <code> means you think it is safe to send the given control", |
| " character as-is, without a prefix. USE THIS OPTION AT YOUR OWN RISK!", |
| " ", |
| " SHOW CONTROL to see current settings. SET CONTROL PREFIXED ALL is", |
| " recommended for safety. You can include multiple <code> values in one", |
| " command, separated by spaces.", |
| "" }; |
| #endif /* CK_SPEED */ |
| |
| #ifndef NODIAL |
| static char *hxymodm[] = { |
| "Syntax: SET MODEM <parameter> <value> ...", |
| " ", |
| "Note: Many of the SET MODEM parameters are configured automatically when", |
| "you SET MODEM TYPE, according to the modem's capabilities. SHOW MODEM to", |
| "see them. Also see HELP DIAL and HELP SET DIAL.", |
| " ", |
| "SET MODEM TYPE <name>", |
| |
| " Tells Kermit which kind of modem you have, so it can issue the", |
| " appropriate modem-specific commands for configuration, dialing, and", |
| " hanging up. For a list of the modem types known to Kermit, type \"set", |
| " modem type ?\". The default modem type is GENERIC, which should work", |
| " with any AT command-set modem that is configured for error correction,", |
| " data compression, and hardware flow control. Use SET MODEM TYPE NONE", |
| " for direct serial, connections. Use SET MODEM TYPE USER-DEFINED to use", |
| " a type of modem that is not built in to Kermit, and then use SET MODEM", |
| " CAPABILITIES, SET MODEM, DIAL-COMMAND, and SET MODEM COMMAND to tell", |
| " Kermit how to configure and control it.", |
| |
| " ", |
| |
| "SET MODEM CAPABILITIES <list>", |
| " Use this command for changing Kermit's idea of your modem's capabilities,", |
| " for example, if your modem is supposed to have built-in error correction", |
| " but in fact does not. Also use this command to define the capabilities", |
| " of a USER-DEFINED modem. Capabilities are:", |
| " ", |
| " AT AT-commands", |
| " DC data-compression", |
| " EC error-correction", |
| " HWFC hardware-flow", |
| " ITU v25bis-commands", |
| " SWFC software-flow", |
| " KS kermit-spoof", |
| " SB speed-buffering", |
| " TB Telebit", |
| " ", |
| "SET MODEM CARRIER-WATCH { AUTO, ON, OFF }", |
| " Synonym for SET CARRIER-WATCH (q.v.)", |
| " ", |
| "SET MODEM COMPRESSION { ON, OFF }", |
| " Enables/disables the modem's data compression feature, if any.", |
| " ", |
| "SET MODEM DIAL-COMMAND <text>", |
| " The text replaces Kermit's built-in modem dialing command. It must", |
| " include '%s' (percent s) as a place-holder for the telephone numbers", |
| " given in your DIAL commands.", |
| " ", |
| "SET MODEM ERROR-CORRECTION { ON, OFF }", |
| " Enables/disables the modem's error-correction feature, if any.", |
| " ", |
| "SET MODEM ESCAPE-CHARACTER number", |
| " Numeric ASCII value of modem's escape character, e.g. 43 for '+'.", |
| " For Hayes-compatible modems, Kermit uses three copies, e.g. \"+++\".", |
| " ", |
| "SET MODEM FLOW-CONTROL {AUTO, NONE, RTS/CTS, XON/XOFF}", |
| " Selects the type of local flow control to be used by the modem.", |
| " ", |
| "SET MODEM HANGUP-METHOD { MODEM-COMMAND, RS232-SIGNAL, DTR }", |
| " How hangup operations should be done. MODEM-COMMAND means try to", |
| " escape back to the modem's command processor and give a modem-specific", |
| " hangup command. RS232-SIGNAL means turn off the DTR signal. DTR is a", |
| " synonym for RS232-SIGNAL.", |
| " ", |
| "SET MODEM KERMIT-SPOOF {ON, OFF}", |
| " If the selected modem type supports the Kermit protocol directly,", |
| " use this command to turn its Kermit protocol function on or off.", |
| " ", |
| "SET MODEM MAXIMUM-SPEED <number>", |
| " Specify the maximum interface speed for the modem.", |
| " ", |
| "SET MODEM NAME <text>", |
| " Descriptive name for a USER-DEFINED modem.", |
| " ", |
| "SET MODEM SPEAKER {ON, OFF}", |
| " Turns the modem's speaker on or off during dialing.", |
| " ", |
| "SET MODEM SPEED-MATCHING {ON, OFF}", |
| " ON means that C-Kermit changes its serial interface speed to agree with", |
| " the speed reported by the modem's CONNECT message, if any. OFF means", |
| " Kermit should not change its interface speed.", |
| " ", |
| "SET MODEM VOLUME {LOW, MEDIUM, HIGH}", |
| " Selects the desired modem speaker volume for when the speaker is ON.", |
| " ", |
| "SET MODEM COMMAND commands are used to override built-in modem commands for", |
| "each modem type, or to fill in commands for the USER-DEFINED modem type.", |
| "Omitting the optional [ text ] restores the built-in modem-specific command,", |
| "if any:", |
| " ", |
| "SET MODEM COMMAND AUTOANSWER {ON, OFF} [ text ]", |
| " Modem commands to turn autoanswer on and off.", |
| " ", |
| "SET MODEM COMMAND COMPRESSION {ON, OFF} [ text ]", |
| " Modem commands to turn data compression on and off.", |
| " ", |
| "SET MODEM COMMAND ERROR-CORRECTION {ON, OFF} [ text ]", |
| " Modem commands to turn error correction on and off.", |
| " ", |
| "SET MODEM COMMAND HANGUP [ text ]", |
| " Command that tells the modem to hang up the connection.", |
| " ", |
| "SET MODEM COMMAND IGNORE-DIALTONE [ text ]", |
| " Command that tells the modem not to wait for dialtone before dialing.", |
| " ", |
| "SET MODEM COMMAND INIT-STRING [ text ]", |
| " The 'text' is a replacement for C-Kermit's built-in initialization command", |
| " for the modem.", |
| " ", |
| "SET MODEM COMMAND PREDIAL-INIT [ text ]", |
| " A second INIT-STRING that is to be sent to the modem just prior to \ |
| dialing.", |
| " ", |
| "SET MODEM COMMAND HARDWARE-FLOW [ text ]", |
| " Modem command to enable hardware flow control (RTS/CTS) in the modem.", |
| " ", |
| "SET MODEM COMMAND SOFTWARE-FLOW [ text ]", |
| " Modem command to enable local software flow control (Xon/Xoff) in modem.", |
| " ", |
| "SET MODEM COMMAND SPEAKER { ON, OFF } [ text ]", |
| " Modem command to turn the modem's speaker on or off.", |
| " ", |
| "SET MODEM COMMAND NO-FLOW-CONTROL [ text ]", |
| " Modem command to disable local flow control in the modem.", |
| " ", |
| "SET MODEM COMMAND PULSE [ text ]", |
| " Modem command to select pulse dialing.", |
| " ", |
| "SET MODEM COMMAND TONE [ text ]", |
| " Modem command to select tone dialing.", |
| " ", |
| "SET MODEM COMMAND VOLUME { LOW, MEDIUM, HIGH } [ text ]", |
| " Modem command to set the modem's speaker volume.", |
| ""}; |
| |
| static char *hmxydial[] = { |
| "The SET DIAL command establishes or changes all parameters related to", |
| "dialing the telephone. Also see HELP DIAL and HELP SET MODEM. Use SHOW", |
| "DIAL to display all of the SET DIAL values.", |
| " ", |
| "SET DIAL COUNTRY-CODE <number>", |
| " Tells Kermit the telephonic country-code of the country you are dialing", |
| " from, so it can tell whether a portable-format phone number from your", |
| " dialing directory will result in a national or an international call.", |
| " Examples: 1 for USA, Canada, Puerto Rico, etc; 7 for Russia, 39 for Italy,", |
| " 351 for Portugal, 47 for Norway, 44 for the UK, 972 for Israel, 81 for", |
| " Japan, ...", |
| " ", |
| " If you have not already set your DIAL INTL-PREFIX and LD-PREFIX, then this", |
| " command sets default values for them: 011 and 1, respectively, for country", |
| " code 1; 00 and 0, respectively, for all other country codes. If these are", |
| " not your true international and long-distance dialing prefixes, then you", |
| " should follow this command by DIAL INTL-PREFIX and LD-PREFIX to let Kermit", |
| " know what they really are.", |
| " ", |
| "SET DIAL AREA-CODE [ <number> ]", |
| " Tells Kermit the area or city code that you are dialing from, so it can", |
| " tell whether a portable-format phone number from the dialing directory is", |
| " local or long distance. Be careful not to include your long-distance", |
| " dialing prefix as part of your area code; for example, the area code for", |
| " central London is 171, not 0171.", |
| " ", |
| "SET DIAL CONFIRMATION {ON, OFF}", |
| " Kermit does various transformations on a telephone number retrieved from", |
| " the dialing directory prior to dialing (use LOOKUP <name> to see them).", |
| " In case the result might be wrong, you can use SET DIAL CONFIRM ON to have", |
| " Kermit ask you if it is OK to dial the number, and if not, to let you type", |
| " in a replacement.", |
| " ", |
| "SET DIAL CONNECT { AUTO, ON, OFF }", |
| " Whether to CONNECT (enter terminal mode) automatically after successfully", |
| " dialing. ON means to do this; OFF means not to. AUTO (the default) means", |
| " do it if the DIAL command was given interactively, but don't do it if the", |
| " DIAL command was issued from a macro or command file. If you specify ON", |
| " or AUTO, you may follow this by one of the keywords VERBOSE or QUIET, to", |
| " indicate whether the verbose 4-line 'Connecting...' message is to be", |
| " displayed if DIAL succeeds and Kermit goes into CONNECT mode.", |
| " ", |
| "SET DIAL CONVERT-DIRECTORY {ASK, ON, OFF}", |
| " The format of Kermit's dialing directory changed in version 5A(192). This", |
| " command tells Kermit what to do when it encounters an old-style directory:", |
| " ASK you whether to convert it, or convert it automatically (ON), or leave", |
| " it alone (OFF). Old-style directories can still be used without", |
| " conversion, but the parity and speed fields are ignored.", |
| " ", |
| "SET DIAL DIRECTORY [ filename [ filename [ filename [ ... ] ] ] ]", |
| " The name(s) of your dialing directory file(s). If you do not supply any", |
| " filenames, the dialing directory feature is disabled and all numbers are", |
| " dialed literally as given in the DIAL command. If you supply more than", |
| " one directory, all of them are searched.", |
| " ", |
| "SET DIAL SORT {ON, OFF}", |
| " When multiple entries are obtained from your dialing directory, they are", |
| " sorted in \"cheapest-first\" order. If this does not produce the desired", |
| " effect, SET DIAL SORT OFF to disable sorting, and the numbers will be", |
| " dialed in the order in which they were found.", |
| " ", |
| "SET DIAL DISPLAY {ON, OFF}", |
| " Whether to display dialing progress on the screen; default is OFF.", |
| " ", |
| "SET DIAL HANGUP {ON, OFF}", |
| " Whether to hang up the phone prior to dialing; default is ON.", |
| " ", |
| "SET DIAL IGNORE-DIALTONE {ON, OFF}", |
| " Whether to ignore dialtone when dialing; default is OFF.", |
| " ", |
| #ifndef NOSPL |
| "SET DIAL MACRO [ name ]", |
| " Specify the name of a macro to execute on every phone number dialed, just", |
| " prior to dialing it, in order to perform any last-minute alterations.", |
| " ", |
| #endif /* NOSPL */ |
| "SET DIAL METHOD {AUTO, DEFAULT, TONE, PULSE}", |
| " Whether to use the modem's DEFAULT dialing method, or to force TONE or", |
| " PULSE dialing. AUTO (the default) means to choose tone or pulse dialing", |
| " based on the country code. (Also see SET DIAL TONE-COUNTRIES and SET DIAL", |
| " PULSE-COUNTRIES.)", |
| " ", |
| "SET DIAL PACING number", |
| " How many milliseconds to pause between sending each character to the modem", |
| " dialer. The default is -1, meaning to use the number from the built-in", |
| " modem database.", |
| " ", |
| "SET DIAL PULSE-COUNTRIES [ cc [ cc [ ... ] ] ]", |
| " Sets the list of countries in which pulse dialing is required. Each cc", |
| " is a country code.", |
| " ", |
| "SET DIAL TEST { ON, OFF }", |
| " OFF for normal dialing. Set to ON to test dialing procedures without", |
| " actually dialing.", |
| " ", |
| "SET DIAL TONE-COUNTRIES [ cc [ cc [ ... ] ] ]", |
| " Sets the list of countries in which tone dialing is available. Each cc", |
| " is a country code.", |
| " ", |
| "SET DIAL TIMEOUT number", |
| " How many seconds to wait for a dialed call to complete. Use this command", |
| " to override the DIAL command's automatic timeout calculation. A value", |
| " of 0 turns off this feature and returns to Kermit's automatic dial", |
| " timeout calculation.", |
| " ", |
| "SET DIAL RESTRICT { INTERNATIONAL, LOCAL, LONG-DISTANCE, NONE }", |
| " Prevents placing calls of the type indicated, or greater. For example", |
| " SET DIAL RESTRICT LONG prevents placing of long-distance and international", |
| " calls. If this command is not given, there are no restrictions. Useful", |
| " when dialing a list of numbers fetched from a dialing directory.", |
| " ", |
| "SET DIAL RETRIES <number>", |
| " How many times to redial each number if the dialing result is busy or no", |
| " no answer, until the call is succesfully answered. The default is 0", |
| " because automatic redialing is illegal in some countries.", |
| " ", |
| "SET DIAL INTERVAL <number>", |
| " How many seconds to pause between automatic redial attempts; default 10.", |
| " ", |
| "The following commands apply to all phone numbers, whether given literally", |
| "or found in the dialing directory:", |
| " ", |
| "SET DIAL PREFIX [ text ]", |
| " Establish a prefix to be applied to all phone numbers that are dialed,", |
| " for example to disable call waiting.", |
| " ", |
| "SET DIAL SUFFIX [ text ]", |
| " Establish a suffix to be added after all phone numbers that are dialed.", |
| " ", |
| "The following commands apply only to portable-format numbers obtained from", |
| "the dialing directory; i.e. numbers that start with a \"+\" sign and", |
| "country code, followed by area code in parentheses, followed by the phone", |
| "number.", |
| " ", |
| "SET DIAL LC-AREA-CODES [ <list> ]", |
| " Species a list of area codes to which dialing is local, i.e. does not", |
| " require the LD-PREFIX. Up to 32 area codes may be listed, separated by", |
| " spaces. Any area codes in this list will be included in the final dial", |
| " string so do not include your own area code if it should not be dialed.", |
| " ", |
| "SET DIAL LC-PREFIX [ <text> ]", |
| " Specifies a prefix to be applied to local calls made from portable dialing", |
| " directory entries. Normally no prefix is used for local calls.", |
| " ", |
| "SET DIAL LC-SUFFIX [ <text> ]", |
| " Specifies a suffix to be applied to local calls made from portable dialing", |
| " directory entries. Normally no suffix is used for local calls.", |
| " ", |
| "SET DIAL LD-PREFIX [ <text> ]", |
| " Your long-distance dialing prefix, to be used with portable dialing", |
| " directory entries that result in long-distance calls.", |
| " ", |
| "SET DIAL LD-SUFFIX [ <text> ]", |
| " Long-distance dialing suffix, if any, to be used with portable dialing", |
| " directory entries that result in long-distance calls. This would normally", |
| " be used for appending a calling-card number to the phone number.", |
| " ", |
| "SET DIAL FORCE-LONG-DISTANCE { ON, OFF }", |
| " Whether to force long-distance dialing for calls that normally would be", |
| " local. For use (e.g.) in France.", |
| " ", |
| "SET DIAL TOLL-FREE-AREA-CODE [ <number> [ <number> [ ... ] ] ]", |
| " Tells Kermit the toll-free area code(s) in your country.", |
| " ", |
| "SET DIAL TOLL-FREE-PREFIX [ <text> ]", |
| " You toll-free dialing prefix, in case it is different from your long-", |
| " distance dialing prefix.", |
| " ", |
| "SET DIAL INTL-PREFIX <text>", |
| " Your international dialing prefix, to be used with portable dialing", |
| " directory entries that result in international calls.", |
| " ", |
| "SET DIAL INTL-SUFFIX <text>", |
| " International dialing suffix, if any, to be used with portable dialing", |
| " directory entries that result in international calls.", |
| " ", |
| "SET DIAL PBX-OUTSIDE-PREFIX <text>", |
| " Use this to tell Kermit how to get an outside line when dialing from a", |
| " Private Branch Exchange (PBX).", |
| " ", |
| "SET DIAL PBX-EXCHANGE <text> [ <text> [ ... ] ]", |
| " If PBX-OUTSIDE-PREFIX is set, then you can use this command to tell Kermit", |
| " the leading digits of one or more local phone numbers that identify it as", |
| " being on your PBX, so it can make an internal call by deleting those digits" |
| , |
| " from the phone number.", |
| " ", |
| "SET DIAL PBX-INTERNAL-PREFIX <text>", |
| " If PBX-EXCHANGE is set, and Kermit determines from it that a call is", |
| " internal, then this prefix, if any, is added to the number prior to", |
| " \ |
| dialing. Use this if internal calls from your PBX require a special prefix.", |
| "" }; |
| #endif /* NODIAL */ |
| |
| static char *hmxyflo[] = { "Syntax: SET FLOW [ switch ] value", |
| " ", |
| #ifndef NOLOCAL |
| " Selects the type of flow control to use during file transfer, terminal", |
| " connection, and script execution.", |
| #else |
| " Selects the type of flow control to use during file transfer.", |
| #endif /* NOLOCAL */ |
| " ", |
| " Switches let you associate a particular kind of flow control with each", |
| " kind of connection: /REMOTE, /MODEM, /DIRECT-SERIAL, /TCPIP, etc; type", |
| " \"set flow ?\" for a list of available switches. Then whenever you make", |
| " a connection, the associated flow-control is chosen automatically.", |
| " The flow-control values are NONE, KEEP, XON/XOFF, and possibly RTS/CTS", |
| " and some others; again, type \"set flow ?\" for a list. KEEP tells Kermit", |
| " not to try to change the current flow-control method for the connection.", |
| " ", |
| " If you omit the switch and simply supply a value, this value becomes the", |
| " current flow control type, overriding any default value that might have", |
| " been chosen in your most recent SET LINE, SET PORT, or SET HOST, or other", |
| " connection-establishment command.", |
| " ", |
| " Type SHOW FLOW-CONTROL to see the current defaults for each connection type" |
| , |
| " as well as the current connection type and flow-control setting. SHOW", |
| " COMMUNICATIONS also shows the current flow-control setting.", |
| ""}; |
| |
| static char *hmxyf[] = { |
| "Syntax: SET FILE parameter value", |
| " ", |
| "Sets file-related parameters. Use SHOW FILE to view them. Also see SET", |
| "(and SHOW) TRANSFER and PROTOCOL.", |
| " ", |
| #ifdef VMS |
| "SET FILE TYPE { TEXT, BINARY, IMAGE, LABELED }", |
| #else |
| #ifdef STRATUS |
| "SET FILE TYPE { TEXT, BINARY, LABELED }", |
| #else |
| #ifdef MAC |
| "SET FILE TYPE { TEXT, BINARY, MACBINARY }", |
| #else |
| "SET FILE TYPE { TEXT, BINARY }", |
| #endif /* STRATUS */ |
| #endif /* MAC */ |
| #endif /* VMS */ |
| " How file contents are to be treated during file transfer in the absence", |
| " of any other indication. TYPE can be TEXT for conversion of record format", |
| " and character set, which is usually needed when transferring text files", |
| " between unlike platforms (such as UNIX and Windows), or BINARY for no", |
| " conversion if TRANSFER MODE is MANUAL, which is not the default. Use", |
| " BINARY with TRANSFER MODE MANUAL for executable programs or binary data or", |
| " whenever you wish to duplicate the original contents of the file, byte for" |
| , |
| " byte. In most modern Kermit programs, the file sender informs the receiver" |
| , |
| " of the file type automatically. However, when sending files from C-Kermit", |
| " to an ancient or non-Columbia Kermit implementation, you might need to set", |
| " the corresponding file type at the receiver as well.", |
| " ", |
| #ifdef VMS |
| " FILE TYPE settings of TEXT and BINARY have no effect when sending files,", |
| " since VMS C-Kermit determines each file's type automatically from its", |
| " record format: binary for fixed, text for others. For incoming files,", |
| " these settings are effective only in the absence of a file-type indication", |
| " from the sender.", |
| " ", |
| " You may include an optional record-format after the word BINARY. This may", |
| " be FIXED (the default) or UNDEFINED. UNDEFINED is used when you need to", |
| " receive binary files in binary mode and have them stored with UNDEFINED", |
| " record format, which is required by certain VMS applications.", |
| " ", |
| " Two additional VMS file types are also supported: IMAGE and LABELED.", |
| " IMAGE means raw block i/o, no interference from RMS, applies to file", |
| " transmission only, and overrides the normal automatica file type", |
| " determination. LABELED means to send or interpret RMS attributes", |
| " with the file.", |
| " ", |
| #else |
| " When TRANSFER MODE is AUTOMATIC (as it is by default), various automatic", |
| " methods (depending on the platform) are used to determine whether a file", |
| " is transferred in text or binary mode; these methods (which might include", |
| " content scan (see SET FILE SCAN below), filename pattern matching (SET FILE" |
| , |
| " PATTERNS), client/server \"kindred-spirit\" recognition, or source file", |
| " record format) supersede the FILE TYPE setting but can, themselves, be", |
| " superseded by including a /BINARY or /TEXT switch in the SEND, GET, or", |
| " RECEIVE command.", |
| " ", |
| " When TRANSFER MODE is MANUAL, the automatic methods are skipped for sending" |
| , |
| " files; the FILE TYPE setting is used instead, which can be superseded on", |
| " a per-command basis with a /TEXT or /BINARY switch.", |
| #endif /* VMS */ |
| " ", |
| |
| #ifndef NOXFER |
| |
| "SET FILE BYTESIZE { 7, 8 }", |
| " Normally 8. If 7, Kermit truncates the 8th bit of all file bytes.", |
| " ", |
| #ifndef NOCSETS |
| "SET FILE CHARACTER-SET name", |
| " Tells the encoding of the local file, ASCII by default.", |
| " The names ITALIAN, PORTUGUESE, NORWEGIAN, etc, refer to 7-bit ISO-646", |
| " national character sets. LATIN1 is the 8-bit ISO 8859-1 Latin Alphabet 1", |
| " for Western European languages.", |
| " NEXT is the 8-bit character set of the NeXT workstation.", |
| " The CPnnn sets are for PCs. MACINTOSH-LATIN is for the Macintosh.", |
| #ifndef NOLATIN2 |
| " LATIN2 is ISO 8859-2 for Eastern European languages that are written with", |
| " Roman letters. Mazovia is a PC code page used in Poland.", |
| #endif /* NOLATIN2 */ |
| #ifdef CYRILLIC |
| " KOI-CYRILLIC, CYRILLIC-ISO, and CP866 are 8-bit Cyrillic character sets.", |
| " SHORT-KOI is a 7-bit ASCII coding for Cyrillic. BULGARIA-PC is a PC code", |
| " page used in Bulgaria", |
| #endif /* CYRILLIC */ |
| #ifdef HEBREW |
| " HEBREW-ISO is ISO 8859-8 Latin/Hebrew. CP862 is the Hebrew PC code page.", |
| " HEBREW-7 is like ASCII with the lowercase letters replaced by Hebrew.", |
| #endif /* HEBREW */ |
| #ifdef GREEK |
| " GREEK-ISO is ISO 8859-7 Latin/Greek. CP869 is the Greek PC code page.", |
| " ELOT-927 is like ASCII with the lowercase letters replaced by Greek.", |
| #endif /* GREEK */ |
| #ifdef KANJI |
| " JAPANESE-EUC, JIS7-KANJI, DEC-KANJI, and SHIFT-JIS-KANJI are Japanese", |
| " Kanji character sets.", |
| #endif /* KANJI */ |
| #ifdef UNICODE |
| " UCS-2 is the 2-byte form of the Universal Character Set.", |
| " UTF-8 is the serialized form of the Universal Character Set.", |
| #endif /* UNICODE */ |
| " Type SET FILE CHAR ? for a complete list of file character sets.", |
| " ", |
| "SET FILE DEFAULT 7BIT-CHARACTER-SET", |
| " When automatically switching among different kinds of files while sending", |
| " this tells the character set to be used for 7-bit text files.", |
| " ", |
| "SET FILE DEFAULT 8BIT-CHARACTER-SET", |
| " This tells the character set to be used for 8-bit text files when", |
| " switching automatically among different kinds of files.", |
| " ", |
| #endif /* NOCSETS */ |
| |
| "SET FILE COLLISION option", |
| " Tells what to do when a file arrives that has the same name as", |
| " an existing file. The options are:", |
| " BACKUP (default) - Rename the old file to a new, unique name and store", |
| " the incoming file under the name it was sent with.", |
| " OVERWRITE - Overwrite (replace) the existing file.", |
| " APPEND - Append the incoming file to the end of the existing file.", |
| " DISCARD - Refuse and/or discard the incoming file.", |
| " RENAME - Give the incoming file a unique name.", |
| " UPDATE - Accept the incoming file only if newer than the existing file.", |
| " ", |
| |
| "SET FILE DESTINATION { DISK, PRINTER, SCREEN, NOWHERE }", |
| " DISK (default): Store incoming files on disk.", |
| " PRINTER: Send incoming files to SET PRINTER device.", |
| " SCREEN: Display incoming files on screen (local mode only).", |
| " NOWHERE: Do not put incoming files anywhere (use for calibration).", |
| " ", |
| "SET FILE DISPLAY option", |
| " Selects the format of the file transfer display for local-mode file", |
| " transfer. The choices are:", |
| " ", |
| " BRIEF A line per file, showing size, mode, status, and throughput.", |
| " SERIAL One dot is printed for every K bytes transferred.", |
| " CRT Numbers are continuously updated on a single screen line.", |
| " This format can be used on any video display terminal.", |
| #ifdef CK_CURSES |
| " FULLSCREEN A fully formatted 24x80 screen showing lots of information.", |
| " This requires a terminal or terminal emulator.", |
| #endif /* CK_CURSES */ |
| " NONE No file transfer display at all.", |
| " ", |
| |
| "SET FILE DOWNLOAD-DIRECTORY [ <directory-name> ]", |
| " The directory into which all received files should be placed. By default,", |
| " received files go into your current directory.", |
| " ", |
| #endif /* NOXFER */ |
| |
| #ifdef CK_CTRLZ |
| "SET FILE EOF { CTRL-Z, LENGTH }", |
| " End-Of-File detection method, normally LENGTH. Applies only to text-mode", |
| " transfers. When set to CTRL-Z, this makes the file sender treat the first", |
| " Ctrl-Z in the input file as the end of file (EOF), and it makes the file", |
| " receiver tack a Ctrl-Z onto the end of the output file if it does not", |
| " already end with Ctrl-Z.", |
| " ", |
| #endif /* CK_CTRLZ */ |
| |
| "SET FILE END-OF-LINE { CR, CRLF, LF }", |
| " Use this command to specify nonstandard line terminators for text files.", |
| " ", |
| |
| #ifndef NOXFER |
| "SET FILE INCOMPLETE { AUTO, KEEP, DISCARD }", |
| " What to do with an incompletely received file: KEEP, DISCARD, or AUTO.", |
| " AUTO (the default) means DISCARD if transfer is in text mode, KEEP if it", |
| " is in binary mode.", |
| " ", |
| #ifdef VMS |
| "SET FILE LABEL { ACL, BACKUP-DATE, NAME, OWNER, PATH } { ON, OFF }", |
| " Tells which items to include (ON) or exclude (OFF) in labeled file", |
| " transfers", |
| " ", |
| #else |
| #ifdef OS2 |
| "SET FILE LABEL { ARCHIVE, READ-ONLY, HIDDEN, SYSTEM, EXTENDED } { ON, OFF }", |
| " Tells which items to include (ON) or exclude (OFF) in labeled file", |
| " transfers.", |
| " ", |
| #endif /* OS2 */ |
| #endif /* VMS */ |
| |
| #ifdef UNIX |
| #ifdef DYNAMIC |
| "SET FILE LISTSIZE number", |
| " Changes the size of the internal wildcard expansion list. Use SHOW FILE", |
| " to see the current size. Use this command to increase the size if you get", |
| " a \"?Too many files\" error. Also see SET FILE STRINGSPACE.", |
| " ", |
| #endif /* DYNAMIC */ |
| #endif /* UNIX */ |
| |
| "SET FILE NAMES { CONVERTED, LITERAL }", |
| " File names are normally CONVERTED to \"common form\" during transmission", |
| " (e.g. lowercase to uppercase, extra periods changed to underscore, etc).", |
| " LITERAL means use filenames literally (useful between like systems). Also", |
| " see SET SEND PATHNAMES and SET RECEIVE PATHNAMES.", |
| " ", |
| |
| #ifdef UNIX |
| "SET FILE OUTPUT { { BUFFERED, UNBUFFERED } [ size ], BLOCKING, NONBLOCKING }", |
| " Lets you control the disk output buffer for incoming files. Buffered", |
| " blocking writes are normal. Nonblocking writes might be faster on some", |
| " systems but might also be risky, depending on the underlying file service.", |
| " Unbuffered writes might be useful in critical applications to ensure that", |
| " cached disk writes are not lost in a crash, but will probably also be", |
| " slower. The optional size parameter after BUFFERED or UNBUFFERED lets you", |
| " change the disk output buffer size; this might make a difference in", |
| " performance.", |
| " ", |
| #endif /* UNIX */ |
| |
| #ifdef PATTERNS |
| "SET FILE PATTERNS { ON, OFF, AUTO }", |
| " ON means to use filename pattern lists to determine whether to send a file", |
| " in text or binary mode. OFF means to send all files in the prevailing", |
| " mode. AUTO (the default) is like ON if the other Kermit accepts Attribute", |
| " packets and like OFF otherwise. FILE PATTERNS are used only if FILE SCAN", |
| " is OFF (see SET FILE SCAN).", |
| " ", |
| "SET FILE BINARY-PATTERNS [ <pattern> [ <pattern> ... ] ]", |
| " Zero or more filename patterns which, if matched, cause a file to be sent", |
| " in binary mode when FILE PATTERNS are ON. HELP WILDCARDS for a description" |
| , |
| " of pattern syntax. SHOW PATTERNS to see the current file pattern lists.", |
| " ", |
| "SET FILE TEXT-PATTERNS [ <pattern> [ <pattern> ... ] ]", |
| " Zero or more filename patterns which, if matched, cause a file to be sent", |
| " in text mode when FILE PATTERNS is ON; if a file does not match a text or", |
| " binary pattern, the prevailing SET FILE TYPE is used.", |
| " ", |
| #endif /* PATTERNS */ |
| |
| #ifdef VMS |
| "SET FILE RECORD-LENGTH number", |
| " Sets the record length for received files of type BINARY. Use this to", |
| " receive VMS BACKUP savesets or other fixed-format files that do not use", |
| " the default record length of 512.", |
| " ", |
| #endif /* VMS */ |
| |
| "SET FILE SCAN { ON [ size ], OFF }", |
| " If TRANSFER MODE is AUTOMATIC and FILE SCAN is ON (as it is by default)", |
| " Kermit peeks at the file's contents to see if it's text or binary. Use", |
| " SET FILE SCAN OFF to disable file peeking, while still keeping TRANSFER", |
| " MODE automatic to allow name patterns and other methods. The optional", |
| " size is the number of file bytes to scan, 49152 by default. -1 means to", |
| " scan the whole file. Also see SET FILE PATTERNS.", |
| " ", |
| |
| #ifdef UNIX |
| #ifdef DYNAMIC |
| "SET FILE STRINGSPACE number", |
| " Changes the size (in bytes) of the internal buffer that holds lists of", |
| " filenames such as wildcard expansion lists. Use SHOW FILE to see the", |
| " current size. Use this command to increase the size if you get a", |
| " \"?String space exhausted\" error. Also see SET FILE LISTSIZE.", |
| " ", |
| #endif /* DYNAMIC */ |
| #endif /* UNIX */ |
| |
| #ifdef UNICODE |
| "SET FILE UCS BOM { ON, OFF }", |
| " Whether to write a Byte Order Mark when creating a UCS-2 file.", |
| " ", |
| "SET FILE UCS BYTE-ORDER { BIG-ENDIAN, LITTLE-ENDIAN }", |
| " Byte order to use when creating UCS-2 files, and to use when reading UCS-2", |
| " files that do not start with a Byte Order Mark.", |
| " ", |
| #endif /* UNICODE */ |
| |
| "SET FILE WARNING { ON, OFF }", |
| " SET FILE WARNING is superseded by the newer command, SET FILE", |
| " COLLISION. SET FILE WARNING ON is equivalent to SET FILE COLLISION RENAME", |
| " and SET FILE WARNING OFF is equivalent to SET FILE COLLISION OVERWRITE.", |
| #endif /* NOXFER */ |
| "" }; |
| |
| static char *hmxyhsh[] = { |
| "Syntax: SET HANDSHAKE { NONE, XON, LF, BELL, ESC, CODE number }", |
| " Character to use for half duplex line turnaround handshake during file", |
| " transfer. C-Kermit waits for this character from the other computer", |
| " before sending its next packet. Default is NONE; you can give one of the", |
| " other names like BELL or ESC, or use SET HANDSHAKE CODE to specify the", |
| " numeric code value of the handshake character. Type SET HANDSH ? for a", |
| " complete list of possibilities.", |
| "" }; |
| |
| #ifndef NOSERVER |
| static char *hsetsrv[] = { |
| "SET SERVER CD-MESSAGE {ON,OFF}", |
| " Tells whether the server, after successfully executing a REMOTE CD", |
| " command, should send the contents of the new directory's READ.ME", |
| " (or similar) file to your screen.", |
| " ", |
| "SET SERVER CD-MESSAGE FILE name", |
| " Tells the name of the file to be displayed as a CD-MESSAGE, such as", |
| " READ.ME (SHOW SERVER tells the current CD-MESSAGE FILE name).", |
| " To specify more than one filename to look for, use {{name1}{name2}..}.", |
| " Synonym: SET CD MESSAGE FILE <list>.", |
| " ", |
| "SET SERVER DISPLAY {ON,OFF}", |
| " Tells whether local-mode C-Kermit during server operation should put a", |
| " file transfer display on the screen. Default is OFF.", |
| " ", |
| "SET SERVER GET-PATH [ directory [ directory [ ... ] ] ]", |
| " Tells the C-Kermit server where to look for files whose names it receives", |
| " from client GET commands when the names are not fully specified pathnames.", |
| " Default is no GET-PATH, so C-Kermit looks only in its current directory.", |
| " ", |
| "SET SERVER IDLE-TIMEOUT seconds", |
| " Idle time limit while in server mode, 0 for no limit.", |
| #ifndef OS2 |
| " NOTE: SERVER IDLE-TIMEOUT and SERVER TIMEOUT are mutually exclusive.", |
| #endif /* OS2 */ |
| " ", |
| "SET SERVER KEEPALIVE {ON,OFF}", |
| " Tells whether C-Kermit should send \"keepalive\" packets while executing", |
| " REMOTE HOST commands, which is useful in case the command takes a long", |
| " time to produce any output and therefore might cause the operation to time", |
| " out. ON by default; turn it OFF if it causes trouble with the client or", |
| " slows down the server too much.", |
| " ", |
| "SET SERVER LOGIN [ username [ password [ account ] ] ]", |
| " Sets up a username and optional password which must be supplied before", |
| " the server will respond to any commands other than REMOTE LOGIN. The", |
| " account is ignored. If you enter SET SERVER LOGIN by itself, then login", |
| " is no longer required. Only one SET SERVER LOGIN command can be in effect", |
| " at a time; C-Kermit does not support multiple user/password pairs.", |
| " ", |
| "SET SERVER TIMEOUT n", |
| " Server command wait timeout interval, how often the C-Kermit server issues", |
| " a NAK while waiting for a command packet. Specify 0 for no NAKs at all.", |
| " Default is 0.", |
| "" |
| }; |
| #endif /* NOSERVER */ |
| |
| static char *hmhrmt[] = { |
| #ifdef NEWFTP |
| "The REMOTE command sends file management instructions or other commands", |
| "to a Kermit or FTP server. If you have a single connection, the command is", |
| "directed to the server you are connected to; if you have multiple connections" |
| , |
| "the command is directed according to your GET-PUT-REMOTE setting.", |
| #else |
| "The REMOTE command sends file management instructions or other commands", |
| "to a Kermit server. There should already be a Kermit running in server", |
| "mode on the other end of the connection.", |
| #endif /* NEWFTP */ |
| "Type REMOTE ? to see a list of available remote commands. Type HELP REMOTE", |
| "xxx to get further information about a particular remote command xxx.", |
| " ", |
| "All REMOTE commands except LOGIN and LOGOUT have R-command shortcuts;", |
| "for example, RDIR for REMOTE DIR, RCD for REMOTE CD, etc.", |
| " ", |
| #ifdef NEWFTP |
| #ifdef LOCUS |
| "Also see: HELP SET LOCUS, HELP FTP, HELP SET GET-PUT-REMOTE.", |
| #else |
| "Also see: HELP FTP, HELP SET GET-PUT-REMOTE.", |
| #endif /* LOCUS */ |
| #else |
| #ifdef LOCUS |
| "Also see: HELP SET LOCUS.", |
| #endif /* LOCUS */ |
| #endif /* NEWFTP */ |
| "" }; |
| |
| #ifndef NOSPL |
| static char *ifhlp[] = { "Syntax: IF [NOT] condition commandlist", |
| " ", |
| "If the condition is (is not) true, do the commandlist. The commandlist", |
| "can be a single command, or a list of commands separated by commas and", |
| "enclosed in braces. The condition can be a single condition or a group of", |
| "conditions separated by AND (&&) or OR (||) and enclosed in parentheses.", |
| "If parentheses are used they must be surrounded by spaces. Examples:", |
| " ", |
| " IF EXIST oofa.txt <command>", |
| " IF ( EXIST oofa.txt || = \\v(nday) 3 ) <command>", |
| " IF ( EXIST oofa.txt || = \\v(nday) 3 ) { <command>, <command>, ... }", |
| " ", |
| "The conditions are:", |
| " ", |
| " SUCCESS - The previous command succeeded", |
| " OK - Synonym for SUCCESS", |
| " FAILURE - The previous command failed", |
| " ERROR - Synonym for FAILURE", |
| " FLAG - Succeeds if SET FLAG ON, fails if SET FLAG OFF", |
| " BACKGROUND - C-Kermit is running in the background", |
| #ifdef CK_IFRO |
| " FOREGROUND - C-Kermit is running in the foreground", |
| " REMOTE-ONLY - C-Kermit was started with the -R command-line option", |
| #else |
| " FOREGROUND - C-Kermit is running in the foreground", |
| #endif /* CK_IFRO */ |
| " KERBANG - A Kerbang script is running", |
| " ALARM - SET ALARM time has passed", |
| " ASKTIMEOUT - The most recent ASK, ASKQ, GETC, or GETOK timed out", |
| " EMULATION - Succeeds if executed while in CONNECT mode", |
| #ifdef OS2 |
| " TAPI - Current connection is via a Microsoft TAPI device", |
| #endif /* OS2 */ |
| " ", |
| " MS-KERMIT - Program is MS-DOS Kermit", |
| " C-KERMIT - Program is C-Kermit", |
| " K-95 - Program is Kermit 95", |
| " GUI - Program runs in a GUI window", |
| " ", |
| " AVAILABLE CRYPTO - Encryption is available", |
| " AVAILABLE KERBEROS4 - Kerberos 4 authentication is available", |
| " AVAILABLE KERBEROS5 - Kerberos 5 authentication is available", |
| " AVAILABLE NTLM - NTLM authentication is available", |
| " AVAILABLE SRP - SRP authentication is available", |
| " AVAILABLE SSL - SSL/TLS authentication is available", |
| " MATCH string pattern - Succeeds if string matches pattern", |
| #ifdef CKFLOAT |
| " FLOAT number - Succeeds if floating-point number", |
| #endif /* CKFLOAT */ |
| " COMMAND word - Succeeds if word is built-in command", |
| " DEFINED variablename or macroname - The named variable or macro is defined", |
| " DECLARED arrayname - The named array is declared", |
| " NUMERIC variable or constant - The variable or constant is numeric", |
| " EXIST filename - The named file exists", |
| " ABSOLUTE filename - The filename is absolute, not relative", |
| #ifdef CK_TMPDIR |
| " DIRECTORY string - The string is the name of a directory", |
| #endif /* CK_TMPDIR */ |
| " READABLE filename - Succeeds if the file is readable", |
| " WRITEABLE filename - Succeeds if the file is writeable", |
| #ifdef ZFCDAT |
| " NEWER file1 file2 - The 1st file is newer than the 2nd one", |
| #endif /* ZFCDAT */ |
| " OPEN { READ-FILE,SESSION-LOG,...} - The given file or log is open", |
| #ifndef NOLOCAL |
| " OPEN CONNECTION - A connection is open", |
| #endif /* NOLOCAL */ |
| " KBHIT - A key has been pressed", |
| " ", |
| " VERSION - equivalent to \"if >= \\v(version) ...\"", |
| " COUNT - subtract one from COUNT, execute the command if the result is", |
| " greater than zero (see SET COUNT)", |
| " ", |
| " EQUAL s1 s2 - s1 and s2 (character strings or variables) are equal", |
| " LLT s1 s2 - s1 is lexically (alphabetically) less than s2", |
| " LGT s1 s1 - s1 is lexically (alphabetically) greater than s2", |
| " ", |
| " = n1 n2 - n1 and n2 (numbers or variables containing numbers) are equal", |
| " < n1 n2 - n1 is arithmetically less than n2", |
| " <= n1 n2 - n1 is arithmetically less than or equal to n2", |
| " > n1 n2 - n1 is arithmetically greater than n2", |
| " >= n1 n2 - n1 is arithmetically greater than or equal to n2", |
| " ", |
| " (number by itself) - fails if the number is 0, succeeds otherwise", |
| " ", |
| " TRUE - always succeeds", |
| " FALSE - always fails", |
| " ", |
| "The IF command may be followed on the next line by an ELSE command. Example:", |
| " ", |
| " IF < \\%x 10 ECHO It's less", |
| " ELSE echo It's not less", |
| " ", |
| "It can also include an ELSE part on the same line if braces are used:", |
| " ", |
| " IF < \\%x 10 { ECHO It's less } ELSE { ECHO It's not less }", |
| " ", |
| "Also see HELP WILDCARD (for IF MATCH pattern syntax).", |
| "" }; |
| |
| static char *hmxxeval[] = { "Syntax: EVALUATE variable expression", |
| " Evaluates the expression and assigns its value to the given variable.", |
| " The expression can contain numbers and/or numeric-valued variables or", |
| " functions, combined with mathematical operators and parentheses in", |
| " traditional notation. Operators include +-/*(), etc. Example:", |
| " EVALUATE \\%n (1+1) * (\\%a / 3).", |
| " ", |
| " NOTE: Prior to C-Kermit 7.0, the syntax was \"EVALUATE expression\"", |
| " (no variable), and the result was printed. Use SET EVAL { OLD, NEW }", |
| " to choose the old or new behavior, which is NEW by default.", |
| " ", |
| "Alse see: HELP FUNCTION EVAL.", |
| "" }; |
| #endif /* NOSPL */ |
| |
| static char *hmxxexit[] = { |
| "Syntax: EXIT (or QUIT) [ number [ text ] ]", |
| " Exits from the Kermit program, closing all open files and devices.", |
| " If a number is given it becomes Kermit's exit status code. If text is", |
| " included, it is printed. Also see SET EXIT.", |
| "" }; |
| |
| #ifndef NOSPL |
| static char *ifxhlp[] = { "\ |
| Syntax: XIF condition { commandlist } [ ELSE { commandlist } ]", |
| " Obsolete. Same as IF (see HELP IF).", |
| "" }; |
| |
| static char *forhlp[] = { "\ |
| Syntax: FOR variablename initial-value final-value increment { commandlist }", |
| " FOR loop. Execute the comma-separated commands in the commandlist the", |
| " number of times given by the initial value, final value and increment.", |
| " Example: FOR \\%i 10 1 -1 { pause 1, echo \\%i }", "" }; |
| |
| static char *whihlp[] = { "\ |
| Syntax: WHILE condition { commandlist }", |
| " WHILE loop. Execute the comma-separated commands in the bracketed", |
| " commandlist while the condition is true. Conditions are the same as for", |
| " IF commands.", |
| "" }; |
| |
| static char *swihlp[] = { |
| "Syntax: SWITCH <variable> { case-list }", |
| " Selects from a group of commands based on the value of a variable.", |
| " The case-list is a series of lines like these:", |
| " ", |
| " :x, command, command, ..., break", |
| " ", |
| " where \"x\" is a possible value for the variable. At the end of the", |
| " case-list, you can put a \"default\" label to catch when the variable does", |
| " not match any of the labels:", |
| " ", |
| " :default, command, command, ...", |
| " ", |
| "The case label \"x\" can be a character, a string, a variable, a function", |
| "invocation, a pattern, or any combination of these. See HELP WILDCARDS", |
| "for information about patterns.", |
| ""}; |
| |
| static char *openhlp[] = { |
| "Syntax: OPEN mode filename", |
| " For use with READ and WRITE commands. Open the local file in the", |
| " specified mode: READ, WRITE, or APPEND. !READ and !WRITE mean to read", |
| " from or write to a system command rather than a file. Examples:", |
| " ", |
| " OPEN READ oofa.txt", |
| " OPEN !READ sort foo.bar", |
| "" }; |
| |
| static char *hxxask[] = { |
| "Syntax: ASK [ switches ] variablename [ prompt ]", |
| "Example: ASK \\%n { What is your name\\? }", |
| " Issues the prompt and defines the variable to be whatever is typed in", |
| " response, up to the terminating carriage return. Use braces to preserve", |
| " leading and/or trailing spaces in the prompt.", |
| " ", |
| "Syntax: ASKQ [ switches ] variablename [ prompt ]", |
| "Example: ASKQ \\%p { Password:}", |
| " Like ASK except the response does not echo on the screen.", |
| " ", |
| "Switches:", |
| " /DEFAULT:text", |
| " Text to supply if the user enters a blank response or the /TIMEOUT", |
| " limit expired with no response.", |
| " ", |
| #ifdef OS2 |
| " /POPUP", |
| " The prompt and response dialog takes place in a text-mode popup.", |
| " K95 only; in C-Kermit this switch is ignored.", |
| " ", |
| #ifdef KUI |
| " /GUI", |
| " The prompt and response dialog takes place in a GUI popup.", |
| " K95 GUI version only; in C-Kermit and the K95 console version,", |
| " this switch is ignored.", |
| " ", |
| #endif /* KUI */ |
| #endif /* OS2 */ |
| " /TIMEOUT:number", |
| " If the response is not entered within the given number of seconds, the", |
| " command fails. This is equivalent to setting ASK-TIMER to a positive", |
| " number, except it applies only to this command. Also see SET ASK-TIMER.", |
| " NOTE: If a /DEFAULT: value was also given, it is supplied automatically", |
| " upon timeout and the command does NOT fail.", |
| |
| " ", |
| " /QUIET", |
| " Suppresses \"?Timed out\" message when /TIMEOUT is given and user doesn't", |
| " respond within the time limit.", |
| ""}; |
| static char *hxxgetc[] = { |
| "Syntax: GETC variablename [ prompt ]", |
| "Example: GETC \\%c { Type any character to continue...}", |
| " Issues the prompt and sets the variable to the first character you type.", |
| " Use braces to preserve leading and/or trailing spaces in the prompt.", |
| " ", |
| "Also see SET ASK-TIMER.", |
| ""}; |
| |
| static char *hmxytimer[] = { |
| "Syntax: SET ASK-TIMER number", |
| " For use with ASK, ASKQ, GETOK, and GETC. If ASK-TIMER is set to a number", |
| " greater than 0, these commands will time out after the given number of", |
| " seconds with no response. This command is \"sticky\", so to revert to", |
| " \ |
| untimed ASKs after a timed one, use SET ASK-TIMER 0. Also see IF ASKTIMEOUT.", |
| ""}; |
| |
| static char *hxxdot[] = { |
| "Syntax: .<variable-name> <assignment-operator> <value>", |
| " Assigns the value to the variable in the manner indicated by the", |
| " assignment operator:", |
| " = Copies without evaluation (like DEFINE).", |
| " := Copies with evaluation (like ASSIGN).", |
| " ::= Copies with arithmetic evaluation (like EVALUATE).", |
| ""}; |
| |
| static char *hxxdef[] = { |
| "Syntax: DEFINE name [ definition ]", |
| " Defines a macro or variable. Its value is the definition, taken", |
| " literally. No expansion or evaluation of the definition is done. Thus", |
| " if the definition includes any variable or function references, their", |
| " names are included, rather than their values (compare with ASSIGN). If", |
| " the definition is omitted, then the named variable or macro is undefined.", |
| " ", |
| "A typical macro definition looks like this:", |
| " ", |
| " DEFINE name command, command, command, ...", |
| " ", |
| "for example:", |
| " ", |
| " DEFINE vax set parity even, set duplex full, set flow xon/xoff", |
| " ", |
| "which defines a Kermit command macro called 'vax'. The definition is a", |
| "comma-separated list of Kermit commands. Use the DO command to execute", |
| "the macro, or just type its name, followed optionally by arguments.", |
| " ", |
| "The definition of a variable can be anything at all, for example:", |
| " ", |
| " DEFINE \\%a Monday", |
| " DEFINE \\%b 3", |
| " ", |
| "These variables can be used almost anywhere, for example:", |
| " ", |
| " ECHO Today is \\%a", |
| " SET BLOCK-CHECK \\%b", |
| "" }; |
| |
| static char *hxxass[] = { |
| "Syntax: ASSIGN variablename string.", |
| "Example: ASSIGN \\%a My name is \\%b.", |
| " Assigns the current value of the string to the variable (or macro).", |
| " The definition string is fully evaluated before it is assigned, so that", |
| " the values of any variables that are contained are used, rather than their", |
| " names. Compare with DEFINE. To illustrate the difference, try this:", |
| " ", |
| " DEFINE \\%a hello", |
| " DEFINE \\%x \\%a", |
| " ASSIGN \\%y \\%a", |
| " DEFINE \\%a goodbye", |
| " ECHO \\%x \\%y", |
| " ", |
| " This prints 'goodbye hello'.", "" }; |
| |
| static char *hxxdec[] = { |
| "Syntax: DECREMENT variablename [ number ]", |
| " Decrement (subtract one from) the value of a variable if the current value", |
| " is numeric. If the number argument is given, subtract that number", |
| " instead.", |
| " ", |
| "Examples: DECR \\%a, DECR \\%a 7, DECR \\%a \\%n", "" }; |
| |
| static char *hxxinc[] = { |
| "Syntax: INCREMENT variablename [ number ]", |
| " Increment (add one to) the value of a variable if the current value is", |
| " numeric. If the number argument is given, add that number instead.", |
| " ", |
| "Examples: INCR \\%a, INCR \\%a 7, INCR \\%a \\%n", "" }; |
| #endif /* NOSPL */ |
| |
| #ifdef ANYX25 |
| #ifndef IBMX25 |
| static char *hxxpad[] = { |
| "Syntax: PAD command", |
| "X.25 PAD commands:", |
| " ", |
| " PAD CLEAR - Clear the virtual call", |
| " PAD STATUS - Return the status of virtual call", |
| " PAD RESET - Send a reset packet", |
| " PAD INTERRUPT - Send an interrupt packet", |
| ""}; |
| #endif /* IBMX25 */ |
| |
| static char *hxyx25[] = { |
| "Syntax: SET X.25 option { ON [ data ], OFF }", |
| " ", |
| "X.25 call options:", |
| " CLOSED-USER-GROUP { ON index, OFF }", |
| " Enable or disable closed user group call, where index is the group", |
| " index, 0 to 99.", |
| " REVERSE-CHARGE { ON, OFF }", |
| " Tell whether you want to reverse the charges for the call.", |
| " CALL-USER-DATA { ON string, OFF }", |
| " Specify call user-data for the X.25 call.", |
| ""}; |
| #endif /* ANYX25 */ |
| |
| static char *hxyprtr[] = { |
| #ifdef PRINTSWI |
| "Syntax: SET PRINTER [ switches ] [ name ]", |
| " ", |
| " Specifies the printer to be used for transparent-print, autoprint, and", |
| " screen-dump material during terminal emulation, as well as for the PRINT", |
| " command, plus various options governing print behavior.", |
| " ", |
| "Switches for specifying the printer by type:", |
| " ", |
| "/NONE", |
| " Include this switch to specify that all printer actions should simply be", |
| " skipped. Use this, for example, if you have no printer.", |
| " ", |
| "/DOS-DEVICE[:name]", |
| " Include this to declare a DOS printer and to specify its name, such as", |
| " PRN, LPT1, etc.", |
| " ", |
| #ifdef NT |
| "/WINDOWS-QUEUE[:[queue-name]]", |
| " Include this to declare a Windows printer and specify its queue name.", |
| " Type question mark (?) after the colon (:) to see a list of known queue", |
| " names. If the colon is absent, the switch indicates the currently", |
| " selected printer is a Windows Print Queue. If the colon is provided", |
| " and the name is absent, the Windows Print Queue chosen as the Default", |
| " Printer is selected.", |
| " ", |
| #endif /* NT */ |
| "/FILE[:name]", |
| " Specifies that all printer material is to be appended to the named file,", |
| " rather than being sent to a printer. If the file does not exist, it is", |
| " created the first time any material is to be printed.", |
| " ", |
| "/PIPE[:name]", |
| " Specifies that all printer material is to be sent as standard input to", |
| " the program or command whose name is given. Example:", |
| " ", |
| " SET PRINTER /PIPE:{textps > lpt1}", |
| " ", |
| "If you give a printer name without specifying any of these switches, then it", |
| "is assumed to be a DOS printer device or filename unless the name given", |
| "(after removing enclosing braces, if any) starts with \"|\", \ |
| in which case it", |
| "is a pipe. Examples:", |
| " ", |
| " SET PRINTER LPT1 <-- DOS device", |
| " SET PRINTER {| textps > lpt1} <-- Pipe", |
| " ", |
| "The next group of switches tells whether the printer is one-way or", |
| "bidirectional (two-way):", |
| " ", |
| "/OUTPUT-ONLY", |
| " Include this to declare the printer capable only of receiving material to", |
| " be printed, but not sending anything back. This is the normal kind of", |
| " printer, Kermit's default kind, and the opposite of /BIDIRECTIONAL.", |
| " ", |
| "/BIDIRECTIONAL", |
| " Include this to declare the printer bidirectional. This is the opposite ", |
| " of /OUTPUT-ONLY. You can also use this option with serial printers, even", |
| " if they aren't bidirectional, in case you need to specify speed, flow", |
| " control, or parity.", |
| " ", |
| "The next group applies only to bidirectional and/or serial printers:", |
| " ", |
| "/FLOW-CONTROL:{NONE,XON/XOFF,RTS/CTS,KEEP}", |
| " Flow control to use with a serial bidirectional printer, default KEEP;", |
| #ifdef NT |
| " i.e. use whatever the Windows driver for the port normally uses.", |
| #else |
| " i.e. use whatever the OS/2 driver for the port normally uses.", |
| #endif /* NT */ |
| " ", |
| "/PARITY:{NONE,EVEN,ODD,SPACE,MARK}", |
| " Parity to use with a serial printer, default NONE; i.e. use 8 data bits", |
| " and no parity. If you omit the colon and the keyword, NONE is selected.", |
| " ", |
| "/SPEED:number", |
| " Interface speed, in bits per second, to use with a serial printer, such as", |
| " 2400, 9600, 19200, etc. Type SET PRINTER /SPEED:? for a list of possible", |
| " speeds.", |
| " ", |
| "The next group deals with print jobs -- how to identify them, how to start", |
| "them, how to terminate them:", |
| " ", |
| "/TIMEOUT[:number]", |
| " Used with host-directed transparent or auto printing, this is the number", |
| " of seconds to wait after the host closes the printer before terminating", |
| " the print job if the printer is not opened again during the specified", |
| " amount of time.", |
| " ", |
| "/JOB-HEADER-FILE[:filename]", |
| " The name of a file to be sent to the printer at the beginning of each", |
| " print job, as a burst page, or to configure the printer. Normally no file", |
| " is is sent.", |
| " ", |
| "/END-OF-JOB-STRING[:string]", |
| " String of characters to be sent to the printer at the end of the print", |
| " job, usually used to force the last or only page out of the printer. When", |
| " such a string is needed, it usually consists of a single formfeed: \"set", |
| " printer /end-of-job:{\\12}\". No end-of-job string is sent unless you", |
| " specify one with this option. If the string contains any spaces or", |
| " control characters (even in backslash notation, as above), enclose it in", |
| " braces.", |
| " ", |
| "The next group is for use with printers that print only PostScript:", |
| " ", |
| "/POSTSCRIPT or /PS", |
| " Indicates that K95 should convert all text to PostScript before sending", |
| " it to the printer. The fixed-pitch Courier-11 font is used.", |
| " ", |
| "/WIDTH:number", |
| " Specifies the width of the page in characters. If this switch is not", |
| " given, 80 is used.", |
| " ", |
| "/HEIGHT:number", |
| " Specifies the height of the page in lines. If this switch is not given", |
| " 66 is used.", |
| " ", |
| "/NOPOSTSCRIPT or /NOPS", |
| " Indicates that K95 should not convert all text to PostScript before", |
| " sending it to the printer.", |
| " ", |
| "The final switch is for use with AutoPrint mode and Screen Dumps", |
| " ", |
| "/CHARACTER-SET:<character-set>", |
| " Specifies the character set used by the printer which may be different", |
| " from both the character set used by the host and by the local computer.", |
| " The default value is CP437.", |
| " ", |
| "SHOW PRINTER displays your current printer settings.", |
| #else |
| #ifdef UNIX |
| "Syntax: SET PRINTER [ { |command, filename } ]", |
| " Specifies the command (such as \"|lpr\") or filename to be used by the", |
| " PRINT command. If a filename is given, each PRINT command appends to the", |
| " given file. If the SET PRINTER argument contains spaces, it must be", |
| " enclosed in braces, e.g. \"set printer {| lpr -Plaser}\". If the argument", |
| " is omitted the default value is restored. SHOW PRINTER lists the current", |
| " printer. See HELP PRINT for further info.", |
| #else |
| "Sorry, SET PRINTER not available yet.", |
| #endif /* UNIX */ |
| #endif /* PRINTSWI */ |
| ""}; |
| |
| #ifdef OS2 |
| #ifdef BPRINT |
| static char *hxybprtr[] = { |
| "Syntax: SET BPRINTER [ portname speed [ parity [ flow-control ] ] ]", |
| " (Obsolete, replaced by SET PRINTER /BIDIRECTIONAL.)", |
| ""}; |
| #endif /* BPRINT */ |
| #endif /* OS2 */ |
| |
| static char *hxyexit[] = { |
| "Syntax: SET EXIT HANGUP { ON, OFF }", |
| " When ON (which is the default), C-Kermit executes an implicit HANGUP and", |
| " CLOSE command on the communications device or connection when it exits.", |
| " When OFF, Kermit skips this sequence.", |
| " ", |
| "Syntax: SET EXIT ON-DISCONNECT { ON, OFF }", |
| " When ON, C-Kermit EXITs automatically when a network connection", |
| " is terminated either by the host or by issuing a HANGUP command.", |
| " ", |
| "Syntax: SET EXIT STATUS number", |
| #ifdef NOSPL |
| " Set C-Kermit's program return code to the given number.", |
| #else |
| " Set C-Kermit's program return code to the given number, which can be a", |
| " constant, variable, function result, or arithmetic expression.", |
| #endif /* NOSPL */ |
| " ", |
| "Syntax: SET EXIT WARNING { ON, OFF, ALWAYS }", |
| " When EXIT WARNING is ON, issue a warning message and ask for confirmation", |
| " before EXITing if a connection to another computer might still be open.", |
| " When EXIT WARNING is ALWAYS, confirmation is always requested. When OFF", |
| " it is never requested. The default is ON.", |
| "" }; |
| |
| #ifndef NOSPL |
| static char *hxxpau[] = { |
| "Syntax: PAUSE [ { number-of-seconds, hh:mm:ss } ]", |
| "Example: PAUSE 3 or PAUSE 14:52:30", |
| " Do nothing for the specified number of seconds or until the given time of", |
| " day in 24-hour hh:mm:ss notation. If the time of day is earlier than the", |
| " current time, it is assumed to be tomorrow. If no argument given, one", |
| " second is used. The pause can be interrupted by typing any character on", |
| " the keyboard unless SLEEP CANCELLATION is OFF. If interrupted, PAUSE", |
| " fails, otherwise it succeeds. Synonym: SLEEP.", |
| "" }; |
| |
| static char *hxxmsl[] = { |
| "Syntax: MSLEEP [ number ]", |
| "Example: MSLEEP 500", |
| " Do nothing for the specified number of milliseconds; if no number given,", |
| " 100 milliseconds.","" }; |
| #endif /* NOSPL */ |
| |
| #ifndef NOPUSH |
| extern int nopush; |
| static char *hxxshe[] = { |
| "Syntax: !, @, RUN, PUSH, or SPAWN, optionally followed by a command.", |
| " Gives the command to the local operating system's command processor, and", |
| " displays the results on the screen. If the command is omitted, enters the", |
| " system's command line interpreter or shell; exit from it (the command for", |
| " this is usually EXIT or QUIT or LOGOUT) to return to Kermit.", |
| "" |
| }; |
| #endif /* NOPUSH */ |
| |
| #ifndef NOXMIT |
| static char *hxxxmit[] = { |
| "Syntax: TRANSMIT [ switches ] filename", |
| " Sends the contents of a file, without any error checking or correction,", |
| " to the computer on the other end of your SET LINE or SET HOST connection", |
| " (or if C-Kermit is in remote mode, displays it on the screen). The", |
| " filename is the name of a single file (no wildcards) to be sent or, if", |
| " the /PIPE switch is included, the name of a command whose output is to be", |
| " sent.", |
| " ", |
| " The file is sent according to your current FILE TYPE setting (BINARY or", |
| " TEXT), which you can override with a /BINARY or /TEXT switch without", |
| " changing the global setting. In text mode, it is sent a line at a time,", |
| " with carriage return at the end of each line (as if you were typing it at", |
| " your keyboard), and C-Kermit waits for a linefeed to echo before sending", |
| " the next line; use /NOWAIT to eliminate the feedback requirement. In", |
| " binary mode, it is sent a character at a time, with no feedback required.", |
| " ", |
| " Normally the transmitted material is echoed to your screen. Use SET", |
| " TRANSMIT ECHO OFF or the /NOECHO switch to suppress echoing. Note that", |
| " TRANSMIT /NOECHO /NOWAIT /BINARY is a special case, that more or less", |
| " blasts the file out at full speed.", |
| " ", |
| #ifndef NOCSETS |
| " Character sets are translated according to your current FILE and TERMINAL", |
| " CHARACTER-SET settings when TRANSMIT is in text mode. Include /TRANSPARENT" |
| , |
| " to disable character-set translation in text mode (/TRANSPARENT implies", |
| " /TEXT).", |
| " ", |
| #endif /* NOCSETS */ |
| " There can be no guarantee that the other computer will receive the file", |
| " correctly and completely. Before you start the TRANSMIT command, you", |
| " must put the other computer in data collection mode, for example by", |
| " starting a text editor. TRANSMIT may be interrupted by Ctrl-C. Synonym:", |
| " XMIT. See HELP SET TRANSMIT for further information.", |
| "" }; |
| #endif /* NOXMIT */ |
| |
| #ifndef NOCSETS |
| static char *hxxxla[] = { |
| "Syntax: TRANSLATE file1 cs1 cs2 [ file2 ]", |
| " Translates file1 from the character set cs1 into the character set cs2", |
| " and stores the result in file2. The character sets can be any of", |
| " C-Kermit's file character sets. If file2 is omitted, the translation", |
| " is displayed on the screen. An appropriate intermediate character-set", |
| " is chosen automatically, if necessary. Synonym: XLATE. Example:", |
| " ", |
| " TRANSLATE lasagna.lat latin1 italian lasagna.nrc", |
| " ", |
| " Multiple files can be translated if file2 is a directory or device name,", |
| " rather than a filename, or if file2 is omitted.", |
| "" }; |
| #endif /* NOCSETS */ |
| |
| #ifndef NOSPL |
| static char *hxxwai[] = { |
| "Syntax: WAIT { number-of-seconds, hh:mm:ss } [ <what> ]", |
| " ", |
| "Examples:", |
| " wait 5 cd cts", |
| " wait 23:59:59 cd", |
| " ", |
| " Waits up to the given number of seconds or the given time of day for the", |
| " specified item or event, which can be FILE, the name(s) of one or more", |
| " modem signals, or nothing. If nothing is specified, WAIT acts like SLEEP.", |
| " If one or more modem signal names are given, Kermit waits for the specified" |
| , |
| " modem signals to appear on the serial communication device.", |
| " Sets FAILURE if the signals do not appear in the given time or interrupted", |
| " from the keyboard during the waiting period.", |
| " ", |
| "Signals:", |
| " cd = Carrier Detect;", |
| " dsr = Dataset Ready;", |
| " cts = Clear To Send;", |
| " ri = Ring Indicate.", |
| " ", |
| "If you want Kermit to wait for a file event, then the syntax is:", |
| " ", |
| " WAIT <time> FILE { CREATION, DELETION, MODIFICATION } <filename>", |
| " ", |
| "where <time> is as above, and <filename> is the name of a single file.", |
| "Kermit waits up to the given amount of time for the specified event to occur", |
| "with the specified file, succeeds if it does, fails if it doesn't.", |
| "" }; |
| #endif /* NOSPL */ |
| |
| static char *hxxwri[] = { |
| "Syntax: WRITE name text", |
| " Writes the given text to the named log or file. The text text may include", |
| " backslash codes, and is not terminated by a newline unless you include the", |
| " appropriate code. The name parameter can be any of the following:", |
| " ", |
| " DEBUG-LOG", |
| " ERROR (standard error)", |
| #ifndef NOSPL |
| " FILE (the OPEN WRITE, OPEN !WRITE, or OPEN APPEND file, see HELP OPEN)", |
| #endif /* NOSPL */ |
| " PACKET-LOG", |
| " SCREEN (compare with ECHO)", |
| #ifndef NOLOCAL |
| " SESSION-LOG", |
| #endif /* NOLOCAL */ |
| " TRANSACTION-LOG", "" }; |
| |
| #ifndef NODIAL |
| static char *hxxlook[] = { "Syntax: LOOKUP name", |
| " Looks up the given name in the dialing directory or directories, if any,", |
| " specified in the most recent SET DIAL DIRECTORY command. Each matching", |
| " entry is shown, along with any transformations that would be applied to", |
| " portable-format entries based on your locale. HELP DIAL, HELP SET DIAL", |
| " for further info.", |
| "" |
| }; |
| |
| static char *hxxansw[] = { "Syntax: ANSWER [ <seconds> ]", |
| #ifdef OS2 |
| " Waits for a modem call to come in. Prior SET MODEM TYPE and SET PORT", |
| #else |
| " Waits for a modem call to come in. Prior SET MODEM TYPE and SET LINE", |
| #endif /* OS2 */ |
| " required. If <seconds> is 0 or not specified, Kermit waits forever or", |
| " until interrupted, otherwise Kermit waits the given number of seconds.", |
| " The ANSWER command puts the modem in autoanswer mode. Subsequent DIAL", |
| " commands will automatically put it (back) in originate mode. SHOW MODEM,", |
| " HELP SET MODEM for more info.", |
| "" |
| }; |
| |
| static char *hxxdial[] = { "Syntax: DIAL phonenumber", |
| "Example: DIAL 7654321", |
| " \ |
| Dials a number using an autodial modem. First you must SET MODEM TYPE, then", |
| #ifdef OS2 |
| " SET PORT (or in Windows only, SET PORT TAPI instead of SET MODEM TYPE and", |
| " SET LINE), then SET SPEED. Then give the DIAL command, including the phone", |
| #else |
| " SET LINE, then SET SPEED. Then give the DIAL command, including the phone", |
| #endif /* OS2 */ |
| " number, for example:", |
| " ", |
| " DIAL 7654321", |
| #ifdef NETCONN |
| " ", |
| " If the modem is on a network modem server, SET HOST first, then SET MODEM", |
| " TYPE, then DIAL.", |
| #endif /* NETCONN */ |
| " ", |
| "If you give the DIAL command interactively at the Kermit prompt, and the", |
| "call is placed successfully, Kermit automatically enters CONNECT mode.", |
| "If the DIAL command is given from a macro or command file, Kermit remains", |
| "in command mode after the call is placed, successfully or not. You can", |
| "change this behavior with the SET DIAL CONNECT command.", |
| " ", |
| "If the phonenumber starts with a letter, and if you have used the SET DIAL", |
| "DIRECTORY command to specify one or more dialing-directory files, Kermit", |
| "looks it up in the given file(s); if it is found, the name is replaced by", |
| "the number or numbers associated with the name. If it is not found, the", |
| "name is sent to the modem literally.", |
| " ", |
| "If the phonenumber starts with an equals sign (\"=\"), this forces the part", |
| "after the = to be sent literally to the modem, even if it starts with a", |
| "letter, without any directory lookup.", |
| " ", |
| "You can also give a list of phone numbers enclosed in braces, e.g:", |
| " ", |
| " dial {{7654321}{8765432}{+1 (212 555-1212}}", |
| " ", |
| "(Each number is enclosed in braces and the entire list is also enclosed in", |
| "braces.) In this case, each number is tried until there is an answer. The", |
| "phone numbers in this kind of list can not be names of dialing directory", |
| "entries.", |
| " ", |
| "A dialing directory is a plain text file, one entry per line:", |
| " ", |
| " name phonenumber ; comments", |
| " ", |
| "for example:", |
| " ", |
| " work 9876543 ; This is a comment", |
| " e-mail +1 (212) 555 4321 ; My electronic mailbox", |
| " germany +49 (511) 555 1234 ; Our branch in Hanover", |
| " ", |
| "If a phone number starts with +, then it must include country code and", |
| "area code, and C-Kermit will try to handle these appropriately based on", |
| "the current locale (HELP SET DIAL for further info); these are called", |
| "PORTABLE entries. If it does not start with +, it is dialed literally.", |
| " ", |
| "If more than one entry is found with the same name, Kermit dials all of", |
| "them until the call is completed; if the entries are in portable format,", |
| "Kermit dials them in cheap-to-expensive order: internal, then local, then", |
| "long-distance, then international, based on its knowledge of your local", |
| "country code and area code (see HELP SET DIAL).", |
| " ", |
| "Specify your dialing directory file(s) with the SET DIAL DIRECTORY command.", |
| " ", |
| #ifdef NETCONN |
| "See also SET DIAL, SET MODEM, SET LINE, SET HOST, SET SPEED, REDIAL, and", |
| "PDIAL.", |
| #else |
| "See also SET DIAL, SET MODEM, SET LINE, SET SPEED, PDIAL, and REDIAL.", |
| #endif /* NETCONN */ |
| "" }; |
| |
| #ifdef CK_TAPI |
| static char *hxxtapi[] = { |
| "TAPI CONFIGURE-LINE <tapi-line>", |
| " Displays the TAPI Configure Line Dialog box and allows you to", |
| " alter the default configuration for the specified <tapi-line>.", |
| " ", |
| "TAPI DIALING-PROPERTIES", |
| " Displays the TAPI Dialing Properties (locations) Dialog box. The", |
| " Dialing rules may be changed and locations created and deleted.", |
| " When the dialog box is closed, K-95 imports the current Dialing", |
| " Properties' Location into the Kermit DIAL command settings.", |
| ""}; |
| |
| static char *hxytapi[] = { |
| "SET TAPI LINE <tapi-line>", |
| " Opens a TAPI device for use by Kermit.", |
| " ", |
| "SET TAPI MODEM-DIALING {ON, [OFF]}", |
| " If TAPI MODEM-DIALING is OFF when SET TAPI LINE is issued, Kermit opens", |
| " the TAPI device directly as a \"raw port\". The device is unavailable to", |
| " other applications and Kermit performs dialing functions using its", |
| " built-in dialing and modem databases. If TAPI MODEM-DIALING is ON, TAPI", |
| " handles all dialing functions and the port may be shared with other", |
| " applications when a call in not active. When TAPI MODEM-DIALING is OFF,", |
| " SET MODEM TYPE TAPI Kermit uses the TAPI modem commands imported from the", |
| " Windows Registry during the previous SET TAPI LINE call.", |
| " ", |
| "SET TAPI LOCATION <tapi-location>", |
| " Specifies the TAPI location to make current for the entire system. The", |
| " <tapi-location>'s dialing properties are imported into Kermit's SET DIAL", |
| " command database.", |
| " ", |
| "SET TAPI PHONE-NUMBER-CONVERSIONS {ON, OFF, [AUTO]}", |
| " Controls whether the phone number conversions are performed by TAPI (ON)", |
| " or by Kermit (OFF), or according the type of port that was selected", |
| " (AUTO); AUTO is the default, and is equivalent to ON if the current", |
| " LINE/PORT is a TAPI device and TAPI MODEM-DIALING is ON, OFF otherwise.", |
| " ", |
| "SET TAPI MODEM-LIGHTS {[ON], OFF}", |
| " Displays a modem lights indicator on the Windows 95 Taskbar. Does nothing", |
| " in Windows NT 4.0.", |
| " ", |
| "SET TAPI MANUAL-DIALING {ON, [OFF]}", |
| " Displays a dialog box during dialing requesting that you manually dial the", |
| " phone before continuing. Applies only when TAPI MODEM-DIALING is ON.", |
| " ", |
| "SET TAPI WAIT-FOR-CREDIT-CARD-TONE <seconds>", |
| " Some modems don't support the '$' (BONG) symbol during dialing, which", |
| " means \"wait for credit card tone before continuing.\" If TAPI recognizes", |
| " the modem as one that does not support BONG, it replaces the '$' with", |
| " <seconds> worth of pauses. The default is 8 seconds. This command", |
| " applies only when TAPI MODEM-DIALING is ON", |
| " ", |
| "SET TAPI PRE-DIAL-TERMINAL {ON, [OFF]}", |
| "SET TAPI POST-DIAL-TERMINAL {ON, [OFF]}", |
| " Displays a small terminal window that may be used to communicate with the", |
| " modem or the host prior to or immediately after dialing; applies only when", |
| " TAPI MODEM-DIALING is ON", |
| " ", |
| "SET TAPI INACTIVITY-TIMEOUT <minutes>", |
| " Specifies the number of minutes of inactivity that may go by before TAPI", |
| " disconnects the line. The default is 0 which means disable this function.", |
| " Applies only when TAPI MODEM-DIALING is ON.", |
| " ", |
| "SET TAPI USE-WINDOWS-CONFIGURATION {ON, [OFF]}", |
| " Specifies whether the TAPI modem values for speed, parity, stop bits, flow", |
| " control, etc. are used in preference to the current values specified", |
| " within Kermit-95.", |
| " ", |
| ""}; |
| #endif /* CK_TAPI */ |
| |
| #endif /* NODIAL */ |
| |
| #ifdef TNCODE |
| static char *hmxxiks[] = { |
| "Syntax: IKS [ switches ] [ host [ service ] ]", |
| " Establishes a new connection to an Internet Kermit Service daemon.", |
| " Equivalent to SET NETWORK TYPE TCP/IP, SET HOST host KERMIT /TELNET,", |
| " IF SUCCESS CONNECT. If host is omitted, the previous connection (if any)", |
| " is resumed. Depending on how Kermit has been built switches may be", |
| " available to require a secure authentication method and bidirectional", |
| " encryption. See HELP SET TELNET for more info.", |
| " ", |
| #ifdef CK_AUTHENTICATION |
| " /AUTH:<type> is equivalent to SET TELNET AUTH TYPE <type> and", |
| " SET TELOPT AUTH REQUIRED with the following exceptions. If the type", |
| " is AUTO, then SET TELOPT AUTH REQUESTED is executed and if the type", |
| " is NONE, then SET TELOPT AUTH REFUSED is executed.", |
| " ", |
| #endif /* CK_AUTHENTICATION */ |
| #ifdef CK_ENCRYPTION |
| " /ENCRYPT:<type> is equivalent to SET TELNET ENCRYPT TYPE <type>", |
| " and SET TELOPT ENCRYPT REQUIRED REQUIRED with the following exceptions.", |
| " If the type is AUTO then SET TELOPT AUTH REQUESTED REQUESTED is executed", |
| " and if the type is NONE then SET TELOPT ENCRYPT REFUSED REFUSED is", |
| " executed.", |
| " ", |
| #endif /* CK_ENCRYPTION */ |
| " /USERID:[<name>]", |
| " This switch is equivalent to SET LOGIN USERID <name> or SET TELNET", |
| " ENVIRONMENT USER <name>. If a string is given, it sent to host during", |
| " Telnet negotiations; if this switch is given but the string is omitted,", |
| " no user ID is sent to the host. If this switch is not given, your", |
| " current USERID value, \\v(userid), is sent. When a userid is sent to the", |
| " host it is a request to login as the specified user.", |
| " ", |
| #ifdef CK_AUTHENTICATION |
| " /PASSWORD:[<string>]", |
| " This switch is equivalent to SET LOGIN PASSWORD. If a string is given,", |
| " it is treated as the password to be used (if required) by any Telnet", |
| " Authentication protocol (Kerberos Ticket retrieval, Secure Remote", |
| " Password, or X.509 certificate private key decryption.) If no password", |
| " switch is specified a prompt is issued to request the password if one", |
| " is required for the negotiated authentication method.", |
| #endif /* CK_AUTHENTICATION */ |
| ""}; |
| |
| static char *hmxxtel[] = { |
| "Syntax: TELNET [ switches ] [ host [ service ] ]", |
| " Equivalent to SET NETWORK TYPE TCP/IP, SET HOST host [ service ] /TELNET,", |
| " IF SUCCESS CONNECT. If host is omitted, the previous connection (if any)", |
| " is resumed. Depending on how Kermit has been built switches may be", |
| " available to require a secure authentication method and bidirectional", |
| " encryption. See HELP SET TELNET for more info.", |
| " ", |
| #ifdef CK_AUTHENTICATION |
| " /AUTH:<type> is equivalent to SET TELNET AUTH TYPE <type> and", |
| " SET TELOPT AUTH REQUIRED with the following exceptions. If the type", |
| " is AUTO, then SET TELOPT AUTH REQUESTED is executed and if the type", |
| " is NONE, then SET TELOPT AUTH REFUSED is executed.", |
| " ", |
| #endif /* CK_AUTHENTICATION */ |
| #ifdef CK_ENCRYPTION |
| " /ENCRYPT:<type> is equivalent to SET TELNET ENCRYPT TYPE <type>", |
| " and SET TELOPT ENCRYPT REQUIRED REQUIRED with the following exceptions.", |
| " If the type is AUTO then SET TELOPT AUTH REQUESTED REQUESTED is executed", |
| " and if the type is NONE then SET TELOPT ENCRYPT REFUSED REFUSED is", |
| " executed.", |
| " ", |
| #endif /* CK_ENCRYPTION */ |
| " /USERID:[<name>]", |
| " This switch is equivalent to SET LOGIN USERID <name> or SET TELNET", |
| " ENVIRONMENT USER <name>. If a string is given, it sent to host during", |
| " Telnet negotiations; if this switch is given but the string is omitted,", |
| " no user ID is sent to the host. If this switch is not given, your", |
| " current USERID value, \\v(userid), is sent. When a userid is sent to the", |
| " host it is a request to login as the specified user.", |
| " ", |
| #ifdef CK_AUTHENTICATION |
| " /PASSWORD:[<string>]", |
| " This switch is equivalent to SET LOGIN PASSWORD. If a string is given,", |
| " it is treated as the password to be used (if required) by any Telnet", |
| " Authentication protocol (Kerberos Ticket retrieval, Secure Remote", |
| " Password, or X.509 certificate private key decryption.) If no password", |
| " switch is specified a prompt is issued to request the password if one", |
| " is required for the negotiated authentication method.", |
| #endif /* CK_AUTHENTICATION */ |
| ""}; |
| |
| static char *hxtopt[] = { |
| "TELOPT { AO, AYT, BREAK, CANCEL, EC, EL, EOF, EOR, GA, IP, DMARK, NOP, SE,", |
| " SUSP, SB [ option ], DO [ option ], DONT [ option ],", |
| " WILL [ option ], WONT [option] }", |
| " This command lets you send all the Telnet protocol commands. Note that", |
| " certain commands do not require a response, and therefore can be used as", |
| " nondestructive \"probes\" to see if the Telnet session is still open;", |
| " e.g.:", |
| " ", |
| " set host xyzcorp.com", |
| " ...", |
| " telopt nop", |
| " telopt nop", |
| " if fail stop 1 Connection lost", |
| " ", |
| " TELOPT NOP is sent twice because the failure of the connection will not", |
| " be detected until the second send is attempted. This command is meant", |
| " primarily as a debugging tool for the expert user.", |
| ""}; |
| #endif /* TNCODE */ |
| |
| #endif /* NOHELP */ |
| |
| /* D O H L P -- Give a help message */ |
| |
| _PROTOTYP( int dohset, (int) ); |
| #ifndef NOCMDL |
| _PROTOTYP( int dohopts, (void) ); |
| #endif /* NOCMDL */ |
| #ifndef NOSPL |
| _PROTOTYP( int dohfunc, (int) ); |
| extern struct keytab fnctab[]; |
| extern int nfuncs; |
| #endif /* NOSPL */ |
| #ifdef OS2 |
| #ifndef NOKVERBS |
| _PROTOTYP( int dohkverb, (int) ); |
| extern struct keytab kverbs[]; |
| extern int nkverbs; |
| #endif /* NOKVERBS */ |
| #endif /* OS2 */ |
| |
| #ifndef NOSPL |
| static char * hxxdcl[] = { |
| "Syntax: ARRAY verb operands...", |
| " ", |
| "Declares arrays and performs various operations on them. Arrays have", |
| "the following syntax:", |
| " ", |
| " \\&a[n]", |
| " ", |
| "where \"a\" is a letter and n is a number or a variable with a numeric value", |
| "or an arithmetic expression. The value of an array element can be anything", |
| "at all -- a number, a character, a string, a filename, etc.", |
| " ", |
| "The following ARRAY verbs are available:", |
| " ", |
| "[ ARRAY ] DECLARE arrayname[n] [ = initializers... ]", |
| " Declares an array of the given size, n. The resulting array has n+1", |
| " elements, 0 through n. Array elements can be used just like any other", |
| " variables. Initial values can be given for elements 1, 2, ... by", |
| " including = followed by one or more values separated by spaces. If you", |
| " omit the size, the array is sized according to the number of initializers;", |
| " if none are given the array is destroyed and undeclared if it already", |
| " existed. The ARRAY keyword is optional. Synonym: [ ARRAY ] DCL.", |
| " ", |
| "[ ARRAY ] UNDECLARE arrayname", |
| " Destroys and undeclares the given array. Synonym: ARRAY DESTROY.", |
| " ", |
| "ARRAY SHOW [ arrayname ]", |
| " Displays the contents of the given array. A range specifier can be", |
| " included to display a segment of the array, e.g. \"array show \\&a[1:24].\"" |
| , |
| " If the arrayname is omitted, all declared arrays are listed, but their", |
| " contents is not shown. Synonym: SHOW ARRAY.", |
| " ", |
| "ARRAY CLEAR arrayname", |
| " Clears all elements of the array, i.e. sets them to empty values.", |
| " You may include a range specifier to clear a segment of the array rather", |
| " than the whole array, e.g. \"array clear \\%a[22:38]\"", |
| " ", |
| "ARRAY SET arrayname value", |
| " Sets all elements of the array to the given value. You may specify a", |
| " range to set a segment of the array, e.g. \"array set \\%a[2:9] 0\"", |
| " ", |
| "ARRAY RESIZE arrayname number", |
| " Changes the size of the given array, which must already exist, to the", |
| " number given. If the number is smaller than the current size, the extra", |
| " elements are discarded; if it is larger, new empty elements are added.", |
| " ", |
| "ARRAY COPY array1 array2", |
| " Copys array1 to array2. If array2 has not been declared, it is created", |
| " automatically. Range specifiers may be given on one or both arrays.", |
| " ", |
| "ARRAY LINK array1 arra2", |
| " Makes array1 a link to array2.", |
| " ", |
| "[ ARRAY ] SORT [ switches ] array-name [ array2 ]", |
| " Sorts the given array lexically according to the switches. Element 0 of", |
| " the array is excluded from sorting by default. The ARRAY keyword is", |
| " optional. If a second array name is given, that array is sorted according", |
| " to the first one. Switches:", |
| " ", |
| " /CASE:{ON,OFF}", |
| " If ON, alphabetic case matters; if OFF it is ignored. If this switch is", |
| " omitted, the current SET CASE setting applies.", |
| " ", |
| " /KEY:number", |
| " \ |
| Position (1-based column number) at which comparisons begin, 1 by default.", |
| " ", |
| " /NUMERIC", |
| " Specifies a numeric rather than lexical sort.", |
| " ", |
| " /RANGE:low[:high]", |
| " The range of elements, low through high, to be sorted. If this switch", |
| " is not given, elements 1 through the dimensioned size are sorted. If", |
| " :high is omitted, the dimensioned size is used. To include element 0 in", |
| " a sort, use /RANGE:0 (to sort the whole array) or /RANGE:0:n (to sort", |
| " elements 0 through n). You can use a range specifier in the array name", |
| " instead of the /RANGE switch.", |
| " ", |
| " /REVERSE", |
| " Sort in reverse order. If this switch is not given, the array is sorted", |
| " in ascending order.", |
| " ", |
| "Various functions are available for array operations; see HELP FUNCTION for", |
| "details. These include \\fdimension(), \\farraylook(), \\ffiles(), \ |
| \\fsplit(),", |
| "and many more.", |
| ""}; |
| #endif /* NOSPL */ |
| |
| #ifdef ZCOPY |
| static char * hmxxcpy[] = { |
| "Syntax: COPY [ switches ] file1 file2", |
| " Copies the source file (file1) to the destination file (file2). If file2", |
| " is a directory, file1 can contain wildcards to denote a group of files to", |
| " be copied to the given directory. Switches:", |
| " ", |
| " /LIST", |
| " Print the filenames and status while copying. Synonyms: /LOG, /VERBOSE", |
| " ", |
| " /NOLIST", |
| " Copy silently (default). Synonyms: /NOLOG, /QUIET", |
| " ", |
| " /SWAP-BYTES", |
| " Swap bytes while copying.", |
| #ifndef NOSPL |
| " ", |
| " /FROMB64", |
| " Convert from Base64 encoding while copying.", |
| " ", |
| " /TOB64", |
| " Convert to Base64 encoding while copying.", |
| #endif /* NOSPL */ |
| "" |
| }; |
| #endif /* ZCOPY */ |
| |
| #ifndef NOFRILLS |
| static char * hmxxren[] = { |
| #ifdef LOCUS |
| " If LOCUS is REMOTE or LOCUS is AUTO and you have an FTP connection,", |
| " this command is equivalent to REMOTE RENAME (RREN). Otherwise:", |
| " ", |
| #endif /* LOCUS */ |
| "Syntax: RENAME [ switches ] name1 name2", |
| " Renames the source file (name1) to the target name2. If name2 is a", |
| " directory, name1 is allowed to contain wildcards, and the file(s) matching", |
| " name1 are moved to directory name2, subject to rules of the underlying", |
| " operating system regarding renaming across disk boundaries, etc. If name2", |
| " is not a directory, name1 may not include wildcards, and the file whose", |
| " name is name1 is renamed to name2. Switches:", |
| " ", |
| " /LIST", |
| " Print the filenames and status while renaming. Synonyms: /LOG, /VERBOSE", |
| " ", |
| " /NOLIST", |
| " Rename silently (default). Synonyms: /NOLOG, /QUIET", |
| "" |
| }; |
| #endif /* NOFRILLS */ |
| |
| static char * |
| cmdlhlp[] = { |
| "Command-line options are given after the program name in the system", |
| "command that you use to start Kermit. Example:", |
| " ", |
| " kermit -i -s oofa.exe", |
| " ", |
| "tells Kermit to send (-s) the file oofa.exe in binary (-i) mode.", |
| " ", |
| "Command-line options are case-sensitive; \"-s\" is different from \"-S\".", |
| #ifdef VMS |
| "In VMS, uppercase options must be enclosed in doublequotes: ", |
| " ", |
| " $ kermit \"-Y\" \"-S\" -s oofa.txt ", |
| #endif /* VMS */ |
| " ", |
| "If any \"action options\" are included on the command line, Kermit exits", |
| "after executing its command-line options. If -S is included, or no action", |
| "options were given, Kermit enters its interactive command parser and", |
| "issues its prompt.", |
| " ", |
| "Command-line options are single characters preceded by dash (-). Some", |
| "require an \"argument,\" others do not. If an argument contains spaces, it", |
| "must be enclosed in doublequotes:", |
| " ", |
| " kermit -s \"filename with spaces\"", |
| " ", |
| "\ |
| An option that does not require an argument can be bundled with other options:" |
| , |
| " ", |
| " kermit -Qis oofa.exe", |
| " ", |
| "Exceptions to the rules:", |
| " ", |
| " . If the first command-line option is a filename, Kermit executes commands", |
| " from the file. Additional command-line options can follow the filename.", |
| " ", |
| " . The special option \"=\" (equal sign) or \"--\" (double hyphen) means to", |
| " treat the rest of the command line as data, rather than commands; this", |
| " data is placed in the argument vector array, \\&@[], along with the other", |
| " items on the command line, and also in the top-level \\%1..\\%9 variables." |
| , |
| " ", |
| #ifdef KERBANG |
| " . A similar option \"+\" (plus sign) means: the name of a Kermit script", |
| " file follows. This file is to be executed, and its name assigned to \\%0", |
| " and \\&_[0]. All subsequent command-line arguments are to be ignored by", |
| " Kermit but made available to the script as \\%1, \\%2, ..., as well as", |
| " in the argument-vector arrays. The initialization file is not executed", |
| " automatically in this case.", |
| " ", |
| #endif /* KERBANG */ |
| " . The -s option can accept multiple filenames, separated by spaces.", |
| " ", |
| " . the -j and -J options allow an optional second argument, the TCP port", |
| " name or number.", |
| " ", |
| "Type \"help options all\" to list all the command-line options.", |
| "Type \"help option x\" to see the help message for option x.", |
| " ", |
| "Kermit also offers a selection of \"extended command-line\" options.", |
| "These begin with two dashes, followed by a keyword, and then, if the option", |
| "has arguments, a colon (:) or equal sign (=) followed by the argument.", |
| "Unlike single-letter options, extended option keywords aren't case sensitive", |
| "and they can be abbreviated to any length that still distinguishes them from", |
| "other extended-option keywords. Example:", |
| " ", |
| " kermit --banner:oofa.txt", |
| " ", |
| "which designates the file oofa.txt to be printed upon startup, rather than", |
| "the built-in banner (greeting) text. To obtain a list of available", |
| "extended options, type \"help extended-options ?\". To get help about all", |
| "extended options, type \"help extended-options\". To get help about a", |
| "particular extended option, type \"help extended-option xxx\", where \"xxx\"", |
| "is the option keyword.", |
| #ifdef COMMENT |
| #ifndef NOIKSD |
| " ", |
| "At present, most of the extended options apply only to the Internet Kermit", |
| "Service Daemon (IKSD). Type \"help iksd\" for details.", |
| #endif /* NOIKSD */ |
| #endif /* COMMENT */ |
| "" |
| }; |
| |
| #ifndef NOHELP |
| #ifndef NOCMDL |
| int |
| doxopts() { |
| extern char * xopthlp[], * xarghlp[]; |
| extern struct keytab xargtab[]; |
| extern int nxargs; |
| int i, x, y, n = 0; |
| #ifdef CK_TTGWSIZ |
| #ifdef OS2 |
| ttgcwsz(); |
| #else /* OS2 */ |
| /* Check whether window size changed */ |
| if (ttgwsiz() > 0) { |
| if (tt_rows > 0 && tt_cols > 0) { |
| cmd_rows = tt_rows; |
| cmd_cols = tt_cols; |
| } |
| } |
| #endif /* OS2 */ |
| #endif /* CK_TTGWSIZ */ |
| y = cmkey(xargtab, |
| nxargs, |
| "Extended argument without the \"--\" prefix", |
| "", |
| xxstring |
| ); |
| if (y == -3) { |
| printf("\n"); |
| if ((x = cmcfm()) < 0) |
| return(x); |
| for (i = 0; i <= XA_MAX; i++) { |
| if (xopthlp[i]) { |
| printf("%s\n",xopthlp[i]); |
| printf(" %s\n",xarghlp[i]); |
| printf("\n"); |
| n += 3; |
| if (n > (cmd_rows - 6)) { |
| if (!askmore()) |
| return(0); |
| else |
| n = 0; |
| } |
| } |
| } |
| return(1); |
| } else if (y < 0) |
| return(y); |
| if ((x = cmcfm()) < 0) |
| return(x); |
| printf("\n%s\n",xopthlp[y]); |
| printf(" %s\n\n",xarghlp[y]); |
| return(1); |
| } |
| |
| int |
| dohopts() { |
| int i, n, x, y, z, all = 0, msg = 0; |
| char *s; |
| extern char *opthlp[], *arghlp[]; |
| extern char * xopthlp[], * xarghlp[]; |
| extern int optact[]; |
| if ((x = cmtxt("A command-line option character,\n\ |
| or the word ALL, or carriage return for an overview", |
| "", &s, xxstring)) < 0) |
| return(x); |
| if (!*s) |
| msg = 1; |
| else if (!strcmp(s,"all") || (!strcmp(s,"ALL"))) |
| all = 1; |
| else if (*s == '-') /* Be tolerant of leading hyphen */ |
| s++; |
| if (!all && (int)strlen(s) > 1) { |
| printf("?A single character, please, or carriage to list them all.\n"); |
| return(-9); |
| } |
| if (all) { |
| y = 33; |
| z = 127; |
| } else { |
| y = *s; |
| z = (y == 0) ? 127 : y; |
| if (y == 0) y = 33; |
| } |
| #ifdef CK_TTGWSIZ |
| #ifdef OS2 |
| ttgcwsz(); |
| #else /* OS2 */ |
| /* Check whether window size changed */ |
| if (ttgwsiz() > 0) { |
| if (tt_rows > 0 && tt_cols > 0) { |
| cmd_rows = tt_rows; |
| cmd_cols = tt_cols; |
| } |
| } |
| #endif /* OS2 */ |
| #endif /* CK_TTGWSIZ */ |
| printf("\n"); |
| for (i = 0, n = 1; msg != 0 && *cmdlhlp[i]; i++) { |
| printf("%s\n",cmdlhlp[i]); |
| if (++n > (cmd_rows - 3)) { |
| if (!askmore()) |
| return(0); |
| else |
| n = 0; |
| } |
| } |
| if (all) { |
| printf("The following command-line options are available:\n\n"); |
| n += 2; |
| } |
| for (i = y; msg == 0 && i <= z; i++) { |
| if (!opthlp[i]) |
| continue; |
| if (arghlp[i]) { /* Option with arg */ |
| printf(" -%c <arg>%s\n",(char)i,(optact[i]?" (action option)":"")); |
| |
| printf(" %s\n",opthlp[i]); |
| printf(" Argument: %s\n\n",arghlp[i]); |
| x = 4; |
| } else { /* Option without arg */ |
| printf(" -%c %s%s\n", |
| (char)i, opthlp[i], |
| (optact[i]?" (action option)":"") |
| ); |
| printf(" Argument: (none)\n\n"); |
| x = 3; |
| } |
| n += x; |
| if (n > (cmd_rows - x - 1)) { |
| if (!askmore()) |
| return(0); |
| else |
| n = 0; |
| } |
| } |
| if (all) { /* Jeff, Jan 2003 */ |
| printf("\n"); |
| if (++n >= cmd_rows) { |
| if (!askmore()) |
| return(0); |
| else |
| n = 0; |
| } |
| printf("The following extended options are available:\n"); |
| if (++n >= cmd_rows) { |
| if (!askmore()) |
| return(0); |
| else |
| n = 0; |
| } |
| printf("\n"); |
| if (++n >= cmd_rows) { |
| if (!askmore()) |
| return(0); |
| else |
| n = 0; |
| } |
| for (i = 0; i <= XA_MAX; i++) { |
| if (xopthlp[i]) { |
| printf("%s\n",xopthlp[i]); |
| printf(" %s\n",xarghlp[i]); |
| printf("\n"); |
| n += 3; |
| if (n > (cmd_rows - 4)) { |
| if (!askmore()) |
| return(0); |
| else |
| n = 0; |
| } |
| } |
| } |
| } |
| return(1); |
| } |
| #endif /* NOCMDL */ |
| #endif /* NOHELP */ |
| |
| #ifdef CKCHANNELIO |
| static char * hxxfile[] = { |
| "Syntax: FILE <subcommand> [ switches ] <channel> [ <data> ]", |
| " Opens, closes, reads, writes, and manages local files.", |
| " ", |
| "The FILE commands are:", |
| " ", |
| " FILE OPEN (or FOPEN) -- Open a local file.", |
| " FILE CLOSE (or FCLOSE) -- Close an open file.", |
| " FILE READ (or FREAD) -- Read data from an open file.", |
| " FILE WRITE (or FWRITE) -- Write data to an open file.", |
| " FILE LIST (or FLIST) -- List open files.", |
| " FILE STATUS (or FSTATUS) -- Show status of a channel.", |
| " FILE REWIND (or FREWIND) -- Rewind an open file", |
| " FILE COUNT (or FCOUNT) -- Count lines or bytes in an open file", |
| " FILE SEEK (or FSEEK) -- Seek to specified spot in an open file.", |
| " FILE FLUSH (or FFLUSH) -- Flush output buffers for an open file.", |
| " ", |
| "Type HELP FILE OPEN or HELP FOPEN for details about FILE OPEN;", |
| "type HELP FILE CLOSE or HELP FCLOSE for details about FILE CLOSE, and so on.", |
| " ", |
| "The following variables are related to the FILE command:", |
| " ", |
| " \\v(f_max) -- Maximum number of files that can be open at once", |
| " \\v(f_error) -- Completion code of most recent FILE command or function", |
| " \\v(f_count) -- Result of most recent FILE COUNT command", |
| " ", |
| "The following functions are related to the FILE command:", |
| " ", |
| " \\F_eof() -- Check if channel is at EOF", |
| " \\F_pos() -- Get channel read/write position (byte number)", |
| " \\F_line() -- Get channel read/write position (line number)", |
| " \\F_handle() -- Get file handle", |
| " \\F_status() -- Get channel status", |
| " \\F_getchar() -- Read character", |
| " \\F_getline() -- Read line", |
| " \\F_getblock() -- Read block", |
| " \\F_putchar() -- Write character", |
| " \\F_putline() -- Write line", |
| " \\F_putblock() -- Write block", |
| " \\F_errmsg() -- Error message from most recent FILE command or function", |
| " ", |
| "Type HELP <function-name> for information about each one.", |
| "" |
| }; |
| |
| static char * hxxf_op[] = { |
| "Syntax: FILE OPEN [ switches ] <variable> <filename>", |
| " Opens the file indicated by <filename> in the mode indicated by the", |
| " switches, if any, or if no switches are included, in read-only mode, and", |
| " assigns a channel number for the file to the given variable.", |
| " Synonym: FOPEN. Switches:", |
| " ", |
| "/READ", |
| " Open the file for reading.", |
| " ", |
| "/WRITE", |
| " Open the file for writing. If /READ was not also specified, this creates", |
| " a new file. If /READ was specifed, the existing file is preserved, but", |
| " writing is allowed. In both cases, the read/write pointer is initially", |
| " at the beginning of the file.", |
| " ", |
| "/APPEND", |
| " If the file does not exist, create a new file and open it for writing.", |
| " If the file exists, open it for writing, but with the write pointer", |
| " positioned at the end.", |
| " ", |
| "/BINARY", |
| #ifdef VMS |
| " Opens the file in binary mode to inhibit end-of-line conversions.", |
| #else |
| #ifdef OS2 |
| " Opens the file in binary mode to inhibit end-of-line conversions.", |
| #else |
| #ifdef UNIX |
| " This option is ignored in UNIX.", |
| #else |
| " This option is ignored on this platform.", |
| #endif /* UNIX */ |
| #endif /* OS2 */ |
| #endif /* VMS */ |
| " ", |
| "Switches can be combined in an way that makes sense and is supported by the", |
| "underlying operating system.", |
| "" |
| }; |
| |
| static char * hxxf_cl[] = { |
| "Syntax: FILE CLOSE <channel>", |
| " Closes the file on the given channel if it was open.", |
| " Also see HELP FILE OPEN. Synonym: FCLOSE.", |
| "" |
| }; |
| |
| static char * hxxf_fl[] = { |
| "Syntax: FILE FLUSH <channel>", |
| " Flushes output buffers on the given channel if it was open, forcing", |
| " all material previously written to be committed to disk. Synonym: FFLUSH.", |
| " Also available as \\F_flush().", |
| "" |
| }; |
| |
| static char * hxxf_li[] = { |
| "Syntax: FILE LIST", |
| " Lists the channel number, name, modes, and position of each file opened", |
| " with FILE OPEN. Synonym: FLIST.", |
| "" |
| }; |
| |
| static char * hxxf_re[] = { |
| "Syntax: FILE READ [ switches ] <channel> [ <variable> ]", |
| " Reads data from the file on the given channel number into the <variable>,", |
| " if one was given; if no variable was given, the result is printed on", |
| " the screen. The variable should be a macro name rather than a \\%x", |
| " variable or array element if you want backslash characters in the file to", |
| " be taken literally. Synonym: FREAD. Switches:", |
| " ", |
| "/LINE", |
| " Specifies that a line of text is to be read. A line is defined according", |
| " to the underlying operating system's text-file format. For example, in", |
| " UNIX a line is a sequence of characters up to and including a linefeed.", |
| " The line terminator (if any) is removed before assigning the text to the", |
| " variable. If no switches are included with the FILE READ command, /LINE", |
| " is assumed.", |
| " ", |
| "/SIZE:number", |
| " Specifies that the given number of bytes (characters) is to be read.", |
| " This gives a semblance of \"record i/o\" for files that do not necessarily", |
| " contain lines. The resulting block of characters is assigned to the", |
| " variable without any editing.", |
| " ", |
| "/CHARACTER", |
| " Equivalent to /SIZE:1. If FILE READ /CHAR succeeds but the <variable> is", |
| " empty, this indicates a NUL byte was read.", |
| " ", |
| "/TRIM", |
| " Tells Kermit to trim trailing whitespace when used with /LINE. Ignored", |
| " if used with /CHAR or /SIZE.", |
| " ", |
| "/UNTABIFY", |
| " Tells Kermit to convert tabs to spaces (assuming tabs set every 8 spaces)", |
| " when used with /LINE. Ignored if used with /CHAR or /SIZE.", |
| " ", |
| "Synonym: FREAD.", |
| "Also available as \\F_getchar(), \\F_getline(), \\F_getblock().", |
| "" |
| }; |
| |
| static char * hxxf_rw[] = { |
| "Syntax: FILE REWIND <channel>", |
| " If the channel is open, moves the read/write pointer to the beginning of", |
| " the file. Equivalent to FILE SEEK <channel> 0. Synonym: FREWIND.", |
| " Also available as \\F_rewind().", |
| "" |
| }; |
| |
| static char * hxxf_se[] = { |
| "Syntax: FILE SEEK [ switches ] <channel> { [{+,-}]<number>, EOF }", |
| " Switches are /BYTE, /LINE, /RELATIVE, ABSOLUTE.", |
| " Moves the file pointer for this file to the given position in the", |
| " file. Subsequent FILE READs or WRITEs will take place at that position.", |
| " If neither the /RELATIVE nor /ABSOLUTE switch is given, an unsigned", |
| " <number> is absolute; a signed number is relative. EOF means to move to", |
| " the end of the file. Synonym: FSEEK. Also available as \\F_seek().", |
| "" |
| }; |
| |
| static char * hxxf_st[] = { |
| "Syntax: FILE STATUS <channel>", |
| " If the channel is open, this command shows the name of the file, the", |
| " switches it was opened with, and the current read/write position.", |
| " Synonym: FSTATUS", |
| "" |
| }; |
| |
| static char * hxxf_co[] = { |
| "Syntax: FILE COUNT [ { /BYTES, /LINES, /LIST, /NOLIST } ] <channel>", |
| " If the channel is open, this command prints the nubmer of bytes (default)", |
| " or lines in the file if at top level or if /LIST is included; if /NOLIST", |
| " is given, the result is not printed. In all cases the result is assigned", |
| " to \\v(f_count). Synonym: FCOUNT", |
| "" |
| }; |
| |
| static char * hxxf_wr[] = { |
| "FILE WRITE [ switches ] <channel> <text>", |
| " Writes the given text to the file on the given channel number. The <text>", |
| " can be literal text or a variable, or any combination. If the text might", |
| " contain leading or trailing spaces, it must be enclosed in braces if you", |
| " want to preserve them. Synonym: FWRITE. Switches:", |
| " ", |
| "/LINE", |
| " Specifies that an appropriate line terminator is to be added to the", |
| " end of the <text>. If no switches are included, /LINE is assumed.", |
| " ", |
| "/SIZE:number", |
| " Specifies that the given number of bytes (characters) is to be written.", |
| " If the given <text> is longer than the requested size, it is truncated;", |
| " if is shorter, it is padded according /LPAD and /RPAD switches. Synonym:", |
| " /BLOCK.", |
| " ", |
| "/LPAD[:value]", |
| " If /SIZE was given, but the <text> is shorter than the requested size,", |
| " the text is padded on the left with sufficient copies of the character", |
| " whose ASCII value is given to write the given length. If no value is", |
| " specified, 32 (the code for Space) is used. The value can also be 0 to", |
| " write the indicated number of NUL bytes. If /SIZE was not given, this", |
| " switch is ignored.", |
| " ", |
| "/RPAD[:value]", |
| " Like LPAD, but pads on the right.", |
| " ", |
| "/STRING", |
| " Specifies that the <text> is to be written as-is, with no terminator added." |
| , |
| " ", |
| "/CHARACTER", |
| " Specifies that one character should be written. If the <text> is empty or", |
| " not given, a NUL character is written; otherwise the first character of", |
| " <text> is given.", |
| " ", |
| "Synonym FWRITE.", |
| "Also available as \\F_putchar(), \\F_putline(), \\F_putblock().", |
| "" |
| }; |
| |
| static int |
| dohfile(cx) int cx; { |
| extern struct keytab fctab[]; |
| extern int nfctab; |
| int x; |
| if (cx == XXFILE) { /* FILE command was given */ |
| /* Get subcommand */ |
| if ((cx = cmkey(fctab,nfctab,"Operation","",xxstring)) < 0) { |
| if (cx == -3) { |
| if ((x = cmcfm()) < 0) |
| return(x); |
| cx = XXFILE; |
| } else |
| return(cx); |
| } |
| if ((x = cmcfm()) < 0) |
| return(x); |
| switch (cx) { |
| case FIL_CLS: cx = XXF_CL; break; |
| case FIL_FLU: cx = XXF_FL; break; |
| case FIL_LIS: cx = XXF_LI; break; |
| case FIL_OPN: cx = XXF_OP; break; |
| case FIL_REA: cx = XXF_RE; break; |
| case FIL_REW: cx = XXF_RW; break; |
| case FIL_SEE: cx = XXF_SE; break; |
| case FIL_STA: cx = XXF_ST; break; |
| case FIL_WRI: cx = XXF_WR; break; |
| case FIL_COU: cx = XXF_CO; break; |
| } |
| } |
| switch (cx) { |
| case XXFILE: return(hmsga(hxxfile)); |
| case XXF_CL: return(hmsga(hxxf_cl)); |
| case XXF_FL: return(hmsga(hxxf_fl)); |
| case XXF_LI: return(hmsga(hxxf_li)); |
| case XXF_OP: return(hmsga(hxxf_op)); |
| case XXF_RE: return(hmsga(hxxf_re)); |
| case XXF_RW: return(hmsga(hxxf_rw)); |
| case XXF_SE: return(hmsga(hxxf_se)); |
| case XXF_ST: return(hmsga(hxxf_st)); |
| case XXF_WR: return(hmsga(hxxf_wr)); |
| case XXF_CO: return(hmsga(hxxf_co)); |
| default: |
| return(-2); |
| } |
| } |
| #endif /* CKCHANNELIO */ |
| |
| int |
| dohlp(xx) int xx; { |
| int x,y; |
| |
| debug(F101,"DOHELP xx","",xx); |
| if (xx < 0) return(xx); |
| |
| #ifdef NOHELP |
| if ((x = cmcfm()) < 0) |
| return(x); |
| printf("\n%s, Copyright (C) 1985, 2004,",versio); |
| #ifndef NOIKSD |
| if (inserver) |
| return(hmsga(tophlpi)); |
| else |
| #endif /* IKSD */ |
| return(hmsga(tophlp)); |
| |
| #else /* help is available */ |
| |
| if (helpfile) |
| return(dotype(helpfile,xaskmore,0,0,NULL,0,NULL,0,0,NULL,0)); |
| |
| #ifdef CKCHANNELIO |
| if (xx == XXFILE) |
| return(dohfile(xx)); |
| else if (xx == XXF_RE || xx == XXF_WR || xx == XXF_OP || |
| xx == XXF_CL || xx == XXF_SE || xx == XXF_RW || |
| xx == XXF_FL || xx == XXF_LI || xx == XXF_ST || xx == XXF_CO) |
| return(dohfile(xx)); |
| #endif /* CKCHANNELIO */ |
| |
| switch (xx) { |
| |
| #ifndef NOSPL |
| case XXASS: /* ASSIGN */ |
| return(hmsga(hxxass)); |
| |
| case XXASK: /* ASK */ |
| case XXASKQ: /* ASKQ */ |
| return(hmsga(hxxask)); |
| |
| case XXAPC: |
| return(hmsg("Syntax: APC text\n\ |
| Echoes the text within a VT220/320/420 Application Program Command.")); |
| #endif /* NOSPL */ |
| |
| #ifndef NOFRILLS |
| case XXBUG: |
| return(hmsg("Describes how to get technical support.")); |
| #endif /* NOFRILLS */ |
| |
| #ifndef NOSPL |
| case XXBEEP: |
| #ifdef OS2 |
| return(hmsg("Syntax: BEEP [ { ERROR, INFORMATION, WARNING } ]\n\ |
| Generates a bell according to the current settings. If SET BELL is set to\n\ |
| \"system-sounds\" then the appropriate System Sound will be generated.\n\ |
| Default is INFORMATION.")); |
| #else /* OS2 */ |
| return(hmsg("Syntax: BEEP\n\ |
| Sends a BEL character to your terminal.")); |
| #endif /* OS2 */ |
| #endif /* NOSPL */ |
| |
| case XXBYE: /* BYE */ |
| return(hmsg(hmxxbye)); |
| |
| case XXCHK: /* check */ |
| return(hmsg("\ |
| Syntax: CHECK name\n\ |
| Checks\ |
| to see if the named feature is included in this version of Kermit.\n\ |
| To list the features you can check, type \"check ?\".")); |
| |
| #ifndef NOFRILLS |
| case XXCLE: /* clear */ |
| return(hmsga(hmxxcle)); |
| #endif /* NOFRILLS */ |
| |
| case XXCLO: /* close */ |
| return(hmsga(hmxxclo)); |
| |
| case XXCOM: /* comment */ |
| #ifndef STRATUS /* Can't use # for comments in Stratus VOS */ |
| return(hmsg("\ |
| Syntax: COMMENT text\n\ |
| Example: COMMENT - this is a comment.\n\ |
| Introduces a comment. Beginning of command line only. Commands may also\n\ |
| have trailing comments, introduced by ; or #.")); |
| #else |
| return(hmsg("\ |
| Syntax: COMMENT text\n\ |
| Example: COMMENT - this is a comment.\n\ |
| Introduces a comment. Beginning of command line only. Commands may also\n\ |
| have trailing comments, introduced by ; (semicolon).")); |
| #endif /* STRATUS */ |
| |
| #ifndef NOLOCAL |
| case XXCON: /* CONNECT */ |
| case XXCQ: /* CQ == CONNECT /QUIETLY */ |
| hmsga(hmxxcon); |
| printf("Your escape character is Ctrl-%c (ASCII %d, %s)\r\n", |
| ctl(escape), escape, (escape == 127 ? "DEL" : ccntab[escape])); |
| return(0); |
| #endif /* NOLOCAL */ |
| |
| #ifdef ZCOPY |
| case XXCPY: |
| return(hmsga(hmxxcpy)); |
| #endif /* ZCOPY */ |
| |
| #ifdef NT |
| case XXLINK: |
| return(hmsg( |
| " LINK source destination\n\ |
| creates a hard link to the file specified by source to the filename\n\ |
| specified by destination. Hard links are only supported on NTFS.\n\ |
| destination can either be a filename or a directory. source may\n\ |
| contain wildcards if destination is a directory.")); |
| #endif /* NT */ |
| |
| #ifndef NOFRILLS |
| case XXLREN: /* LRENAME */ |
| return(hmsg( |
| " LRENAME is an alias for the RENAME command forcing it to execute\n\ |
| on the local computer. Also see: RENAME, RRENAME, SET LOCUS.")); |
| |
| case XXREN: |
| return(hmsga(hmxxren)); |
| #endif /* NOFRILLS */ |
| |
| case XXCDUP: /* CDUP */ |
| case XXLCDU: |
| return(hmsg( |
| "Change working directory to the one just above the current one.")); |
| |
| case XXLCWD: |
| return(hmsg( |
| " LCD (LCWD) is an alias for the CD (CWD) command forcing it to execute\n\ |
| on the local computer. Also see: CD, CDUP, RCD, SET LOCUS.")); |
| |
| case XXCWD: /* CD / CWD */ |
| return(hmsga(hmxxcwd)); |
| |
| #ifndef NOSPL |
| case XXKCD: |
| return(hmsga(hmxxkcd)); |
| |
| case XXARRAY: |
| case XXDCL: /* DECLARE */ |
| case XXSORT: |
| return(hmsga(hxxdcl)); |
| |
| case XXDEF: /* DEFINE */ |
| #ifndef NOSPL |
| if (hlptok) /* What they actually typed... */ |
| if (hlptok[0] == '.') |
| return(hmsga(hxxdot)); |
| #endif /* NOSPL */ |
| return(hmsga(hxxdef)); |
| |
| case XXUNDEF: /* UNDEFINE */ |
| return(hmsg("Syntax: UNDEFINE variable-name\n\ |
| Undefines a macro or variable.")); |
| #endif /* NOSPL */ |
| |
| #ifndef NOFRILLS |
| case XXLDEL: |
| return(hmsg( |
| " LDELETE is an alias for the DELETE command forcing it to execute\n\ |
| on the local computer. Also see: DELETE, RDELETE, SET LOCUS.")); |
| |
| case XXDEL: /* delete */ |
| return(hmsga(hmxxdel)); |
| #endif /* NOFRILLS */ |
| |
| #ifndef NODIAL |
| case XXDIAL: /* DIAL, etc... */ |
| return(hmsga(hxxdial)); |
| |
| case XXPDIA: /* PDIAL */ |
| return(hmsg("Syntax: PDIAL phonenumber\n\ |
| Partially dials a phone number. Like DIAL but does not wait for carrier\n\ |
| or CONNECT message.")); |
| |
| case XXRED: |
| return(hmsg("Redial the number given in the most recent DIAL commnd.")); |
| |
| case XXANSW: /* ANSWER */ |
| return(hmsga(hxxansw)); |
| |
| case XXLOOK: /* LOOKUP number in directory */ |
| return(hmsga(hxxlook)); |
| #endif /* NODIAL */ |
| |
| case XXLDIR: /* LDIRECTORY */ |
| return(hmsg( |
| " LDIRIRECTORY is an alias for the DIRECTORY command forcing it to execute\n\ |
| on the local computer. Also see: DIRECTORY, SET LOCUS, RDIRECTORY.")); |
| |
| case XXDIR: /* DIRECTORY */ |
| return(hmsga(hmxxdir)); |
| |
| case XXLMKD: /* LMKDIR */ |
| return(hmsg( |
| " LMKDIR is an alias for the MKDIR command forcing it to execute\n\ |
| on the local computer. Also see: MKDIR, RMKDIR, SET LOCUS.")); |
| |
| case XXMKDIR: /* MKDIR */ |
| return(hmsg("Creates a directory. Also see LRMDIR, RRMDIR, SET LOCUS.")); |
| |
| case XXLRMD: /* LRMDIR */ |
| return(hmsg( |
| " LRMDIR is an alias for the RMDIR command forcing it to execute\n\ |
| on the local computer. Also see: RMDIR, RRMDIR, SET LOCUS.")); |
| |
| case XXRMDIR: /* RMDIR */ |
| return(hmsg("Removes a directory. Also see LRMDIR, RRMDIR, SET LOCUS.")); |
| |
| case XXLS: |
| #ifdef UNIXOROSK |
| return(hmsg("Syntax: LS [ args ]\n\ |
| Runs \"ls\" with the given arguments.")); |
| #else |
| return(hmsga(hmxxdir)); |
| #endif /* UNIXOROSK */ |
| |
| #ifndef NOSERVER |
| #ifndef NOFRILLS |
| case XXDIS: |
| return(hmsg("Syntax: DISABLE command\n\ |
| Security for the Kermit server. Prevents the client Kermit program from\n\ |
| executing the named REMOTE command, such as CD, DELETE, RECEIVE, etc.")); |
| #endif /* NOFRILLS */ |
| #endif /* NOSERVER */ |
| |
| #ifndef NOSPL |
| case XXDO: /* do */ |
| return(hmsg("Syntax: [ DO ] macroname [ arguments ]\n\ |
| Executes a macro that was defined with the DEFINE command. The word DO\n\ |
| can be omitted. Trailing argument words, if any, are automatically\n\ |
| assigned to the macro argument variables \\%1 through \\%9.")); |
| #endif /* NOSPL */ |
| |
| #ifndef NOSPL |
| case XXDEC: |
| return(hmsga(hxxdec)); |
| #endif /* NOSPL */ |
| |
| case XXECH: /* echo */ |
| return(hmsg("Syntax: ECHO text\n\ |
| Displays the text on the screen, followed by a line terminator. The ECHO\n\ |
| text may contain backslash codes. Example: ECHO \\7Wake up!\\7. Also see\n\ |
| XECHO and WRITE SCREEN.")); |
| |
| case XXXECH: /* xecho */ |
| return(hmsg("Syntax: XECHO text\n\ |
| Just like ECHO but does not add a line terminator to the text. See ECHO.")); |
| |
| case XXVOID: |
| return(hmsg("Syntax: VOID text\n\ |
| Like ECHO but doesn't print anything; can be used to invoke functions\n\ |
| when you don't need to display or use their results.")); |
| |
| #ifndef NOSERVER |
| #ifndef NOFRILLS |
| case XXENA: |
| return(hmsg("Syntax: ENABLE capability\n\ |
| For use with server mode. Allows the client Kermit program access to the\n\ |
| named capability, such as CD, DELETE, RECEIVE, etc. Opposite of DISABLE.")); |
| #endif /* NOFRILLS */ |
| #endif /* NOSERVER */ |
| |
| #ifndef NOSPL |
| case XXEND: /* end */ |
| return(hmsg("Syntax: END [ number [ message ] ]\n\ |
| Exits from the current macro or TAKE file, back to wherever invoked from.\n\ |
| Number is return code. Message, if given, is printed.")); |
| |
| case XXEVAL: /* evaluate */ |
| return(hmsga(hmxxeval)); |
| #endif /* NOSPL */ |
| |
| #ifndef NOFRILLS |
| case XXERR: /* e-packet */ |
| return(hmsg("Syntax: E-PACKET\n\ |
| Sends an Error packet to the other Kermit.")); |
| #endif /* NOFRILLS */ |
| |
| case XXEXI: /* exit */ |
| case XXQUI: |
| return(hmsga(hmxxexit)); |
| |
| case XXFIN: |
| return(hmsg("Syntax: FINISH\n\ |
| Tells the remote Kermit server to shut down without logging out.")); |
| |
| #ifndef NOSPL |
| case XXFOR: |
| return(hmsga(forhlp)); |
| #endif /* NOSPL */ |
| |
| case XXGET: |
| return(hmsga(hmxxget)); |
| case XXMGET: |
| return(hmsga(hmxxmget)); |
| |
| #ifndef NOSPL |
| #ifndef NOFRILLS |
| case XXGOK: |
| return(hmsg("Syntax: GETOK [ switches ] prompt\n\ |
| Prints the prompt, makes user type 'yes', 'no', or 'ok', and sets SUCCESS\n\ |
| or FAILURE accordingly. The optional switches are the same as for ASK.")); |
| #endif /* NOFRILLS */ |
| #endif /* NOSPL */ |
| |
| #ifndef NOSPL |
| case XXGOTO: |
| return(hmsg("Syntax: GOTO label\n\ |
| In a TAKE file or macro, go to the given label. A label is a word on the\n\ |
| left margin that starts with a colon (:). Example:\n\n\ |
| :oofa\n\ |
| echo Hello!\n\ |
| goto oofa")); |
| #endif /* NOSPL */ |
| |
| case XXHAN: |
| return(hmsg("Syntax: HANGUP\n\ |
| Hang up the phone or network connection.")); |
| |
| case XXHLP: |
| /* |
| We get confirmation here, even though we do it again in hmsga(), to prevent |
| the Copyright message from being printed prematurely. This doesn't do any |
| harm, because the first call to cmcfm() sets cmflgs to 1, making the second |
| call return immediately. |
| */ |
| if ((x = cmcfm()) < 0) |
| return(x); |
| |
| if (helpfile) { |
| printf("\n%s, Copyright (C) 1985, 2004,\n\ |
| Trustees of Columbia University in the City of New York.\n\n",versio); |
| return(dotype(helpfile,xaskmore,3,0,NULL,0,NULL,0,0,NULL,0)); |
| } else { |
| printf("\n%s, Copyright (C) 1985, 2004,",versio); |
| return(hmsga(tophlp)); |
| } |
| |
| case XXINT: |
| #ifdef OS2 |
| return(hmsg("Give a brief introduction to C-Kermit.")); |
| #else |
| return(hmsg("Give a brief introduction to Kermit 95.")); |
| #endif /* OS2 */ |
| |
| #ifndef NOSPL |
| case XXIF: |
| return(hmsga(ifhlp)); |
| |
| case XXINC: |
| return(hmsga(hxxinc)); |
| |
| case XXINP: |
| return(hmsga(hxxinp)); |
| #endif /* NOSPL */ |
| |
| #ifdef CK_MINPUT |
| case XXMINP: |
| return(hmsga(hmxxminp)); |
| #endif /* CK_MINPUT */ |
| |
| #ifndef NOSPL |
| case XXREI: |
| return(hmsg("Syntax: REINPUT n string\n\ |
| Looks for the string in the text that has recently been INPUT, set SUCCESS\n\ |
| or FAILURE accordingly. Timeout, n, must be specified but is ignored.")); |
| #endif /* NOSPL */ |
| |
| #ifndef NOSPL |
| case XXLBL: |
| return(hmsg("\ |
| Introduces a label, like :loop, for use with GOTO in TAKE files or macros.\n\ |
| See GOTO.")); |
| #endif /* NOSPL */ |
| |
| case XXLOG: |
| return(hmsga(hmxxlg)); |
| |
| #ifndef NOSCRIPT |
| case XXLOGI: |
| return(hmsga(hmxxlogi)); |
| #endif |
| |
| #ifndef NOFRILLS |
| case XXMAI: |
| return(hmsg("Syntax: MAIL filename address\n\ |
| Equivalent to SEND /MAIL:address filename.")); |
| #endif /* NOFRILLS */ |
| |
| #ifndef NOMSEND |
| case XXMSE: |
| return(hmsga(hmxxmse)); |
| |
| case XXADD: |
| return(hmsga(hmxxadd)); |
| |
| case XXMMOVE: |
| return(hmsg("MMOVE is exactly like MSEND, except each file that is\n\ |
| sent successfully is deleted after it is sent.")); |
| #endif /* NOMSEND */ |
| |
| #ifndef NOSPL |
| case XXOPE: |
| return(hmsga(openhlp)); |
| #endif /* NOSPL */ |
| |
| case XXNEW: |
| return(hmsg( |
| " Prints news of new features since publication of \"Using C-Kermit\".")); |
| |
| case XXUPD: |
| return(hmsg( |
| " New features are described in the online Kermit 95 manual,\n\ |
| accessible via the MANUAL command.")); |
| |
| #ifndef NOSPL |
| case XXOUT: |
| return(hmsga(hxxout)); |
| #endif /* NOSPL */ |
| |
| #ifdef ANYX25 |
| #ifndef IBMX25 |
| case XXPAD: |
| return(hmsga(hxxpad)); |
| #endif /* IBMX25 */ |
| #endif /* ANYX25 */ |
| |
| #ifndef NOSPL |
| case XXPAU: |
| return(hmsga(hxxpau)); |
| |
| case XXMSL: |
| return(hmsga(hxxmsl)); |
| #endif /* NOSPL */ |
| |
| #ifdef TCPSOCKET |
| case XXPNG: |
| return(hmsg("Syntax: PING [ IP-hostname-or-number ]\n\ |
| Checks if the given IP network host is reachable. Default host is from\n\ |
| most recent SET HOST or TELNET command. Runs system PING program, if any.") |
| ); |
| |
| case XXFTP: |
| #ifdef SYSFTP |
| return(hmsg("Syntax: FTP [ IP-hostname-or-number ]\n\ |
| Makes an FTP connection to the given IP host or, if no host specified, to\n\ |
| the current host. Uses the system's FTP program, if any.")); |
| #else |
| #ifndef NOFTP |
| return(doftphlp()); |
| #endif /* NOFTP */ |
| #endif /* SYSFTP */ |
| #endif /* TCPSOCKET */ |
| |
| #ifndef NOFRILLS |
| case XXPRI: |
| #ifdef UNIX |
| return(hmsg("Syntax: PRINT file [ options ]\n\ |
| Prints the local file on a local printer with the given options. Also see\n\ |
| HELP SET PRINTER.")); |
| #else |
| #ifdef VMS |
| return(hmsg("Syntax: PRINT file [ options ]\n\ |
| Prints the local file on a local printer with the given options. Also see\n\ |
| HELP SET PRINTER.")); |
| #else |
| return(hmsg("Syntax: PRINT file\n\ |
| Prints the local file on a local printer. Also see HELP SET PRINTER.")); |
| #endif /* UNIX */ |
| #endif /* VMS */ |
| #endif /* NOFRILLS */ |
| |
| case XXPWD: |
| case XXLPWD: |
| return(hmsg("Syntax: PWD\n\ |
| Print the name of the current working directory.")); |
| |
| #ifndef NOSPL |
| case XXREA: |
| return(hmsg("Syntax: READ variablename\n\ |
| Reads a line from the currently open READ or !READ file into the variable\n\ |
| (see OPEN).")); |
| #endif /* NOSPL */ |
| |
| #ifndef NOXFER |
| case XXREC: |
| return(hmsga(hmxxrc)); |
| |
| case XXREM: |
| y = cmkey(remcmd,nrmt,"Remote command","",xxstring); |
| return(dohrmt(y)); |
| #endif /* NOXFER */ |
| |
| #ifndef NOSPL |
| case XXRET: |
| return(hmsg("Syntax: RETURN [ value ]\n\ |
| Return from a macro. An optional return value can be given for use with\n\ |
| \\fexecute(macro), which allows macros to be used like functions.")); |
| #endif /* NOSPL */ |
| |
| #ifndef NOXFER |
| case XXSEN: |
| return(hmsga(hmxxsen)); |
| case XXMOVE: |
| return(hmsg("MOVE is exactly like SEND, except each file that is\n\ |
| sent successfully is deleted after it is sent.")); |
| #ifndef NORESEND |
| case XXRSEN: |
| return(hmsg(hmxxrsen)); |
| case XXREGET: |
| return(hmsg(hmxxrget)); |
| case XXPSEN: |
| return(hmsg(hmxxpsen)); |
| #endif /* NORESEND */ |
| |
| #ifndef NOSERVER |
| case XXSER: |
| return(hmsg(hmxxser)); |
| #endif /* NOSERVER */ |
| #endif /* NOXFER */ |
| |
| #ifndef NOJC |
| case XXSUS: |
| return(hmsg("Syntax: SUSPEND or Z\n\ |
| Suspends Kermit. Continue Kermit with the appropriate system command,\n\ |
| such as fg.")); |
| #endif /* NOJC */ |
| |
| case XXSET: |
| y = cmkey(prmtab,nprm,"Parameter","",xxstring); |
| debug(F101,"HELP SET y","",y); |
| return(dohset(y)); |
| |
| #ifndef NOPUSH |
| case XXSHE: |
| if (nopush) { |
| if ((x = cmcfm()) < 0) return(x); |
| printf("Sorry, help not available for \"%s\"\n",cmdbuf); |
| break; |
| } else |
| return(hmsga(hxxshe)); |
| #ifdef CK_REDIR |
| case XXFUN: |
| return(hmsg("Syntax: REDIRECT command\n\ |
| Runs the given local command with its standard input and output redirected\n\ |
| to the current SET LINE or SET HOST communications path.\n\ |
| Synonym: < (Left angle bracket).")); |
| #endif /* CK_REDIR */ |
| |
| #ifdef CK_REXX |
| case XXREXX: |
| return(hmsg("Syntax: REXX text\n\ |
| The text is a Rexx command to be executed. The \\v(rexx) variable is set\n\ |
| to the Rexx command's return value.\n\ |
| To execute a rexx program file, use: REXX call <filename>\n\ |
| Rexx programs may call Kermit functions by placing the Kermit command\n\ |
| in single quotes. For instance: 'set parity none'.")); |
| #endif /* CK_REXX */ |
| #endif /* NOPUSH */ |
| |
| #ifndef NOSHOW |
| case XXSHO: |
| return(hmsg("\ |
| Display current values of various items (SET parameters, variables, etc).\n\ |
| Type SHOW ? for a list of categories.")); |
| #endif /* NOSHOW */ |
| |
| case XXSPA: |
| #ifdef datageneral |
| return(hmsg("\ |
| Display disk usage in current device, directory,\n\ |
| or return space for a specified device, directory.")); |
| #else |
| return(hmsg("Syntax: SPACE\n\ |
| Display disk usage in current device and/or directory")); |
| #endif |
| |
| case XXSTA: |
| return(hmsg("Syntax: STATISTICS [/BRIEF]\n\ |
| Display statistics about most recent file transfer")); |
| |
| #ifndef NOSPL |
| case XXSTO: |
| return(hmsg("Syntax: STOP [ number [ message ] ]\n\ |
| Stop executing the current macro or TAKE file and return immediately to\n\ |
| the Kermit prompt. Number is a return code. Message printed if given.")); |
| #endif /* NOSPL */ |
| |
| case XXTAK: |
| return(hmsga(hmxxtak)); |
| |
| #ifdef TCPSOCKET |
| #ifdef TNCODE |
| case XXIKSD: |
| return(hmsga(hmxxiks)); |
| |
| case XXTEL: |
| return(hmsga(hmxxtel)); |
| |
| case XXTELOP: |
| return(hmsga(hxtopt)); |
| #endif /* TNCODE */ |
| |
| #ifdef RLOGCODE |
| case XXRLOG: |
| return(hmsg("Syntax: RLOGIN [ switches ] [ host [ username ] ]\n\ |
| Equivalent to SET NETWORK TYPE TCP/IP, SET HOST host [ service ] /RLOGIN,\n\ |
| IF SUCCESS CONNECT. If host is omitted, the previous connection (if any)\n\ |
| is resumed. Depending on how Kermit has been built switches may be\n\ |
| available to require Kerberos authentication and DES encryption.")); |
| #endif /* RLOGCODE */ |
| #endif /* TCPSOCKET */ |
| |
| #ifndef NOXMIT |
| case XXTRA: |
| return(hmsga(hxxxmit)); |
| #endif /* NOXMIT */ |
| |
| #ifndef NOFRILLS |
| case XXTYP: |
| return(hmsga(hmxxtyp)); |
| case XXMORE: |
| return(hmsg("Syntax: MORE [ switches ] filename\n\ |
| Equivalent to TYPE /PAGE filename; see HELP TYPE.")); |
| case XXCAT: |
| return(hmsg("Syntax: MORE [ switches ] filename\n\ |
| Equivalent to TYPE /NOPAGE filename; see HELP TYPE.")); |
| case XXHEAD: |
| return(hmsg("Syntax: HEAD [ switches ] filename\n\ |
| Equivalent to TYPE /HEAD filename; see HELP TYPE.")); |
| case XXTAIL: |
| return(hmsg("Syntax: TAIL [ switches ] filename\n\ |
| Equivalent to TYPE /TAIL filename; see HELP TYPE.")); |
| #endif /* NOFRILLS */ |
| |
| #ifndef NOSPL |
| case XXWHI: |
| return(hmsga(whihlp)); |
| |
| case XXSWIT: |
| return(hmsga(swihlp)); |
| #endif /* NOSPL */ |
| |
| #ifndef NOCSETS |
| case XXXLA: |
| return(hmsga(hxxxla)); |
| #endif /* NOCSETS */ |
| |
| case XXVER: |
| return(hmsg("Syntax: VERSION\nDisplays the program version number.")); |
| |
| #ifndef NOSPL |
| case XXWAI: |
| return(hmsga(hxxwai)); |
| #endif /* NOSPL */ |
| |
| #ifndef NOFRILLS |
| case XXWHO: |
| return(hmsg("Syntax: WHO [ user ]\nDisplays info about the user.")); |
| |
| case XXWRI: |
| return(hmsga(hxxwri)); |
| |
| case XXWRL: |
| return(hmsg( |
| "WRITE-LINE (WRITELN) is just like WRITE, but includes a line terminator\n\ |
| at the end of text. See WRITE.")); |
| #endif /* NOFRILLS */ |
| |
| #ifndef NOSPL |
| case XXIFX: |
| return(hmsga(ifxhlp)); |
| |
| case XXGETC: /* GETC */ |
| return(hmsga(hxxgetc)); |
| |
| case XXFWD: /* FORWARD */ |
| return(hmsg( |
| "Like GOTO, but searches only forward for the label. See GOTO.")); |
| |
| case XXLOCAL: /* LOCAL */ |
| return(hmsg( |
| "Declares a variable to be local to the current macro or command file.")); |
| #endif /* NOSPL */ |
| |
| case XXVIEW: |
| return(hmsg( |
| "View the terminal emulation screen even when there is no connection.")); |
| |
| case XXASC: |
| return(hmsg("Synonym for SET FILE TYPE TEXT.")); |
| |
| case XXBIN: |
| return(hmsg("Synonym for SET FILE TYPE BINARY.")); |
| |
| case XXDATE: |
| return(hmsga(hmxxdate)); |
| |
| case XXRETR: |
| return(hmsg( |
| "Just like GET but asks the server to delete each file that has been\n\ |
| sent successfully.")); |
| |
| case XXEIGHT: |
| return(hmsg( |
| "Equivalent to SET PARITY NONE, SET COMMAND BYTE 8, SET TERMINAL BYTE 8.")); |
| |
| case XXSAVE: |
| return(hmsga(hmxxsave)); |
| |
| #ifndef NOFRILLS |
| #ifndef NOPUSH |
| case XXEDIT: |
| return(hmsg("Syntax: EDIT [ <file> ]\n\ |
| Starts your preferred editor on the given file, or if none given, the most\n\ |
| recently edited file, if any. Also see SET EDITOR.")); |
| #endif /* NOPUSH */ |
| #endif /* NOFRILLS */ |
| |
| #ifdef BROWSER |
| case XXBROWS: |
| return(hmsg("Syntax: BROWSE [ <url> ]\n\ |
| Starts your preferred Web browser on the given URL, or if none given, the\n\ |
| most recently visited URL, if any. Also see SET BROWSER.")); |
| #endif /* BROWSER */ |
| |
| #ifdef CK_TAPI |
| case XXTAPI: |
| return(hmsga(hxxtapi)); |
| #endif /* CK_TAPI */ |
| |
| #ifdef PIPESEND |
| case XXCSEN: |
| return(hmsg("Syntax: CSEND [ switches ] <command> [ <as-name> ]\n\ |
| Sends from the given <command> rather than from a file. Equivalent to\n\ |
| SEND /COMMAND; see HELP SEND for details.")); |
| |
| case XXCREC: |
| return(hmsg("Syntax: CRECEIVE [ switches ] <command>\n\ |
| Receives to the given <command> rather than to a file. Equivalent to\n\ |
| RECEIVE /COMMAND; see HELP RECEIVE for details.")); |
| |
| case XXCGET: |
| return(hmsg("Syntax: CGET <remote-file-or-command> <local-command>\n\ |
| Equivalent to GET /COMMAND; see HELP GET for details.")); |
| #endif /* PIPESEND */ |
| |
| #ifndef NOSPL |
| case XXFUNC: |
| /* |
| Tricky parsing. We want to let them type the function name in any format |
| at all: \fblah(), \fblah, \\fblah(), fblah, blah, blah(), etc, but of course |
| only one of these is recognized by cmkey(). So we call cmkeyx() (the "no |
| complaints" version of cmkey()), and if it fails, we try the other formats |
| silently, and still allow for <no-name-given>, editing and reparse, etc. |
| */ |
| y = cmkeyx(fnctab,nfuncs,"Name of function","",NULL); |
| if (y == -1) { /* Reparse needed */ |
| return(y); |
| } else if (y == -3) { |
| if ((x = cmcfm()) < 0) /* For recall buffer... */ |
| return(x); |
| return(dohfunc(y)); /* -3 gives general message */ |
| } |
| if (y < 0) { /* Something given but didn't match */ |
| int dummy; |
| char * p; |
| for (p = atmbuf; *p; p++) { /* Chop off trailing parens if any */ |
| if (*p == '(') { |
| *p = NUL; |
| break; |
| } |
| } |
| /* Chop off leading "\\f" or "\f" or "f" */ |
| p = atmbuf; |
| if (*p == CMDQ) /* Allow for \\f... */ |
| p++; |
| if (*p == CMDQ && (*(p+1) == 'f' || *(p+1) == 'F')) { /* or \f */ |
| p += 2; |
| } else if (*p == 'f' || *p == 'F') { /* or just f */ |
| p++; |
| } |
| y = lookup(fnctab,p,nfuncs,&dummy); /* Look up the result */ |
| } |
| if (y < 0) { |
| printf("?No such function - \"%s\"\n",atmbuf); |
| return(-9); |
| } |
| x = cmgbrk(); /* Find out how user terminated */ |
| if (x == LF || x == CR) /* if with CR or LF */ |
| cmflgs = 1; /* restore cmflgs to say so */ |
| if ((x = cmcfm()) < 0) /* And THEN confirm so command will */ |
| return(x); /* get into recall buffer. */ |
| return(dohfunc(y)); |
| #endif /* NOSPL */ |
| |
| #ifndef NOCMDL |
| case XXOPTS: /* Command-line options */ |
| return(dohopts()); |
| |
| case XXXOPTS: /* Extended command-line options */ |
| return(doxopts()); |
| #endif /* NOCMDL */ |
| |
| #ifdef OS2 |
| #ifndef NOKVERBS |
| case XXKVRB: { |
| y = cmkeyx(kverbs,nkverbs,"Name of keyboard verb without \\k","",NULL); |
| if (y == -1) { /* Reparse needed */ |
| return(y); |
| } else if (y == -3) { |
| if ((x = cmcfm()) < 0) /* For recall buffer... */ |
| return(x); |
| return(dohkverb(y)); /* -3 gives general message */ |
| } |
| if (y < 0) { /* Something given but didn't match */ |
| int dummy; |
| char * p; |
| for (p = atmbuf; *p; p++) { /* Chop off trailing parens if any */ |
| if (*p == '(') { |
| *p = NUL; |
| break; |
| } |
| } |
| /* Chop off leading "\\k" or "\k" or "k" */ |
| p = atmbuf; |
| if (*p == CMDQ) /* Allow for \\k... */ |
| p++; |
| if (*p == CMDQ && (*(p+1) == 'k' || *(p+1) == 'K')) { /* or \k */ |
| p += 2; |
| } else if (*p == 'k' || *p == 'K') { /* or just k */ |
| p++; |
| } |
| y = lookup(kverbs,p,nkverbs,&dummy); /* Look up the result */ |
| } |
| if (y < 0) { |
| printf("?No such function - \"%s\"\n",atmbuf); |
| return(-9); |
| } |
| x = cmgbrk(); /* Find out how user terminated */ |
| if (x == LF || x == CR) /* if with CR or LF */ |
| cmflgs = 1; /* restore cmflgs to say so */ |
| if ((x = cmcfm()) < 0) /* And THEN confirm so command will */ |
| return(x); /* get into recall buffer. */ |
| return(dohkverb(y)); |
| } |
| #endif /* NOKVERBS */ |
| #endif /* OS2 */ |
| |
| case XXKERMI: |
| return(hmsg("Syntax: KERMIT [command-line-options]\n\ |
| Lets you give command-line options at the prompt or in a script.\n\ |
| HELP OPTIONS for more info.")); |
| |
| case XXBACK: |
| return(hmsg("Syntax: BACK\n Returns to your previous directory.")); |
| |
| case XXWHERE: |
| return(hmsg("Syntax: WHERE\n Tells where your transferred files went.")); |
| |
| #ifndef NOXFER |
| case XXREMV: |
| return(hmsga(hmxxremv)); |
| #endif /* NOXFER */ |
| |
| #ifdef CK_KERBEROS |
| case XXAUTH: |
| return(hmsga(hmxxauth)); |
| #endif /* CK_KERBEROS */ |
| |
| #ifndef NOHTTP |
| case XXHTTP: |
| return(hmsga(hmxxhttp)); |
| #endif /* NOHTTP */ |
| |
| #ifdef NETCMD |
| case XXPIPE: |
| return(hmsg("Syntax: PIPE [ command ]\n\ |
| Makes a connection through the program whose command line is given. Example:\n\ |
| \n pipe rlogin xyzcorp.com")); |
| #endif /* NETCMD */ |
| |
| case XXSTATUS: |
| return(hmsg( |
| "STATUS is the same as SHOW STATUS; prints SUCCESS or FAILURE for the\n\ |
| previous command.")); |
| |
| #ifndef NOSPL |
| case XXASSER: |
| return(hmsg("Syntax: ASSERT <condition>\n\ |
| Succeeds or fails depending on <condition>; see HELP IF for <condition>s.")); |
| |
| case XXFAIL: |
| return(hmsg("Always fails.")); |
| |
| case XXSUCC: |
| return(hmsg("Always succeeds.")); |
| #endif /* NOSPL */ |
| |
| #ifdef CK_LOGIN |
| case XXLOGOUT: |
| return(hmsg( |
| "If you haved logged in to Kermit as an Internet Kermit server, the LOGOUT\n\ |
| command, given at the prompt, logs you out and closes your session.")); |
| #endif /* CK_LOGIN */ |
| |
| case XXRESET: |
| return(hmsg("Closes all open files and logs.")); |
| |
| #ifndef NOCSETS |
| case XXASSOC: |
| return(hmsga(hmxxassoc)); |
| #endif /* NOCSETS */ |
| |
| #ifndef NOSPL |
| case XXSHIFT: |
| return(hmsg("Syntax: SHIFT [ n ]\n\ |
| Shifts \\%1..9 variables n places to the left; default n = 1.")); |
| #endif /* NOSPL */ |
| |
| #ifndef NOPUSH |
| case XXMAN: |
| #ifdef UNIX |
| return(hmsg("Syntax: MANUAL [ topic ]\n\ |
| Runs the \"man\" command on the given topic (default \"kermit\").")); |
| #else |
| #ifdef OS2 |
| return(hmsg("Syntax: MANUAL\n\ |
| Accesses the Kermit 95 HTML manual using the current browser.")); |
| #else |
| return(hmsg("Syntax: MANUAL [ topic ]\n\ |
| Runs the \"help\" command on the given topic (default \"kermit\").")); |
| #endif /* OS2 */ |
| #endif /* UNIX */ |
| #endif /* NOPUSH */ |
| |
| case XXWILD: |
| return(hmsga(hmxxwild)); |
| |
| case XXPAT: |
| return(hmsga(hmxxpat)); |
| |
| #ifndef NOXFER |
| case XXFAST: |
| case XXCAU: |
| case XXROB: |
| return(hmsga(hmxxfast)); |
| #endif /* NOXFER */ |
| |
| #ifdef CKPURGE |
| case XXPURGE: |
| return(hmsga(hmxxpurge)); |
| #else |
| #ifdef VMS |
| case XXPURGE: |
| return(hmsga(hmxxpurge)); |
| #endif /* VMS */ |
| #endif /* CKPURGE */ |
| |
| #ifndef NOXFER |
| case XXRASG: |
| return(hmsg(" RASG and RASSIGN are short forms of REMOTE ASSIGN.")); |
| case XXRCWD: |
| return(hmsg(" RCD and RCWD are short forms of REMOTE CD.")); |
| case XXRCPY: |
| return(hmsg(" RCOPY is a short form of REMOTE COPY.")); |
| case XXRDEL: |
| return(hmsg(" RDELETE is a short form of REMOTE RELETE.")); |
| case XXRDIR: |
| return(hmsg(" RDIRECTORY is a short form of REMOTE DIRECTORY.")); |
| case XXRXIT: |
| return(hmsg(" REXIT is a short form of REMOTE EXIT.")); |
| case XXRHLP: |
| return(hmsg(" RHELP is a short form of REMOTE HELP.")); |
| case XXRHOS: |
| return(hmsg(" RHOST is a short form of REMOTE HOST.")); |
| case XXRKER: |
| return(hmsg(" RKERMIT is a short form of REMOTE KERMIT.")); |
| case XXRMKD: |
| return(hmsg(" RMKDIR is a short form of REMOTE MKDIR.")); |
| case XXRPRI: |
| return(hmsg(" RPRINT is a short form of REMOTE PRINT.")); |
| case XXRPWD: |
| return(hmsg(" RPWD is a short form of REMOTE PWD.")); |
| case XXRQUE: |
| return(hmsg(" QUERY and RQUERY are short forms of REMOTE QUERY.")); |
| case XXRREN: |
| return(hmsg(" RRENAME is a short form of REMOTE RENAME.")); |
| case XXRRMD: |
| return(hmsg(" RRMDIR is a short form of REMOTE RMDIR.")); |
| case XXRSET: |
| return(hmsg(" RSET is a short form of REMOTE SET.")); |
| case XXRSPA: |
| return(hmsg(" RSPACE is a short form of REMOTE SPACE.")); |
| case XXRTYP: |
| return(hmsg(" RTYPE is a short form of REMOTE TYPE.")); |
| case XXRWHO: |
| return(hmsg(" RWHO is a short form of REMOTE WHO.")); |
| #endif /* NOXFER */ |
| |
| case XXSCRN: |
| return(hmsga(hmxxscrn)); |
| |
| #ifdef CKEXEC |
| case XXEXEC: |
| return(hmsg("Syntax: EXEC <command> [ <arg1> [ <arg2> [ ... ] ]\n\ |
| C-Kermit overlays itself with the given system command and starts it with\n\ |
| the given arguments. Upon any error, control returns to C-Kermit.")); |
| #endif /* CKEXEC */ |
| |
| #ifndef NOSPL |
| case XXTRACE: |
| return(hmsg( |
| "Syntax: TRACE { /ON, /OFF } { ASSIGNMENTS, COMMAND-LEVEL, ALL }\n\ |
| Turns tracing of the given object on or off.")); |
| #endif /* NOSPL */ |
| |
| #ifdef CK_PERMS |
| #ifdef UNIX |
| case XXCHMOD: |
| return(hmsga(hmxxchmod)); |
| #endif /* UNIX */ |
| #endif /* CK_PERMS */ |
| |
| #ifdef CKROOT |
| case XXCHRT: |
| return(hmsga(hmxxchroot)); |
| #endif /* CKROOT */ |
| |
| #ifndef NOSPL |
| case XXPROMP: |
| return(hmsga(hmxxprompt)); |
| #endif /* NOSPL */ |
| |
| case XXGREP: |
| return(hmsga(hmxxgrep)); |
| |
| #ifndef NOSEXP |
| #ifndef NOSPL |
| case XXSEXP: |
| return(hmsga(hmxxsexp)); |
| #endif /* NOSPL */ |
| #endif /* NOSEXP */ |
| |
| #ifdef CKLEARN |
| case XXLEARN: |
| return(hmsga(hmxxlearn)); |
| #endif /* CKLEARN */ |
| |
| #ifdef ANYSSH |
| case XXSSH: |
| return(hmsga(hmxxssh)); |
| #endif /* ANYSSH */ |
| |
| #ifdef TCPSOCKET |
| case XXFIREW: |
| return(hmsga(hmxxfirew)); |
| #endif /* TCPSOCKET */ |
| |
| #ifdef NEWFTP |
| case XXUSER: |
| return(hmsg(" Equivalent to FTP USER.")); |
| case XXACCT: |
| return(hmsg(" Equivalent to FTP ACCOUNT.")); |
| #endif /* NEWFTP */ |
| |
| case XXORIE: |
| return(hmsg(" Shows the directories important to Kermit.")); |
| |
| case XXCONT: |
| return(hmsg(" In a FOR or WHILE loop: continue the loop.\n\ |
| At the prompt: continue a script that has \"shelled out\" to the prompt.")); |
| |
| case XXNOTAV: |
| return(hmsg(" This command is not configured in this version of Kermit.")); |
| |
| default: { |
| char *s; |
| if ((x = cmcfm()) < 0) return(x); |
| s = cmdbuf + (int)strlen(cmdbuf) -1; |
| while (s >= cmdbuf && *s == SP) |
| *s-- = NUL; |
| while (s >= cmdbuf && *s != SP) |
| s--; |
| while (*s == SP) s++; |
| printf("Sorry, help not available for \"%s\"\n",s); |
| break; |
| } |
| } /* switch */ |
| #endif /* NOHELP */ |
| |
| return(success = 0); |
| } |
| |
| /* H M S G -- Get confirmation, then print the given message */ |
| |
| int |
| hmsg(s) char *s; { |
| int x; |
| if ((x = cmcfm()) < 0) return(x); |
| printf("\n%s\n\n",s); |
| return(0); |
| } |
| |
| #ifdef NOHELP |
| |
| int /* Print an array of lines, */ |
| hmsga(s) char *s[]; { /* cheap version. */ |
| int i; |
| if ((i = cmcfm()) < 0) return(i); |
| printf("\n"); /* Start off with a blank line */ |
| for (i = 0; *s[i]; i++) { /* Print each line. */ |
| printf("%s\n",s[i]); |
| } |
| printf("\n"); |
| return(0); |
| } |
| |
| #else /* NOHELP not defined... */ |
| |
| int /* Print an array of lines, */ |
| hmsga(s) char *s[]; { /* pausing at end of each screen. */ |
| extern int hmtopline; /* (This should be a parameter...) */ |
| int x, y, i, j, k, n; |
| if ((x = cmcfm()) < 0) return(x); |
| |
| #ifdef CK_TTGWSIZ |
| #ifdef OS2 |
| ttgcwsz(); |
| #else /* OS2 */ |
| /* Check whether window size changed */ |
| if (ttgwsiz() > 0) { |
| if (tt_rows > 0 && tt_cols > 0) { |
| cmd_rows = tt_rows; |
| cmd_cols = tt_cols; |
| } |
| } |
| #endif /* OS2 */ |
| #endif /* CK_TTGWSIZ */ |
| |
| printf("\n"); /* Start off with a blank line */ |
| n = (hmtopline > 0) ? hmtopline : 1; /* Line counter */ |
| for (i = 0; *s[i]; i++) { |
| printf("%s\n",s[i]); /* Print a line. */ |
| y = (int)strlen(s[i]); |
| k = 1; |
| for (j = 0; j < y; j++) /* See how many newlines were */ |
| if (s[i][j] == '\n') k++; /* in the string... */ |
| n += k; |
| if (n > (cmd_rows - 3) && *s[i+1]) /* After a screenful, give them */ |
| if (!askmore()) return(0); /* a "more?" prompt. */ |
| else n = 0; |
| } |
| printf("\n"); |
| return(0); |
| } |
| |
| #ifndef NOXMIT |
| static char *hsetxmit[] = { |
| "Syntax: SET TRANSMIT parameter value", |
| " ", |
| "Controls the behavior of the TRANSMIT command (see HELP TRANSMIT):", |
| " ", |
| "SET TRANSMIT ECHO { ON, OFF }", |
| " Whether to echo text to your screen as it is being transmitted.", |
| " ", |
| "SET TRANSMIT EOF text", |
| " Text to send after end of file is reached, e.g. \\4 for Ctrl-D", |
| " ", |
| "SET TRANSMIT FILL number", |
| " ASCII value of a character to insert into blank lines, 0 for none.", |
| " Applies only to text mode. 0 by default.", |
| " ", |
| "SET TRANSMIT LINEFEED { ON, OFF }", |
| " Transmit Linefeed as well as Carriage Return (CR) at the end of each line.", |
| " Normally, only CR is sent.", |
| " ", |
| "SET TRANSMIT LOCKING-SHIFT { ON, OFF }", |
| " Whether to use SO/SI for transmitting 8-bit data when PARITY is not NONE.", |
| " ", |
| "SET TRANSMIT PAUSE number", |
| " How many milliseconds to pause after transmitting each line (text mode),", |
| " or each character (binary mode).", |
| " ", |
| "SET TRANSMIT PROMPT number", |
| " ASCII value of character to look for from host before sending next line", |
| " when TRANSMITting in text mode; normally 10 (Linefeed). 0 means none;", |
| " don't wait for a prompt.", |
| " ", |
| "SET TRANSMIT TIMEOUT number", |
| " Number of seconds to wait for each character to echo when TRANSMIT ECHO", |
| " is ON or TRANSMIT PROMPT is not 0. If 0 is specified, this means wait", |
| " indefinitely for each echo.", |
| " ", |
| "Synonym: SET XMIT. SHOW TRANSMIT displays current settings.", |
| "" }; |
| #endif /* NOXMIT */ |
| |
| static char *hsetbkg[] = { |
| "Syntax: SET BACKGROUND { OFF, ON }", |
| " ", |
| " SET BACKGROUND OFF forces prompts and messages to appear on your screen", |
| " even though Kermit thinks it is running in the background.", |
| "" }; |
| |
| #ifdef DYNAMIC |
| static char *hsetbuf[] = { |
| "Syntax: SET BUFFERS n1 [ n2 ]", |
| " ", |
| " Changes the overall amount of memory allocated for SEND and RECEIVE packet", |
| " buffers, respectively. Bigger numbers let you have longer packets and", |
| " more window slots. If n2 is omitted, the same value as n1 is used.", |
| #ifdef BIGBUFOK |
| " ", |
| " NOTE: This command is not needed in this version of Kermit, which is", |
| " already configured for maximum-size packet buffers.", |
| #endif /* BIGBUFOK */ |
| "" }; |
| #endif /* DYNAMIC */ |
| |
| static char *hsetcmd[] = { |
| "Syntax: SET COMMAND parameter value", |
| " ", |
| |
| #ifdef CK_AUTODL |
| "SET COMMAND AUTODOWNLOAD { ON, OFF }", |
| " Enables/Disables automatic recognition of Kermit packets while in", |
| " command mode. ON by default.", |
| " ", |
| #endif /* CK_AUTODL */ |
| |
| "SET COMMAND BYTESIZE { 7, 8 }", |
| " Informs Kermit of the bytesize of the communication path between itself", |
| " and your keyboard and screen. 8 is assumed. SET COMMAND BYTE 7 only if", |
| " 8-bit characters cannot pass.", |
| " ", |
| |
| #ifdef OS2 |
| "SET COMMAND COLOR <foreground-color> <background-color>", |
| " Lets you choose colors for Command screen. Use ? in the color fields to", |
| " to get lists of available colors.", |
| " ", |
| "SET COMMAND CURSOR-POSITION <row> <column>", |
| " Moves the command-screen cursor to the given position (1-based). This", |
| " command should be used in scripts instead of relying on ANSI.SYS escape", |
| " sequences.", |
| " ", |
| #endif /* OS2 */ |
| |
| #ifdef OS2 |
| #ifdef NT |
| "SET COMMAND HEIGHT <number>", |
| " Changes the number of rows (lines) in your command screen, not", |
| " counting the status line. Recommended values are 24, 42, and 49 (or 25,", |
| " 43, and 50 if SET COMMAND STATUSLINE is OFF.)", |
| #else |
| "SET COMMAND HEIGHT <number>" |
| " Changes the number of rows (lines) in your command screen, not", |
| " counting the status line. Windowed sessions can use any value from 8 to", |
| " 101. Fullscreen sessions are limited to 24, 42, 49, or 59. Not all" |
| " heights are supported by all video adapters.", |
| #endif /* NT */ |
| #else /* OS2 */ |
| "SET COMMAND HEIGHT <number>", |
| " Informs Kermit of the number of rows in your command screen for the", |
| " purposes of More?-prompting.", |
| #endif /* OS2 */ |
| " ", |
| "SET COMMAND WIDTH <number>", |
| " Informs Kermit of the number of characters across your screen for", |
| " purposes of screen formatting.", |
| " ", |
| "SET COMMAND MORE-PROMPTING { ON, OFF }", |
| " ON (the default) enables More?-prompting when Kermit needs to display", |
| " text that does not fit vertically on your screen. OFF allows the text to", |
| " scroll by without intervention. If your command window has scroll bars,", |
| " you might prefer OFF.", |
| " ", |
| |
| #ifdef CK_RECALL |
| "SET COMMAND RECALL-BUFFER-SIZE number", |
| " How big you want Kermit's command recall buffer to be. By default, it", |
| " holds 10 commands. You can make it any size you like, subject to memory", |
| " constraints of the computer. A size of 0 disables command recall.", |
| " Whenever you give this command, previous command history is lost.", |
| " ", |
| #endif /* CK_RECALL */ |
| |
| "SET COMMAND QUOTING { ON, OFF }", |
| " Whether to treat backslash and question mark as special characters (ON),", |
| " or as ordinary data characters (OFF) in commands. ON by default.", |
| " ", |
| #ifdef DOUBLEQUOTING |
| "SET COMMAND DOUBLEQUOTING { ON, OFF }", |
| " Whether to allow doublequotes (\") to be used to enclose fields,", |
| " filenames, directory names, and macro arguments that might contain", |
| " spaces. ON by default; use OFF to force compatibility with older", |
| " versions.", |
| " ", |
| #endif /* DOUBLEQUOTING */ |
| |
| #ifdef CK_RECALL |
| "SET COMMAND RETRY { ON, OFF }", |
| " Whether to reprompt you with the correct but incomplete portion of a", |
| " syntactically incorrect command. ON by default.", |
| " ", |
| #endif /* CK_RECALL */ |
| |
| #ifdef OS2 |
| "SET COMMAND SCROLLBACK <lines>", |
| " Sets size of virtual Command screen buffer to the given number of lines,", |
| " which includes the active Command screen. The minimum is 256. The max", |
| " is 2 million. The default is 512.", |
| " ", |
| "SET COMMAND STATUSLINE { ON, OFF }", |
| " ON (default) enables the Kermit status line in the command screen.", |
| " OFF removes it, making the line available for use by the host.", |
| " ", |
| #endif /* OS2 */ |
| |
| "Use SHOW COMMAND to display these settings.", |
| "" }; |
| |
| #ifndef NOLOCAL |
| static char *hsetcar[] = { |
| "Syntax: SET CARRIER-WATCH { AUTO, OFF, ON }", |
| " ", |
| " Attempts to control treatment of carrier (the Data Carrier Detect signal)", |
| " on serial communication (SET LINE or SET PORT) devices. ON means that", |
| " carrier is required at all times. OFF means carrier is never required.", |
| " AUTO (the default) means carrier is required at all times except during", |
| " the DIAL command. Correct operation of carrier-watch depends on the", |
| " capabilities of the underlying OS, drivers, devices, and cables. If you", |
| " need to CONNECT to a serial device that is not asserting carrier, and", |
| " Kermit won't let you, use SET CARRIER-WATCH OFF. Use SHOW COMMUNICATIONS", |
| " to display the CARRIER-WATCH setting.", |
| "" }; |
| #endif /* NOLOCAL */ |
| |
| static char *hsetat[] = { |
| "Syntax: SET ATTRIBUTES name ON or OFF", |
| " ", |
| " Use this command to enable (ON) or disable (OFF) the transmission of", |
| " selected file attributes along with each file, and to handle or ignore", |
| " selected incoming file attributes, including:", |
| " ", |
| #ifndef NOCSETS |
| " CHARACTER-SET: The transfer character set for text files", |
| #endif /* NOCSETS */ |
| " DATE: The file's creation date", |
| " DISPOSITION: Unusual things to do with the file, like MAIL or PRINT", |
| " LENGTH: The file's length", |
| " PROTECTION: The file's protection (permissions)", |
| " SYSTEM-ID: Machine/Operating system of origin", |
| " TYPE: The file's type (text or binary)", |
| " ", |
| "You can also specify ALL to select all of them. Examples:", |
| " ", |
| " SET ATTR DATE OFF", |
| " SET ATTR LENGTH ON", |
| " SET ATTR ALL OFF", |
| " ", |
| "Also see HELP SET SEND and HELP SET RECEIVE.", |
| "" |
| }; |
| |
| static char *hxytak[] = { |
| "Syntax: SET TAKE parameter value", |
| " ", |
| " Controls behavior of TAKE command:", |
| " ", |
| "SET TAKE ECHO { ON, OFF }", |
| " Tells whether commands read from a TAKE file should be displayed on the", |
| " screen (if so, each command is shown at the time it is read, and labeled", |
| " with a line number).", |
| " ", |
| "SET TAKE ERROR { ON, OFF }", |
| " Tells whether a TAKE command file should be automatically terminated when", |
| " a command fails. This setting is local to the current command file, and", |
| " inherited by subordinate command files.", |
| "" }; |
| |
| #ifndef NOLOCAL |
| #ifdef OS2MOUSE |
| static char *hxymouse[] = { |
| "Syntax: SET MOUSE ACTIVATE { ON, OFF }", |
| " Enables or disables the mouse in Connect mode. Default is ON", |
| " ", |
| "Syntax: SET MOUSE BUTTON <number> <key-modifier> <action> [ <text> ]", |
| " where:", |
| " <number> is the mouse button number, 1, 2, or 3;", |
| " <key-modifier> denotes modifier keys held down during the mouse event:", |
| " ALT, ALT-SHIFT, CTRL, CTRL-ALT CTRL-ALT-SHIFT, CTRL-SHIFT, SHIFT, NONE;", |
| " <action> is the mouse action, CLICK, DRAG, or DOUBLE-CLICK.", |
| " ", |
| " The <text> has exactly the same properties as the <text> from the SET KEY", |
| " command -- it can be a character, a string, one or more Kverbs, a macro", |
| " invoked as a Kverb, or any combination of these. Thus, anything that can", |
| " be assigned to a key can also be assigned to the mouse -- and vice versa.", |
| " If the <text> is omitted, the action will be ignored. Examples:", |
| " ", |
| " SET MOUSE BUTTON 1 NONE DOUBLE \\KmouseCurPos", |
| " SET MOU B 2 SHIFT CLICK help\\13", |
| " ", |
| " DRAG operations perform a \"mark mode\" selection of Text. You should", |
| " assign only the following actions to drag operations:", |
| " ", |
| " \\Kdump - copy marked text to printer (or file)", |
| " \\Kmarkcopyclip - copy marked text to PM Clipboard", |
| " \\Kmarkcopyhost - copy marked text direct to Host", |
| " \\Kmousemark - mark text, no copy operation performed", |
| " ", |
| " The following Kverb is only for use with the mouse:", |
| " ", |
| " \\KmouseCurPos", |
| " ", |
| " which represents the mouse-directed terminal cursor feature.", |
| " ", |
| "Syntax: SET MOUSE CLEAR", |
| " Restores all mouse events to their default definitions", |
| " Button 1 Ctrl-Click = Kverb: \\Kmouseurl", |
| " Button 1 Double-Click = Kverb: \\Kmousecurpos", |
| " Button 1 Drag = Kverb: \\Kmarkcopyclip", |
| " Button 1 Alt-Drag = Kverb: \\Kmarkcopyclip_noeol", |
| " Button 1 Ctrl-Drag = Kverb: \\Kmarkcopyhost", |
| " Button 1 Ctrl-Alt-Drag = Kverb: \\Kmarkcopyhost_noeol", |
| " Button 1 Ctrl-Shift-Drag = Kverb: \\Kdump", |
| " Button 2 Double-Click = Kverb: \\Kpaste", |
| " Button 2 Drag = Kverb: \\Kmarkcopyhost", |
| " Button 2 Alt-Drag = Kverb: \\Kmarkcopyhost_noeol ", |
| " Button 3 Double-Click = Kverb: \\Kpaste", |
| ""}; |
| #endif /* OS2MOUSE */ |
| |
| static char *hxyterm[] = { |
| "Syntax: SET TERMINAL parameter value", |
| " ", |
| #ifdef OS2 |
| "SET TERMINAL TYPE { ANSI, VT52, VT100, VT102, VT220, VT320, ... }", |
| " Selects type type of terminal to emulate. Type SET TERMINAL TYPE ? to", |
| " see a complete list.", |
| " ", |
| "SET TERMINAL ANSWERBACK { OFF, ON }", |
| " Disables/enables the ENQ/Answerback sequence (\"K-95 version term-type\").", |
| " ", |
| "SET TERMINAL ANSWERBACK MESSAGE <extension>", |
| " Allows you to specify an extension to the default answerback message.", |
| " ", |
| #else |
| "SET TERMINAL TYPE ...", |
| " This command is not available because this version of Kermit does not", |
| " include a terminal emulator. Instead, it is a \"semitransparent pipe\"", |
| " (or a totally transparent one, if you configure it that way) to the", |
| " computer or service you have made a connection to. Your console,", |
| " workstation window, or the terminal emulator or terminal from which you", |
| " are running Kermit provides the emulation.", |
| " ", |
| #endif /* OS2 */ |
| |
| #ifdef CK_APC |
| "SET TERMINAL APC { ON, OFF, NO-INPUT, NO-INPUT-UNCHECKED, UNCHECKED }", |
| #ifdef OS2 |
| " Controls execution of Application Program Commands sent by the host while", |
| " K-95 is either in CONNECT mode or processing INPUT commands. ON allows", |
| " execution of \"safe\" commands and disallows potentially dangerous ones", |
| " such as DELETE, RENAME, OUTPUT, and RUN. OFF prevents execution of APCs.", |
| " UNCHECKED allows execution of all APCs. OFF is the default.", |
| #else /* OS2 */ |
| " Controls execution of Application Program Commands sent by the host while", |
| " C-Kermit is in CONNECT mode. ON allows execution of \"safe\" commands and", |
| " disallows potentially dangerous commands such as DELETE, RENAME, OUTPUT,", |
| " and RUN. OFF prevents execution of APCs. UNCHECKED allows execution of", |
| " all APCs. OFF is the default.", |
| #endif /* OS2 */ |
| " ", |
| #endif /* CK_APC */ |
| |
| #ifdef OS2 |
| "SET TERMINAL ARROW-KEYS { APPLICATION, CURSOR }", |
| " Sets the mode for the arrow keys during VT terminal emulation.", |
| " ", |
| "SET TERMINAL ATTRIBUTE { BLINK, DIM, PROTECTED, REVERSE, UNDERLINE }", |
| " Determines how attributes are displayed by Kermit-95.", |
| " ", |
| "SET TERMINAL ATTRIBUTE { BLINK, DIM, REVERSE, UNDERLINE } { ON, OFF }", |
| " Determines whether real Blinking, Dim, Reverse, and Underline are used in", |
| " the terminal display. When BLINK is turned OFF, reverse background", |
| " intensity is used. When DIM is turned OFF, dim characters appear BOLD.", |
| " When REVERSE and UNDERLINE are OFF, the colors selected with SET", |
| " TERMINAL COLOR { REVERSE,UNDERLINE } are used instead. This command", |
| " affects the entire current screen and terminal scrollback buffer.", |
| " ", |
| "SET TERMINAL ATTRIBUTE PROTECTED [ -", |
| " { BOLD, DIM, INVISIBLE, NORMAL, REVERSE, UNDERLINED } ]", |
| " Sets the attributes used to represent Protected text in Wyse and Televideo", |
| " terminal emulations. Any combination of attributes may be used. The", |
| " default is DIM.)", |
| " ", |
| #endif /* OS2 */ |
| |
| #ifdef OS2 |
| #ifdef CK_XYZ |
| "SET TERMINAL AUTODOWNLOAD { ON, OFF, ERROR { STOP, CONTINUE } }", |
| " enables/disables automatic switching into file-transfer mode when a Kermit", |
| " or ZMODEM file transfer has been detected during CONNECT mode or while", |
| " an INPUT command is active. Default is OFF.", |
| #else |
| "SET TERMINAL AUTODOWNLOAD { ON, OFF, ERROR { STOP, CONTINUE } }", |
| " enables/disables automatic switching into file-transfer mode when a Kermit", |
| " file transfer has been detected during CONNECT mode or while an INPUT", |
| " command is active. Default is OFF.", |
| #endif /* CK_XYZ */ |
| |
| " ", |
| " When TERMINAL AUTODOWNLOAD is ON, the TERMINAL AUTODOWNLOAD ERROR setting", |
| " tells what to do if an error occurs during a file transfer or other", |
| " protocol operation initiated by the terminal emulator: STOP (the default)", |
| " means to remain in command mode so you can see what happened; CONTINUE", |
| " means to resume the CONNECT session (e.g. so a far-end script can continue", |
| " its work).", |
| " ", |
| |
| #ifdef CK_XYZ |
| "SET TERM... AUTO... { KERMIT, ZMODEM } C0-CONFLICTS { IGNORED, PROCESSED }", |
| " Determines whether the active terminal emulator should process or ignore", |
| " C0 control characters which are also used for the specified file transfer", |
| " protocol. Kermit by default uses ^A (SOH) and Zmodem uses ^X (CAN).", |
| " Default is PROCESSED.", |
| " ", |
| "SET TERM... AUTO... { KERMIT, ZMODEM } DETECTION-METHOD { PACKET, STRING }", |
| " Determines whether the specified file transfer protocol should be detected", |
| " by looking for valid packets or by identifying a specified text string.", |
| " Default is PACKET.", |
| " ", |
| "SET TERM... AUTO... { KERMIT, ZMODEM } STRING <text>", |
| " Lets you assign an autodownload detection string for use with the", |
| " specified file transfer protocol.", |
| " Default for Kermit is \"READY TO SEND...\", for Zmodem is \"rz\\{13}\".", |
| " ", |
| #else /* CK_XYZ */ |
| "SET TERM... AUTO... KERMIT C0-CONFLICTS { IGNORED, PROCESSED }", |
| " Determines whether the active terminal emulator should process or ignore", |
| " C0 control characters which are also used for the specified file transfer", |
| " protocol. Kermit by default uses ^A <SOH>. Default is PROCESSED.", |
| " ", |
| "SET TERM... AUTO... KERMIT DETECTION-METHOD { PACKET, STRING }", |
| " Determines whether the specified file transfer protocol should be detected", |
| " by looking for valid packets or by identifying a specified text string.", |
| " Default is PACKET.", |
| " ", |
| "SET TERM... AUTO... KERMIT STRING <text>", |
| " Lets you assign an autodownload detection string for use with the", |
| " specified file transfer protocol. Default is \"READY TO SEND...\".", |
| " ", |
| #endif /* CK_XYZ */ |
| "SET TERMINAL AUTOPAGE { ON, OFF }", |
| " ", |
| "SET TERMINAL AUTOSCROLL { ON, OFF }", |
| " ", |
| #else /* OS2 */ |
| "SET TERMINAL AUTODOWNLOAD { ON, OFF, ERROR { STOP, CONTINUE } }", |
| " Enables/disables automatic switching into file-transfer mode when a valid", |
| #ifdef CK_XYZ |
| " Kermit or ZMODEM packet of the appropriate type is received during CONNECT", |
| " mode. Default is OFF.", |
| #else |
| " Kermit packet of the appropriate type is received during CONNECT mode.", |
| " Default is OFF.", |
| #endif /* CK_XYZ */ |
| |
| " ", |
| " When TERMINAL AUTODOWNLOAD is ON, the TERMINAL AUTODOWNLOAD ERROR setting", |
| " tells what to do if an error occurs during a file transfer or other", |
| " protocol operation initiated by the terminal emulator: STOP (the default)", |
| " means to remain in command mode so you can see what happened; CONTINUE", |
| " means to resume the CONNECT session (e.g. so a far-end script can continue", |
| " its work).", |
| " ", |
| |
| #endif /* OS2 */ |
| |
| #ifdef OS2 |
| "SET TERMINAL BELL { AUDIBLE, VISIBLE, NONE }", |
| " Specifies how Control-G (bell) characters are handled. AUDIBLE means", |
| " a beep is sounded; VISIBLE means the screen is flashed momentarily.", |
| " ", |
| " (This command has been superseded by SET BELL.)", |
| " ", |
| #endif /* OS2 */ |
| |
| "SET TERMINAL BYTESIZE { 7, 8 }", |
| " Use 7- or 8-bit characters between Kermit and the remote computer during", |
| " terminal sessions. The default is 8.", |
| " ", |
| |
| #ifndef NOCSETS |
| #ifdef OS2 |
| "SET TERMINAL CHARACTER-SET <remote-cs>", |
| " Specifies the character set used by the remote host, <remote-cs>.", |
| " Equivalent to SET TERM REMOTE-CHARACTER-SET <remote-cs> ALL. For more", |
| " control over the details, use SET TERM REMOTE-CHARACTER-SET and (in", |
| " non-GUI K95 versions) SET TERM LOCAL-CHARACTER-SET; these are explained", |
| " below. The default TERMINAL CHARACTER-SET is LATIN1 (ISO 8859-1).", |
| #else /* not OS2 */ |
| "SET TERMINAL CHARACTER-SET <remote-cs> [ <local-cs> ]", |
| " Specifies the character set used by the remote host, <remote-cs>, and the", |
| " character set used by C-Kermit locally, <local-cs>. If you don't specify", |
| " the local character set, the current FILE CHARACTER-SET is used. When", |
| " you specify two different character sets, C-Kermit translates between them", |
| " during CONNECT. By default, both character sets are TRANSPARENT, and", |
| " no translation is done.", |
| #endif /* OS2 */ |
| " ", |
| #endif /* NOCSETS */ |
| |
| #ifdef OS2 |
| |
| "SET TERMINAL CODE-PAGE <number>", |
| " Lets you change the PC code page. Only works for code pages that are", |
| " successfully prepared in CONFIG.SYS. Use SHOW TERMINAL to list the", |
| " current code page and the available code pages.", |
| #ifdef OS2ONLY |
| " ", |
| " Also see SET TERMINAL FONT if the desired code page in not available in", |
| " your version of OS/2.", |
| #endif /* OS2ONLY */ |
| " ", |
| |
| #ifndef NT |
| "SET TERMINAL COLOR BORDER <foreground>", |
| #endif /* NT */ |
| "SET TERMINAL COLOR <screenpart> <foreground> <background>", |
| " Sets the colors of the terminal emulation screen.", |
| " <screenpart> may be any of the following:", |
| " DEBUG, HELP-TEXT, REVERSE, SELECTION, STATUS-LINE, TERMINAL-SCREEN, or", |
| " UNDERLINED-TEXT.", |
| " <foreground> and <background> may be any of:", |
| " BLACK, BLUE, GREEN, CYAN, RED, MAGENTA, BROWN, LGRAY, DGRAY, LBLUE,", |
| " LGREEN, LCYAN, LRED, LMAGENTA, YELLOW or WHITE.", |
| " The L prefix for the color names means Light.", |
| " ", |
| |
| "SET TERMINAL COLOR ERASE { CURRENT-COLOR, DEFAULT-COLOR }", |
| " Determines whether the current color as set by the host or the default", |
| " color as set by the user (SET TERMINAL COLOR TERMINAL) is used to clear", |
| " the screen when erase commands are received from the host.", |
| " ", |
| |
| "SET TERMINAL COLOR RESET-ON-ESC[0m { CURRENT-COLOR, DEFAULT-COLOR }", |
| " Determines whether the current color or the default color is used after", |
| " <ESC>[0m (\"reset attributes\") command sequence is received from the", |
| " host.", |
| " ", |
| |
| "SET TERMINAL CONTROLS { 7, 8 }", |
| " Determines whether VT220/320 or Wyse 370 function keys, arrow keys, etc,", |
| " that generate ANSI-format escape sequences should send 8-bit control", |
| " characters or 7-bit escape sequences.", |
| " ", |
| #endif /* OS2 */ |
| |
| "SET TERMINAL CR-DISPLAY { CRLF, NORMAL }", |
| " Specifies how incoming carriage return characters are to be displayed", |
| " on your screen.", |
| " ", |
| |
| #ifdef OS2 |
| #ifdef KUI |
| "SET TERMINAL CURSOR { FULL, HALF, UNDERLINE } {ON, OFF, NOBLINK}", |
| " Selects the cursor style and visibility for the terminal screen.", |
| #else |
| "SET TERMINAL CURSOR { FULL, HALF, UNDERLINE } {ON, OFF}", |
| " Selects the cursor style and visibility for the terminal screen.", |
| #endif /* KUI */ |
| " ", |
| "SET TERMINAL DG-UNIX-MODE { ON, OFF }", |
| " Specifies whether the Data General emulations should accept control", |
| " sequences in Unix compatible format or in native DG format. The", |
| " default is OFF, DG format.", |
| " ", |
| #endif /* OS2 */ |
| |
| "SET TERMINAL DEBUG { ON, OFF }", |
| " Turns terminal session debugging on and off. When ON, incoming control", |
| " characters are displayed symbolically, rather than be taken as formatting", |
| " commands. SET TERMINAL DEBUG ON implies SET TELNET DEBUG ON.", |
| " ", |
| #ifdef OS2 |
| "SET TERMINAL DG-UNIX-MODE { ON, OFF }", |
| " ", |
| #endif /* OS2 */ |
| |
| "SET TERMINAL ECHO { LOCAL, REMOTE }", |
| " Specifies which side does the echoing during terminal connection.", |
| " ", |
| |
| "SET TERMINAL ESCAPE-CHARACTER { ENABLED, DISABLED }", |
| " Turns on/off the ability to escape back from CONNECT mode using the SET", |
| #ifdef OS2 |
| " ESCAPE character. If you disable it you can still get back using Alt-key", |
| " combinations as shown in the status line. Also see HELP SET ESCAPE.", |
| #else |
| " ESCAPE character. If you disable it, Kermit returns to its prompt only", |
| " when the connection is closed by the other end. USE WITH EXTREME CAUTION.", |
| " Also see HELP SET ESCAPE.", |
| #endif /* OS2 */ |
| " ", |
| |
| #ifdef OS2 |
| #ifdef KUI |
| "SET TERMINAL FONT <facename> <height>", |
| " Specifies the font to be used in the Kermit 95 window. The font is", |
| " determined by the choice of a facename and a height measured in Points.", |
| " The available facenames are those installed in the Font Control Panel.", |
| " ", |
| #else /* KUI */ |
| #ifdef OS2ONLY |
| "SET TERMINAL FONT { CP437, CP850, CP852, CP862, CP866, DEFAULT }", |
| " CP437 - Original PC code page", |
| " CP850 - \"Multilingual\" (West Europe) code page", |
| " CP852 - East Europe Roman Alphabet code page (for Czech, Polish, etc)", |
| " CP862 - Hebrew code page", |
| " CP866 - Cyrillic (Russian, Belorussian, and Ukrainian) code page", |
| " ", |
| " Loads a soft into the video adapter for use during terminal emulation.", |
| " Use this command when your OS/2 system does not have the desired code.", |
| " page. Can be used only in full-screen sessions. Also see SET TERMINAL", |
| " CODE-PAGE and SET TERMINAL REMOTE-CHARACTER-SET.", |
| " ", |
| #endif /* OS2ONLY */ |
| #endif /* KUI */ |
| |
| #ifdef NT |
| "SET TERMINAL HEIGHT <number>", |
| " Changes the number of rows (lines) to use during terminal emulation, not", |
| " counting the status line. Recommended values are 24, 42, and 49 (or 25,", |
| " 43, and 50 if SET TERMINAL STATUSLINE is OFF.)", |
| #else |
| "SET TERMINAL HEIGHT <number>" |
| " Changes the number of rows (lines) to use during terminal emulation, not", |
| " counting the status line. Windowed sessions can use any value from 8 to", |
| " 101. Fullscreen sessions are limited to 24, 42, 49, or 59. Not all" |
| " heights are supported by all video adapters.", |
| #endif /* NT */ |
| #else /* OS2 */ |
| "SET TERMINAL HEIGHT <number>", |
| " Tells C-Kermit how many rows (lines) are on your CONNECT-mode screen.", |
| #endif /* OS2 */ |
| " ", |
| |
| #ifdef CKTIDLE |
| "SET TERMINAL IDLE-TIMEOUT <number>", |
| " Sets the limit on idle time in CONNECT mode to the given number of", |
| " seconds. 0 (the default) means no limit.", |
| " ", |
| "SET TERMINAL IDLE-ACTION { EXIT, HANGUP, OUTPUT [ text ], RETURN }", |
| " Specifies the action to be taken when a CONNECT session is idle for the", |
| " number of seconds given by SET TERMINAL IDLE-TIMEOUT. The default action", |
| " is to RETURN to command mode. EXIT exits from Kermit; HANGUP hangs up the", |
| " connection, and OUTPUT sends the given text to the host without leaving", |
| " CONNECT mode; if no text is given a NUL (0) character is sent.", |
| #ifdef TNCODE |
| " ", |
| "And for Telnet connections:", |
| " ", |
| "SET TERMINAL IDLE-ACTION { TELNET-NOP, TELNET-AYT }", |
| " Sends the indicated Telnet protocol message: No Operation (NOP) or", |
| " \"Are You There?\" (AYT).", |
| #endif /* TNCODE */ |
| " ", |
| #endif /* CKTIDLE */ |
| |
| #ifdef OS2 |
| |
| "SET TERMINAL KDB-FOLLOWS-GL/GR { ON, OFF }", |
| " Specifies whether or not the keyboard character set should follow the", |
| " active GL and GR character sets. This feature is OFF by default and", |
| " should not be used unless it is specificly required by the host", |
| " application.", |
| " ", |
| |
| "SET TERMINAL KEY <mode> /LITERAL <keycode> <text>", |
| "SET TERMINAL KEY <mode> DEFAULT", |
| "SET TERMINAL KEY <mode> CLEAR", |
| " Configures the key whose <keycode> is given to send the given text when", |
| " pressed while <mode> is active. <mode> may be any of the valid terminal", |
| " types or the special modes \"EMACS\", \"HEBREW\" or \"RUSSIAN\". DEFAULT", |
| " restores all default key mappings for the specified mode. CLEAR erases", |
| " all the key mappings. If there is no text, the default key binding is", |
| #ifndef NOCSETS |
| " restored for the key k. SET TERMINAL KEY mappings take place before", |
| " terminal character-set translation. SET KEY mappings take precedence over", |
| " SET TERMINAL KEY <terminal type> settings.", |
| #else |
| " restored for the key. SET KEY mappings take precedence over SET TERMINAL", |
| " KEY <terminal type> settings.", |
| #endif /* NOCSETS */ |
| " The /LITERAL switch may be used to instruct Kermit to ignore character-set", |
| " translations when sending this definition to the host.", |
| " ", |
| " The text may contain \"\\Kverbs\" to denote actions, to stand for DEC", |
| " keypad, function, or editing keys, etc. For a list of available keyboard", |
| " verbs, type SHOW KVERBS.", |
| " ", |
| " To find out the keycode and mapping for a particular key, use the SHOW", |
| " KEY command. Use the SAVE KEYS command to save all settings to a file.", |
| " ", |
| "SET TERMINAL KEYBOARD-MODE { NORMAL, EMACS, RUSSIAN, HEBREW }", |
| " Select a special keyboard mode for use in the terminal screen.", |
| " ", |
| |
| "SET TERMINAL KEYPAD-MODE { APPLICATION, NUMERIC }", |
| " Specifies the \"mode\" of the numeric keypad for VT terminal emulation.", |
| " Use this command in case the host or application wants the keypad to be", |
| " in a different mode than it's in, but did not send the escape sequence", |
| " to put it in the needed mode.", |
| " ", |
| #ifdef KUI |
| "SET TERMINAL LINE-SPACING <float>", |
| " Specifies the line spacing used when displaying text. The default is 1.0.", |
| " Valid values range from 1.0 to 3.0 inclusive.", |
| " ", |
| #endif /* KUI */ |
| #endif /* OS2 */ |
| |
| #ifndef NOCSETS |
| #ifdef OS2 |
| "SET TERMINAL LOCAL-CHARACTER-SET <local-cs>", |
| " Specifies the character set used by K-95 locally. If you don't specify", |
| #ifdef OS2ONLY |
| " the local character-set, the current TERMINAL FONT is used if you have", |
| " given a SET TERMINAL FONT command; otherwise the current codepage is used.", |
| #else |
| " the local character-set, the current code page is used.", |
| #endif /* OS2ONLY */ |
| " ", |
| " When the local and remote character sets differ, Kermit translates between", |
| " them during CONNECT. By default, the remote character set is Latin1 and", |
| " the local one is your current code page.", |
| #ifdef NT |
| " ", |
| " In Windows NT, Unicode is used as the local character-set regardless of", |
| " this setting.", |
| #endif /* NT */ |
| " ", |
| "See also SET TERMINAL REMOTE-CHARACTER-SET", |
| " ", |
| #endif /* OS2 */ |
| #endif /* NOCSETS */ |
| |
| #ifdef OS2 |
| "SET TERMINAL LOCKING-SHIFT { OFF, ON }", |
| " Tells whether to send Shift-In/Shift-Out (Ctrl-O and Ctrl-N) to switch", |
| " between 7-bit and 8-bit characters sent during terminal emulation over", |
| " 7-bit connections. OFF by default.", |
| #else |
| "SET TERMINAL LOCKING-SHIFT { OFF, ON }", |
| " Tells Kermit whether to use Shift-In/Shift-Out (Ctrl-O and Ctrl-N) to", |
| " switch between 7-bit and 8-bit characters during CONNECT. OFF by default.", |
| #endif /* OS2 */ |
| " ", |
| |
| #ifdef OS2 |
| "SET TERMINAL MARGIN-BELL { ON [column], OFF }", |
| " Determines whether the margin-bell is activated and what column it should", |
| " ring at. OFF by default.", |
| " ", |
| #endif /* OS2 */ |
| |
| "SET TERMINAL NEWLINE-MODE { OFF, ON }", |
| " Tells whether to send CRLF (Carriage Return and Line Feed) when you type", |
| " CR (press the Return or Enter key) in CONNECT mode.", |
| " ", |
| |
| #ifdef OS2 |
| "SET TERMINAL OUTPUT-PACING <milliseconds>", |
| " Tells how long to pause between sending each character to the host during", |
| " CONNECT mode. Normally not needed but sometimes required to work around", |
| " TRANSMISSION BLOCKED conditions when pasting into the terminal window.", |
| " ", |
| |
| #ifdef PCTERM |
| "SET TERMINAL PCTERM { ON, OFF }", |
| " Activates or deactivates the PCTERM terminal emulation keyboard mode.", |
| " When PCTERM is ON all keystrokes in the terminal screen are sent to the", |
| " host as make/break (down/up) codes instead of as characters from the", |
| " REMOTE-CHARACTER-SET, and all keyboard mappings, including Kverbs and the", |
| " escape character are disabled. To turn off PCTERM keyboard mode while in", |
| " CONNECT mode press Control-CapsLock. PCTERM is OFF by default.", |
| " ", |
| #endif /* PCTERM */ |
| #endif /* OS2 */ |
| |
| #ifdef OS2 |
| "SET TERMINAL PRINT { AUTO, COPY, OFF, USER }", |
| " Allows selective control of various types of printing from the Terminal", |
| " session. AUTO prints a line of text from the terminal screen whenever", |
| " the cursor is moved off the line. COPY prints every byte received as", |
| " it is received without interpretation. USER prints every byte after", |
| " interpretation by the terminal emulator translates character-sets and", |
| " construct escape sequences, ... The default is OFF.", |
| " ", |
| #else |
| #ifdef XPRINT |
| "SET TERMINAL PRINT { ON, OFF }", |
| " Enables and disables host-initiated transparent printing in CONNECT mode.", |
| " ", |
| #endif /* XPRINT */ |
| #endif /* OS2 */ |
| |
| #ifdef OS2 |
| #ifndef NOCSETS |
| "SET TERMINAL REMOTE-CHARACTER-SET <remote-cs> [ { G0,G1,G2,G3 }... ]", |
| " Specifies the character set used by the remote host, <remote-cs>.", |
| " When the local and remote character sets differ, Kermit translates", |
| " between them during CONNECT. By default, the remote character set is", |
| " Latin1 and the local one is your current code page. Optionally, you can", |
| " also designate the character set to the G0..G3 graphic tables.", |
| " ", |
| #endif /* NOCSETS */ |
| #endif /* OS2 */ |
| |
| #ifdef OS2 |
| "SET TERMINAL ROLL-MODE { INSERT, OVERWRITE, KEYSTROKES [ option ] }", |
| " Tells whether new data when received from the host is entered into the", |
| " scrollback buffer at the current rollback position (OVERWRITE) or at the", |
| " end of the buffer (INSERT). The default is INSERT. Typing is allowed", |
| " during rollbacks in either mode, according to SET TERM ROLL KEYSTROKES:", |
| " SEND (the default) means to process keystrokes normally; IGNORE means to", |
| " ignore them when the screen is scrolled back; RESTORE-AND-SEND is like", |
| " SEND but restores the screen to its active position first.", |
| " ", |
| |
| "SET TERMINAL SCREEN-MODE { NORMAL, REVERSE }", |
| " When set to REVERSE the foreground and background colors are swapped as", |
| " well as the application of the foreground and background intensity bits.", |
| " The default is NORMAL.", |
| " ", |
| |
| "SET TERMINAL SCREEN-OPTIMIZE { ON, OFF }", |
| " When set to ON, the default, Kermit only paints the screen with characters", |
| " that have changed since the last screen paint. When OFF, the screen is", |
| " completely repainted each time there is a change.", |
| " ", |
| |
| "SET TERMINAL SCREEN-UPDATE { FAST, SMOOTH } [ <milliseconds> ]", |
| " Chooses the mechanism used for screen updating and the update frequency.", |
| " Defaults are FAST scrolling with updates every 100 milliseconds.", |
| " ", |
| |
| "SET TERMINAL SCROLLBACK <lines>", |
| " Sets size of CONNECT virtual screen buffer. <lines> includes the active", |
| " terminal screen. The minimum is 256. The maximum is 2 million. The", |
| " default is 2000.", |
| " ", |
| |
| "SET TERMINAL SEND-DATA { ON, OFF }", |
| " Determines whether ASCII emulations such as WYSE 30,50,60 or TVI 910+,925,", |
| " 950 may send their screen contents to the host upon request. Allowing the", |
| " screen to be read by the host is a significant security risk. The default", |
| " is OFF and should only be changed after a security evaluation of host", |
| " environment.", |
| " ", |
| |
| "SET TERMINAL SEND-END-OF-BLOCK { CRLF_ETX, US_CR }", |
| " Determines which set of characters should be used as end of line and end", |
| " of transmission indicators when sending screen data to the host", |
| " ", |
| |
| "SET TERMINAL SGR-COLORS { ON, OFF }", |
| " ON (default) means allow host control of colors; OFF means ignore host", |
| " escape sequences to set color.", |
| " ", |
| |
| "SET TERMINAL SNI-CH.CODE { ON, OFF }", |
| " This command controls the state of the CH.CODE key. It is the equivalent", |
| " to the SNI_CH_CODE Keyboard verb. The SNI terminal uses CH.CODE to", |
| " easily switch between the National Language character set and U.S. ASCII.", |
| " The default is ON which means to display characters as U.S. ASCII. When", |
| " OFF the lanuage specified by SET TERMINAL SNI-LANUAGE is used to display", |
| " characters when 7-bit character sets are in use." |
| " ", |
| "SET TERMINAL SNI-FIRMWARE-VERSIONS <kbd-version> <terminal-version>", |
| " Specifies the Firmware Version number that should be reported to the host", |
| " when the terminal is queried. The default is 920031 for the keyboard", |
| " and 830851 for the terminal.", |
| " ", |
| "SET TERMINAL SNI-LANGUAGE <national-language>", |
| " An alias for SET TERMINAL VT-LANUAGE, this command specifies the national", |
| " language character-set that should be used when the NRC mode is activated", |
| " for VT emulations or when CH.CODE is OFF for SNI emulations. The default", |
| " language for SET TERMINAL TYPE SNI-97801 is \"German\".", |
| " ", |
| "SET TERMINAL SNI-PAGEMODE { ON, OFF }", |
| " Determines whether or not page mode is active. OFF by default.", |
| " ", |
| "SET TERMINAL SNI-SCROLLMODE { ON, OFF }", |
| " Determines whether or not scroll mode is active. OFF by default.", |
| " ", |
| "SET TERMINAL STATUSLINE { ON, OFF }", |
| " ON (default) enables the Kermit status line in the terminal screen.", |
| " OFF removes it, making the line available for use by the host.", |
| " ", |
| |
| "SET TERMINAL TRANSMIT-TIMEOUT <seconds>", |
| " Specifies the maximum amount of time K-95 waits before returning to the", |
| " prompt if your keystrokes can't be transmitted for some reason, such as a", |
| " flow-control deadlock.", |
| " ", |
| #endif /* OS2 */ |
| |
| #ifdef CK_TRIGGER |
| "SET TERMINAL TRIGGER <string>", |
| " Specifies a string that, when detected during any subsequent CONNECT", |
| " session, is to cause automatic return to command mode. Give this command", |
| " without a string to cancel the current trigger. See HELP CONNECT for", |
| " additional information.", |
| " ", |
| #endif /* CK_TRIGGER */ |
| |
| #ifdef OS2 |
| "SET TERMINAL URL-HIGHLIGHT { ON <attribute>, OFF }", |
| " Specifies whether K-95 should highlight URLs and which screen attribute", |
| " should be used. The screen attributes can be one of NORMAL, BLINK, BOLD,", |
| " DIM, INVISIBLE, REVERSE, or UNDERLINE. The default is ON using the", |
| " BOLD screen attribute.", |
| " ", |
| "SET TERMINAL VIDEO-CHANGE { DISABLED, ENABLED }", |
| " Specifies whether K-95 should change video modes automatically in response", |
| #ifdef NT |
| " to escape sequences from the other computer. ENABLED by default (except", |
| " on Windows 95).", |
| #else /* NT */ |
| " to escape sequences from the other computer. ENABLED by default.", |
| #endif /* NT */ |
| " ", |
| |
| "SET TERMINAL VT-LANGUAGE <language>", |
| " Specifies the National Replacement Character Set (NRC) to be used when", |
| " NRC mode is activated. The default is \"North American\".", |
| " ", |
| "SET TERMINAL VT-NRC-MODE { ON, OFF }", |
| " OFF (default) chooses VT multinational Character Set mode. OFF chooses", |
| " VT National Replacement Character-set mode. The NRC is selected with", |
| " SET TERMINAL VT-LANGUAGE", |
| " ", |
| |
| #ifdef NT |
| "SET TERMINAL WIDTH <cols>", |
| " Tells the number of columns in the terminal screen.", |
| " ", |
| " The default is 80. You can also use 132. Other widths can be chosen but", |
| " are usually not supported by host software.", |
| " ", |
| #else |
| "SET TERMINAL WIDTH <cols>", |
| " Tells how many columns define the terminal size.", |
| " ", |
| "Default is 80. In Windowed OS/2 2.x sessions, this value may not be changed", |
| "In Windowed OS/2 WARP 3.x sessions, this value may range from 20 to 255.", |
| "In Full screen sessions, values of 40, 80, and 132 are valid. Not all", |
| "combinations of height and width are supported on all adapters.", |
| " ", |
| #endif /* NT */ |
| "SET TERMINAL WRAP { OFF, ON }", |
| " Tells whether the terminal emulator should automatically wrap long lines", |
| " on your screen.", |
| " ", |
| #else |
| |
| "SET TERMINAL WIDTH <number>", |
| " \ |
| Tells Kermit how many columns (characters) are on your CONNECT-mode screen.", |
| " ", |
| #endif /* OS2 */ |
| "Type SHOW TERMINAL to see current terminal settings.", |
| "" }; |
| #endif /* NOLOCAL */ |
| |
| #ifdef NETCONN |
| static char *hxyhost[] = { |
| "SET HOST [ switches ] hostname-or-address [ service ] [ protocol-switch ]", |
| " Establishes a connection to the specified network host on the currently", |
| " selected network type. For TCP/IP connections, the default service is", |
| " TELNET; specify a different TCP port number or service name to choose a", |
| " different service. The first set of switches can be:", |
| " ", |
| " /NETWORK-TYPE:name", |
| " Makes the connection on the given type of network. Equivalent to SET", |
| " NETWORK TYPE name prior to SET HOST, except that the selected network", |
| " type is used only for this connection. Type \"set host /net:?\" to see", |
| #ifdef NETCMD |
| " a list. /NETWORK-TYPE:COMMAND means to make the connection through the", |
| " given system command, such as \"rlogin\" or \"cu\".", |
| #else |
| " a list.", |
| #endif /* NETCMD */ |
| " ", |
| " /CONNECT", |
| " \ |
| Enter CONNECT (terminal) mode automatically if the connection is successful.", |
| " ", |
| " /SERVER", |
| " Enter server mode automatically if the connection is successful.", |
| " ", |
| " /USERID:[<name>]", |
| " This switch is equivalent to SET LOGIN USERID <name> or SET TELNET", |
| " ENVIRONMENT USER <name>. If a string is given, it sent to host during", |
| " Telnet negotiations; if this switch is given but the string is omitted,", |
| " no user ID is sent to the host. If this switch is not given, your", |
| " current USERID value, \\v(userid), is sent. When a userid is sent to the", |
| " host it is a request to login as the specified user.", |
| " ", |
| #ifdef CK_AUTHENTICATION |
| " /PASSWORD:[<string>]", |
| " This switch is equivalent to SET LOGIN PASSWORD. If a string is given,", |
| " it is treated as the password to be used (if required) by any Telnet", |
| " Authentication protocol (Kerberos Ticket retrieval, Secure Remote", |
| " Password, or X.509 certificate private key decryption.) If no password", |
| " switch is specified a prompt is issued to request the password if one", |
| " is required for the negotiated authentication method.", |
| " ", |
| #endif /* CK_AUTHENTICATION */ |
| "The protocol-switches can be:", |
| " ", |
| " /NO-TELNET-INIT", |
| " Do not send initial Telnet negotiations even if this is a Telnet port.", |
| " ", |
| " /RAW-SOCKET", |
| " This is a connection to a raw TCP socket.", |
| " ", |
| #ifdef RLOGCODE |
| " /RLOGIN", |
| " Use Rlogin protocol even if this is not an Rlogin port.", |
| " ", |
| #endif /* RLOGCODE */ |
| " /TELNET", |
| " Send initial Telnet negotiations even if this is not a Telnet port.", |
| " ", |
| #ifdef CK_KERBEROS |
| #ifdef RLOGCODE |
| #ifdef KRB4 |
| " /K4LOGIN", |
| " Use Kerberos IV klogin protocol even if this is not a klogin port.", |
| " ", |
| #ifdef CK_ENCRYPTION |
| " /EK4LOGIN", |
| " Use Kerberos IV Encrypted login protocol even if this is not an eklogin", |
| " port.", |
| " ", |
| #endif /* CK_ENCRYPTION */ |
| #endif /* KRB4 */ |
| #ifdef KRB5 |
| " /K5LOGIN", |
| " Use Kerberos V klogin protocol even if this is not a klogin port.", |
| " ", |
| #ifdef CK_ENCRYPTION |
| " /EK5LOGIN", |
| " Use Kerberos V Encrypted login protocol even if this is not an eklogin", |
| " port.", |
| " ", |
| #endif /* CK_ENCRYPTION */ |
| #endif /* KRB5 */ |
| #endif /* RLOGCODE */ |
| #endif /* CK_KERBEROS */ |
| #ifdef CK_SSL |
| " /SSL", |
| " Perform SSL negotiations.", |
| " ", |
| " /SSL-TELNET", |
| " Perform SSL negotiations and if successful start Telnet negotiations.", |
| " ", |
| " /TLS", |
| " Perform TLS negotiations.", |
| " ", |
| " /TLS-TELNET", |
| " Perform TLS negotiations and if successful start Telnet negotiations.", |
| " ", |
| #endif /* CK_SSL */ |
| "Examples:", |
| " SET HOST kermit.columbia.edu", |
| " SET HOST /CONNECT kermit.columbia.edu", |
| " SET HOST * 1649", |
| " SET HOST /SERVER * 1649", |
| " SET HOST 128.59.39.2", |
| " SET HOST madlab.sprl.umich.edu 3000", |
| " SET HOST xyzcorp.com 2000 /RAW-SOCKET", |
| #ifdef SSHBUILTIN |
| " SET HOST /NET:SSH kermit.columbia.edu /x11-forwarding:on", |
| #endif /* SSHBUILTIN */ |
| #ifdef NETCMD |
| " SET HOST /CONNECT /COMMAND rlogin xyzcorp.com", |
| #endif /* NETCMD */ |
| " ", |
| #ifdef SUPERLAT |
| "Notes:", |
| " ", |
| " . The TELNET command is equivalent to SET NETWORK TYPE TCP/IP,", |
| " SET HOST name [ port ] /TELNET, IF SUCCESS CONNECT", |
| " ", |
| " . For SUPERLAT connections, the hostname-or-address may be either a service", |
| " name, or a node/port combination, as required by your LAT host.", |
| #else |
| "The TELNET command is equivalent to SET NETWORK TYPE TCP/IP,", |
| "SET HOST name [ port ] /TELNET, IF SUCCESS CONNECT", |
| #endif /* SUPERLAT */ |
| " ", |
| "Also see SET NETWORK, TELNET, SET TELNET.", |
| "" }; |
| |
| static char *hmxyauth[] = { |
| "Synatx: SET AUTHENTICATION <auth_type> <parameter> <value>", |
| " Sets defaults for the AUTHENTICATE command:", |
| " ", |
| #ifdef CK_KERBEROS |
| "SET AUTHENTICATION KERBEROS5 ADDRESSES {list of ip-addresses}", |
| " Specifies a list of IP addresses that should be placed in the Ticket", |
| " Getting Ticket in addition to the local machine addresses.", |
| " ", |
| "SET AUTHENTICATION { KERBEROS4, KERBEROS5 } AUTODESTROY", |
| " { ON-CLOSE, ON-EXIT, NEVER }", |
| " When ON, Kermit will destroy all credentials in the default", |
| " credentials cache upon Kermit termination. Default is NEVER.", |
| " ", |
| "SET AUTHENTICATION { KERBEROS4, KERBEROS5 } AUTOGET { ON, OFF }", |
| " When ON, if the host offers Kerberos 4 or Kerberos 5 authentication", |
| " and Kermit is configured to use that authentication method and there", |
| " is no TGT, Kermit will automatically attempt to retrieve one by", |
| " prompting for the password (and principal if needed.) Default is ON.", |
| " ", |
| "SET AUTHENTICATION KERBEROS5 CREDENTIALS-CACHE <filename>", |
| " Allows an alternative credentials cache to be specified. This is useful", |
| " when you need to maintain two or more sets of credentials for different", |
| " realms or roles. The default is specified by the environment variable", |
| " KRB5CCNAME or as reported by the Kerberos 5 library.", |
| " ", |
| "SET AUTHENTICATION KERBEROS5 FORWARDABLE { ON, OFF }", |
| " When ON, specifies that Kerberos 5 credentials should be forwardable to", |
| " the host. If SET TELNET AUTHENTICATION FORWARDING is ON, forwardable", |
| " credentials are sent to the host. The default is OFF.", |
| " ", |
| "SET AUTHENTICATION KERBEROS5 GET-K4-TGT { ON, OFF }", |
| " When ON, specifies that Kerberos 4 credentials should be requested each", |
| " time Kerberos 5 credentials are requested with AUTH KERBEROS5 INIT.", |
| " Default is OFF.", |
| " ", |
| "SET AUTHENTICATION KERBEROS4 INSTANCE <instance>", |
| " Allows a Kerberos 4 instance to be specified as a default (if needed).", |
| " ", |
| "SET AUTHENTICATION { KERBEROS4, KERBEROS5 } KEYTAB <filename>", |
| " Specifies the location of the keytab file used to authenticate incoming", |
| " connections. The default is none, which means to use the default value", |
| " configured in the Kerberos installation.", |
| " ", |
| "SET AUTHENTICATION { KERBEROS4, KERBEROS5 } LIFETIME <minutes>", |
| " Specifies the lifetime of the TGTs requested from the KDC. The default", |
| " is 600 minutes (10 hours).", |
| " ", |
| "SET AUTHENTICATION KERBEROS5 NO-ADDRESSES { ON, OFF }", |
| " Specifies whether or not IP addresses will be inserted into the TGT." |
| " Default is OFF.", |
| " ", |
| "SET AUTHENTICATION KERBEROS4 PREAUTH { ON, OFF }", |
| " Allows Kerberos 4 preauthenticated TGT requests to be turned off. The", |
| " default is ON. Only use if absolutely necessary. We recommend that", |
| " preauthenticated requests be required for all tickets returned by a KDC", |
| " to a requestor.", |
| " ", |
| "SET AUTHENTICATION { KERBEROS4, KERBEROS5 } PRINCIPAL <name>", |
| " When Kermit starts, it attempts to set the principal name to that stored", |
| " in the current credentials cache. If no credential cache exists, the", |
| " current SET LOGIN USERID value is used. SET LOGIN USERID is set to the", |
| " operating system's current username when Kermit is started. To force", |
| " Kermit to prompt the user for the principal name when requesting TGTs,", |
| " place:", |
| " ", |
| " SET AUTH K4 PRINCIPAL {}", |
| " SET AUTH K5 PRINCIPAL {}", |
| " ", |
| " in the Kermit initialization file or connection script.", |
| " ", |
| "SET AUTHENTICATION { KERBEROS4, KERBEROS5 } PROMPT PASSWORD <prompt>", |
| " Specifies a custom prompt to be used when prompting for a password.", |
| " The Kerberos prompt strings may contain two %s replacement fields.", |
| " The first %s is replaced by the principal name; the second by the realm.", |
| " ", |
| "SET AUTHENTICATION { KERBEROS4, KERBEROS5 } PROMPT PRINCIPAL <prompt>", |
| " Specifies a custom prompt to be used when prompting for the Kerberos", |
| " principal name. No %s replacement fields may be used. Kermit prompts", |
| " for a principal name when retrieving a TGT if the command:", |
| " ", |
| " SET AUTHENTICATION { KERBEROS4, KERBEROS5 } PRINCIPAL {}", |
| " ", |
| " has been issued.", |
| " ", |
| "SET AUTHENTICATION KERBEROS5 PROXIABLE { ON, OFF }", |
| " When ON, specifies that Kerberos 5 credentials should be proxiable.", |
| " Default is OFF.", |
| " ", |
| "SET AUTHENTICATION KERBEROS5 RENEWABLE <minutes>", |
| " When <minutes> is greater than the ticket lifetime a TGT may be renewed", |
| " with AUTH K5 INIT /RENEW instead of getting a new ticket as long as the", |
| " ticket is not expired and its within the renewable lifetime. Default is", |
| " 0 (zero) minutes.", |
| " ", |
| "SET AUTHENTICATION { KERBEROS4, KERBEROS5 } REALM <name>", |
| " If no default is set, the default realm configured for the Kerberos", |
| " libraries is used. Abbreviations accepted.", |
| " ", |
| "SET AUTHENTICATION { KERBEROS4, KERBEROS5 } SERVICE-NAME <name>", |
| " This command specifies the service ticket name used to authenticate", |
| " to the host when Kermit is used as a client; or the service ticket", |
| " name accepted by Kermit when it is acting as the host.", |
| " If no default is set, the default service name for Kerberos 4 is", |
| " \"rcmd\" and for Kerberos 5 is \"host\".", |
| " ", |
| #endif /* CK_KERBEROS */ |
| #ifdef CK_SRP |
| "SET AUTHENTICATION SRP PROMPT PASSWORD <prompt>", |
| " Specifies a custom prompt to be used when prompting for a password.", |
| " The SRP prompt string may contain one %s replacement fields which is", |
| " replaced by the login userid.", |
| " ", |
| #endif /* CK_SRP */ |
| #ifdef CK_SSL |
| "In all of the following commands \"SSL\" and \"TLS\" are aliases.", |
| " ", |
| "SET AUTHENTICATION { SSL, TLS } CIPHER-LIST <list of ciphers>", |
| "Applies to both SSL and TLS. A colon separated list of any of the following", |
| "(case sensitive) options depending on the options chosen when OpenSSL was ", |
| "compiled: ", |
| " ", |
| " Key Exchange Algorithms:", |
| " \"kRSA\" RSA key exchange", |
| " \"kDHr\" Diffie-Hellman key exchange (key from RSA cert)", |
| " \"kDHd\" Diffie-Hellman key exchange (key from DSA cert)", |
| " \"kEDH\" Ephemeral Diffie-Hellman key exchange (temporary key)", |
| " \"kKRB5\" Kerberos 5", |
| " ", |
| " Authentication Algorithm:", |
| " \"aNULL\" No authentication", |
| " \"aRSA\" RSA authentication", |
| " \"aDSS\" DSS authentication", |
| " \"aDH\" Diffie-Hellman authentication", |
| " \"aKRB5\" Kerberos 5", |
| " ", |
| " Cipher Encoding Algorithm:", |
| " \"eNULL\" No encodiing", |
| " \"DES\" DES encoding", |
| " \"3DES\" Triple DES encoding", |
| " \"RC4\" RC4 encoding", |
| " \"RC2\" RC2 encoding", |
| " \"IDEA\" IDEA encoding", |
| " ", |
| " MAC Digest Algorithm:", |
| " \"MD5\" MD5 hash function", |
| " \"SHA1\" SHA1 hash function", |
| " \"SHA\" SHA hash function (should not be used)", |
| " ", |
| " Aliases:", |
| " \"SSLv2\" all SSL version 2.0 ciphers (should not be used)", |
| " \"SSLv3\" all SSL version 3.0 ciphers", |
| " \"EXP\" all export ciphers (40-bit)", |
| " \"EXPORT56\" all export ciphers (56-bit)", |
| " \"LOW\" all low strength ciphers (no export)", |
| " \"MEDIUM\" all ciphers with 128-bit encryption", |
| " \"HIGH\" all ciphers using greater than 128-bit encryption", |
| " \"RSA\" all ciphers using RSA key exchange", |
| " \"DH\" all ciphers using Diffie-Hellman key exchange", |
| " \"EDH\" all ciphers using Ephemeral Diffie-Hellman key exchange", |
| " \"ADH\" all ciphers using Anonymous Diffie-Hellman key exchange", |
| " \"DSS\" all ciphers using DSS authentication", |
| " \"KRB5\" all ciphers using Kerberos 5 authentication", |
| " \"NULL\" all ciphers using no encryption", |
| " ", |
| "Each item in the list may include a prefix modifier:", |
| " ", |
| " \"+\" move cipher(s) to the current location in the list", |
| " \"-\" remove cipher(s) from the list (may be added again by", |
| " a subsequent list entry)", |
| " \"!\" kill cipher from the list (it may not be added again", |
| " by a subsequent list entry)", |
| " ", |
| "If no modifier is specified the entry is added to the list at the current ", |
| "position. \"+\" may also be used to combine tags to specify entries such as " |
| , |
| "\"RSA+RC4\" describes all ciphers that use both RSA and RC4.", |
| " ", |
| "For example, all available ciphers not including ADH key exchange:", |
| " ", |
| " ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP", |
| " ", |
| "All algorithms including ADH and export but excluding patented algorithms: ", |
| " ", |
| " HIGH:MEDIUM:LOW:EXPORT56:EXP:ADH:!kRSA:!aRSA:!RC4:!RC2:!IDEA", |
| " ", |
| "The OpenSSL command ", |
| " ", |
| " openssl.exe ciphers -v <list of ciphers> ", |
| " ", |
| "may be used to list all of the ciphers and the order described by a specific", |
| "<list of ciphers>.", |
| " ", |
| "SET AUTHENTICATION { SSL, TLS } CRL-DIR <directory>", |
| "specifies a directory that contains certificate revocation files where each", |
| "file is named by the hash of the certificate that has been revoked.", |
| " ", |
| " OpenSSL expects the hash symlinks to be made like this:", |
| " ", |
| " ln -s crl.pem `openssl crl -hash -noout -in crl.pem`.r0", |
| " ", |
| " Since not all file systems have symlinks you can use the following command", |
| " in Kermit to copy the crl.pem file to the hash file name.", |
| " ", |
| " copy crl.pem {\\fcommand(openssl.exe crl -hash -noout -in crl.pem).r0}", |
| " ", |
| " This produces a hash based on the issuer field in the CRL such ", |
| " that the issuer field of a Cert may be quickly mapped to the ", |
| " correct CRL.", |
| " ", |
| "SET AUTHENTICATION { SSL, TLS } CRL-FILE <filename>", |
| "specifies a file that contains a list of certificate revocations.", |
| " ", |
| "SET AUTHENTICATION { SSL, TLS } DEBUG { ON, OFF }", |
| "specifies whether debug information should be displayed about the SSL/TLS", |
| "connection. When DEBUG is ON, the VERIFY command does not terminate", |
| "connections when set to FAIL-IF-NO-PEER-CERT when a certificate is", |
| "presented that cannot be successfully verified. Instead each error", |
| "is displayed but the connection automatically continues.", |
| " ", |
| "SET AUTHENTICATION { SSL, TLS } DH-PARAM-FILE <filename>", |
| " Specifies a file containing DH parameters which are used to generate", |
| " temporary DH keys. If a DH parameter file is not provided Kermit uses a", |
| " fixed set of parameters depending on the negotiated key length. Kermit", |
| " provides DH parameters for key lengths of 512, 768, 1024, 1536, and 2048", |
| " bits.", |
| " ", |
| "SET AUTHENTICATION { SSL, TLS } DSA-CERT-CHAIN-FILE <filename>", |
| " Specifies a file containing a DSA certificate chain to be sent along with", |
| " the DSA-CERT to the peer. This file must only be specified if Kermit is", |
| " being used as a server and the DSA certificate was signed by an", |
| " intermediary certificate authority.", |
| " ", |
| "SET AUTHENTICATION { SSL, TLS } DSA-CERT-FILE <filename>", |
| " Specifies a file containing a DSA certificate to be sent to the peer to ", |
| " authenticate the host or end user. The file may contain the matching DH ", |
| " private key instead of using the DSA-KEY-FILE command.", |
| " ", |
| "SET AUTHENTICATION { SSL, TLS } DSA-KEY-FILE <filename>", |
| "Specifies a file containing the private DH key that matches the DSA ", |
| "certificate specified with DSA-CERT-FILE. This command is only necessary if", |
| "the private key is not appended to the certificate in the file specified by", |
| "DSA-CERT-FILE.", |
| " ", |
| " Note: When executing a script in the background or when it is", |
| " running as an Internet Kermit Service Daemon, Kermit cannot support ", |
| " encrypted private keys. When attempting to load a private key that is", |
| " encrypted, a prompt will be generated requesting the passphrase necessary", |
| " to decrypt the keyfile. To automate access to the private key you must", |
| " decrypt the encrypted keyfile and create an unencrypted keyfile for use", |
| " by Kermit. This can be accomplished by using the following command and", |
| " the passphrase:", |
| " ", |
| " openssl dsa -in <encrypted-key-file> -out <unencrypted-key-file>", |
| " ", |
| "SET AUTHENTICATION { SSL, TLS } RANDOM-FILE <filename>", |
| " Specifies a file containing random data to be used as seed for the", |
| " Pseudo Random Number Generator. The contents of the file are", |
| " overwritten with new random data on each use.", |
| " ", |
| "SET AUTHENTICATION { SSL, TLS } RSA-CERT-CHAIN-FILE <filename>", |
| " Specifies a file containing a RSA certificate chain to be sent along with", |
| " the RSA-CERT to the peer. This file must only be specified if Kermit is", |
| " being used as a server and the RSA certificate was signed by an", |
| " intermediary certificate authority.", |
| " ", |
| "SET AUTHENTICATION { SSL, TLS } RSA-CERT-FILE <filename>", |
| " Specifies a file containing a RSA certificate to be sent to the peer to ", |
| " authenticate the host or end user. The file may contain the matching RSA ", |
| " private key instead of using the RSA-KEY-FILE command.", |
| " ", |
| "SET AUTHENTICATION { SSL, TLS } RSA-KEY-FILE <filename>", |
| " Specifies a file containing the private RSA key that matches the RSA", |
| " certificate specified with RSA-CERT-FILE. This command is only necessary", |
| " if the private key is not appended to the certificate in the file specified" |
| , |
| " by RSA-CERT-FILE. ", |
| " ", |
| " Note: When executing a script in the background or when it is", |
| " running as an Internet Kermit Service Daemon, Kermit cannot support ", |
| " encrypted private keys. When attempting to load a private key that is", |
| " encrypted, a prompt will be generated requesting the passphrase necessary", |
| " to decrypt the keyfile. To automate access to the private key you must", |
| " decrypt the encrypted keyfile and create an unencrypted keyfile for use", |
| " by Kermit. This can be accomplished by using the following command and", |
| " the passphrase:", |
| " ", |
| " openssl rsa -in <encrypted-key-file> -out <unencrypted-key-file>", |
| " ", |
| "SET AUTHENTICATION { SSL, TLS } VERBOSE { ON, OFF }", |
| " Specifies whether information about the authentication (ie, the", |
| " certificate chain) should be displayed upon making a connection.", |
| " ", |
| "SET AUTHENTICATION { SSL, TLS } VERIFY { NO,PEER-CERT,FAIL-IF-NO-PEER-CERT }", |
| " Specifies whether certificates should be requested from the peer verified;", |
| " whether they should be verified when they are presented; and whether they", |
| " should be required. When set to NO (the default for IKSD), Kermit does", |
| " not request that the peer send a certificate; if one is presented it is", |
| " ignored. When set to PEER-CERT (the default when not IKSD), Kermit", |
| " requests a certificate be sent by the peer. If presented, the certificate", |
| " is verified. Any errors during the verification process result in", |
| " queries to the end user. When set to FAIL-IF-NO-PEER-CERT, Kermit", |
| " requests a certificate be sent by the peer. If the certificate is not", |
| " presented or fails to verify, the connection is terminated without", |
| " querying the user.", |
| " ", |
| " If an anonymous cipher (i.e., ADH) is desired, the NO setting must be", |
| " used. Otherwise, the receipt of the peer certificate request is", |
| " interpreted as a protocol error and the negotiation fails.", |
| " ", |
| " If you wish to allow the peer to authenticate using either an X509", |
| " certificate to userid mapping function or via use of a ~/.tlslogin file", |
| " you must use either PEER-CERT or FAIL-IF-NO-PEER-CERT. Otherwise, any", |
| " certificates that are presented is ignored. In other words, use NO if you", |
| " want to disable the ability to use certificates to authenticate a peer.", |
| " ", |
| "SET AUTHENTICATION { SSL, TLS } VERIFY-DIR <directory>", |
| " Specifies a directory that contains root CA certificate files used to", |
| " verify the certificate chains presented by the peer. Each file is named", |
| " by a hash of the certificate.", |
| " ", |
| " OpenSSL expects the hash symlinks to be made like this:", |
| " ", |
| " ln -s cert.pem `openssl x509 -hash -noout -in cert.pem`.0", |
| " ", |
| " Since not all file systems have symlinks you can use the following command", |
| " in Kermit to copy the cert.pem file to the hash file name.", |
| " ", |
| " copy cert.pem {\\fcommand(openssl.exe x509 -hash -noout -in cert.pem).0}", |
| " ", |
| " This produces a hash based on the subject field in the cert such that the", |
| " certificate may be quickly found.", |
| " ", |
| "SET AUTHENTICATION { SSL, TLS } VERIFY-FILE <file>", |
| " Specifies a file that contains root CA certificates to be used for", |
| " verifying certificate chains.", |
| " ", |
| #endif /* CK_SSL */ |
| "" |
| }; |
| |
| static char *hxynet[] = { |
| "Syntax: SET NETWORK { TYPE network-type, DIRECTORY [ file(s)... ] }", |
| " ", |
| "Select the type of network to be used with SET HOST connections:", |
| " ", |
| #ifdef NETCMD |
| " SET NETWORK TYPE COMMAND ; Make a connection through an external command", |
| #endif /* NETCMD */ |
| #ifdef TCPSOCKET |
| " SET NETWORK TYPE TCP/IP ; Internet: Telnet, Rlogin, etc.", |
| #endif /* TCPSOCKET */ |
| #ifdef ANYX25 |
| " SET NETWORK TYPE X.25 ; X.25 peer-to-peer connections.", |
| #endif /* ANYX25 */ |
| #ifdef DECNET |
| " SET NETWORK TYPE PATHWORKS { LAT, CTERM } ; DEC LAT or CTERM connections.", |
| #endif /* DECNET */ |
| #ifdef NPIPE |
| " SET NETWORK TYPE NAMED-PIPE <pipename> ; OS/2 Named Pipe connections.", |
| #endif /* NPIPE */ |
| #ifdef CK_NETBIOS |
| " SET NETWORK TYPE NETBIOS ; NETBIOS peer-to-peer connections", |
| #endif /* CK_NETBIOS */ |
| #ifdef SUPERLAT |
| " SET NETWORK TYPE SUPERLAT ; LAT connections (Meridian Technology SuperLAT)", |
| #endif /* SUPERLAT */ |
| " ", |
| "If only one network type is listed above, that is the default network for", |
| #ifdef RLOGCODE |
| "SET HOST commands. Also see SET HOST, TELNET, RLOGIN.", |
| #else |
| #ifdef TNCODE |
| "SET HOST commands. Also see SET HOST, TELNET.", |
| #else |
| "SET HOST commands. Also see SET HOST.", |
| #endif /* TNCODE */ |
| #endif /* RLOGCODE */ |
| " ", |
| "SET NETWORK DIRECTORY [ file [ file [ ... ] ] ]", |
| " Specifies the name(s) of zero or more network directory files, similar to", |
| " dialing directories (HELP DIAL for details). The general format of a", |
| " network directory entry is:", |
| " ", |
| " name network-type address [ network-specific-info ] [ ; comment ]", |
| " ", |
| " For TCP/IP, the format is:", |
| " ", |
| " name tcp/ip ip-hostname-or-address [ socket ] [ ; comment ]", |
| " ", |
| "You can have multiple network directories and you can have multiple entries", |
| "with the same name. SET HOST <name> and TELNET <name> commands look up the", |
| "given <name> in the directory and, if found, fill in the additional items", |
| "from the entry, and then try all matching entries until one succeeds.", |
| ""}; |
| |
| #ifndef NOTCPOPTS |
| static char *hxytcp[] = { |
| #ifdef SOL_SOCKET |
| "SET TCP ADDRESS <ip-address>", |
| " This allows a specific IP Address on a multihomed host to be used", |
| " instead of allowing the TCP/IP stack to choose. This may be necessary", |
| " when using authentication or listening for an incoming connection.", |
| " Specify no <ip-address> to remove the preference.", |
| " ", |
| "SET TCP KEEPALIVE { ON, OFF }", |
| " Setting this ON might help to detect broken connections more quickly.", |
| " (default is ON.)", |
| " ", |
| "SET TCP LINGER { ON [timeout], OFF }", |
| " Setting this ON ensures that a connection doesn't close before all", |
| " outstanding data has been transferred and acknowledged. The timeout is", |
| " measured in 10ths of milliseconds. The default is ON with a timeout of 0.", |
| " ", |
| "SET TCP NODELAY { ON, OFF }", |
| " ON means send short TCP packets immediately rather than waiting", |
| " to accumulate a bunch of them before transmitting (Nagle Algorithm).", |
| " (default is OFF.)", |
| " ", |
| "SET TCP RECVBUF <number>", |
| "SET TCP SENDBUF <number>", |
| " TCP receive and send buffer sizes. (default is -1, use system defaults.)", |
| " ", |
| "These items let you tune TCP networking performance on a per-connection", |
| "basis by adjusting parameters you normally would not have access to. You", |
| "should use these commands only if you feel that the TCP/IP protocol stack", |
| "that Kermit is using is giving you inadequate performance, and then only if", |
| "you understand the concepts (see, for example, the Comer TCP/IP books), and", |
| "then at your own risk. These settings are displayed by SHOW NETWORK. Not", |
| "all options are necessarily available in all Kermit versions; it depends on", |
| "the underlying TCP/IP services.", |
| " ", |
| "The following TCP and/or IP parameter(s) may also be changed:", |
| " ", |
| #endif /* SOL_SOCKET */ |
| "SET TCP REVERSE-DNS-LOOKUP { AUTO, ON, OFF }", |
| " Tells Kermit whether to perform reverse DNS lookup on TCP/IP connections", |
| " so Kermit can determine the actual hostname of the host it is connected", |
| " to, which is useful for connections to host pools, and is required for", |
| " Kerberos connections to host pools and for incoming connections. If the", |
| " other host does not have a DNS entry, the reverse lookup could take a long", |
| " time (minutes) to fail, but the connection will still be made. Turn this", |
| " option OFF for speedier connections if you do not need to know exactly", |
| " which host you are connected to and you are not using Kerberos. AUTO, the", |
| " default, means the lookup is done on hostnames, but not on numeric IP", |
| " addresses unless Kerberos support is installed.", |
| #ifdef CK_DNS_SRV |
| " ", |
| "SET TCP DNS-SERVICE-RECORDS {ON, OFF}", |
| " Tells Kermit whether to try to use DNS SRV records to determine the", |
| " host and port number upon which to find an advertised service. For", |
| " example, if a host wants regular Telnet connections redirected to some", |
| " port other than 23, this feature allows Kermit to ask the host which", |
| " port it should use. Since not all domain servers are set up to answer", |
| " such requests, this feature is OFF by default.", |
| #endif /* CK_DNS_SRV */ |
| #ifdef NT |
| #ifdef CK_SOCKS |
| " ", |
| "SET TCP SOCKS-SERVER [<hostname or ip-address>]", |
| " If a hostname or ip-address is specified, Kermit will use the SOCKS", |
| " server when attempting outgoing connections. If no hostname or", |
| " ip-address is specified, any previously specified SOCKS server will", |
| " be removed.", |
| #endif /* CK_SOCKS */ |
| #endif /* NT */ |
| #ifndef NOHTTP |
| " ", |
| "SET TCP HTTP-PROXY [<hostname or ip-address>[:<port>]]", |
| " If a hostname or ip-address is specified, Kermit will use the Proxy", |
| " server when attempting outgoing connections. If no hostname or", |
| " ip-address is specified, any previously specified Proxy server will", |
| " be removed. If no port number is specified, the \"http\" service", |
| " will be used.", |
| #endif /* NOHTTP */ |
| ""}; |
| #endif /* NOTCPOPTS */ |
| #endif /* NETCONN */ |
| |
| #ifdef TNCODE |
| static char *hxytopt[] = { |
| "SET TELOPT [ { /CLIENT, /SERVER } ] <option> -", |
| " { ACCEPTED, REFUSED, REQUESTED, REQUIRED } -", |
| " [ { ACCEPTED, REFUSED, REQUESTED, REQUIRED } ]", |
| " SET TELOPT lets you specify policy requirements for Kermit's handling of", |
| " Telnet option negotiations. Setting an option REQUIRED causes Kermit", |
| " to offer the option to the peer and disconnect if the option is refused.", |
| " REQUESTED causes Kermit to offer an option to the peer. ACCEPTED results", |
| " in no offer but Kermit will attempt to negotiate the option if it is", |
| " requested. REFUSED instructs Kermit to refuse the option if it is", |
| " requested by the peer.", |
| " ", |
| " Some options are negotiated in two directions and accept separate policies", |
| " for each direction; the first keyword applies to Kermit itself, the second", |
| " applies to Kermit's Telnet partner; if the second keyword is omitted, an", |
| " appropriate (option-specific) default is applied. You can also include a", |
| " /CLIENT or /SERVER switch to indicate whether the given policies apply", |
| " when Kermit is the Telnet client or the Telnet server; if no switch is", |
| " given, the command applies to the client.", |
| " ", |
| " Note that some of Kermit's Telnet partners fail to refuse options that", |
| " they do not recognize and instead do not respond at all. In this case it", |
| " is possible to use SET TELOPT to instruct Kermit to REFUSE the option", |
| " before connecting to the problem host, thus skipping the problematic", |
| " negotiation.", |
| " ", |
| " Use SHOW TELOPT to view current Telnet Option negotiation settings.", |
| " SHOW TELNET displays current Telnet settings.", |
| ""}; |
| |
| static char *hxytel[] = { |
| "Syntax: SET TELNET parameter value", |
| " ", |
| "For TCP/IP TELNET connections, which are in NVT (ASCII) mode by default:", |
| " ", |
| #ifdef CK_AUTHENTICATION |
| #ifdef COMMENT |
| "SET TELNET AUTHENICATION { ACCEPTED, REFUSED, REQUESTED, REQUIRED }", |
| " ACCEPT or REFUSE authentication bids, or actively REQUEST authentication.", |
| " REQUIRED refuses the connection if authentication is not successfully", |
| " negotiated. ACCEPTED by default.", |
| " ", |
| #endif /* COMMENT */ |
| "SET TELNET AUTHENTICATION TYPE { AUTOMATIC, KERBEROS_IV, KERBEROS_V, ...", |
| #ifdef NT |
| " ..., NTLM, SSL, SRP, NONE } [...]", |
| #else /* NT */ |
| " ..., SSL, SRP, NONE } [...]", |
| #endif /* NT */ |
| " AUTOMATIC is the default. Available options can vary depending on the", |
| " features Kermit was built to support and the operating system", |
| " configuration; type SET TELNET AUTHENTICATION TYPE ? for a list.", |
| " ", |
| " When Kermit is the Telnet client:", |
| " AUTOMATIC allows the host to choose the preferred type of authentication." |
| , |
| " NONE instructs Kermit to refuse all authentication methods when the", |
| " authentication option is negotiated. A list of one or more other values", |
| " allow a specific subset of the supported authentication methods to be", |
| " used.", |
| " ", |
| " When Kermit is the Telnet server:", |
| " AUTOMATIC results in available authentication methods being offered", |
| " to the telnet client in the following order:", |
| " ", |
| #ifdef NT |
| " KERBEROS_V, KERBEROS_IV, SRP, SSL, NTLM", |
| #else /* NT */ |
| " KERBEROS_V, KERBEROS_IV, SRP, SSL, NTLM", |
| #endif /* NT */ |
| " ", |
| " NONE results in no authentication methods being offered to the Telnet", |
| " server when the authentication option is negotiated. The preferred", |
| " method of disabling authentication is:", |
| " ", |
| " SET TELOPT /SERVER AUTHENTICATION REFUSE", |
| " ", |
| " A list of one or more authentication methods specifies the order those", |
| " methods are to be offered to the telnet client.", |
| #ifdef NT |
| " ", |
| " If you wish to allow NTLM authentication to be used with the Microsoft", |
| " Windows 2000 or Services for Unix Telnet client you must specify a list", |
| " with NTLM as the first item in the list. By default, NTLM is the last", |
| " item in the list because it does not provide any form of data encryption.", |
| #endif /* NT */ |
| " ", |
| #ifdef CK_KERBEROS |
| "SET TELNET AUTHENTICATION FORWARDING { ON, OFF }", |
| " Set this to ON to forward Kerberos V ticket-granting-tickets to the host", |
| " after authentication is complete. OFF by default.", |
| " ", |
| #endif /* CK_KERBEROS */ |
| "SET TELNET AUTHENTICATION ENCRYPT-FLAG { ANY, NONE, TELOPT }", |
| " Use this command to specify which AUTH telopt encryption flags may be", |
| " accepted in client mode or offered in server mode. The default is ANY.", |
| " ", |
| "SET TELNET AUTHENTICATION HOW-FLAG { ANY, ONE-WAY, MUTUAL }", |
| " Use this command to specify which AUTH telopt how flags may be", |
| " accepted in client mode or offered in server mode. The default is ANY.", |
| " ", |
| #endif /* CK_AUTHENTICATION */ |
| #ifdef COMMENT |
| "SET TELNET BINARY-MODE { ACCEPTED, REFUSED, REQUESTED, REQUIRED }", |
| " ACCEPT or REFUSE binary-mode bids, or actively REQUEST binary mode.", |
| " REQUIRED refuses the connection if binary mode is not successfully", |
| " negotiated in both directions. ACCEPTED by default.", |
| " ", |
| #endif /* COMMENT */ |
| "SET TELNET BINARY-TRANSFER-MODE { ON, OFF }", |
| " When ON (OFF by default) and BINARY negotiations are not REFUSED Kermit", |
| " will attempt to negotiate BINARY mode in each direction before the start", |
| " of each file transfer. After the transfer is complete BINARY mode will", |
| " be restored to the pre-transfer state.", |
| " ", |
| "SET TELNET BINARY-TRANSFER-MODE { ON, OFF }", |
| " Set this command to ON if you want to force Kermit to negotiate", |
| " Telnet Binary in both directions when performing file transfers.", |
| " Default is OFF. Alias SET TELNET BINARY-XFER-MODE.", |
| " ", |
| "SET TELNET BUG AUTH-KRB5-DES { ON, OFF }", |
| " Default is ON. Disable this bug to enable the use of encryption types", |
| " other than DES such as 3DES or CAST-128 when the Kerberos 5 session key", |
| " is longer than 8 bytes.", |
| " ", |
| "SET TELNET BUG BINARY-ME-MEANS-U-TOO { ON, OFF }", |
| " Set this to ON to try to overcome TELNET binary-mode misnegotiations by", |
| " Kermit's TELNET partner.", |
| " ", |
| "SET TELNET BUG BINARY-U-MEANS-ME-TOO { ON, OFF }", |
| " Set this to ON to try to overcome TELNET binary-mode misnegotiations by", |
| " Kermit's TELNET partner.", |
| " ", |
| "SET TELNET BUG INFINITE-LOOP-CHECK { ON, OFF }", |
| " Set this to ON to prevent Kermit from responding to a telnet negotiation", |
| " sequence that enters an infinite loop. The default is OFF because this", |
| " should never occur.", |
| " ", |
| "SET TELNET BUG SB-IMPLIES-WILL-DO { ON, OFF }", |
| " Set this to ON to allow Kermit to respond to telnet sub-negotiations if", |
| " the peer forgets to respond to WILL with DO or to DO with WILL.", |
| " ", |
| "SET TELNET DEBUG { ON, OFF }", |
| " Set this to ON to display telnet negotiations as they are sent and", |
| " received.", |
| " ", |
| "SET TELNET DELAY-SB { ON, OFF }", |
| " When ON, telnet subnegotiation responses are delayed until after all", |
| " authentication and encryption options are either successfully negotiated", |
| " or refused. This ensures that private data is protected. When OFF, telnet", |
| " subnegotiation responses are sent immediately. The default is ON.", |
| " ", |
| "SET TELNET ECHO { LOCAL, REMOTE }", |
| " Kermit's initial echoing state for TELNET connections, LOCAL by default.", |
| " After the connection is made, TELNET negotiations determine the echoing.", |
| " ", |
| #ifdef CK_ENCRYPTION |
| #ifdef COMMENT |
| "SET TELNET ENCRYPTION { ACCEPTED, REFUSED, REQUESTED, REQUIRED }", |
| " ACCEPT or REFUSE encryption bids, or actively REQUEST encryption in both.", |
| " directions. REQUIRED refuses the connection if encryption is not", |
| " successfully negotiated in both directions. ACCEPTED by default.", |
| " ", |
| #endif /* COMMENT */ |
| "SET TELNET ENCRYPTION TYPE { AUTOMATIC, CAST128_CFB64, CAST128_OFB64, ", |
| " CAST5_40_CFB64, CAST5_40_OFB64, DES_CFB64, DES_OFB64, NONE }", |
| " AUTOMATIC allows the host to choose the preferred type of encryption.", |
| " Other values allow a specific encryption method to be specified.", |
| " AUTOMATIC is the default. The list of options will vary depending", |
| " on the encryption types selected at compilation time.", |
| " ", |
| #endif /* CK_ENCRYPTION */ |
| #ifdef CK_ENVIRONMENT |
| #ifdef COMMENT |
| "SET TELNET ENVIRONMENT { ON, OFF, variable-name [ value ] }", |
| " This feature lets Kermit send the values of certain environment variables", |
| " to the other computer if it asks for them. The variable-name can be any", |
| " of the \"well-known\" variables \"USER\", \"JOB\", \"ACCT\", \"PRINTER\",", |
| " \"SYSTEMTYPE\", or \"DISPLAY\". Some Telnet servers, if given a USER", |
| " value in this way, will accept it and therefore not prompt you for user", |
| " name when you log in. The default values are taken from your environment;", |
| " use this command to change or remove them. See RFC1572 for details. You", |
| " may also specify OFF to disable this feature, and ON to re-enable it.", |
| " ", |
| #else |
| "SET TELNET ENVIRONMENT { variable-name [ value ] }", |
| " This feature lets Kermit send the values of certain environment variables", |
| " to the other computer if it asks for them. The variable-name can be any", |
| " of the \"well-known\" variables \"USER\", \"JOB\", \"ACCT\", \"PRINTER\",", |
| " \"SYSTEMTYPE\", or \"DISPLAY\". Some Telnet servers, if given a USER", |
| " value in this way, will accept it and therefore not prompt you for user", |
| " name when you log in. The default values are taken from your environment;", |
| " use this command to change or remove them. See RFC1572 for details.", |
| " ", |
| #endif /* COMMENT */ |
| #endif /* CK_ENVIRONMENT */ |
| #ifdef CK_FORWARD_X |
| "SET TELNET FORWARD-X XAUTHORITY-FILE <file>", |
| " If your X Server requires X authentication and the location of the", |
| " .Xauthority file is not defined by the XAUTHORITY environment variable,", |
| " use this command to specify the location of the .Xauthority file." |
| " ", |
| #endif /* CK_FORWARD_X */ |
| #ifdef CK_SNDLOC |
| "SET TELNET LOCATION [ text ]", |
| " Location string to send to the Telnet server if it asks. By default this", |
| " is picked up from the LOCATION environment variable. Give this command", |
| " with no text to disable this feature.", |
| " ", |
| #endif /* CK_SNDLOC */ |
| "SET TELNET NEWLINE-MODE { NVT, BINARY-MODE } { OFF, ON, RAW }", |
| |
| " Determines how carriage returns are handled on TELNET connections. There", |
| " are separate settings for NVT (ASCII) mode and binary mode. ON (default", |
| " for NVT mode) means CRLF represents CR. OFF means CR followed by NUL", |
| " represents CR. RAW (default for BINARY mode) means CR stands for itself.", |
| " ", |
| #ifdef TCPSOCKET |
| "SET TELNET PROMPT-FOR-USERID <prompt>", |
| " Specifies a custom prompt to be used when prompting for a userid. Kermit", |
| " prompts for a userid if the command:", |
| " ", |
| " SET LOGIN USERID {}", |
| " ", |
| " has been issued prior to a Telnet authentication negotiation for an", |
| " authentication type that requires the transmission of a name, such as", |
| " Secure Remote Password.", |
| " ", |
| #endif /* TCPSOCKET */ |
| "SET TELNET REMOTE-ECHO { ON, OFF }", |
| " Applies only to incoming connections created with:", |
| " SET HOST * <port> /TELNET", |
| " This command determines whether Kermit will actually echo characters", |
| " received from the remote when it has negotiated to do so. The default", |
| " is ON. Remote echoing may be turned off when it is necessary to read", |
| " a password with the INPUT command.", |
| " ", |
| "SET TELNET TERMINAL-TYPE name", |
| " The terminal type to send to the remote TELNET host. If none is given,", |
| #ifdef OS2 |
| " your current SET TERMINAL TYPE value is sent, e.g. VT220.", |
| " ", |
| #else |
| " your local terminal type is sent.", |
| " ", |
| #endif /* OS2 */ |
| "SET TELNET WAIT-FOR-NEGOTIATIONS { ON, OFF }", |
| " Each Telnet option must be fully negotiated either On or Off before the", |
| " session can continue. This is especially true with options that require", |
| " subnegotiations such as Authentication, Encryption, and Kermit; for", |
| " proper support of these options Kermit must wait for the negotiations to", |
| " complete. Of course, Kermit has no way of knowing whether a reply is", |
| " delayed or not coming at all, and so will wait a minute or more for", |
| " required replies before continuing the session. If you know that Kermit's", |
| " Telnet partner will not be sending the required replies, you can set this", |
| " option of OFF to avoid the long timeouts. Or you can instruct Kermit to", |
| " REFUSE specific options with the SET TELOPT command.", |
| "", |
| "Type SHOW TELNET to see the current values of these parameters.", |
| "" }; |
| #endif /* TNCODE */ |
| |
| #ifndef NOSPL |
| static char *hxymacr[] = { |
| "Syntax: SET MACRO parameter value", |
| " Controls the behavior of macros.", |
| " ", |
| "SET MACRO ECHO { ON, OFF }", |
| " Tells whether commands executed from a macro definition should be", |
| " displayed on the screen. OFF by default; use ON for debugging.", |
| " ", |
| "SET MACRO ERROR { ON, OFF }", |
| " Tells whether a macro should be automatically terminated upon a command", |
| " error. This setting is local to the current macro, and inherited by", |
| " subordinate macros.", |
| "" }; |
| #endif /* NOSPL */ |
| |
| static char *hmxyprm[] = { |
| "Syntax: SET PROMPT [ text ]", |
| " ", |
| #ifdef OS2 |
| "Prompt text for this program, normally 'K-95>'. May contain backslash", |
| #else |
| #ifdef MAC |
| "Prompt text for this program, normally 'Mac-Kermit>'. May contain backslash", |
| #else |
| "Prompt text for this program, normally 'C-Kermit>'. May contain backslash", |
| #endif /* MAC */ |
| #endif /* OS2 */ |
| "codes for special effects. Surround by { } to preserve leading or trailing", |
| #ifdef OS2 |
| "spaces. If text omitted, prompt reverts to K-95>. Prompt can include", |
| #else |
| #ifdef MAC |
| "spaces. If text omitted, prompt reverts to Mac-Kermit>. Prompt can include", |
| #else |
| "spaces. If text omitted, prompt reverts to C-Kermit>. Prompt can include", |
| #endif /* OS2 */ |
| #endif /* MAC */ |
| "variables like \\v(dir) or \\v(time) to show current directory or time.", |
| "" }; |
| |
| #ifdef UNIX |
| static char *hxywild[] = { |
| "Syntax: SET WILDCARD-EXPANSION { KERMIT [ switch ], SHELL }", |
| " KERMIT (the default) means C-Kermit expands filename wildcards in SEND and", |
| " similar commands itself, and in incoming GET commands. Optional switches", |
| " are /NO-MATCH-DOT-FILES (\"*\" and \"?\" should not match in initial", |
| " period in a filename; this is the default) and /MATCH-DOT-FILES if you", |
| " want files whose names begin with \".\" included. SET WILDCARD SHELL", |
| " means that Kermit asks your preferred shell to expand wildcards (this", |
| " should not be necessary in C-Kermit 7.0 and later). HELP WILDCARD for", |
| " further information.", |
| "" }; |
| #endif /* UNIX */ |
| |
| #ifndef NOXFER |
| static char *hxywind[] = { |
| "Syntax: SET WINDOW-SIZE number", |
| " Specifies number of slots for sliding windows, i.e. the number of packets", |
| " that can be transmitted before waiting for acknowledgement. The default", |
| #ifdef XYZ_INTERNAL |
| " for Kermit protocol is one, the maximum is 32; for ZMODEM, the default", |
| " is no windowing (0). For ZMODEM, the window size is really the packet", |
| " length, and is used only when non-windowed (streaming) transfers fail; the", |
| " ZMODEM window size should be a largish number, like 1024, and it should be", |
| " a multiple of 64.", |
| #else |
| " is one, the maximum is 32. Increased window size might result in reduced", |
| " maximum packet length. Use sliding windows for improved efficiency on", |
| " connections with long delays. A full duplex connection is required, as", |
| " well as a cooperating Kermit on the other end.", |
| #endif /* XYZ_INTERNAL */ |
| "" }; |
| |
| static char *hxyrpt[] = { |
| "Syntax: SET REPEAT { COUNTS { ON, OFF }, PREFIX <code> }", |
| " SET REPEAT COUNTS turns the repeat-count compression mechanism ON and OFF.", |
| " The default is ON. SET REPEAT PREFIX <code> sets the repeat-count prefix", |
| " character to the given code. The default is 126 (tilde).", |
| "" }; |
| |
| static char *hxyrcv[] = { |
| "Syntax: SET RECEIVE parameter value", |
| " Specifies parameters for inbound packets:", |
| " ", |
| #ifndef NOCSETS |
| "SET RECEIVE CHARACTER-SET { AUTOMATIC, MANUAL }", |
| " Whether to automatically switch to an appropriate file-character set based", |
| " on the transfer character-set announcer, if any, of an incoming text file.", |
| " AUTOMATIC by default. Also see HELP ASSOCIATE.", |
| " ", |
| #endif /* NOCSETS */ |
| "SET RECEIVE CONTROL-PREFIX number", |
| " ASCII value of prefix character used for quoting control characters in", |
| " packets that Kermit receives, normally 35 (number sign). Don't change", |
| " this unless something is wrong with the other Kermit program.", |
| " ", |
| "SET RECEIVE END-OF-PACKET number", |
| " ASCII value of control character that terminates incoming packets,", |
| " normally 13 (carriage return).", |
| " ", |
| #ifdef CKXXCHAR |
| "SET RECEIVE IGNORE-CHARACTER number", |
| " ASCII value of character to be discarded when receiving packets, such as", |
| " line folding characters.", |
| " ", |
| #endif /* CKXXCHAR */ |
| "SET RECEIVE MOVE-TO [ directory ]", |
| " If a directory name is specified, then every file that is received", |
| " successfully is moved to the given directory immediately after reception", |
| " is complete. Omit the directory name to remove any previously set move-to", |
| " directory.", |
| " ", |
| "SET RECEIVE PACKET-LENGTH number", |
| " Maximum length packet the other Kermit should send.", |
| " ", |
| "SET RECEIVE PADDING number", |
| " Number of prepacket padding characters to ask for (normally 0).", |
| " ", |
| "SET RECEIVE PAD-CHARACTER number", |
| " ASCII value of control character to use for padding (normally 0).", |
| " ", |
| "SET RECEIVE PATHNAMES {OFF, ABSOLUTE, RELATIVE, AUTO}", |
| " If a recognizable path (directory, device) specification appears in an", |
| " incoming filename, strip it OFF before trying to create the output file.", |
| #ifdef CK_MKDIR |
| " Otherwise, then if any of the directories in the path don't exist, Kermit", |
| " tries to create them, relative to your current or download directory, or", |
| " absolutely, as specified. RELATIVE means force all incoming names, even", |
| " if they are absolute, to be relative to your current or download directory." |
| , |
| " AUTO, which is the default, means RELATIVE if the file sender indicates in", |
| " advance that this is a recursive transfer, otherwise OFF.", |
| #endif /* CK_MKDIR */ |
| " ", |
| "SET RECEIVE PAUSE number", |
| " Milliseconds to pause between packets, normally 0.", |
| " ", |
| |
| #ifdef CK_PERMS |
| "SET RECEIVE PERMISSIONS { ON, OFF }", |
| " Whether to copy file permissions from inbound Attribute packets.", |
| " ", |
| #endif /* CK_PERMS */ |
| |
| "SET RECEIVE RENAME-TO [ template ]", |
| " If a template is specified, then every file that is received successfully", |
| " \ |
| is renamed according to the given template immediately after it is received.", |
| " \ |
| The template should include variables like \\v(filename) or \\v(filenumber).", |
| " Omit the template to remove any template previously set.", |
| " ", |
| "SET RECEIVE START-OF-PACKET number", |
| " ASCII value of character that marks start of inbound packet.", |
| " ", |
| "SET RECEIVE TIMEOUT number", |
| " Number of seconds the other Kermit should wait for a packet before sending", |
| " a NAK or retransmitting.", |
| #ifdef VMS |
| " ", |
| "SET RECEIVE VERSION-NUMBERS { ON, OFF }", |
| " If ON, and in incoming filename includes a VMS version number, use it when", |
| " creating the file. If OFF (which is the default), strip any VMS version", |
| " number from incoming filenames before attempting to create the file, \ |
| causing", |
| " the new file to receive the next highest version number.", |
| #endif /* VMS */ |
| "" }; |
| |
| static char *hxysnd[] = { |
| "Syntax: SET SEND parameter value", |
| " Specifies parameters for outbound files or packets.", |
| " ", |
| "SET SEND BACKUP { ON, OFF }", |
| " Tells whether to include backup files when sending file groups. Backup", |
| " files are those created by Kermit, EMACS, etc, when creating a new file", |
| " that has the same name as an existing file. A backup file has a version", |
| " appended to its name, e.g. oofa.txt.~23~. ON is the default, meaning", |
| " don't exclude backup files. Use OFF to exclude backup files from group", |
| " transfers.", |
| " ", |
| #ifndef NOCSETS |
| "SET SEND CHARACTER-SET { AUTOMATIC, MANUAL }", |
| " Whether to automatically switch to an appropriate file-character when a", |
| " SET TRANSFER CHARACTER-SET command is given, or vice versa. AUTOMATIC by", |
| " default. Also see HELP ASSOCIATE.", |
| " ", |
| #endif /* NOCSETS */ |
| |
| "SET SEND CONTROL-PREFIX number", |
| " ASCII value of prefix character used for quoting control characters in", |
| " packets that Kermit sends, normally 35 (number sign).", |
| " ", |
| #ifdef CKXXCHAR |
| "SET SEND DOUBLE-CHARACTER number", |
| " ASCII value of character to be doubled when sending packets, such as an", |
| " X.25 PAD escape character.", |
| " ", |
| #endif /* CKXXCHAR */ |
| "SET SEND END-OF-PACKET number", |
| " ASCII value of control character to terminate an outbound packet,", |
| " normally 13 (carriage return).", |
| " ", |
| "SET SEND MOVE-TO [ directory ]", |
| " \ |
| If a directory name is specified, then every file that is sent successfully", |
| " is moved to the given directory immediately after it is sent.", |
| " Omit the directory name to remove any previously set move-to directory.", |
| " ", |
| "SET SEND PACKET-LENGTH number", |
| " Maximum length packet to send, even if other Kermit asks for longer ones.", |
| " This command can not be used to force packets to be sent that are longer", |
| " than the length requested by the receiver. Use this command only to", |
| " force shorter ones.", |
| " ", |
| "SET SEND PADDING number", |
| " Number of prepacket padding characters to send.", |
| " ", |
| "SET SEND PAD-CHARACTER number", |
| " ASCII value of control character to use for padding.", |
| " ", |
| "SET SEND PATHNAMES {OFF, ABSOLUTE, RELATIVE}", |
| " Include the path (device, directory) portion with the file name when", |
| " sending it as specified; ABSOLUTE means to send the whole pathname,", |
| " RELATIVE means to include the pathname relative to the current directory.", |
| " Applies to the actual filename, not to the \"as-name\". The default is", |
| " OFF.", |
| " ", |
| "SET SEND PAUSE number", |
| " Milliseconds to pause between packets, normally 0.", |
| " ", |
| |
| #ifdef CK_PERMS |
| "SET SEND PERMISSIONS { ON, OFF }", |
| " Whether to include file permissions in outbound Attribute packets.", |
| " ", |
| #endif /* CK_PERMS */ |
| |
| "SET SEND RENAME-TO [ template ]", |
| " If a template is specified, then every file that is sent successfully", |
| " is renamed according to the given template immediately after it is sent.", |
| " \ |
| The template should include variables like \\v(filename) or \\v(filenumber).", |
| " Omit the template to remove any template previously set.", |
| " ", |
| "SET SEND START-OF-PACKET number", |
| " ASCII value of character to mark start of outbound packet.", |
| " ", |
| #ifdef CK_TIMERS |
| "SET SEND TIMEOUT number [ { DYNAMIC [ min max ] ], FIXED } ]", |
| #else |
| "SET SEND TIMEOUT number", |
| #endif /* CK_TIMERS */ |
| |
| " Number of seconds to wait for a packet before sending NAK or", |
| #ifdef CK_TIMERS |
| " retransmitting. Include the word DYNAMIC after the number in the", |
| " SET SEND TIMEOUT command to have Kermit compute the timeouts dynamically", |
| " throughout the transfer based on the packet rate. Include the word FIXED", |
| " to use the \"number\" given throughout the transfer. DYNAMIC is the", |
| " default. After DYNAMIC you may include minimum and maximum values.", |
| #else |
| " retransmitting.", |
| #endif /* CK_TIMERS */ |
| #ifdef VMS |
| " ", |
| "SET SEND VERSION-NUMBERS { ON, OFF }", |
| " If ON, include VMS version numbers in outbound filenames. If OFF (which", |
| " is the default), strip version numbers.", |
| #endif /* VMS */ |
| "" }; |
| |
| static char *hxyxfer[] = { |
| "Syntax: SET TRANSFER (or XFER) paramater value", |
| " ", |
| "Choices:", |
| " ", |
| "SET TRANSFER BELL { OFF, ON }", |
| " Whether to ring the terminal bell at the end of a file transfer.", |
| " ", |
| #ifdef XFRCAN |
| "SET TRANSFER CANCELLATION { OFF, ON [ <code> [ <number> ] ] }", |
| " OFF disables remote-mode packet-mode cancellation from the keyboard.", |
| " ON enables it. The optional <code> is the control character to use for", |
| " cancellation; the optional <number> is how many consecutive occurrences", |
| " of the given control character are required for cancellation.", |
| " ", |
| #endif /* XFRCAN */ |
| "SET TRANSFER INTERRUPTION { ON, OFF }", |
| " TRANSFER INTERRUPTION is normally ON, allowing for interruption of a file", |
| " transfer in progress by typing certain characters while the file-transfer", |
| " display is active. SET TRANSFER INTERRUPTION OFF disables interruption", |
| " of file transfer from the keyboard in local mode.", |
| " ", |
| #ifndef NOSPL |
| "SET TRANSFER CRC-CALCULATION { OFF, ON }", |
| " Tells whether Kermit should accumulate a Cyclic Redundancy Check for ", |
| " each file transfer. Normally ON, in which case the CRC value is available", |
| " in the \\v(crc16) variable after the transfer. Adds some overhead. Use", |
| " SET TRANSFER CRC OFF to disable.", |
| " ", |
| #endif /* NOSPL */ |
| #ifndef NOCSETS |
| "SET TRANSFER CHARACTER-SET name", |
| " Selects the character set used to represent textual data in Kermit", |
| " packets. Text characters are translated to/from the FILE CHARACTER-SET.", |
| " Choices:", |
| " ", |
| " TRANSPARENT (no translation, the default)", |
| " ASCII", |
| " LATIN1 (ISO 8859-1 Latin Alphabet 1)", |
| #ifndef NOLATIN2 |
| " LATIN2 (ISO 8859-2 Latin Alphabet 2)", |
| #endif /* NOLATIN2 */ |
| " LATIN9 (ISO 8859-15 Latin Alphabet 9)", |
| #ifdef CYRILLIC |
| " CYRILLIC-ISO (ISO 8859-5 Latin/Cyrillic)", |
| #endif /* CYRILLIC */ |
| #ifdef GREEK |
| " GREEK-ISO (ISO 8859-7 Latin/Greek)", |
| #endif /* GREEK */ |
| #ifdef HEBREW |
| " HEBREW-ISO (ISO 8859-8 Latin/Hebrew)", |
| #endif /* HEBREW */ |
| #ifdef KANJI |
| " JAPANESE-EUC (JIS X 0208 Kanji + Roman and Katakana)", |
| #endif /* KANJI */ |
| #ifdef UNICODE |
| " UCS-2 (ISO 10646 / Unicode 2-byte form)", |
| " UTF-8 (ISO 10646 / Unicode 8-bit serialized transformation format)", |
| #endif /* UNICODE */ |
| " ", |
| "SET TRANSFER TRANSLATION { ON, OFF }", |
| " Enables and disables file-transfer character-set translation. It's", |
| " enabled by default.", |
| #endif /* NOCSETS */ |
| " ", |
| #ifdef CK_CURSES |
| "SET TRANSFER DISPLAY { BRIEF, CRT, FULLSCREEN, NONE, SERIAL }", |
| #else |
| "SET TRANSFER DISPLAY { BRIEF, CRT, NONE, SERIAL }", |
| #endif /* CK_CURSES */ |
| " Choose the desired format for the progress report to be displayed on", |
| " your screen during file transfers when Kermit is in local mode.", |
| #ifdef CK_CURSES |
| " FULLSCREEN requires your terminal type be set correctly; the others", |
| " are independent of terminal type.", |
| #else |
| " file transfer.", |
| #endif /* CK_CURSES */ |
| " ", |
| "SET TRANSFER LOCKING-SHIFT { OFF, ON, FORCED }", |
| " Tell whether locking-shift protocol should be used during file transfer", |
| " to achieve 8-bit transparency on a 7-bit connection. ON means to request", |
| " its use if PARITY is not NONE and to use it if the other Kermit agrees,", |
| " OFF means not to use it, FORCED means to use it even if the other Kermit", |
| " does not agree.", |
| " ", |
| "SET TRANSFER MODE { AUTOMATIC, MANUAL }", |
| " Automatic (the default) means Kermit should automatically go into binary", |
| " file-transfer mode and use literal filenames if the other Kermit says it", |
| " has a compatible file system, e.g. UNIX-to-UNIX, but not UNIX-to-DOS.", |
| #ifdef PATTERNS |
| " Also, when sending files, Kermit should switch between binary and text", |
| " mode automatically per file based on the SET FILE BINARY-PATTERNS and SET", |
| " FILE TEXT-PATTERNS.", |
| #endif /* PATTERNS */ |
| " ", |
| #ifdef PIPESEND |
| "SET TRANSFER PIPES { ON, OFF }", |
| " Enables/Disables automatic sending from / reception to command pipes when", |
| " the incoming filename starts with '!'. Also see CSEND, CRECEIVE.", |
| " ", |
| #endif /* PIPESEND */ |
| #ifdef CK_XYZ |
| "SET TRANSFER PROTOCOL { KERMIT, XMODEM, ... }", |
| " Synonym for SET PROTOCOL (q.v.).", |
| " ", |
| #endif /* CK_XYZ */ |
| "SET TRANSFER REPORT { ON, OFF }", |
| " Enables/Disables the automatic post-transfer message telling what files", |
| " went where from C-Kermit when it is in remote mode. ON by default.", |
| " ", |
| "SET TRANSFER SLOW-START { OFF, ON }", |
| " ON (the default) tells Kermit, when sending files, to gradually build up", |
| " the packet length to the maximum negotiated length. OFF means start", |
| " sending the maximum length right away.", |
| " ", |
| "Synonym: SET XFER. Use SHOW TRANSFER (XFER) to see SET TRANSFER values.", |
| "" }; |
| #endif /* NOXFER */ |
| |
| #ifdef NT |
| static char *hxywin95[] = { |
| "SET WIN95 8.3-FILENAMES { ON, OFF }", |
| " Instructs K-95 to report all filenames using 8.3 notation instead of the", |
| " normal long filenames. Default is OFF", |
| " ", |
| "SET WIN95 ALT-GR { ON, OFF }", |
| " Instructs K-95, when used on MS Windows 95, to interpret the Right Alt key", |
| " as the Alt-Gr key. This is necessary to work around the failure of", |
| " Windows 95 to properly translate non-US keyboards. Default is OFF.", |
| " ", |
| "SET WIN95 KEYBOARD-TRANSLATION <character-set>", |
| " Specifies the character-set that Windows 95 is using to send keystrokes", |
| " to Kermit-95 via the keyboard input functions. Default is Latin1-ISO.", |
| " ", |
| "SET WIN95 OVERLAPPED-IO { ON <requests>, OFF }", |
| " Determines whether or not K-95 uses Overlapped-I/O methods for reading", |
| " from and writing to serial and TAPI communication devices. <requests>", |
| " specifies the maximum number of simultaneous write requests that may be", |
| " overlapped, from 1 to 30. Default is ON.", |
| " ", |
| "SET WIN95 POPUPS { ON, OFF }", |
| " Determines whether or not Kermit 95 uses Popups to query the user for", |
| " necessary information such as user IDs or passwords. Default is ON.", |
| " ", |
| "SET WIN95 SELECT-BUG { ON, OFF }" |
| " Some TCP/IP (Winsock) implementations for Windows have a defective", |
| " select() function. Use this command to avoid the use of select() if", |
| " K95 appears to be unable to send data over TCP/IP. Default is OFF.", |
| ""}; |
| #endif /* NT */ |
| |
| static char *hmxybel[] = { |
| #ifdef OS2 |
| "Syntax: SET BELL { AUDIBLE [ { BEEP, SYSTEM-SOUNDS } ], VISIBLE, NONE }", |
| " Specifies how incoming Ctrl-G (bell) characters are handled in CONNECT", |
| " mode and how command warnings are presented in command mode. AUDIBLE", |
| " means either a beep or a system-sound is generated; VISIBLE means the", |
| " screen is flashed momentarily.", |
| #else |
| "Syntax: SET BELL { OFF, ON }", |
| " ON (the default) enables ringing of the terminal bell (beep) except where", |
| " it is disabled in certain circumstances, e.g. by SET TRANSFER BELL. OFF", |
| " disables ringing of the bell in all circumstances, overriding any specific", |
| " SET xxx BELL selections.", |
| #endif /* OS2 */ |
| ""}; |
| |
| static char *hmxycd[] = { |
| "Syntax: SET CD { HOME <path>, PATH <path>, MESSAGE { ON, OFF, FILE <list> } }" |
| , |
| " ", |
| "SET CD HOME <path>", |
| " Specified which directory to change to if CD or KCD is given without a", |
| " pathname. If this command is not given, your login or HOME directory is", |
| " used.", |
| " ", |
| "SET CD PATH <path>", |
| " Overrides normal CDPATH environment variable, which tells the CD command", |
| " where to look for directories to CD to if you don't specify them fully.", |
| " The format is:", |
| " ", |
| #ifdef UNIXOROSK |
| " set cd path :directory:directory:...", |
| " ", |
| " in other words, a list of directories separated by colons, with a colon", |
| " at the beginning, e.g.:", |
| " ", |
| " set cd path :/usr/olga:/usr/ivan/public:/tmp", |
| #else |
| #ifdef OS2 |
| " set cd path disk:directory;disk:directory;...", |
| " ", |
| " just like the DOS PATH; in other words, a list of disk:directory names", |
| " separated by semicolons, e.g.:", |
| " ", |
| " SET CD PATH C:\\K95;C:\\HOME;C:\\LOCAL;C:\\", |
| #else |
| #ifdef VMS |
| " set cd path directory,directory,...", |
| " ", |
| " in other words, a list of directory specifications or logical names that", |
| " represent them, e.g.:", |
| " ", |
| " SET CD PATH SYS$LOGIN:,$DISK1:[OLGA],$DISK2[SCRATCH.IVAN].", |
| #else |
| " (unknown for this platform)", |
| #endif /* VMS */ |
| #endif /* OS2 */ |
| #endif /* UNIXOROSK */ |
| " ", |
| "SET CD MESSAGE { ON, OFF }", |
| " Default is OFF. When ON, this tells Kermit to look for a file with a", |
| " certain name in any directory that you CD to, and if it finds one, to", |
| " display it on your screen when you give the CD command. The filename,", |
| " or list of names, is given in the SET CD MESSAGE FILE command.", |
| " ", |
| "SET CD MESSAGE FILE name", |
| " or:", |
| "SET CD MESSAGE FILE {{name1}{name2}...{name8}}", |
| " Specify up to 8 filenames to look for when when CDing to a new directory", |
| " and CD MESSAGE is ON. The first one found, if any, in the new directory", |
| #ifndef DFCDMSG |
| " is displayed.", |
| #else |
| " is displayed. The default list is:", |
| " ", |
| #ifdef UNIXOROSK |
| " {{./.readme}{README.TXT}{READ.ME}}", |
| #else |
| " {{README.TXT}{READ.ME}}", |
| #endif /* UNIXOROSK */ |
| " ", |
| #endif /* DFCDMSG */ |
| #ifndef NOSERVER |
| "Synonym: SET SERVER CD-MESSAGE FILE.", |
| #endif /* NOSERVER */ |
| " ", |
| "Type SHOW CD to view current CD settings. Also see HELP SET SERVER.", |
| "" |
| }; |
| |
| #ifndef NOIKSD |
| static char * hsetiks[] = { |
| #ifdef OS2 |
| "SET IKS ANONYMOUS ACCOUNT <username>", |
| " On Windows NT/2000 this is the account that will be used to allow", |
| " anonymous access to the system. This account MUST have no password", |
| " and its privileges should be restricted to only allow those operations", |
| " which should be permitted to unknown users. In practice this means", |
| " List Directories and Read-Execute privileges only. If a directory", |
| " is configured for Write privileges then Read privileges should be", |
| " denied for that directory. Otherwise, your system will become used", |
| " by software pirates. If this command is not specified in the IKSD.KSC", |
| " file the username \"GUEST\" is used by default. This command has no", |
| " effect on Windows 95/98.", |
| " ", |
| #endif /* OS2 */ |
| "SET IKS ANONYMOUS INITFILE filename", |
| #ifdef OS2 |
| " The initialization file to be executed for anonymous logins. By default", |
| " it is K95.INI in the home directory associated with the ANNONYMOUS account." |
| , |
| " Any filename that you specify here must be readable by the ANONYMOUS", |
| " account and if a SET IKS ANONYMOUS ROOT command was given, exist within", |
| " the restricted directory tree. This option is independent of the SET IKS", |
| " INITFILE command which applies only to real users.", |
| #else |
| " The initialization file to be executed for anonymous logins. By default", |
| " it is .kermrc in the anonymous root directory. This option is independent", |
| " of the SET IKS INITFILE command which applies only to real users.", |
| #endif /* OS2 */ |
| " ", |
| "SET IKS ANONYMOUS LOGIN { ON, OFF }", |
| #ifdef OS2 |
| " Whether anonymous logins are allowed. By default they are NOT allowed,", |
| " so this option need be included only to allow them (or for clarity, to", |
| " emphasize that they are not allowed). Anonymous login occurs when the", |
| " username \"anonymous\" is specified with any password (as with ftpd).", |
| " In order for anonymous logins to succeed on Windows NT/2000, the", |
| " ANONYMOUS account must be enabled.", |
| " ", |
| " On Windows NT and 2000, anonymous users have the same access rights as", |
| " the ANONYMOUS account. In Windows 95/98, anonymous users, just like any", |
| " other users, have full access rights to your entire PC, since Windows 95", |
| " and 98 include no security features. For this reason, if you are allowing", |
| " anonymous logins, be sure to also SET an IKS ANONYMOUS ROOT directory to", |
| " restrict anonymous users' file access.", |
| " ", |
| " Anonymous user permissions may be restricted via the specification of ", |
| " DISABLE commands in the ANONYMOUS initfile. Anonymous users are not ", |
| " permitted to execute an ENABLE command. Anonymous users are also prevented" |
| , |
| " from SHOWing sensitive data about the operating system or the IKS", |
| " configuration.", |
| #else |
| " Whether anonymous logins are allowed. By default they are allowed, so this", |
| " option need be included only to disallow them (or for clarity, to emphasize" |
| , |
| " they are allowed). Anonymous login occurs when the username \"anonymous\"", |
| " or \"ftp\" is given, with any password (as with ftpd).", |
| #endif /* OS2 */ |
| " ", |
| "SET IKS ANONYMOUS ROOT <directory>", |
| " Specifies a directory tree to which anonymous users are restricted after", |
| " login.", |
| " ", |
| "SET IKS BANNERFILE <filename>", |
| " The name of a file containing a message to be printed after the user logs", |
| " in, in place of the normal message (copyright notice, \"Type HELP or ? for", |
| " help\", etc).", |
| " ", |
| "SET IKS CDFILE <filelist>", |
| " When cdmessage is on, this is the name of the \"read me\" file to be shown." |
| , |
| " Normally you would specify a relative (not absolute) name, since the file", |
| " is opened using the literal name you specified, after changing to the new", |
| " directory. Example:", |
| " ", |
| " SET IKS CDFILE READ.ME", |
| " ", |
| " You can also give a list of up to 8 filenames by (a) enclosing each", |
| " filename in braces, and (b) enclosing the entire list in braces. Example:", |
| " ", |
| " SET IKS CDFILE {{READ.ME}{aareadme.txt}{README}{read-this-first}}", |
| " ", |
| " When a list is given, it is searched from left to right and the first", |
| " file found is displayed.", |
| " ", |
| "SET IKS CDMESSAGE {ON, OFF, 0, 1, 2}", |
| " For use in the Server-Side Server configuration; whenever the client", |
| " tells the server to change directory, the server sends the contents of a", |
| " \"read me\" file to the client's screen. This feature is ON by default,", |
| " and operates in client/server mode only when ON or 1. If set to 2 or", |
| " higher, it also operates when the CD command is given at the IKSD> prompt.", |
| " Synonym: SET IKS CDMSG.", |
| " ", |
| "SET IKS DATABASE { ON, OFF }", |
| " This command determines whether entries are inserted into the SET IKS", |
| " DBFILE (IKSD active sessions database).", |
| " ", |
| "SET IKS DBFILE <filename>", |
| " Specifies the file which should be used for storing runtime status", |
| #ifdef OS2 |
| " information about active connections. The default is a file called", |
| " \"iksd.db\" in the WINDOWS directory.", |
| #else |
| #ifdef UNIX |
| " information about active connections. The default is a file called", |
| " \"iksd.db\" in the /var/log directory.", |
| #else |
| " information about active connections.", |
| #endif /* UNIX */ |
| #endif /* OS2 */ |
| " ", |
| #ifdef OS2 |
| "SET IKS DEFAULT-DOMAIN <domain-name>", |
| " A userid on Windows is of the form DOMAIN\\\\userid. This command", |
| " determines which domain will be searched for the userid if a domain", |
| " is not specified by the user. On Windows 95/98 when User-level", |
| " access is activated in the Network Control Panel, the default ", |
| " domain will be automatically set. If the default domain is not", |
| " specified, accounts on the local machine will take precedence over", |
| " accounts in Domains to which the local machine belongs.", |
| #endif /* OS2 */ |
| " ", |
| "SET IKS HELPFILE <filename>", |
| " Specifies the name of a file to be displayed if the user types HELP", |
| " (not followed by a specific command or topic), in place of the built-in", |
| " top-level help text. The file need not fit on one screen; more-prompting", |
| " is used if the file is more than one screen long if COMMAND MORE-PROMPTING", |
| " is ON, as it is by default.", |
| " ", |
| "SET IKS INITFILE <filename>", |
| " Execute <filename> rather than the normal initialization file for real", |
| " users; this option does not apply to anonymous users.", |
| " ", |
| "SET IKS NO-INITFILE { ON, OFF }", |
| " Do not execute an initialization file, even if a real user is logging in.", |
| " ", |
| "SET IKS SERVER-ONLY { ON, OFF }", |
| " If this option is included on the IKSD command line, the Client Side Server" |
| , |
| " configuration is disabled, and the user will not get a Username: or", |
| " Password: prompt, and will not be able to access the IKSD command prompt.", |
| " A FINISH command sent to the IKSD will log it out and close the", |
| " connection, rather than returning it to its prompt.", |
| " ", |
| "SET IKS TIMEOUT <number>", |
| " This sets a limit (in seconds) on the amount of time the client has to log", |
| " in once the connection is made. If successful login does not occur within", |
| " the given number of seconds, the connection is closed. The default timeout" |
| , |
| " is 300 seconds (5 minutes). A value of 0 or less indicates there is to be", |
| " no limit.", |
| " ", |
| "SET IKS USERFILE <filename>", |
| #ifdef UNIX |
| " This file contains a list of local usernames that are to be denied access", |
| " to Internet Kermit Service. The default is /etc/ftpusers. This can be the" |
| , |
| " same file that is used by wuftpd, and the syntax is the same: one username", |
| " per line; lines starting with \"#\" are ignored. Use this option to", |
| " specify the name of a different forbidden-user file, or use", |
| " \"set iks userfile /dev/null\" to disable this feature in case there is a", |
| " /etc/ftpusers file but you don't want to use it.", |
| #else |
| " This file contains a list of local usernames that are to be denied access", |
| " to Internet Kermit Service. The syntax is: one username per line; lines", |
| " starting with \"#\" are ignored.", |
| #endif /* UNIX */ |
| " ", |
| "SET IKS XFERLOG { ON, OFF }", |
| #ifdef UNIX |
| " Whether a file-transfer log should be kept. Off by default. If \"on\",", |
| " but no SET IKSD XFERFILE command is given, /var/log/iksd.log is used.", |
| #else |
| " Whether a file-transfer log should be kept. Off by default.", |
| #endif /* UNIX */ |
| " ", |
| "SET IKS XFERFILE <filename>", |
| " Use this option to specify an iksd log file name. If you include this", |
| " option, it implies SET IKS XFERFILE ON.", |
| "" |
| }; |
| #endif /* NOIKSD */ |
| |
| /* D O H S E T -- Give help for SET command */ |
| |
| int |
| dohset(xx) int xx; { |
| int x; |
| |
| if (xx == -3) return(hmsga(hmhset)); |
| if (xx < 0) return(xx); |
| |
| #ifdef NEWFTP |
| if (xx == XYFTPX) |
| return(dosetftphlp()); |
| if (xx == XYGPR) |
| return(hmsga(hmxygpr)); |
| #endif /* NEWFTP */ |
| |
| if ((x = cmcfm()) < 0) return(x); |
| switch (xx) { |
| #ifndef NOIKSD |
| case XYIKS: |
| return(hmsga(hsetiks)); |
| #endif /* NOIKSD */ |
| |
| case XYATTR: |
| return(hmsga(hsetat)); |
| |
| case XYBACK: |
| return(hmsga(hsetbkg)); |
| |
| case XYBELL: |
| return(hmsga(hmxybel)); |
| |
| #ifdef OS2 |
| case XYPRTY: |
| return(hmsg("SET PRIORITY { REGULAR, FOREGROUND-SERVER, TIME-CRITICAL }\n\ |
| Specifies at which priority level the communication and screen update\n\ |
| threads should operate. The default value is FOREGROUND-SERVER.")); |
| #endif /* OS2 */ |
| |
| #ifdef DYNAMIC |
| case XYBUF: |
| return(hmsga(hsetbuf)); |
| #endif /* DYNAMIC */ |
| |
| #ifndef NOLOCAL |
| case XYCARR: |
| return(hmsga(hsetcar)); |
| #endif /* NOLOCAL */ |
| |
| #ifndef NOSPL |
| case XYCASE: |
| return(hmsg("Syntax: SET CASE { ON, OFF }\n\ |
| Tells whether alphabetic case is significant in string comparisons\n\ |
| done by INPUT, IF, and other commands. This setting is local to the\n\ |
| current macro or command file, and inherited by subordinates.")); |
| |
| #endif /* NOSPL */ |
| |
| case XYCMD: |
| return(hmsga(hsetcmd)); |
| |
| case XYIFD: |
| return(hmsg("Syntax: SET INCOMPLETE { DISCARD, KEEP }\n\ |
| Whether to discard or keep incompletely received files, default is KEEP.")); |
| |
| #ifndef NOSPL |
| case XYINPU: |
| return(hmsga(hxyinp)); |
| #endif /* NOSPL */ |
| |
| case XYCHKT: |
| return(hmsga(hmxychkt)); |
| |
| #ifndef NOSPL |
| case XYCOUN: |
| return(hmsg("Syntax: SET COUNT number\n\ |
| Example: SET COUNT 5\n\ |
| Set up a loop counter, for use with IF COUNT. Local to current macro\n\ |
| or command file, inherited by subordinate macros and command files.")); |
| #endif /* NOSPL */ |
| |
| case XYDEBU: |
| return(hmsga(hmxydeb)); |
| |
| case XYDFLT: |
| return(hmsg("Syntax: SET DEFAULT directory\n\ |
| Change directory. Equivalent to CD command.")); |
| |
| case XYDELA: |
| return(hmsg("Syntax: SET DELAY number\n\ |
| Number of seconds to wait before sending first packet after SEND command.")); |
| |
| #ifndef NODIAL |
| case XYDIAL: |
| return(hmsga(hmxydial)); |
| #endif /* NODIAL */ |
| |
| #ifdef UNIX |
| case XYSUSP: |
| return(hmsg("Syntax: SET SUSPEND { OFF, ON }\n\ |
| Disables SUSPEND command, suspend signals, and <esc-char>Z during CONNECT.") |
| ); |
| #endif |
| |
| #ifndef NOSCRIPT |
| case XYSCRI: |
| return(hmsg("Syntax: SET SCRIPT ECHO { OFF, ON }\n\ |
| Disables/Enables echoing of SCRIPT command operation.")); |
| #endif /* NOSCRIPT */ |
| |
| case XYTAKE: |
| return(hmsga(hxytak)); |
| |
| #ifndef NOLOCAL |
| case XYTERM: |
| return(hmsga(hxyterm)); |
| |
| case XYDUPL: |
| return(hmsg("Syntax: SET DUPLEX { FULL, HALF }\n\ |
| During CONNECT: FULL means remote host echoes, HALF means Kermit\n\ |
| does its own echoing.")); |
| |
| case XYLCLE: |
| return(hmsg("Syntax: SET LOCAL-ECHO { OFF, ON }\n\ |
| During CONNECT: OFF means remote host echoes, ON means Kermit\n\ |
| does its own echoing. Synonym for SET DUPLEX { FULL, HALF }.")); |
| |
| case XYESC: |
| return(hmsga(hxyesc)); /* SET ESCAPE */ |
| #endif /* NOLOCAL */ |
| |
| case XYPRTR: /* SET PRINTER */ |
| return(hmsga(hxyprtr)); |
| |
| #ifdef OS2 |
| #ifdef BPRINT |
| case XYBDCP: /* SET BPRINTER */ |
| return(hmsga(hxybprtr)); |
| #endif /* BPRINT */ |
| #endif /* OS2 */ |
| |
| case XYEXIT: |
| return(hmsga(hxyexit)); |
| |
| case XYFILE: |
| return(hmsga(hmxyf)); |
| |
| case XYFLOW: |
| return(hmsga(hmxyflo)); |
| |
| case XYHAND: |
| return(hmsga(hmxyhsh)); |
| |
| #ifdef NETCONN |
| |
| case XYHOST: |
| return(hmsga(hxyhost)); |
| |
| case XYNET: |
| return(hmsga(hxynet)); |
| |
| #ifndef NOTCPOPTS |
| #ifdef SOL_SOCKET |
| case XYTCP: |
| return(hmsga(hxytcp)); |
| #endif /* SOL_SOCKET */ |
| #endif /* NOTCPOPTS */ |
| |
| #ifdef ANYX25 |
| case XYX25: |
| return(hmsga(hxyx25)); |
| |
| #ifndef IBMX25 |
| case XYPAD: |
| return(hmsg("Syntax: SET PAD name value\n\ |
| Set a PAD X.3 parameter with a desired value.")); |
| #endif /* IBMX25 */ |
| #endif /* ANYX25 */ |
| #endif /* NETCONN */ |
| |
| #ifndef NOSPL |
| case XYOUTP: |
| return(hmsga(hxyout)); |
| #endif /* NOSPL */ |
| |
| #ifndef NOSETKEY |
| case XYKEY: /* SET KEY */ |
| return(hmsga(hmhskey)); |
| #endif /* NOSETKEY */ |
| |
| #ifndef NOCSETS |
| case XYLANG: |
| return(hmsg("Syntax: SET LANGUAGE name\n\ |
| Selects language-specific translation rules for text-mode file transfers.\n\ |
| Used with SET FILE CHARACTER-SET and SET TRANSFER CHARACTER-SET when one\n\ |
| of these is ASCII.")); |
| #endif /* NOCSETS */ |
| |
| case XYLINE: |
| printf("\nSyntax: SET LINE (or SET PORT) [ switches ] [ devicename ]\n\ |
| Selects a serial-port device to use for making connections.\n"); |
| #ifdef OS2 |
| #ifdef NT |
| printf("\n"); |
| printf( |
| " You may access communication ports by the traditional \"DOS\" port name\n"); |
| printf( |
| " (e.g. SET PORT COM1) or by the Microsoft Telephony modem name from the\n"); |
| printf( |
| " Modems folder of the Control Panel (e.g. SET PORT TAPI). If one method\n"); |
| printf(" doesn't work, try the other.\n\n"); |
| #endif /* NT */ |
| #else /* OS2 */ |
| printf(" Typical device name for this platform: %s.\n",ttgtpn()); |
| printf(" The default device name is %s (i.e. none).\n",dftty); |
| if (!dfloc) { |
| printf( |
| " If you do not give a SET LINE command or if you give a SET LINE command\n"); |
| printf( |
| " with no device name, or if you specify %s as the device name,\n",dftty); |
| printf( |
| " Kermit will be in \"remote mode\", suitable for use on the far end of a\n"); |
| printf( |
| " connection, e.g. as the file-transfer partner of your desktop communication\ |
| \n"); |
| printf( |
| " software. If you SET LINE to a specific device other than %s,\n", dftty); |
| printf( |
| " Kermit is in \"local mode\", suitable for making a connection to another\n" |
| ); |
| printf( |
| " computer. SET LINE alone resets Kermit to remote mode.\n"); |
| } |
| #endif /* OS2 */ |
| printf( |
| " To use a modem to dial out, first SET MODEM TYPE (e.g., to USR), then\n"); |
| printf( |
| #ifdef OS2 |
| " SET PORT COMx (or SET PORT TAPI), SET SPEED, then give a DIAL command.\n"); |
| #else |
| " SET LINE xxx, then SET SPEED, then give a DIAL command.\n"); |
| #endif /* OS2 */ |
| printf( |
| #ifdef OS2 |
| " For direct null-modem connections use SET MODEM TYPE NONE, SET PORT COMx,\n" |
| #else |
| " For direct null-modem connections, use SET MODEM TYPE NONE, SET LINE xxx,\n" |
| #endif /* OS2 */ |
| ); |
| printf( |
| " then SET FLOW, SET SPEED, and CONNECT.\n"); |
| printf( |
| "\nOptional switches:\n\ |
| /CONNECT - Enter CONNECT mode automatically if SET LINE succeeds.\n"); |
| printf( |
| " /SERVER - Enter server mode automatically if SET LINE succeeds.\n"); |
| #ifdef VMS |
| printf( |
| " /SHARE - Open the device in shared mode.\n"); |
| printf( |
| " /NOSHARE - Open the device in exclusive mode.\n"); |
| #endif /* VMS */ |
| printf("\n"); |
| printf( |
| "Also see HELP SET MODEM, HELP SET DIAL, HELP SET SPEED, HELP SET FLOW.\n"); |
| return(0); |
| |
| #ifndef NOSPL |
| case XYMACR: |
| return(hmsga(hxymacr)); |
| #endif /* NOSPL */ |
| |
| #ifndef NODIAL |
| case XYMODM: |
| return(hmsga(hxymodm)); |
| #endif /* NODIAL */ |
| |
| case XYPARI: |
| return(hmsga(hxypari)); |
| |
| case XYPROM: |
| return(hmsga(hmxyprm)); |
| |
| case XYQUIE: |
| return(hmsg("Syntax: SET QUIET {ON, OFF}\n\ |
| Normally OFF. ON disables most information messages during interactive\n\ |
| operation.")); |
| |
| #ifdef CK_SPEED |
| case XYQCTL: |
| return(hmsga(hmxyqctl)); |
| #endif /* CK_SPEED */ |
| |
| case XYRETR: |
| return(hmsg("Syntax: SET RETRY number\n\ |
| In Kermit protocol file transfers: How many times to retransmit a\n\ |
| particular packet before giving up; 0 = no limit.")); |
| |
| #ifndef NOLOCAL |
| case XYSESS: |
| #ifdef UNIX |
| return(hmsg( |
| "Syntax: SET SESSION-LOG { BINARY, DEBUG, TEXT, TIMESTAMPED-TEXT }\n\ |
| If BINARY, record all CONNECT characters in session log. If TEXT, strip\n\ |
| out CR, NUL, and XON/XOFF characters. DEBUG is the same as BINARY but\n\ |
| also includes Telnet negotiations on TCP/IP connections.")); |
| #else |
| #ifdef datageneral |
| return(hmsg( |
| "Syntax: SET SESSION-LOG { BINARY, DEBUG, TEXT, TIMESTAMPED-TEXT }\n\ |
| If BINARY, record all CONNECT characters in session log. If TEXT, strip\n\ |
| out CR, NUL, and XON/XOFF characters. DEBUG is the same as BINARY but\n\ |
| also includes Telnet negotiations on TCP/IP connections.")); |
| #else |
| #ifdef STRATUS |
| return(hmsg( |
| "Syntax: SET SESSION-LOG { BINARY, DEBUG, TEXT, TIMESTAMPED-TEXT }\n\ |
| If BINARY, record all CONNECT characters in session log. If TEXT, strip\n\ |
| out CR, NUL, and XON/XOFF characters. DEBUG is the same as BINARY but\n\ |
| also includes Telnet negotiations on TCP/IP connections.")); |
| #else |
| #ifdef AMIGA |
| return(hmsg( |
| "Syntax: SET SESSION-LOG { BINARY, DEBUG, TEXT, TIMESTAMPED-TEXT }\n\ |
| If BINARY, record all CONNECT characters in session log. If TEXT, strip\n\ |
| out CR, NUL, and XON/XOFF characters. DEBUG is the same as BINARY but\n\ |
| also includes Telnet negotiations on TCP/IP connections.")); |
| #else |
| #ifdef GEMDOS |
| return(hmsg( |
| "Syntax: SET SESSION-LOG { BINARY, DEBUG, TEXT, TIMESTAMPED-TEXT }\n\ |
| If BINARY, record all CONNECT characters in session log. If TEXT, strip\n\ |
| out CR, NUL, and XON/XOFF characters. DEBUG is the same as BINARY but\n\ |
| also includes Telnet negotiations on TCP/IP connections.")); |
| #else |
| #ifdef OS2 |
| return(hmsg( |
| "Syntax: SET SESSION-LOG { BINARY, DEBUG, TEXT, TIMESTAMPED-TEXT }\n\ |
| If BINARY, record all CONNECT characters in session log. If TEXT, strip\n\ |
| out NUL and XON/XOFF characters. DEBUG is the same as BINARY but\n\ |
| also includes Telnet negotiations on TCP/IP connections.")); |
| #else |
| #ifdef VMS |
| return(hmsg( |
| "Syntax: SET SESSION-LOG { BINARY, DEBUG, TEXT, TIMESTAMPED-TEXT }\n\ |
| If BINARY, record all CONNECT characters in session log. If TEXT, strip\n\ |
| out CR, NUL, and XON/XOFF characters. DEBUG is the same as BINARY but\n\ |
| also includes Telnet negotiations on TCP/IP connections.")); |
| #else |
| #ifdef OSK |
| return(hmsg( |
| "Syntax: SET SESSION-LOG { BINARY, DEBUG, TEXT, TIMESTAMPED-TEXT }\n\ |
| If BINARY, record all CONNECT characters in session log. If TEXT, strip\n\ |
| out LF, NUL and XON/XOFF characters.")); |
| #else |
| #ifdef MAC |
| return(hmsg( |
| "Syntax: SET SESSION-LOG { BINARY, DEBUG, TEXT, TIMESTAMPED-TEXT }\n\ |
| If BINARY, record all CONNECT characters in session log. If TEXT, strip\n\ |
| out LF, NUL and XON/XOFF characters.")); |
| #endif /* MAC */ |
| #endif /* OSK */ |
| #endif /* OS2 */ |
| #endif /* VMS */ |
| #endif /* GEMDOS */ |
| #endif /* AMIGA */ |
| #endif /* STRATUS */ |
| #endif /* datageneral */ |
| #endif /* OS2ORUNIX */ |
| |
| case XYSPEE: |
| #ifdef OS2 |
| |
| return(hmsg("Syntax: SET SPEED number\n\ |
| Speed for serial-port communication device specified in most recent\n\ |
| SET PORT command, in bits per second. Type SET SPEED ? for a list of\n\ |
| possible speeds.")); |
| #else |
| return(hmsg("Syntax: SET SPEED number\n\ |
| Speed for serial-port communication device specified in most recent\n\ |
| SET LINE command, in bits per second. Type SET SPEED ? for a list of\n\ |
| possible speeds. Has no effect on job's controlling terminal.")); |
| #endif /* OS2 */ |
| #endif /* NOLOCAL */ |
| |
| #ifndef NOXFER |
| case XYRECV: |
| return(hmsga(hxyrcv)); |
| case XYSEND: |
| return(hmsga(hxysnd)); |
| case XYREPT: |
| return(hmsga(hxyrpt)); |
| #endif /* NOXFER */ |
| |
| #ifndef NOSERVER |
| case XYSERV: |
| return(hmsga(hsetsrv)); |
| #endif /* NOSERVER */ |
| |
| #ifdef TNCODE |
| case XYTEL: |
| return(hmsga(hxytel)); |
| |
| case XYTELOP: |
| return(hmsga(hxytopt)); |
| #endif /* TNCODE */ |
| |
| #ifndef NOXMIT |
| case XYXMIT: |
| return(hmsga(hsetxmit)); |
| #endif /* NOXMIT */ |
| |
| #ifndef NOCSETS |
| case XYUNCS: |
| return(hmsg("Syntax: SET UNKNOWN-CHAR-SET action\n\ |
| DISCARD (default) means reject any arriving files encoded in unknown\n\ |
| character sets. KEEP means to accept them anyway.")); |
| #endif /* NOCSETS */ |
| |
| #ifdef UNIX |
| case XYWILD: |
| return(hmsga(hxywild)); |
| #endif /* UNIX */ |
| |
| #ifndef NOXFER |
| case XYWIND: |
| return(hmsga(hxywind)); |
| case XYXFER: |
| return(hmsga(hxyxfer)); |
| #endif /* NOXFER */ |
| |
| #ifndef NOLOCAL |
| #ifdef OS2MOUSE |
| case XYMOUSE: |
| return(hmsga(hxymouse)); |
| #endif /* OS2MOUSE */ |
| #endif /* NOLOCAL */ |
| |
| case XYALRM: |
| return(hmsg("Syntax: SET ALARM [ { seconds, hh:mm:ss } ]\n\ |
| Number of seconds from now, or time of day, after which IF ALARM\n\ |
| will succeed. 0, or no time at all, means no alarm.")); |
| |
| case XYPROTO: |
| return(hmsga(hxyxyz)); |
| |
| #ifdef CK_SPEED |
| case XYPREFIX: |
| return(hmsg("Syntax: SET PREFIXING { ALL, CAUTIOUS, MINIMAL }\n\ |
| \ |
| Selects the degree of control-character prefixing. Also see HELP SET CONTROL." |
| )); |
| #endif /* CK_SPEED */ |
| |
| #ifdef OS2 |
| case XYLOGIN: |
| return(hmsg("Syntax: SET LOGIN { USERID, PASSWORD, PROMPT } <text>\n\ |
| Provides access information for use by login scripts.")); |
| #endif /* OS2 */ |
| |
| #ifndef NOSPL |
| case XYTMPDIR: |
| return(hmsg("Syntax: SET TEMP-DIRECTORY [ <directory-name> ]\n\ |
| Overrides automatic assignment of \\v(tmpdir) variable.")); |
| #endif /* NOSPL */ |
| |
| #ifdef OS2 |
| case XYTITLE: |
| return(hmsg("Syntax: SET TITLE <text>\n\ |
| Sets window title to text instead of using current host/port name.")); |
| #endif /* OS2 */ |
| |
| #ifndef NOPUSH |
| #ifndef NOFRILLS |
| case XYEDIT: |
| return(hmsg("Syntax: SET EDITOR pathname [ options ]\n\ |
| Specifies the name of your preferred editor, plus any command-line\n\ |
| options. SHOW EDITOR displays it.")); |
| #endif /* NOFRILLS */ |
| #endif /* NOPUSH */ |
| |
| #ifdef BROWSER |
| case XYBROWSE: |
| #ifdef NT |
| return(hmsg("Syntax: SET BROWSER [ pathname [ options ] ]\n\ |
| Specifies the name of your preferred browser plus any command-line\n\ |
| options. SHOW BROWSER displays it. Omit pathname and options to use\n\ |
| ShellExecute.")); |
| #else |
| return(hmsg("Syntax: SET BROWSER [ pathname [ options ] ]\n\ |
| Specifies the name of your preferred browser plus any command-line\n\ |
| options. SHOW BROWSER displays it.")); |
| #endif /* NT */ |
| #endif /* BROWSER */ |
| |
| #ifdef CK_TAPI |
| case XYTAPI: |
| return(hmsga(hxytapi)); |
| #endif /* CK_TAPI */ |
| |
| #ifdef NT |
| case XYWIN95: |
| return(hmsga(hxywin95)); |
| #endif /* NT */ |
| |
| #ifndef NOSPL |
| case XYFUNC: |
| return(hmsga(hxyfunc)); |
| #endif /* NOSPL */ |
| |
| #ifdef CK_AUTHENTICATION |
| case XYAUTH: |
| return(hmsga(hmxyauth)); |
| #else /* CK_AUTHENTICATION */ |
| #ifdef CK_SSL |
| case XYAUTH: |
| return(hmsga(hmxyauth)); |
| #endif /* CK_SSL */ |
| #endif /* CK_AUTHENTICATION */ |
| |
| #ifdef BROWSER |
| case XYFTP: |
| return(hmsg("Syntax: SET FTP [ pathname [ options ] ]\n\ |
| Specifies the name of your ftp client, plus any command-line options.\n\ |
| SHOW FTP displays it.")); |
| #endif /* BROWSER */ |
| |
| case XYSLEEP: |
| return(hmsg("Syntax: SET SLEEP CANCELLATION { ON, OFF }\n\ |
| Tells whether SLEEP (PAUSE) or WAIT commands can be interrupted from the\n\ |
| keyboard; ON by default.")); |
| |
| case XYCD: |
| return(hmsga(hmxycd)); |
| |
| case XYSERIAL: |
| return(hmsg("Syntax: SET SERIAL dps\n\ |
| d is data length in bits, 7 or 8; p is first letter of parity; s is stop\n\ |
| bits, 1 or 2. Examples: \"set serial 7e1\", \"set serial 8n1\".")); |
| |
| #ifdef HWPARITY |
| case XYSTOP: |
| return(hmsg("Syntax: SET STOP-BITS { 1, 2 }\n\ |
| Number of stop bits to use on SET LINE connections, normally 1.")); |
| #endif /* HWPARITY */ |
| |
| #ifndef NOLOCAL |
| case XYDISC: |
| return(hmsg("Syntax: SET DISCONNECT { ON, OFF }\n\ |
| Whether to close and release a SET LINE device automatically upon\n\ |
| disconnection; OFF = keep device open (default); ON = close and release.")); |
| #endif /* NOLOCAL */ |
| |
| #ifdef STREAMING |
| case XYSTREAM: |
| return(hmsg("Syntax: SET STREAMING { ON, OFF, AUTO }\n\ |
| Tells Kermit whether streaming protocol can be used during Kermit file\n\ |
| transfers. Default is AUTO, meaning use it if connection is reliable.")); |
| #endif /* STREAMING */ |
| |
| case XYRELY: |
| return(hmsg("Syntax: SET RELIABLE { ON, OFF, AUTO }\n\ |
| Tells Kermit whether its connection is reliable. Default is AUTO,\n\ |
| meaning Kermit should figure it out for itself.")); |
| |
| case XYCLEAR: |
| return(hmsg("Syntax: SET CLEAR-CHANNEL { ON, OFF, AUTO }\n\ |
| Tells Kermit whether its connection is transparent to all 8-bit bytes.\n\ |
| Default is AUTO, meaning Kermit figures it out from the connection type.\n\ |
| When both sender and receiver agree channel is clear, SET PREFIXING NONE\n\ |
| is used automatically.")); |
| |
| #ifdef TLOG |
| case XYTLOG: |
| return(hmsg("Syntax: SET TRANSACTION-LOG { BRIEF, FTP, VERBOSE }\n\ |
| Selects the transaction-log format; BRIEF and FTP have one line per file;\n\ |
| FTP is compatible with FTP log. VERBOSE (the default) has more info.")); |
| #endif /* TLOG */ |
| |
| case XYOPTS: |
| return(hmsg("Syntax: SET OPTIONS command [ switches... ]\n\ |
| For use with commands that have switches; sets the default switches for\n\ |
| the given command. Type SET OPTIONS ? for a list of amenable commands.")); |
| |
| #ifndef NOSPL |
| case XYTIMER: |
| return(hmsga(hmxytimer)); |
| #endif /* NOSPL */ |
| |
| #ifdef CKROOT |
| case XYROOT: |
| return(hmsga(hmxxchroot)); |
| #endif /* XYROOT */ |
| |
| #ifdef ANYSSH |
| case XYSSH: |
| return(hmsga(hmxyssh)); |
| #endif /* ANYCMD */ |
| |
| #ifdef LOCUS |
| case XYLOCUS: |
| return(hmsga(hmxylocus)); |
| #endif /* LOCUS */ |
| |
| #ifdef OS2 |
| #ifdef KUI |
| case XYGUI: |
| return(hmsga(hmxygui)); |
| #endif /* KUI */ |
| #endif /* OS2 */ |
| |
| case XYMATCH: |
| return(hmsga(hmxymatch)); |
| |
| default: |
| printf("Not available - \"%s\"\n",cmdbuf); |
| return(0); |
| } |
| } |
| |
| #ifndef NOSPL |
| /* D O H F U N C -- Give help for a function */ |
| |
| int |
| dohfunc(xx) int xx; { |
| /* int x; */ |
| if (xx == -3) { |
| printf("\n Type SHOW FUNCTIONS to see a list of available functions.\n" |
| ); |
| printf( |
| " Type HELP FUNCTION <name> for help on a particular function.\n"); |
| printf( |
| " For function settings use HELP SET FUNCTION and SHOW SCRIPTS.\n\n"); |
| return(0); |
| } |
| if (xx == FN_WORD) /* Long help message */ |
| return(hmsga(hmfword)); |
| |
| printf("\n"); |
| switch (xx) { |
| case FN_IND: /* Index (of string 1 in string 2) */ |
| case FN_RIX: /* Rindex (index from right) */ |
| printf("\\f%sindex(s1,s2,n1)\n\ |
| s1 = string to look for.\n\ |
| s2 = string to look in.\n\ |
| n1 = optional 1-based starting position, default = 1.\n", |
| xx == FN_RIX ? "r" : "" |
| ); |
| printf("Returns integer:\n\ |
| 1-based position of %smost occurrence of s1 in s2, ignoring the %smost\n\ |
| (n1-1) characters in s2; returns 0 if s1 not found in s2.\n", |
| xx == FN_IND ? "left" : "right", |
| xx == FN_IND ? "left" : "right" |
| ); |
| break; |
| case FN_SEARCH: /* Search for pattern */ |
| case FN_RSEARCH: /* Search for pattern from right */ |
| printf("\\f%ssearch(s1,s2,n1)\n\ |
| s1 = pattern to look for.\n\ |
| s2 = string to look in.\n\ |
| n1 = optional 1-based offset, default = 1.\n", |
| xx == FN_RSEARCH ? "r" : "" |
| ); |
| printf("Returns integer:\n\ |
| 1-based position of %smost match for s1 in s2, ignoring the %smost\n\ |
| (n1-1) characters in s2; returns 0 if no match.\n", |
| xx == FN_SEARCH ? "left" : "right", |
| xx == FN_SEARCH ? "left" : "right" |
| ); |
| printf(" See HELP WILDCARDS for info about patterns.\n"); |
| break; |
| case FN_LEN: /* Length (of string) */ |
| printf("\\flength(s1)\n\ |
| s1 = string.\n"); |
| printf("Returns integer:\n\ |
| Length of string s1.\n"); |
| break; |
| case FN_LIT: /* Literal (don't expand the string) */ |
| printf("\\fliteral(s1)\n\ |
| s1 = string.\n"); |
| printf("Returns string:\n\ |
| s1 literally without evaluation.\n"); |
| break; |
| case FN_LOW: /* Lower (convert to lowercase) */ |
| printf("\\flower(s1)\n\ |
| s1 = string.\n"); |
| printf("Returns string:\n\ |
| s1 with uppercase letters converted to lowercase.\n"); |
| break; |
| case FN_MAX: /* Max (maximum) */ |
| printf("\\fmaximum(n1,n2)\n\ |
| n1 = integer.\n\ |
| n2 = integer.\n"); |
| printf("Returns integer:\n\ |
| The greater of n1 and n2.\n"); |
| break; |
| case FN_MIN: /* Min (minimum) */ |
| printf("\\fminimum(n1,n2)\n\ |
| n1 = integer.\n\ |
| n2 = integer.\n"); |
| printf("Returns integer:\n\ |
| The lesser of n1 and n2.\n"); |
| break; |
| case FN_MOD: /* Mod (modulus) */ |
| printf("\\fmodulus(n1,n2)\n\ |
| n1 = integer.\n\ |
| n2 = integer.\n"); |
| printf("Returns integer:\n\ |
| The remainder after dividing n1 by n2.\n"); |
| break; |
| case FN_EVA: /* Eval (evaluate arith expression) */ |
| printf("\\fevaluate(e)\n\ |
| e = arithmetic expression.\n"); |
| printf("Returns integer:\n\ |
| The result of evaluating the expression.\n"); |
| break; |
| case FN_SUB: /* Substr (substring) */ |
| printf("\\fsubstring(s1,n1,n2)\n\ |
| s1 = string.\n\ |
| n1 = integer, 1-based starting position, default = 1.\n\ |
| n2 = integer, length, default = length(s1) - n1 + 1.\n"); |
| printf("Returns string:\n\ |
| Substring of s1 starting at n1, length n2.\n"); |
| break; |
| case FN_UPP: /* Upper (convert to uppercase) */ |
| printf("\\fupper(s1)\n\ |
| s1 = string.\n"); |
| printf("Returns string:\n\ |
| s1 with lowercase letters converted to uppercase.\n"); |
| break; |
| case FN_REV: /* Reverse (a string) */ |
| printf("\\freverse(s1)\n\ |
| s1 = string.\n"); |
| printf("Returns string:\n\ |
| s1 with its characters in reverse order.\n"); |
| break; |
| case FN_REP: /* Repeat (a string) */ |
| printf("\\frepeat(s1,n1)\n\ |
| s1 = string.\n\ |
| n1 = integer.\n"); |
| printf("Returns string:\n\ |
| s1 repeated n1 times.\n"); |
| break; |
| case FN_EXE: /* Execute (a macro) */ |
| printf("\\fexecute(m1,a1,a2,a3,...)\n\ |
| m1 = macro name.\n\ |
| a1 = argument 1.\n\ |
| a2 = argument 2, etc\n"); |
| printf("Returns string:\n\ |
| The return value of the macro (HELP RETURN for further info).\n"); |
| break; |
| case FN_LPA: /* LPAD (left pad) */ |
| case FN_RPA: /* RPAD (right pad) */ |
| printf("\\f%cpad(s1,n1,c1)\n\ |
| s1 = string.\n\ |
| n1 = integer.\n\ |
| c1 = character, default = space.\n", |
| xx == FN_LPA ? 'l' : 'r'); |
| printf("Returns string:\n\ |
| s1 %s-padded with character c1 to length n1.\n", |
| xx == FN_LPA ? "left" : "right"); |
| break; |
| case FN_DEF: /* Definition of a macro, unexpanded */ |
| printf("\\fdefinition(m1)\n\ |
| m1 = macro name.\n"); |
| printf("Returns string:\n\ |
| Literal definition of macro m1.\n"); |
| break; |
| case FN_CON: /* Contents of a variable, ditto */ |
| printf("\\fcontents(v1)\n\ |
| v1 = variable name such as \\%%a.\n"); |
| printf("Returns string:\n\ |
| Literal definition of variable v1, evaluated one level only.\n"); |
| break; |
| case FN_FIL: /* Next file */ |
| printf("\\fnextfile()\n"); |
| printf("Returns string:\n\ |
| Name of next file from list created by most recent \\f[r]files() or\n\ |
| \\f[r]dir()invocation, or an empty string if there are no more files in\n\ |
| the list.\n"); |
| break; |
| case FN_FC: /* File count */ |
| printf("\\ffiles(f1[,&a]) - File list.\n\ |
| f1 = file specification, possibly containing wildcards.\n\ |
| &a = optional name of array to assign file list to.\n"); |
| printf("Returns integer:\n\ |
| The number of regular files that match f1. Use with \\fnextfile().\n"); |
| break; |
| case FN_CHR: /* Character (like BASIC CHR$()) */ |
| printf("\\fcharacter(n1)\n\ |
| n1 = integer.\n"); |
| printf("Returns character:\n\ |
| The character whose numeric code is n1.\n"); |
| break; |
| case FN_RIG: /* Right (like BASIC RIGHT$()) */ |
| printf("\\fright(s1,n1)\n\ |
| s1 = string.\n\ |
| n1 = integer, default = length(s1).\n"); |
| printf("Returns string:\n\ |
| The rightmost n1 characters of string s1.\n"); |
| break; |
| case FN_LEF: /* Left (like BASIC LEFT$()) */ |
| printf("\\fleft(s1,n1)\n\ |
| s1 = string.\n\ |
| n1 = integer, default = length(s1).\n"); |
| printf("Returns string:\n\ |
| The leftmost n1 characters of string s1.\n"); |
| break; |
| case FN_COD: /* Code value of character */ |
| printf("\\fcode(s1)\n\ |
| c1 = character.\n"); |
| printf("Returns integer:\n\ |
| The numeric code of the first character in string s1, or 0 if s1 empty.\n"); |
| break; |
| case FN_RPL: /* Replace */ |
| printf("\\freplace(s1,s2,s3[,n1])\n\ |
| s1 = original string.\n\ |
| s2 = match string.\n\ |
| s3 = replacement string.\n\ |
| n1 = occurrence.\n"); |
| printf("Returns string:\n\ |
| s1 with occurrence number n1 of s2 replaced by s3.\n\ |
| If n1 = 0 or omitted, all occurrences are replaced.\n\ |
| If n1 < 0, occurrences are counted from the right.\n"); |
| break; |
| |
| case FN_FD: /* File date */ |
| printf("\\fdate(f1)\n\ |
| f1 = filename.\n"); |
| #ifdef VMS |
| printf("Returns string:\n\ |
| Creation date of file f1, format: yyyymmdd hh:mm:ss.\n"); |
| #else |
| printf("Returns string:\n\ |
| Modification date of file f1, format: yyyymmdd hh:mm:ss.\n"); |
| #endif /* VMS */ |
| break; |
| case FN_FS: /* File size */ |
| printf("\\fsize(f1)\n\ |
| f1 = filename.\n"); |
| printf("Returns integer:\n\ |
| Size of file f1.\n"); |
| break; |
| case FN_VER: /* Verify */ |
| printf("\\fverify(s1,s2,n1)\n\ |
| s1 = string of characters to look for.\n\ |
| s2 = string to look in.\n\ |
| n1 = starting position in s2.\n"); |
| printf("Returns integer:\n\ |
| 1-based position of first character in s2 that is not also in s1,\n\ |
| or -1 if s1 is empty, or 0 if all characters in s2 are also in s1.\n"); |
| break; |
| case FN_IPA: /* Find and return IP address */ |
| printf("\\fipaddress(s1,n1)\n\ |
| s1 = string.\n\ |
| n1 = 1-based integer starting position, default = 1.\n"); |
| printf("Returns string:\n\ |
| First IP address in s1, scanning from left starting at position n1.\n"); |
| break; |
| case FN_HEX: /* Hexify */ |
| printf("\\fhexify(s1)\n\ |
| s1 = string.\n"); |
| printf("Returns string:\n\ |
| The hexadecimal representation of s1. Also see \\fn2hex().\n"); |
| break; |
| case FN_UNH: /* Unhexify */ |
| printf("\\funhexify(h1)\n\ |
| h1 = Hexadecimal string.\n"); |
| printf("Returns string:\n\ |
| The result of unhexifying s1, or nothing if s1 is not a hex string.\n"); |
| break; |
| case FN_UNTAB: /* Untabify */ |
| printf("\\funtabify(s1)\n\ |
| s1 = string.\n"); |
| printf("Returns string:\n\ |
| The result of converting tabs in s1 to spaces assuming tab stops every\n\ |
| 8 spaces.\n"); |
| break; |
| case FN_BRK: /* Break */ |
| case FN_SPN: /* Span */ |
| printf("\\f%s(s1,s2,n1)\n\ |
| s1 = string to look in.\n\ |
| s2 = string of characters to look for.\n\ |
| n1 = 1-based integer starting position, default = 1.\n", |
| xx == FN_BRK ? "break" : "span" |
| ); |
| printf("Returns string:\n\ |
| s1 up to the first occurrence of any character%salso in s2,\n\ |
| scanning from the left starting at position n1.\n", |
| xx == FN_SPN ? " not " : " "); |
| break; |
| case FN_TRM: /* Trim */ |
| case FN_LTR: /* Left-Trim */ |
| printf("\\f%s(s1,s2)\n\ |
| s1 = string to look in.\n\ |
| s2 = string of characters to look for, default = blanks and tabs.\n", |
| xx == FN_TRM ? "trim" : "ltrim"); |
| printf("Returns string:\n\ |
| s1 with all characters that are also in s2 trimmed from the %s.\n.", |
| xx == FN_TRM ? "right" : "left"); |
| break; |
| case FN_CAP: /* Capitalize */ |
| printf("\\fcapitalize(s1)\n\ |
| s1 = string.\n"); |
| printf("Returns string:\n\ |
| s1 with its first letter converted to uppercase and the remaining\n\ |
| letters to lowercase.\n"); |
| printf("Synonym: \\fcaps(s1)\n"); |
| break; |
| case FN_TOD: /* Time-of-day-to-secs-since-midnite */ |
| printf("\\ftod2secs(s1)\n\ |
| s1 = time-of-day string, hh:mm:ss, 24-hour format.\n"); |
| printf("Returns number:\n\ |
| Seconds since midnight.\n"); |
| break; |
| case FN_FFN: /* Full file name */ |
| printf("\\fpathname(f1)\n\ |
| f1 = filename, possibly wild.\n"); |
| printf("Returns string:\n\ |
| Full pathname of f1.\n"); |
| break; |
| case FN_CHK: /* Checksum of text */ |
| printf("\\fchecksum(s1)\n\ |
| s1 = string.\n"); |
| printf("Returns integer:\n\ |
| 16-bit checksum of string s1.\n"); |
| break; |
| case FN_CRC: /* CRC-16 of text */ |
| printf("\\fcrc16(s1)\n\ |
| s1 = string.\n"); |
| printf("Returns integer:\n\ |
| 16-bit cyclic redundancy check of string s1.\n"); |
| break; |
| case FN_BSN: /* Basename of file */ |
| printf("\\fbasename(f1)\n\ |
| f1 = filename, possibly wild.\n"); |
| printf("Returns string:\n\ |
| Filename f1 stripped of all device and directory information.\n"); |
| break; |
| case FN_CMD: /* Output of a command (cooked) */ |
| printf("\\fcommand(s1)\n\ |
| s1 = string\n"); |
| printf("Returns string:\n\ |
| Output of system command s1, if any, with final line terminator stripped.\n" |
| ); |
| break; |
| case FN_RAW: /* Output of a command (raw) */ |
| printf("\\frawcommand(s1)\n\ |
| s1 = string\n"); |
| printf("Returns string:\n\ |
| Output of system command s1, if any.\n"); |
| break; |
| case FN_STX: /* Strip from right */ |
| printf("\\fstripx(s1,c1)\n\ |
| s1 = string to look in.\n\ |
| c1 = character to look for, default = \".\".\n"); |
| printf("Returns string:\n\ |
| s1 up to the rightmost occurrence of character c1.\n" |
| ); |
| break; |
| |
| case FN_STL: /* Strip from left */ |
| printf("\\flop(s1,c1)\n\ |
| s1 = string to look in.\n\ |
| c1 = character to look for, default = \".\".\n"); |
| printf("Returns string:\n\ |
| The part of s1 after the leftmost occurrence of character c1.\n" |
| ); |
| break; |
| |
| case FN_STN: /* Strip n chars */ |
| printf("\\fstripn(s1,n1)\n\ |
| s1 = string to look in.\n\ |
| n1 = integer, default = 0.\n"); |
| printf("Returns string:\n\ |
| s1 with n1 characters removed from the right.\n" |
| ); |
| break; |
| |
| case FN_STB: /* Strip enclosing brackets */ |
| printf("\\fstripb(s1[,c1[,c2]])\n\ |
| s1 = original string.\n\ |
| c1 = optional first character\n"); |
| printf("\ |
| c2 = optional final character.\n"); |
| printf("Returns string:\n\ |
| s1 with the indicated enclosing characters removed. If c1 and c2 not\n\ |
| specified, any matching brackets, braces, parentheses, or quotes are\n"); |
| printf("\ |
| assumed. If c1 is given but not c2, the appropriate c2 is assumed.\n\ |
| if both c1 and c2 are given, they are used as-is.\n" |
| ); |
| printf( |
| "Alternative format:\n\ |
| Include a grouping mask number in place of c1 and omit c2 to specify more\n\ |
| than one possibility at once; see \\fword() for details.\n" |
| ); |
| break; |
| |
| #ifdef OS2 |
| case FN_SCRN_CX: /* Screen Cursor X Pos */ |
| printf("\\fscrncurx()\n"); |
| printf("Returns integer:\n\ |
| The 0-based X coordinate (column) of the Terminal screen cursor.\n"); |
| break; |
| case FN_SCRN_CY: /* Screen Cursor Y Pos */ |
| printf("\\fscrncury()\n"); |
| printf("Returns integer:\n\ |
| The 0-based Y coordinate (row) of the Terminal screen cursor.\n"); |
| break; |
| case FN_SCRN_STR: /* Screen String */ |
| printf("\\fscrnstr(ny,nx,n1)\n\ |
| ny = integer.\n\ |
| nx = integer.\n\ |
| n1 = integer.\n"); |
| printf("Returns string:\n\ |
| The string at Terminal-screen coordinates (nx,ny), length n1,\n\ |
| blanks included. Coordinates start at 0. Default values are\n\ |
| 0 for ny and nx, and line width for n1.\n"); |
| break; |
| #endif /* OS2 */ |
| |
| case FN_2HEX: /* Num to hex */ |
| printf("\\fn2hex(n1) - Number to hex\n n1 = integer.\n"); |
| printf("Returns string:\n The hexadecimal representation of n1.\n"); |
| break; |
| |
| case FN_2OCT: /* Num to hex */ |
| printf("\\fn2octal(n1) - Number to octal\n n1 = integer.\n"); |
| printf("Returns string:\n The octal representation of n1.\n"); |
| break; |
| |
| #ifdef RECURSIVE |
| case FN_DIR: /* Recursive directory count */ |
| printf("\\fdirectories(f1) - Directory list.\n\ |
| f1 = directory specification, possibly containing wildcards.\n\ |
| &a = optional name of array to assign directory list to.\n"); |
| printf("Returns integer:\n\ |
| The number of directories that match f1; use with \\fnextfile().\n"); |
| break; |
| |
| case FN_RFIL: /* Recursive file count */ |
| printf("\\frfiles(f1[,&a]) - Recursive file list.\n\ |
| f1 = file specification, possibly containing wildcards.\n\ |
| &a = optional name of array to assign file list to.\n"); |
| printf("Returns integer:\n\ |
| The number of files whose names match f1 in the current or given\n\ |
| directory tree; use with \\fnextfile().\n"); |
| break; |
| |
| case FN_RDIR: /* Recursive directory count */ |
| printf("\\frdirectories(f1) - Recursive directory list.\n\ |
| f1 = directory specification, possibly containing wildcards.\n\ |
| &a = optional name of array to assign directory list to.\n"); |
| printf("Returns integer:\n\ |
| The number of directories that match f1 in the current or given directory\n\ |
| tree. Use with \\fnextfile().\n"); |
| break; |
| #endif /* RECURSIVE */ |
| |
| case FN_DNAM: /* Directory part of a filename */ |
| printf("\\fdirname(f) - Directory part of a filename.\n\ |
| f = a file specification.\n"); |
| printf("Returns directory name:\n\ |
| The full name of the directory that the file is in, or if the file is a\n\ |
| directory, its full name.\n"); |
| break; |
| |
| #ifndef NORANDOM |
| case FN_RAND: /* Random number */ |
| printf("\\frandom(n) - Random number.\n\ |
| n = a positive integer.\n"); |
| printf("Returns integer:\n\ |
| A random number between 0 and n-1.\n"); |
| break; |
| #endif /* NORANDOM */ |
| |
| case FN_SPLIT: /* Split */ |
| printf("\\fsplit(s1,&a,s2,s3,n2,n3) - \ |
| Assign string words to an array.\n\ |
| s1 = source string\n &a = array designator\n s2 = optional break set.\n"); |
| printf(" s3 = optional include set.\n"); |
| printf(" n2 = optional grouping mask.\n"); |
| printf(" n3 = optional separator flag.\n"); |
| printf(" s2, s3, n2, n3 are as in \\fword().\n"); |
| printf( |
| " All arguments are optional; if \\&a[] already exists, it is recycled;\n\ |
| if array not specified, the count is returned but no array is created.\n"); |
| printf("Returns integer:\n\ |
| Number of words in source string.\n"); |
| break; |
| |
| case FN_DTIM: /* CVTDATE */ |
| printf("\\fcvtdate([date-time][,n1]) - Date/time conversion.\n"); |
| printf(" Converts date and/or time to standard format.\n"); |
| printf(" If no date/time given, returns current date/time.\n"); |
| printf(" [date-time], if given, is free-format date and/or time.\n"); |
| printf(" HELP DATE for info about date-time formats.\n"); |
| printf("Returns string:\n\ |
| Standard-format date and time: yyyymmdd hh:mm:ss (numeric)\n"); |
| printf(" If n1 is given:\n\ |
| n1 = 1: yyyy-mmm-dd hh:mm:ss (mmm = English 3-letter month abbreviation)\n\ |
| n1 = 2: dd-mmm-yyyy hh:mm:ss (ditto)\n\ |
| n1 = 3: yyyymmddhhmmss (all numeric)\n"); |
| break; |
| |
| case FN_JDATE: /* DOY */ |
| printf("\\fdoy([date-time]) - Day of Year.\n"); |
| printf(" Converts date and/or time to day-of-year (DOY) format.\n"); |
| printf(" If no date/time given, returns current date.\n"); |
| printf(" [date-time], if given, is free-format date and/or time.\n"); |
| printf(" HELP DATE for info about date-time formats.\n"); |
| printf("Returns numeric string:\n\ |
| DOY: yyyyddd, where ddd is 1-based day number in year.\n"); |
| break; |
| |
| case FN_PNCVT: |
| printf("\\fdialconvert(phone-number) - Convert phone number.\n"); |
| printf(" Converts the given phone number for dialing according\n"); |
| printf( |
| " to the prevailing dialing rules -- country code, area code, etc.\n"); |
| printf("Returns string:\n\ |
| The dial string that would be used if the same phone number had been\n\ |
| given to the DIAL command.\n" |
| ); |
| break; |
| |
| case FN_DATEJ: /* DOY2DATE */ |
| printf("\\fdoy2date([doy[ time]]) - Day of Year to Date.\n"); |
| printf(" Converts yyyymmm to yyyymmdd\n"); |
| printf(" If time included, it is converted to 24-hour format."); |
| printf( |
| "Returns standard date or date-time string yyyymmdd hh:mm:ss\n"); |
| break; |
| |
| case FN_MJD: |
| printf("\\fmjd([[date][ time]]) - Modified Julian Date (MJD).\n"); |
| printf( |
| " Converts date and/or time to MJD, the number of days since 17 Nov 1858.\n"); |
| printf(" HELP DATE for info about date-time formats.\n"); |
| printf("Returns: integer.\n"); |
| break; |
| |
| case FN_MJD2: |
| printf("\\fmjd2date(mjd) - Modified Julian Date (MJD) to Date.\n"); |
| printf(" Converts MJD to standard-format date.\n"); |
| printf("Returns: yyyymmdd.\n"); |
| break; |
| |
| case FN_DAY: |
| printf("\\fday([[date][ time]]) - Day of Week.\n"); |
| printf("Returns day of week of given date as Mon, Tue, etc.\n"); |
| printf("HELP DATE for info about date-time formats.\n"); |
| break; |
| |
| case FN_NDAY: |
| printf("\\fnday([[date][ time]]) - Numeric Day of Week.\n"); |
| printf( |
| "Returns numeric day of week of given date, 0=Sun, 1=Mon, ..., 6=Sat.\n"); |
| printf("HELP DATE for info about date-time formats.\n"); |
| break; |
| |
| case FN_TIME: |
| printf("\\ftime([[date][ time]]) - Time.\n"); |
| printf( |
| "Returns time portion of given date and/or time in hh:mm:ss format.\n"); |
| printf("If no argument given, returns current time.\n"); |
| printf("HELP DATE for info about date-time formats.\n"); |
| break; |
| |
| case FN_NTIM: |
| printf("\\fntime([[date][ time]]) - Numeric Time.\n"); |
| printf( |
| "Returns time portion of given date and/or time as seconds since midnight.\n"); |
| printf("If no argument given, returns current time.\n"); |
| printf("HELP DATE for info about date-time formats.\n"); |
| break; |
| |
| case FN_N2TIM: |
| printf("\\fn2time(seconds) - Numeric Time to Time.\n"); |
| printf( |
| "Returns the given number of seconds in hh:mm:ss format.\n"); |
| break; |
| |
| case FN_PERM: |
| printf("\\fpermissions(file) - Permissions of File.\n"); |
| printf( |
| #ifdef UNIX |
| "Returns permissions of given file as they would be shown by \"ls -l\".\n" |
| #else |
| #ifdef VMS |
| "Returns permissions of given file as they would be shown by \"dir /prot\".\n" |
| #else |
| "Returns the permissions of the given file.\n" |
| #endif /* VMS */ |
| #endif /* UNIX */ |
| ); |
| break; |
| |
| case FN_ALOOK: |
| printf("\\farraylook(pattern,&a) - Lookup pattern in array.\n\ |
| pattern = String or pattern\n"); |
| printf(" &a = array designator, can include range specifier.\n"); |
| printf( |
| "Returns number:\n\ |
| The index of the first matching array element or -1 if none.\n"); |
| printf("More info:\n\ |
| HELP PATTERN for pattern syntax.\n HELP ARRAY for arrays.\n"); |
| break; |
| |
| case FN_TLOOK: |
| printf( |
| "\\ftablelook(keyword,&a,[c]) - Lookup keyword in keyword table.\n\ |
| pattern = String\n"); |
| printf(" keyword = keyword to look up (can be abbreviated).\n"); |
| printf(" &a = array designator, can include range specifier.\n"); |
| printf(" This array must be in alphabetical order.\n"); |
| printf(" c = Optional field delimiter, colon(:) by default.\n"); |
| printf( |
| "Returns number:\n\ |
| 1 or greater, index of array element that uniquely matches given keyword;\n" |
| ); |
| printf( |
| "or -2 if keyword was ambiguous, or -1 if keyword empty or not found.\n" |
| ); |
| printf("Also see:\n\ |
| HELP FUNC ARRAYLOOK for a similar function.\n HELP ARRAY for arrays.\n"); |
| break; |
| |
| case FN_ABS: /* Absolute */ |
| printf("\\fabsolute(n1)\n\ |
| n1 = integer.\n"); |
| printf("Returns integer:\n\ |
| The absolute (unsigned) value of n1.\n"); |
| break; |
| |
| #ifdef FNFLOAT |
| case FN_FPABS: |
| printf("\\ffpabsolute(f1,d)\n\ |
| f1 = floating-point number or integer.\n\ |
| d = integer.\n"); |
| printf("Returns floating-point number:\n\ |
| The absolute (unsigned) value of f1 to d decimal places.\n"); |
| break; |
| |
| case FN_FPADD: |
| printf("\\ffpadd(f1,f2,d)\n\ |
| f1,f2 = floating-point numbers or integers.\n\ |
| d = integer.\n"); |
| printf("Returns floating-point number:\n\ |
| The sum of f1 and f2 to d decimal places.\n"); |
| break; |
| |
| case FN_FPSUB: |
| printf("\\ffpsubtract(f1,f2,d)\n\ |
| f1,f2 = floating-point numbers or integers.\n\ |
| d = integer.\n"); |
| printf("Returns floating-point number:\n\ |
| f1 minus f2 to d decimal places.\n"); |
| break; |
| |
| case FN_FPMUL: |
| printf("\\ffpmultiply(f1,f2,d)\n\ |
| f1,f2 = floating-point numbers or integers.\n\ |
| d = integer.\n"); |
| printf("Returns floating-point number:\n\ |
| The product of f1 and f2 to d decimal places.\n"); |
| break; |
| |
| case FN_FPDIV: |
| printf("\\ffpdivide(f1,f2,d)\n\ |
| f1,f2 = floating-point numbers or integers.\n\ |
| d = integer.\n"); |
| printf("Returns floating-point number:\n\ |
| f1 divided by f2 to d decimal places.\n"); |
| break; |
| |
| case FN_FPMAX: |
| printf("\\ffpmaximum(f1,f2,d)\n\ |
| f1,f2 = floating-point numbers or integers.\n\ |
| d = integer.\n"); |
| printf("Returns floating-point number:\n\ |
| The maximum of f1 and f2 to d decimal places.\n"); |
| break; |
| |
| case FN_FPMIN: |
| printf("\\ffpminimum(f1,f2,d)\n\ |
| f1,f2 = floating-point numbers or integers.\n\ |
| d = integer.\n"); |
| printf("Returns floating-point number:\n\ |
| The minimum of f1 and f2 to d decimal places.\n"); |
| break; |
| |
| case FN_FPMOD: |
| printf("\\ffpmodulus(f1,f2,d)\n\ |
| f1,f2 = floating-point numbers or integers.\n\ |
| d = integer.\n"); |
| printf("Returns floating-point number:\n\ |
| The modulus of f1 and f2 to d decimal places.\n"); |
| break; |
| |
| case FN_FPPOW: |
| printf("\\ffpraise(f1,f2,d)\n\ |
| f1,f2 = floating-point numbers or integers.\n\ |
| d = integer.\n"); |
| printf("Returns floating-point number:\n\ |
| f1 raised to the power f2, to d decimal places.\n"); |
| break; |
| |
| case FN_FPCOS: |
| printf("\\ffpcosine(f1,d)\n\ |
| f1 = floating-point number or integer.\n\ |
| d = integer.\n"); |
| printf("Returns floating-point number:\n\ |
| The cosine of angle f1 (in radians) to d decimal places.\n"); |
| break; |
| |
| case FN_FPSIN: |
| printf("\\ffpsine(f1,d)\n\ |
| f1 = floating-point number or integer.\n\ |
| d = integer.\n"); |
| printf("Returns floating-point number:\n\ |
| The sine of angle f1 (in radians) to d decimal places.\n"); |
| break; |
| |
| case FN_FPTAN: |
| printf("\\ffptangent(f1,d)\n\ |
| f1 = floating-point number or integer.\n\ |
| d = integer.\n"); |
| printf("Returns floating-point number:\n\ |
| The tangent of angle f1 (in radians) to d decimal places.\n"); |
| break; |
| |
| case FN_FPEXP: |
| printf("\\ffpexp(f1,d)\n\ |
| f1 = floating-point number or integer.\n\ |
| d = integer.\n"); |
| printf("Returns floating-point number:\n\ |
| e (the base of natural logarithms) raised to the f1 power,\n\ |
| to d decimal places.\n"); |
| break; |
| |
| case FN_FPINT: |
| printf("\\ffpint(f1)\n\ |
| f1 = floating-point number or integer.\n"); |
| printf("Returns integer:\n\ |
| The integer part of f1.\n"); |
| break; |
| |
| case FN_FPLOG: |
| printf("\\ffplog10(f1,d)\n\ |
| f1 = floating-point number or integer.\n\ |
| d = integer.\n"); |
| printf("Returns floating-point number:\n\ |
| The logarithm, base 10, of f1 to d decimal places.\n"); |
| break; |
| |
| case FN_FPLN: |
| printf("\\ffplogn(f1,d)\n\ |
| f1 = floating-point number or integer.\n\ |
| d = integer.\n"); |
| printf("Returns floating-point number:\n\ |
| The natural logarithm of f1 to d decimal places.\n"); |
| break; |
| |
| case FN_FPROU: |
| printf("\\ffpround(f1,d)\n\ |
| f1 = floating-point number or integer.\n\ |
| d = integer.\n"); |
| printf("Returns floating-point number:\n\ |
| f1 rounded to d decimal places.\n"); |
| break; |
| |
| case FN_FPSQR: |
| printf("\\ffpsqrt(f1,d)\n\ |
| f1 = floating-point number or integer.\n\ |
| d = integer.\n"); |
| printf("Returns floating-point number:\n\ |
| The square root of f1 to d decimal places.\n"); |
| break; |
| #endif /* FNFLOAT */ |
| |
| #ifdef CKCHANNELIO |
| case FN_FEOF: |
| printf("\\f_eof(n1)\n\ |
| n1 = channel number.\n"); |
| printf("Returns number:\n\ |
| 1 if channel n1 at end of file, 0 otherwise.\n"); |
| break; |
| case FN_FPOS: |
| printf("\\f_pos(n1)\n\ |
| n1 = channel number.\n"); |
| printf("Returns number:\n\ |
| Read/write pointer of channel n1 as byte number.\n"); |
| break; |
| case FN_NLINE: |
| printf("\\f_line(n1)\n\ |
| n1 = channel number.\n"); |
| printf("Returns number:\n\ |
| Read/write pointer of channel n1 as line number.\n"); |
| break; |
| case FN_FILNO: |
| printf("\\f_handle(n1)\n\ |
| n1 = channel number.\n"); |
| printf("Returns number:\n\ |
| File %s of open file on channel n1.\n", |
| #ifdef OS2 |
| "handle" |
| #else |
| "descriptor" |
| #endif /* OS2 */ |
| ); |
| break; |
| case FN_FSTAT: |
| printf("\\f_status(n1)\n\ |
| n1 = channel number.\n"); |
| printf("Returns number:\n\ |
| Sum of open modes of channel n1: 1 = read; 2 = write; 4 = append, or:\n\ |
| 0 if not open.\n"); |
| break; |
| case FN_FGCHAR: |
| printf("\\f_getchar(n1)\n\ |
| n1 = channel number.\n"); |
| printf(" Reads a character from channel n1 and returns it.\n"); |
| break; |
| case FN_FGLINE: |
| printf("\\f_getline(n1)\n\ |
| n1 = channel number.\n"); |
| printf(" Reads a line from channel n1 and returns it.\n"); |
| break; |
| case FN_FGBLK: |
| printf("\\f_getblock(n1,n2)\n\ |
| n1 = channel number, n2 = size\n"); |
| printf( |
| " Reads a block of n2 characters from channel n1 and returns it.\n"); |
| break; |
| case FN_FPCHAR: |
| printf("\\f_putchar(n1,c)\n\ |
| n1 = channel number, c = character\n"); |
| printf(" Writes a character to channel n1.\n\ |
| Returns number:\n\ |
| 1 if successful, otherwise a negative error code.\n"); |
| break; |
| case FN_FPLINE: |
| printf("\\f_putline(n1,s1)\n\ |
| n1 = channel number, s1 = string\n"); |
| printf( |
| " Writes the string s1 to channel n1 and adds a line terminator.\n\ |
| Returns number:\n"); |
| printf(" How many characters written if successful;\n\ |
| Otherwise a negative error code.\n" |
| ); |
| break; |
| case FN_FPBLK: |
| printf("\\f_putblock(n1,s1)\n\ |
| n1 = channel number, s1 = string\n"); |
| printf( |
| " Writes the string s1 to channel n1.\n\ |
| Returns number:\n"); |
| printf(" How many characters written if successful;\n\ |
| Otherwise a negative error code.\n" |
| ); |
| break; |
| case FN_FERMSG: |
| printf("\\f_errmsg([n1])\n\ |
| n1 = numeric error code, \\v(f_error) by default.\n"); |
| printf(" Returns the associated error message string.\n"); |
| break; |
| #endif /* CKCHANNELIO */ |
| |
| case FN_AADUMP: |
| printf("\\faaconvert(name,&a[,&b])\n\ |
| name = name of associative array, &a and &b = names of regular arrays.\n"); |
| printf( |
| " Converts the given associative array into two regular arrays, &a and &b,\n\ |
| containing the indices and values, respectively:\n"); |
| printf("Returns number:\n\ |
| How many elements were converted.\n"); |
| break; |
| |
| #ifdef CK_KERBEROS |
| case FN_KRB_TK: |
| printf("\\fkrbtickets(n)\n\ |
| n = Kerberos version number (4 or 5).\n\ |
| Returns string:\n\ |
| The number of active Kerberos 4 or 5 tickets.\n\ |
| Resets the ticket list used by \\fkrbnextticket(n).\n"); |
| break; |
| |
| case FN_KRB_NX: |
| printf("\\fkrbnextticket(n)\n\ |
| n = Kerberos version number (4 or 5).\n\ |
| Returns string:\n\ |
| The next ticket in the Kerberos 4 or 5 ticket list that was set up by\n\ |
| the most recent invocation of \\fkrbtickets(n).\n"); |
| break; |
| |
| case FN_KRB_IV: |
| printf("\\fkrbisvalid(n,name)\n\ |
| n = Kerberos version number (4 or 5).\n\ |
| name = a ticket name as returned by \\fkrbnextticket(n).\n\ |
| Returns number:\n\ |
| 1 if the ticket is valid, 0 if not valid.\n\ |
| A ticket is valid if all the following conditions are true:\n\n"); |
| printf("\n\ |
| (i) it exists in the current cache file;\n\ |
| (ii) it is not expired;\n\ |
| (iii) it is not marked invalid (K5 only);\n\ |
| (iv) it was issued from the current IP address\n"); |
| printf("\n This value can be used in an IF statement, e.g.:\n\n"); |
| printf(" if \\fkrbisvalid(4,krbtgt.FOO.BAR.EDU@FOO.BAR.EDU) ...\n"); |
| break; |
| |
| case FN_KRB_TT: |
| printf("\\fkrbtimeleft(n,name)\n\ |
| n = Kerberos version number (4 or 5).\n\ |
| name = a ticket name as returned by \\fkrbnextticket(n).\n\ |
| Returns string:\n\ |
| The number of seconds remaining in the ticket's lifetime.\n"); |
| break; |
| |
| case FN_KRB_FG: |
| printf("\\fkrbflags(n,name)\n\ |
| n = Kerberos version number (4 or 5).\n\ |
| name = a ticket name as returned by \\fkrbnextticket(n).\n\ |
| Returns string:\n"); |
| printf( |
| " The flags string as reported with AUTH K5 LIST /FLAGS. This string can\n\ |
| be searched for a particular flag using the \\findex() function when\n\ |
| SET CASE is ON (for case sensitive searches). Flag strings are only\n\ |
| available for K5 tickets.\n"); |
| break; |
| #endif /* CK_KERBEROS */ |
| |
| case FN_PATTERN: |
| printf("\\fpattern(s)\n\ |
| s = string\n\ |
| Returns string: s with any variables, etc, evaluated in the normal manner.\n" |
| ); |
| printf("\ |
| For use with INPUT, MINPUT, and REINPUT to declare that a search target is\n\ |
| a pattern rather than a literal string.\n"); |
| break; |
| |
| case FN_HEX2N: |
| printf("\\fhex2n(s)\n\ |
| s = hexadecimal number\n\ |
| Returns decimal equivalent.\n"); |
| break; |
| |
| case FN_HEX2IP: |
| printf("\\fhex2ip(s)\n\ |
| s = 8-digit hexadecimal number\n\ |
| Returns the equivalent decimal dotted IP address.\n"); |
| break; |
| |
| case FN_IP2HEX: |
| printf("\\fip2hex(s)\n\ |
| s = decimal dotted IP address\n\ |
| Returns the equivalent 8-digit hexadecimal number.\n"); |
| break; |
| |
| case FN_OCT2N: |
| printf("\\foct2n(s)\n\ |
| s = octal number\n\ |
| Returns decimal equivalent.\n"); |
| break; |
| |
| case FN_RADIX: |
| printf("\\fradix(s,n1,n2)\n\ |
| s = number in radix n1\n\ |
| Returns the number's representation in radix n2.\n"); |
| break; |
| |
| case FN_JOIN: |
| printf("\\fjoin(&a[,s[,n1[,n2]]])\n\ |
| &a = array designator, can include range specifier.\n\ |
| s = optional separator.\n"); |
| printf("\ |
| n1 = nonzero to put grouping around elements that contain spaces;\n\ |
| see \\fword() grouping mask for values of n.\n"); |
| printf("\ |
| n2 = 0 or omitted to put spaces between elements; nonzero to omit them.\n"); |
| printf("\ |
| Returns the (selected) elements of the array joined to together,\n\ |
| separated by the separator.\n"); |
| break; |
| |
| case FN_SUBST: |
| printf("\\fsubstitute(s1,s2,s3)\n\ |
| s1 = Source string.\n\ |
| s2 = List of characters to be translated.\n\ |
| s3 = List of characters to translate them to.\n"); |
| printf( |
| " Returns: s1, with each character that is in s2 translated to the\n\ |
| corresponding character in s3. s2 and s3 can contain ASCII ranges,\n\ |
| like [a-z]. Any characters in s2 that don't have corresponding\n\ |
| characters in s3 (after range expansion) are removed from the result.\n"); |
| break; |
| |
| #ifndef NOSEXP |
| case FN_SEXP: |
| printf("\\fsexpression(s1)\n\ |
| s1 = S-Expression.\n"); |
| printf(" Returns: The result of evaluating s1.\n"); |
| break; |
| |
| #endif /* NOSEXP */ |
| |
| case FN_CMDSTK: |
| printf("\\fcmdstack(n1,n2)\n\ |
| n1 = Command-stack level, 0 to \\v(cmdlevel), default \\v(cmdlevel).\n\ |
| n2 = Function code, 0 or 1.\n"); |
| printf("Returns:\n"); |
| printf(" n2 = 0: name of object at stack level n1\n\ |
| n2 = 1: type of object at stack level n1:\n\ |
| 0 = interactive prompt\n\ |
| 1 = command file\n\ |
| 2 = macro\n" |
| ); |
| break; |
| |
| #ifdef CKFLOAT |
| case FN_DIFDATE: |
| printf("\\fdiffdates(d1,d2)\n\ |
| d1 = free-format date and/or time (default = NOW).\n\ |
| d2 = ditto.\n"); |
| printf("Returns:\n"); |
| printf(" Difference expressed as delta time:\n"); |
| printf(" Negative if d2 is later than d1, otherwise positive.\n"); |
| break; |
| #endif /* CKFLOAT */ |
| |
| case FN_CMPDATE: |
| printf("\\fcmpdates(d1,d2)\n\ |
| d1 = free-format date and/or time (default = NOW).\n\ |
| d2 = ditto.\n"); |
| printf("Returns:\n"); |
| printf(" 0 if d1 is equal to d2;\n\ |
| 1 if d1 is later than d2;\n\ |
| -1 if d1 is earlier than d2.\n"); |
| break; |
| |
| case FN_TOGMT: |
| printf("\\futcdate(d1)\n\ |
| d1 = free-format date and/or time (default = NOW).\n"); |
| printf("Returns:\n"); |
| printf(" Date-time converted to UTC (GMT) yyyymmdd hh:mm:ss.\n"); |
| break; |
| |
| #ifdef TCPSOCKET |
| case FN_HSTADD: |
| printf("\\faddr2name(s)\n\ |
| s = numeric IP address.\n"); |
| printf("Returns:\n"); |
| printf(" Corresponding IP hostname if found, otherwise null.\n"); |
| break; |
| case FN_HSTNAM: |
| printf("\\fname2addr(s)\n\ |
| s = IP host name.\n"); |
| printf("Returns:\n"); |
| printf(" Corresponding numeric IP address if found, else null.\n"); |
| break; |
| #endif /* TCPSOCKET */ |
| |
| case FN_DELSEC: |
| printf("\\fdelta2secs(dt)\n\ |
| dt = Delta time, e.g. +3d14:27:52.\n"); |
| printf("Returns:\n"); |
| printf(" The corresponding number of seconds.\n"); |
| break; |
| |
| case FN_PC_DU: |
| printf("\\fdos2unixpath(p)\n\ |
| p = string, DOS pathname.\n"); |
| printf("Returns:\n"); |
| printf(" The argument converted to a Unix pathname.\n"); |
| break; |
| |
| case FN_PC_UD: |
| printf("\\funix2dospath(p)\n\ |
| p = string, Unix pathname.\n"); |
| printf("Returns:\n"); |
| printf(" The argument converted to a DOS pathname.\n"); |
| break; |
| |
| #ifdef FN_ERRMSG |
| case FN_ERRMSG: |
| printf("\\ferrstring(n)\n\ |
| n = platform-dependent numeric error code.\n"); |
| printf("Returns:\n"); |
| printf(" The corresponding error string.\n"); |
| break; |
| #endif /* FN_ERRMSG */ |
| |
| case FN_KWVAL: |
| printf("\\fkeywordvalue(s1,c1)\n\ |
| s1 = string of the form \"name=value\"\n\ |
| c1 = separator character (default separator is \"=\")\n"); |
| printf(" Assigns the value, if any, to the named macro.\n"); |
| printf(" If s1 contains no separator, nothing happens.\n"); |
| printf( |
| " If s1 contains a separator but no value, the macro is undefined.\n"); |
| printf("Returns:\n"); |
| printf(" 0 on failure\n"); |
| printf(" 1 on success\n"); |
| break; |
| |
| #ifdef COMMENT |
| case FN_SLEEP: |
| printf("\\fsleep(n)\n\ |
| n = number of seconds\n"); |
| printf(" Pauses for the given number of seconds.\n"); |
| printf("Returns: the empty string.\n"); |
| break; |
| |
| case FN_MSLEEP: |
| printf("\\fmsleep(n)\n\ |
| n = number of milliseconds\n"); |
| printf(" Pauses for the given number of milliseconds.\n"); |
| printf("Returns: the empty string.\n"); |
| break; |
| #endif /* COMMENT */ |
| |
| #ifdef NT |
| case FN_SNAME: |
| printf("\\fshortpathname(s)\n\ |
| s = file or directory name string\n"); |
| printf(" Returns the short path form of the given input.\n"); |
| break; |
| |
| case FN_LNAME: |
| printf("\\flongpathname(s)\n\ |
| s = file or directory name string\n"); |
| printf(" Returns the long path form of the given input.\n"); |
| break; |
| #else |
| case FN_SNAME: |
| printf("\\fshortpathname(s)\n\ |
| Synonym for \fpathname()\n"); |
| break; |
| |
| case FN_LNAME: |
| printf("\\flongpathname(s)\n\ |
| Synonym for \fpathname()\n"); |
| break; |
| #endif /* NT */ |
| |
| default: |
| printf("Sorry, help not available for \"%s\"\n",cmdbuf); |
| } |
| printf("\n"); |
| return(0); |
| } |
| #endif /* NOSPL */ |
| |
| #ifdef OS2 |
| #ifndef NOKVERBS |
| |
| /* D O H K V E R B -- Give help for a Kverb */ |
| |
| int |
| dohkverb(xx) int xx; { |
| int x,i,found,button,event; |
| |
| if (xx == -3) { |
| printf("\n Type SHOW KVERBS to see a list of available Kverbs.\n" |
| ); |
| printf( |
| " Type HELP KVERB <name> to see the current definition of a given Kverb.\n\n" |
| ); |
| return(-9); |
| } |
| if (xx < 0) return(xx); |
| if ((x = cmcfm()) < 0) return(x); |
| switch ( xx ) { |
| /* DEC VT keyboard key definitions */ |
| |
| case K_COMPOSE : /* Compose key */ |
| printf("\\Kcompose Compose an accented character\n"); |
| break; |
| case K_C_UNI16 : /* UCS2 key */ |
| printf("\\Kucs2 Enter a Unicode character\n"); |
| break; |
| |
| /* DEC arrow keys */ |
| |
| case K_UPARR : /* DEC Up Arrow key */ |
| printf("\\Kuparr Transmit Terminal Up Arrow sequence\n"); |
| break; |
| case K_DNARR : /* DEC Down Arrow key */ |
| printf("\\Kdnarr Transmit Terminal Down Arrow sequence\n"); |
| break; |
| case K_RTARR : /* DEC Right Arrow key */ |
| printf("\\Krtarr Transmit Terminal Right Arrow sequence\n"); |
| break; |
| case K_LFARR : /* DEC Left Arrow key */ |
| printf("\\Klfarr Transmit Terminal Left Arrow sequence\n"); |
| break; |
| |
| case K_PF1 : /* DEC PF1 key */ |
| printf("\\Kpf1,\\Kgold Transmit DEC PF1 sequence\n"); |
| break; |
| case K_PF2 : /* DEC PF2 key */ |
| printf("\\Kpf2 Transmit DEC PF2 sequence\n"); |
| break; |
| case K_PF3 : /* DEC PF3 key */ |
| printf("\\Kpf3 Transmit DEC PF3 sequence\n"); |
| break; |
| case K_PF4 : /* DEC PF4 key */ |
| printf("\\Kpf4 Transmit DEC PF4 sequence\n"); |
| break; |
| |
| case K_KP0 : /* DEC Keypad 0 */ |
| printf("\\Kkp0 Transmit DEC Keypad-0 sequence\n"); |
| break; |
| case K_KP1 : /* DEC Keypad 1 */ |
| printf("\\Kkp1 Transmit DEC Keypad-1 sequence\n"); |
| break; |
| case K_KP2 : /* etc ... through 9 */ |
| printf("\\Kkp2 Transmit DEC Keypad-2 sequence\n"); |
| break; |
| case K_KP3 : |
| printf("\\Kkp3 Transmit DEC Keypad-3 sequence\n"); |
| break; |
| case K_KP4 : |
| printf("\\Kkp4 Transmit DEC Keypad-4 sequence\n"); |
| break; |
| case K_KP5 : |
| printf("\\Kkp5 Transmit DEC Keypad-5 sequence\n"); |
| break; |
| case K_KP6 : |
| printf("\\Kkp6 Transmit DEC Keypad-6 sequence\n"); |
| break; |
| case K_KP7 : |
| printf("\\Kkp7 Transmit DEC Keypad-7 sequence\n"); |
| break; |
| case K_KP8 : |
| printf("\\Kkp8 Transmit DEC Keypad-8 sequence\n"); |
| break; |
| case K_KP9 : |
| printf("\\Kkp9 Transmit DEC Keypad-9 sequence\n"); |
| break; |
| case K_KPCOMA : /* DEC keypad comma */ |
| printf("\\Kkpcoma Transmit DEC Keypad-Comma sequence\n"); |
| break; |
| case K_KPMINUS : /* DEC keypad minus */ |
| printf("\\Kkpminus Transmit DEC Keypad-Minus sequence\n"); |
| break; |
| case K_KPDOT : /* DEC keypad period */ |
| printf("\\Kkpdot Transmit DEC Keypad-Period sequence\n"); |
| break; |
| case K_KPENTER : /* DEC keypad enter */ |
| printf("\\Kkpenter Transmit DEC Keypad-Enter sequence\n"); |
| break; |
| |
| /* DEC Top-Rank F keys */ |
| |
| case K_DECF1 : /* DEC F1 key */ |
| printf("\\Kdecf1 Transmit DEC F1 sequence for PC keyboard\n"); |
| break; |
| case K_DECF2 : /* DEC F2 key */ |
| printf("\\Kdecf2 Transmit DEC F2 sequence for PC keyboard\n"); |
| break; |
| case K_DECF3 : /* DEC F3 key */ |
| printf("\\Kdecf3 Transmit DEC F3 sequence for PC keyboard\n"); |
| break; |
| case K_DECF4 : /* DEC F4 key */ |
| printf("\\Kdecf4 Transmit DEC F4 sequence for PC keyboard\n"); |
| break; |
| case K_DECF5 : /* DEC F5 key */ |
| printf("\\Kdecf5 Transmit DEC F5 sequence for PC keyboard\n"); |
| break; |
| case K_DECHOME: /* DEC HOME key */ |
| printf("\\Kdechome Transmit DEC HOME sequence for PC keyboard\n"); |
| break; |
| |
| case K_DECF6 : /* DEC F6 key */ |
| printf("\\Kdecf6 Transmit DEC F6 sequence\n"); |
| break; |
| case K_DECF7 : /* etc, through F20 */ |
| printf("\\Kdecf7 Transmit DEC F7 sequence\n"); |
| break; |
| case K_DECF8 : |
| printf("\\Kdecf8 Transmit DEC F8 sequence\n"); |
| break; |
| case K_DECF9 : |
| printf("\\Kdecf9 Transmit DEC F9 sequence\n"); |
| break; |
| case K_DECF10 : |
| printf("\\Kdecf10 Transmit DEC F10 sequence\n"); |
| break; |
| case K_DECF11 : |
| printf("\\Kdecf11 Transmit DEC F11 sequence\n"); |
| break; |
| case K_DECF12 : |
| printf("\\Kdecf12 Transmit DEC F12 sequence\n"); |
| break; |
| case K_DECF13 : |
| printf("\\Kdecf13 Transmit DEC F13 sequence\n"); |
| break; |
| case K_DECF14 : |
| printf("\\Kdecf14 Transmit DEC F14 sequence\n"); |
| break; |
| case K_DECHELP : /* DEC Help key */ |
| printf("\\Kdecf15,\\Kdechelp Transmit DEC HELP sequence\n"); |
| break; |
| case K_DECDO : /* DEC Do key */ |
| printf("\\Kdecf16,\\Kdecdo Transmit DEC DO sequence\n"); |
| break; |
| case K_DECF17 : |
| printf("\\Kdecf17 Transmit DEC F17 sequence\n"); |
| break; |
| case K_DECF18 : |
| printf("\\Kdecf18 Transmit DEC F18 sequence\n"); |
| break; |
| case K_DECF19 : |
| printf("\\Kdecf19 Transmit DEC F19 sequence\n"); |
| break; |
| case K_DECF20 : |
| printf("\\Kdecf20 Transmit DEC F20 sequence\n"); |
| break; |
| |
| /* DEC editing keys */ |
| |
| case K_DECFIND : /* DEC Find key */ |
| printf("\\Kdecfind Transmit DEC FIND sequence\n"); |
| break; |
| case K_DECINSERT : /* DEC Insert key */ |
| printf("\\Kdecinsert Transmit DEC INSERT HERE sequence\n"); |
| break; |
| case K_DECREMOVE : /* DEC Remove key */ |
| printf("\\Kdecremove Transmit DEC REMOVE sequence\n"); |
| break; |
| case K_DECSELECT : /* DEC Select key */ |
| printf("\\Kdecfselect Transmit DEC SELECT sequence\n"); |
| break; |
| case K_DECPREV : /* DEC Previous Screen key */ |
| printf("\\Kdecprev Transmit DEC PREV SCREEN sequence\n"); |
| break; |
| case K_DECNEXT : /* DEC Next Screen key */ |
| printf("\\Kdecnext Transmit DEC NEXT SCREEN sequence\n"); |
| break; |
| |
| /* DEC User-Defined Keys */ |
| |
| case K_UDKF1 : /* F1 - F5 are XTERM extensions */ |
| printf("\\Kudkf1 Transmit XTERM F1 User Defined Key sequence\n"); |
| break; |
| case K_UDKF2 : |
| printf("\\Kudkf2 Transmit XTERM F2 User Defined Key sequence\n"); |
| break; |
| case K_UDKF3 : |
| printf("\\Kudkf3 Transmit XTERM F3 User Defined Key sequence\n"); |
| break; |
| case K_UDKF4 : |
| printf("\\Kudkf4 Transmit XTERM F4 User Defined Key sequence\n"); |
| break; |
| case K_UDKF5 : |
| printf("\\Kudkf5 Transmit XTERM F5 User Defined Key sequence\n"); |
| break; |
| case K_UDKF6 : /* DEC User Defined Key F6 */ |
| printf("\\Kudkf6 Transmit DEC F6 User Defined Key sequence\n"); |
| break; |
| case K_UDKF7 : /* DEC User Defined Key F7 */ |
| printf("\\Kudkf7 Transmit DEC F7 User Defined Key sequence\n"); |
| break; |
| case K_UDKF8 : /* etc ... through F20 */ |
| printf("\\Kudkf8 Transmit DEC F8 User Defined Key sequence\n"); |
| break; |
| case K_UDKF9 : |
| printf("\\Kudkf9 Transmit DEC F9 User Defined Key sequence\n"); |
| break; |
| case K_UDKF10 : |
| printf("\\Kudkf10 Transmit DEC F10 User Defined Key sequence\n"); |
| break; |
| case K_UDKF11 : |
| printf("\\Kudkf11 Transmit DEC F11 User Defined Key sequence\n"); |
| break; |
| case K_UDKF12 : |
| printf("\\Kudkf12 Transmit DEC F12 User Defined Key sequence\n"); |
| break; |
| case K_UDKF13 : |
| printf("\\Kudkf13 Transmit DEC F13 User Defined Key sequence\n"); |
| break; |
| case K_UDKF14 : |
| printf("\\Kudkf14 Transmit DEC F14 User Defined Key sequence\n"); |
| break; |
| case K_UDKHELP : |
| printf( |
| "\\Kudkhelp,\\Kudkf15 Transmit DEC HELP User Defined Key sequence\n"); |
| break; |
| case K_UDKDO : |
| printf( |
| "\\Kudkdo,\\Kudkf16 Transmit DEC DO User Defined Key sequence\n"); |
| break; |
| case K_UDKF17 : |
| printf("\\Kudkf17 Transmit DEC F17 User Defined Key sequence\n"); |
| break; |
| case K_UDKF18 : |
| printf("\\Kudkf18 Transmit DEC F18 User Defined Key sequence\n"); |
| break; |
| case K_UDKF19 : |
| printf("\\Kudkf19 Transmit DEC F19 User Defined Key sequence\n"); |
| break; |
| case K_UDKF20 : |
| printf("\\Kudkf20 Transmit DEC F20 User Defined Key sequence\n"); |
| break; |
| |
| /* Emacs Keys */ |
| case K_EMACS_OVER: |
| printf( |
| "\\Kemacs_overwrite Transmit EMACS Overwrite toggle command sequence\n"); |
| break; |
| |
| /* Kermit screen-scrolling keys */ |
| |
| case K_DNONE : /* Screen rollback: down one line */ |
| printf("\\Kdnone Screen rollback: down one line\n"); |
| break; |
| case K_DNSCN : /* Screen rollback: down one screen */ |
| printf("\\Kdnscn Screen rollback: down one screen\n"); |
| break; |
| case K_UPONE : /* Screen rollback: Up one line */ |
| printf("\\Kupone Screen rollback: up one line\n"); |
| break; |
| case K_UPSCN : /* Screen rollback: Up one screen */ |
| printf("\\Kupscn Screen rollback: up one screen\n"); |
| break; |
| case K_ENDSCN : /* Screen rollback: latest screen */ |
| printf("\\Kendscn Screen rollback: latest screen\n"); |
| break; |
| case K_HOMSCN : /* Screen rollback: oldest screen */ |
| printf("\\Khomscn Screen rollback: oldest screen\n"); |
| break; |
| case K_GO_BOOK : /* Scroll to bookmark */ |
| printf("\\Kgobook Screen rollback: go to bookmark\n"); |
| break; |
| case K_GOTO : /* Scroll to line number */ |
| printf("\\Kgoto Screen rollback: go to line number\n"); |
| break; |
| |
| case K_LFONE : /* Horizontal Scroll: Left one cell */ |
| printf("\\Klfone Horizontal Scroll: Left one column\n"); |
| break; |
| case K_LFPAGE : /* Horizontal Scroll: Left one page */ |
| printf("\\Klfpage Horizontal Scroll: Left eight columns\n"); |
| break; |
| case K_LFALL : |
| printf("\\Klfall Horizontal Scroll: Left to margin\n"); |
| break; |
| case K_RTONE : /* Horizontal Scroll: Right one cell */ |
| printf("\\Krtone Horizontal Scroll: Right one column\n"); |
| break; |
| case K_RTPAGE : /* Horizontal Scroll: Right one page */ |
| printf("\\Krtpage Horizontal Scroll: Right eight columns\n"); |
| break; |
| case K_RTALL : |
| printf("\\Krtall Horizontal Scroll: Right to margin\n"); |
| break; |
| |
| /* Keyboard language switching verbs */ |
| |
| case K_KB_ENG : /* English keyboard mode */ |
| printf("\\Kkbenglish Switch to Normal (English) keyboard mode\n"); |
| break; |
| case K_KB_HEB : /* Hebrew keyboard mode */ |
| printf("\\Kkbhebrew Switch to Hebrew keyboard mode\n"); |
| break; |
| case K_KB_RUS : /* Russian keyboard mode */ |
| printf("\\Kkbrussian Switch to Russian keyboard mode\n"); |
| break; |
| case K_KB_EMA : /* Emacs keyboard mode */ |
| printf("\\Kkbemacs Switch to EMACS keyboard mode\n"); |
| break; |
| case K_KB_WP : /* Word Perfect 5.1 mode */ |
| printf("\\Kkbwp Switch to Word Perfect 5.1 keyboard mode\n"); |
| break; |
| |
| /* Mark Mode actions */ |
| |
| case K_MARK_START : /* Enter Mark Mode/Start marking */ |
| printf("\\Kmarkstart Mark Mode: Enter mode or Start marking\n"); |
| break; |
| case K_MARK_CANCEL : /* Exit Mark Mode - Do Nothing */ |
| printf("\\Kmarkcancel Mark Mode: Cancel mode\n"); |
| break; |
| case K_MARK_COPYCLIP: /* Exit Mark Mode - Copy data to clipboard */ |
| printf("\\Kmarkcopyclip Mark Mode: Copy marked text to clipboard\n"); |
| break; |
| case K_MARK_COPYHOST: /* Exit Mark Mode - Copy data to host */ |
| printf("\\Kmarkcopyhost Mark Mode: Copy marked text to host\n"); |
| break; |
| case K_MARK_SELECT : /* Exit Mark Mode - Select */ |
| printf( |
| "\\Kmarkselect Mark Mode: Place marked text into \\v(select)\n"); |
| break; |
| case K_BACKSRCH : /* Search Backwards for text */ |
| printf("\\Kbacksearch Search: Begin backward search for text\n"); |
| break; |
| case K_FWDSRCH : /* Search Forwards for text */ |
| printf("\\Kfwdsearch Search: Begin forward search for text\n"); |
| break; |
| case K_BACKNEXT : /* Search Backwards for next instance of text */ |
| printf( |
| "\\Kbacknext Search: Find next instance of text backwards\n"); |
| break; |
| case K_FWDNEXT : /* Search Forwards for next instance of text */ |
| printf("\\Kfwdnext Search: Find next instance of text forwards\n"); |
| break; |
| |
| /* Miscellaneous Kermit actions */ |
| |
| case K_EXIT : /* Return to command parser */ |
| printf("\\Kexit Toggle between COMMAND and CONNECT modes\n"); |
| break; |
| case K_BREAK : /* Send a BREAK */ |
| printf("\\Kbreak Transmit BREAK signal to host\n"); |
| break; |
| case K_RESET : /* Reset emulator */ |
| printf("\\Kreset Reset Terminal Emulator to user defaults\n"); |
| break; |
| case K_DOS : /* Push to DOS (i.e. OS/2) */ |
| printf("\\Kdos,\\Kos2 Push to Command Shell\n"); |
| break; |
| case K_HANGUP : /* Hang up the connection */ |
| printf("\\Khangup Hangup the active connection\n"); |
| break; |
| case K_DUMP : /* Dump/Print current screen */ |
| printf( |
| "\\Kdump Dump/copy current screen to SET PRINTER device/file\n"); |
| break; |
| case K_LBREAK : /* Send a Long BREAK */ |
| printf("\\Klbreak Transmit LONG BREAK signal to host\n"); |
| break; |
| case K_NULL : /* Send a NUL */ |
| printf("\\Knull Transmit NULL ('\0') character to host\n"); |
| break; |
| case K_HELP : /* Pop-up help */ |
| printf("\\Khelp Raise Pop-Up help display\n"); |
| break; |
| case K_HOLDSCRN : /* Hold screen */ |
| printf("\\Kholdscrn Pause data input during CONNECT mode\n"); |
| break; |
| case K_IGNORE : /* Ignore this key, don't even beep */ |
| printf("\\Kignore Ignore key\n"); |
| break; |
| |
| case K_LOGOFF : /* Turn off session logging */ |
| printf("\\Klogoff Turn off session logging (see \\Ksession)\n"); |
| break; |
| case K_LOGON : /* Turn on session logging */ |
| printf("\\Klogon Turn on session logging (see \\Ksession)\n"); |
| break; |
| case K_SESSION: |
| printf( |
| "\\Ksession Toggle on/off session logging to 'session.log'\n"); |
| break; |
| case K_AUTODOWN: |
| printf("\\Kautodown Toggle on/off terminal autodownload.\n"); |
| break; |
| case K_BYTESIZE: |
| printf( |
| "\\Kbytesize Toggle terminal bytesize between 7 and 8 bits.\n"); |
| break; |
| |
| #ifdef COMMENT |
| case MODELINE: |
| case K_NETHOLD : /* Put network connection on hold */ |
| case K_NEXTSESS : /* Toggle to next network session */ |
| #endif /* COMMENT */ |
| |
| case K_CURSOR_URL: |
| printf( |
| "\\Kurl Treat text under cursor position as a URL\n"); |
| break; |
| case K_STATUS : /* Show status */ |
| printf( |
| "\\Kstatus Toggle statusline (None, Indicator, Host Writeable)\n"); |
| break; |
| case K_TERMTYPE : /* Toggle term type: text/graphics */ |
| printf("\\Ktermtype Toggle Terminal Type\n"); |
| break; |
| case K_PRTCTRL : /* Print Controller mode */ |
| printf("\\Kprtctrl Toggle Ctrl-Print (transparent) mode\n"); |
| break; |
| case K_PRINTFF : /* Print formfeed */ |
| printf("\\Kprintff Output Form Feed to SET PRINTER device\n"); |
| break; |
| case K_FLIPSCN : /* Flip screen */ |
| printf("\\Kflipscn Reverse foreground and background colors\n"); |
| break; |
| case K_DEBUG : /* Toggle debugging */ |
| printf("\\Kdebug Toggle Terminal Debug mode\n"); |
| break; |
| case K_TN_SAK : /* TELNET Secure Access Key */ |
| printf("\\Ktn_sak TELNET: IBM Secure Access Key\n"); |
| printf(" Used to request a Trusted Shell with AIX\n"); |
| break; |
| case K_TN_AO : /* TELNET Cancel Output */ |
| printf("\\Ktn_ao TELNET: Transmit Cancel-Output request\n"); |
| break; |
| case K_TN_AYT : /* TELNET Are You There */ |
| printf("\\Ktnayt TELNET: Transmit Are You There? request\n"); |
| break; |
| case K_TN_EC : /* TELNET Erase Character */ |
| printf("\\Ktn_ec TELNET: Transmit Erase Character request\n"); |
| break; |
| case K_TN_EL : /* TELNET Erase Line */ |
| printf("\\Ktn_el TELNET: Transmit Erase Line request\n"); |
| break; |
| case K_TN_GA : /* TELNET Go Ahead */ |
| printf("\\Ktn_ga TELNET: Transmit Go Ahead request\n"); |
| break; |
| case K_TN_IP : /* TELNET Interrupt Process */ |
| printf("\\Ktn_ip TELNET: Transmit Interrupt Process request\n"); |
| break; |
| case K_TN_LOGOUT : /* TELNET Logout */ |
| printf("\\Ktn_logout TELNET: Transmit Do Logout Option\n"); |
| break; |
| case K_TN_NAWS : /* TELNET NAWS */ |
| printf( |
| "\\Ktn_naws TELNET: Transmit Window Size if NAWS is active\n"); |
| break; |
| case K_PASTE : /* Paste data from clipboard */ |
| printf("\\Kpaste Paste data from clipboard to host\n"); |
| break; |
| case K_CLRSCRN : /* Clear Terminal Screen */ |
| printf("\\Kclearscreen Clear the Terminal screen\n"); |
| break; |
| case K_PRTAUTO : /* Print Auto mode */ |
| printf("\\Kprtauto Toggle Auto-Print mode\n"); |
| break; |
| case K_PRTCOPY : /* Print Copy mode */ |
| printf("\\Kprtcopy Toggle Copy-Print mode\n"); |
| break; |
| case K_ANSWERBACK : /* Transmit Answerback String */ |
| printf("\\Kanswerback Transmit answerback string to host\n"); |
| break; |
| case K_SET_BOOK : /* Set Bookmark */ |
| printf("\\Ksetbook Set bookmark\n"); |
| break; |
| case K_QUIT : /* Quit Kermit */ |
| printf("\\Kquit Hangup connection and quit kermit\n"); |
| break; |
| case K_KEYCLICK : /* Toggle Keyclick */ |
| printf("\\Kkeyclick Toggle Keyclick mode\n"); |
| break; |
| case K_LOGDEBUG : /* Toggle Debug Log File */ |
| printf("\\Klogdebug Toggle Debug Logging to File\n"); |
| break; |
| case K_FNKEYS : /* Show Function Key Labels */ |
| printf("\\Kfnkeys Display Function Key Labels\n"); |
| break; |
| |
| #ifdef OS2MOUSE |
| /* Mouse only Kverbs */ |
| |
| case K_MOUSE_CURPOS : |
| printf("\\Kmousecurpos Mouse: Move host cursor to position\n"); |
| break; |
| case K_MOUSE_MARK : |
| printf( |
| "\\Kmousemark Mouse: Mark text for selection (drag event only)\n"); |
| break; |
| case K_MOUSE_URL : |
| printf("\\Kmouseurl Mouse: Start browser with selected URL\n"); |
| break; |
| #endif /* OS2MOUSE */ |
| |
| /* ANSI Function Key definitions */ |
| case K_ANSIF01 : |
| printf("\\Kansif01 Transmit SCOANSI/AT386: F1 \n"); |
| break; |
| case K_ANSIF02 : |
| printf("\\Kansif02 Transmit SCOANSI/AT386: F2 \n"); |
| break; |
| case K_ANSIF03 : |
| printf("\\Kansif03 Transmit SCOANSI/AT386: F3 \n"); |
| break; |
| case K_ANSIF04 : |
| printf("\\Kansif04 Transmit SCOANSI/AT386: F4 \n"); |
| break; |
| case K_ANSIF05 : |
| printf("\\Kansif05 Transmit SCOANSI/AT386: F5 \n"); |
| break; |
| case K_ANSIF06 : |
| printf("\\Kansif06 Transmit SCOANSI/AT386: F6 \n"); |
| break; |
| case K_ANSIF07 : |
| printf("\\Kansif07 Transmit SCOANSI/AT386: F7 \n"); |
| break; |
| case K_ANSIF08 : |
| printf("\\Kansif08 Transmit SCOANSI/AT386: F8 \n"); |
| break; |
| case K_ANSIF09 : |
| printf("\\Kansif09 Transmit SCOANSI/AT386: F9 \n"); |
| break; |
| case K_ANSIF10 : |
| printf("\\Kansif10 Transmit SCOANSI/AT386: F10\n"); |
| break; |
| case K_ANSIF11 : |
| printf("\\Kansif11 Transmit SCOANSI/AT386: F11\n"); |
| break; |
| case K_ANSIF12 : |
| printf("\\Kansif12 Transmit SCOANSI/AT386: F12\n"); |
| break; |
| case K_ANSIF13 : |
| printf("\\Kansif13 Transmit SCOANSI/AT386: Shift-F1 \n"); |
| break; |
| case K_ANSIF14 : |
| printf("\\Kansif14 Transmit SCOANSI/AT386: Shift-F2 \n"); |
| break; |
| case K_ANSIF15 : |
| printf("\\Kansif15 Transmit SCOANSI/AT386: Shift-F3 \n"); |
| break; |
| case K_ANSIF16 : |
| printf("\\Kansif16 Transmit SCOANSI/AT386: Shift-F4 \n"); |
| break; |
| case K_ANSIF17 : |
| printf("\\Kansif17 Transmit SCOANSI/AT386: Shift-F5 \n"); |
| break; |
| case K_ANSIF18 : |
| printf("\\Kansif18 Transmit SCOANSI/AT386: Shift-F6 \n"); |
| break; |
| case K_ANSIF19 : |
| printf("\\Kansif19 Transmit SCOANSI/AT386: Shift-F7 \n"); |
| break; |
| case K_ANSIF20 : |
| printf("\\Kansif20 Transmit SCOANSI/AT386: Shift-F8 \n"); |
| break; |
| case K_ANSIF21 : |
| printf("\\Kansif21 Transmit SCOANSI/AT386: Shift-F9 \n"); |
| break; |
| case K_ANSIF22 : |
| printf("\\Kansif22 Transmit SCOANSI/AT386: Shift-F10\n"); |
| break; |
| case K_ANSIF23 : |
| printf("\\Kansif23 Transmit SCOANSI/AT386: Shift-F11\n"); |
| break; |
| case K_ANSIF24 : |
| printf("\\Kansif24 Transmit SCOANSI/AT386: Shift-F12\n"); |
| break; |
| case K_ANSIF25 : |
| printf("\\Kansif25 Transmit SCOANSI/AT386: Ctrl-F1 \n"); |
| break; |
| case K_ANSIF26 : |
| printf("\\Kansif26 Transmit SCOANSI/AT386: Ctrl-F2 \n"); |
| break; |
| case K_ANSIF27 : |
| printf("\\Kansif27 Transmit SCOANSI/AT386: Ctrl-F3 \n"); |
| break; |
| case K_ANSIF28 : |
| printf("\\Kansif28 Transmit SCOANSI/AT386: Ctrl-F4 \n"); |
| break; |
| case K_ANSIF29 : |
| printf("\\Kansif29 Transmit SCOANSI/AT386: Ctrl-F5 \n"); |
| break; |
| case K_ANSIF30 : |
| printf("\\Kansif30 Transmit SCOANSI/AT386: Ctrl-F6 \n"); |
| break; |
| case K_ANSIF31 : |
| printf("\\Kansif31 Transmit SCOANSI/AT386: Ctrl-F7 \n"); |
| break; |
| case K_ANSIF32 : |
| printf("\\Kansif32 Transmit SCOANSI/AT386: Ctrl-F8 \n"); |
| break; |
| case K_ANSIF33 : |
| printf("\\Kansif33 Transmit SCOANSI/AT386: Ctrl-F9 \n"); |
| break; |
| case K_ANSIF34 : |
| printf("\\Kansif34 Transmit SCOANSI/AT386: Ctrl-F10\n"); |
| break; |
| case K_ANSIF35 : |
| printf("\\Kansif35 Transmit SCOANSI/AT386: Ctrl-F11\n"); |
| break; |
| case K_ANSIF36 : |
| printf("\\Kansif36 Transmit SCOANSI/AT386: Ctrl-F12\n"); |
| break; |
| case K_ANSIF37 : |
| printf("\\Kansif37 Transmit SCOANSI/AT386: Ctrl-Shift-F1 \n"); |
| break; |
| case K_ANSIF38 : |
| printf("\\Kansif38 Transmit SCOANSI/AT386: Ctrl-Shift-F2 \n"); |
| break; |
| case K_ANSIF39 : |
| printf("\\Kansif39 Transmit SCOANSI/AT386: Ctrl-Shift-F3 \n"); |
| break; |
| case K_ANSIF40 : |
| printf("\\Kansif40 Transmit SCOANSI/AT386: Ctrl-Shift-F4 \n"); |
| break; |
| case K_ANSIF41 : |
| printf("\\Kansif41 Transmit SCOANSI/AT386: Ctrl-Shift-F5 \n"); |
| break; |
| case K_ANSIF42 : |
| printf("\\Kansif42 Transmit SCOANSI/AT386: Ctrl-Shift-F6 \n"); |
| break; |
| case K_ANSIF43 : |
| printf("\\Kansif43 Transmit SCOANSI/AT386: Ctrl-Shift-F7 \n"); |
| break; |
| case K_ANSIF44 : |
| printf("\\Kansif44 Transmit SCOANSI/AT386: Ctrl-Shift-F8 \n"); |
| break; |
| case K_ANSIF45 : |
| printf("\\Kansif45 Transmit SCOANSI/AT386: Ctrl-Shift-F9 \n"); |
| break; |
| case K_ANSIF46 : |
| printf("\\Kansif46 Transmit SCOANSI/AT386: Ctrl-Shift-F10\n"); |
| break; |
| case K_ANSIF47 : |
| printf("\\Kansif47 Transmit SCOANSI/AT386: Ctrl-Shift-F11\n"); |
| break; |
| case K_ANSIF48 : |
| printf("\\Kansif48 Transmit SCOANSI/AT386: Ctrl-Shift-F12\n"); |
| break; |
| case K_ANSIF49 : |
| printf("\\Kansif49 Transmit SCOANSI/AT386: Home\n"); |
| break; |
| case K_ANSIF50 : |
| printf("\\Kansif50 Transmit SCOANSI/AT386: Up Arrow\n"); |
| break; |
| case K_ANSIF51 : |
| printf("\\Kansif51 Transmit SCOANSI/AT386: PgUp\n"); |
| break; |
| case K_ANSIF52 : |
| printf("\\Kansif52 Transmit SCOANSI/AT386: Ctrl-Shift-Subtract\n"); |
| break; |
| case K_ANSIF53 : |
| printf("\\Kansif53 Transmit SCOANSI/AT386: Left Arrow\n"); |
| break; |
| case K_ANSIF54 : |
| printf("\\Kansif54 Transmit SCOANSI/AT386: Clear\n"); |
| break; |
| case K_ANSIF55 : |
| printf("\\Kansif55 Transmit SCOANSI/AT386: Right Arrow\n"); |
| break; |
| case K_ANSIF56 : |
| printf("\\Kansif56 Transmit SCOANSI/AT386: Shift-Add\n"); |
| break; |
| case K_ANSIF57 : |
| printf("\\Kansif57 Transmit SCOANSI/AT386: End\n"); |
| break; |
| case K_ANSIF58 : |
| printf("\\Kansif58 Transmit SCOANSI/AT386: Down Arrow\n"); |
| break; |
| case K_ANSIF59 : |
| printf("\\Kansif59 Transmit SCOANSI/AT386: PgDn\n"); |
| break; |
| case K_ANSIF60 : |
| printf("\\Kansif60 Transmit SCOANSI/AT386: Insert\n"); |
| break; |
| case K_ANSIF61 : |
| printf("\\Kansif61 Transmit SCOANSI/AT386: (not named)\n"); |
| break; |
| |
| /* WYSE Function Keys (unshifted) */ |
| case K_WYF01 : |
| printf("\\Kwyf01 Transmit WYSE 30/50/60/160: F1\n"); |
| break; |
| case K_WYF02 : |
| printf("\\Kwyf02 Transmit WYSE 30/50/60/160: F2\n"); |
| break; |
| case K_WYF03 : |
| printf("\\Kwyf03 Transmit WYSE 30/50/60/160: F3\n"); |
| break; |
| case K_WYF04 : |
| printf("\\Kwyf04 Transmit WYSE 30/50/60/160: F4\n"); |
| break; |
| case K_WYF05 : |
| printf("\\Kwyf05 Transmit WYSE 30/50/60/160: F5\n"); |
| break; |
| case K_WYF06 : |
| printf("\\Kwyf06 Transmit WYSE 30/50/60/160: F6\n"); |
| break; |
| case K_WYF07 : |
| printf("\\Kwyf07 Transmit WYSE 30/50/60/160: F7\n"); |
| break; |
| case K_WYF08 : |
| printf("\\Kwyf08 Transmit WYSE 30/50/60/160: F8\n"); |
| break; |
| case K_WYF09 : |
| printf("\\Kwyf09 Transmit WYSE 30/50/60/160: F9\n"); |
| break; |
| case K_WYF10 : |
| printf("\\Kwyf10 Transmit WYSE 30/50/60/160: F10\n"); |
| break; |
| case K_WYF11 : |
| printf("\\Kwyf11 Transmit WYSE 30/50/60/160: F11\n"); |
| break; |
| case K_WYF12 : |
| printf("\\Kwyf12 Transmit WYSE 30/50/60/160: F12\n"); |
| break; |
| case K_WYF13 : |
| printf("\\Kwyf13 Transmit WYSE 30/50/60/160: F13\n"); |
| break; |
| case K_WYF14 : |
| printf("\\Kwyf14 Transmit WYSE 30/50/60/160: F14\n"); |
| break; |
| case K_WYF15 : |
| printf("\\Kwyf15 Transmit WYSE 30/50/60/160: F15\n"); |
| break; |
| case K_WYF16 : |
| printf("\\Kwyf16 Transmit WYSE 30/50/60/160: F16\n"); |
| break; |
| case K_WYF17 : |
| printf("\\Kwyf17 Transmit WYSE 30/50/60/160: F17\n"); |
| break; |
| case K_WYF18 : |
| printf("\\Kwyf18 Transmit WYSE 30/50/60/160: F18\n"); |
| break; |
| case K_WYF19 : |
| printf("\\Kwyf19 Transmit WYSE 30/50/60/160: F19\n"); |
| break; |
| case K_WYF20 : |
| printf("\\Kwyf20 Transmit WYSE 30/50/60/160: F20\n"); |
| break; |
| |
| /* WYSE Function Keys (shifted) */ |
| case K_WYSF01 : |
| printf("\\Kwysf01 Transmit WYSE 30/50/60/160: Shift-F1\n"); |
| break; |
| case K_WYSF02 : |
| printf("\\Kwysf02 Transmit WYSE 30/50/60/160: Shift-F2\n"); |
| break; |
| case K_WYSF03 : |
| printf("\\Kwysf03 Transmit WYSE 30/50/60/160: Shift-F3\n"); |
| break; |
| case K_WYSF04 : |
| printf("\\Kwysf04 Transmit WYSE 30/50/60/160: Shift-F4\n"); |
| break; |
| case K_WYSF05 : |
| printf("\\Kwysf05 Transmit WYSE 30/50/60/160: Shift-F5\n"); |
| break; |
| case K_WYSF06 : |
| printf("\\Kwysf06 Transmit WYSE 30/50/60/160: Shift-F6\n"); |
| break; |
| case K_WYSF07 : |
| printf("\\Kwysf07 Transmit WYSE 30/50/60/160: Shift-F7\n"); |
| break; |
| case K_WYSF08 : |
| printf("\\Kwysf08 Transmit WYSE 30/50/60/160: Shift-F8\n"); |
| break; |
| case K_WYSF09 : |
| printf("\\Kwysf09 Transmit WYSE 30/50/60/160: Shift-F9\n"); |
| break; |
| case K_WYSF10 : |
| printf("\\Kwysf10 Transmit WYSE 30/50/60/160: Shift-F10\n"); |
| break; |
| case K_WYSF11 : |
| printf("\\Kwysf11 Transmit WYSE 30/50/60/160: Shift-F11\n"); |
| break; |
| case K_WYSF12 : |
| printf("\\Kwysf12 Transmit WYSE 30/50/60/160: Shift-F12\n"); |
| break; |
| case K_WYSF13 : |
| printf("\\Kwysf13 Transmit WYSE 30/50/60/160: Shift-F13\n"); |
| break; |
| case K_WYSF14 : |
| printf("\\Kwysf14 Transmit WYSE 30/50/60/160: Shift-F14\n"); |
| break; |
| case K_WYSF15 : |
| printf("\\Kwysf15 Transmit WYSE 30/50/60/160: Shift-F15\n"); |
| break; |
| case K_WYSF16 : |
| printf("\\Kwysf16 Transmit WYSE 30/50/60/160: Shift-F16\n"); |
| break; |
| case K_WYSF17 : |
| printf("\\Kwysf17 Transmit WYSE 30/50/60/160: Shift-F17\n"); |
| break; |
| case K_WYSF18 : |
| printf("\\Kwysf18 Transmit WYSE 30/50/60/160: Shift-F18\n"); |
| break; |
| case K_WYSF19 : |
| printf("\\Kwysf19 Transmit WYSE 30/50/60/160: Shift-F19\n"); |
| break; |
| case K_WYSF20 : |
| printf("\\Kwysf20 Transmit WYSE 30/50/60/160: Shift-F20\n"); |
| break; |
| |
| /* WYSE Edit and Special Keys */ |
| case K_WYBS : |
| printf("\\Kwybs Transmit WYSE 30/50/60/160: Backspace\n"); |
| break; |
| case K_WYCLRLN : |
| printf("\\Kwyclrln Transmit WYSE 30/50/60/160: Clear Line\n"); |
| break; |
| case K_WYSCLRLN : |
| printf("\\Kwysclrln Transmit WYSE 30/50/60/160: Shift-Clear Line\n"); |
| break; |
| case K_WYCLRPG : |
| printf("\\Kwyclrpg Transmit WYSE 30/50/60/160: Clear Page\n"); |
| break; |
| case K_WYSCLRPG : |
| printf("\\Kwysclrpg Transmit WYSE 30/50/60/160: Shift-Clear Page\n"); |
| break; |
| case K_WYDELCHAR : |
| printf("\\Kwydelchar Transmit WYSE 30/50/60/160: Delete Char\n"); |
| break; |
| case K_WYDELLN : |
| printf("\\Kwydelln Transmit WYSE 30/50/60/160: Delete Line\n"); |
| break; |
| case K_WYENTER : |
| printf("\\Kwyenter Transmit WYSE 30/50/60/160: Enter\n"); |
| break; |
| case K_WYESC : |
| printf("\\Kwyesc Transmit WYSE 30/50/60/160: Esc\n"); |
| break; |
| case K_WYHOME : |
| printf("\\Kwyhome Transmit WYSE 30/50/60/160: Home\n"); |
| break; |
| case K_WYSHOME : |
| printf("\\Kwyshome Transmit WYSE 30/50/60/160: Shift-Home\n"); |
| break; |
| case K_WYINSERT : |
| printf("\\Kwyinsert Transmit WYSE 30/50/60/160: Insert\n"); |
| break; |
| case K_WYINSCHAR : |
| printf("\\Kwyinschar Transmit WYSE 30/50/60/160: Insert Char\n"); |
| break; |
| case K_WYINSLN : |
| printf("\\Kwyinsln Transmit WYSE 30/50/60/160: Insert Line\n"); |
| break; |
| case K_WYPGNEXT : |
| printf("\\Kwypgnext Transmit WYSE 30/50/60/160: Page Next\n"); |
| break; |
| case K_WYPGPREV : |
| printf("\\Kwypgprev Transmit WYSE 30/50/60/160: Page Previous\n"); |
| break; |
| case K_WYREPLACE : |
| printf("\\Kwyreplace Transmit WYSE 30/50/60/160: Replace \n"); |
| break; |
| case K_WYRETURN : |
| printf("\\Kwyreturn Transmit WYSE 30/50/60/160: Return \n"); |
| break; |
| case K_WYTAB : |
| printf("\\Kwytab Transmit WYSE 30/50/60/160: Tab \n"); |
| break; |
| case K_WYSTAB : |
| printf("\\Kwystab Transmit WYSE 30/50/60/160: Shift-Tab \n"); |
| break; |
| case K_WYPRTSCN : |
| printf("\\Kwyprtscn Transmit WYSE 30/50/60/160: Print Screen \n"); |
| break; |
| case K_WYSESC : |
| printf("\\Kwysesc Transmit WYSE 30/50/60/160: Shift-Esc \n"); |
| break; |
| case K_WYSBS : |
| printf("\\Kwysbs Transmit WYSE 30/50/60/160: Shift-Backspace\n"); |
| break; |
| case K_WYSENTER : |
| printf("\\Kwysenter Transmit WYSE 30/50/60/160: Shift-Enter\n"); |
| break; |
| case K_WYSRETURN : |
| printf("\\Kwysreturn Transmit WYSE 30/50/60/160: Shift-Return\n"); |
| break; |
| case K_WYUPARR : |
| printf("\\Kwyuparr Transmit WYSE 30/50/60/160: Up Arrow\n"); |
| break; |
| case K_WYDNARR : |
| printf("\\Kwydnarr Transmit WYSE 30/50/60/160: Down Arrow\n"); |
| break; |
| case K_WYLFARR : |
| printf("\\Kwylfarr Transmit WYSE 30/50/60/160: Left Arrow\n"); |
| break; |
| case K_WYRTARR : |
| printf("\\Kwyrtarr Transmit WYSE 30/50/60/160: Right Arrow\n"); |
| break; |
| case K_WYSUPARR : |
| printf("\\Kwysuparr Transmit WYSE 30/50/60/160: Shift-Up Arrow\n"); |
| break; |
| case K_WYSDNARR : |
| printf("\\Kwysdnarr Transmit WYSE 30/50/60/160: Shift-Down Arrow\n"); |
| break; |
| case K_WYSLFARR : |
| printf("\\Kwyslfarr Transmit WYSE 30/50/60/160: Shift-Left Arrow\n"); |
| break; |
| case K_WYSRTARR : |
| printf("\\Kwysrtarr Transmit WYSE 30/50/60/160: Shift-Right Arrow\n"); |
| break; |
| case K_WYSEND: |
| printf("\\Kwysend Transmit WYSE 30/50/60/160: Send\n"); |
| break; |
| case K_WYSSEND: |
| printf("\\Kwyssend Transmit WYSE 30/50/60/160: Shift-Send\n"); |
| break; |
| |
| /* Data General Function Keys (unshifted) */ |
| case K_DGF01 : |
| printf("\\Kdgf01 Transmit Data General: F1 \n"); |
| break; |
| case K_DGF02 : |
| printf("\\Kdgf01 Transmit Data General: F2 \n"); |
| break; |
| case K_DGF03 : |
| printf("\\Kdgf01 Transmit Data General: F3 \n"); |
| break; |
| case K_DGF04 : |
| printf("\\Kdgf01 Transmit Data General: F4 \n"); |
| break; |
| case K_DGF05 : |
| printf("\\Kdgf01 Transmit Data General: F5 \n"); |
| break; |
| case K_DGF06 : |
| printf("\\Kdgf01 Transmit Data General: F6 \n"); |
| break; |
| case K_DGF07 : |
| printf("\\Kdgf01 Transmit Data General: F7 \n"); |
| break; |
| case K_DGF08 : |
| printf("\\Kdgf01 Transmit Data General: F8 \n"); |
| break; |
| case K_DGF09 : |
| printf("\\Kdgf01 Transmit Data General: F9 \n"); |
| break; |
| case K_DGF10 : |
| printf("\\Kdgf01 Transmit Data General: F10 \n"); |
| break; |
| case K_DGF11 : |
| printf("\\Kdgf01 Transmit Data General: F11 \n"); |
| break; |
| case K_DGF12 : |
| printf("\\Kdgf01 Transmit Data General: F12 \n"); |
| break; |
| case K_DGF13 : |
| printf("\\Kdgf01 Transmit Data General: F13 \n"); |
| break; |
| case K_DGF14 : |
| printf("\\Kdgf01 Transmit Data General: F14 \n"); |
| break; |
| case K_DGF15 : |
| printf("\\Kdgf01 Transmit Data General: F15 \n"); |
| break; |
| |
| /* Data General Function Keys (shifted) */ |
| case K_DGSF01 : |
| printf( |
| "\\Kdgsf01 Transmit Data General: Shift-F1 \n"); |
| break; |
| case K_DGSF02 : |
| printf( |
| "\\Kdgsf02 Transmit Data General: Shift-F2 \n"); |
| break; |
| case K_DGSF03 : |
| printf( |
| "\\Kdgsf03 Transmit Data General: Shift-F3 \n"); |
| break; |
| case K_DGSF04 : |
| printf( |
| "\\Kdgsf04 Transmit Data General: Shift-F4 \n"); |
| break; |
| case K_DGSF05 : |
| printf( |
| "\\Kdgsf05 Transmit Data General: Shift-F5 \n"); |
| break; |
| case K_DGSF06 : |
| printf( |
| "\\Kdgsf06 Transmit Data General: Shift-F6 \n"); |
| break; |
| case K_DGSF07 : |
| printf( |
| "\\Kdgsf07 Transmit Data General: Shift-F7 \n"); |
| break; |
| case K_DGSF08 : |
| printf( |
| "\\Kdgsf08 Transmit Data General: Shift-F8 \n"); |
| break; |
| case K_DGSF09 : |
| printf( |
| "\\Kdgsf09 Transmit Data General: Shift-F9 \n"); |
| break; |
| case K_DGSF10 : |
| printf( |
| "\\Kdgsf10 Transmit Data General: Shift-F10 \n"); |
| break; |
| case K_DGSF11 : |
| printf( |
| "\\Kdgsf11 Transmit Data General: Shift-F11 \n"); |
| break; |
| case K_DGSF12 : |
| printf( |
| "\\Kdgsf12 Transmit Data General: Shift-F12 \n"); |
| break; |
| case K_DGSF13 : |
| printf( |
| "\\Kdgsf13 Transmit Data General: Shift-F13 \n"); |
| break; |
| case K_DGSF14 : |
| printf( |
| "\\Kdgsf14 Transmit Data General: Shift-F14 \n"); |
| break; |
| case K_DGSF15 : |
| printf( |
| "\\Kdgsf15 Transmit Data General: Shift-F15 \n"); |
| break; |
| |
| /* Data General Function Keys (control) */ |
| case K_DGCF01 : |
| printf( |
| "\\Kdgcf01 Transmit Data General: Ctrl-F1 \n"); |
| break; |
| case K_DGCF02 : |
| printf( |
| "\\Kdgcf02 Transmit Data General: Ctrl-F2 \n"); |
| break; |
| case K_DGCF03 : |
| printf( |
| "\\Kdgcf03 Transmit Data General: Ctrl-F3 \n"); |
| break; |
| case K_DGCF04 : |
| printf( |
| "\\Kdgcf04 Transmit Data General: Ctrl-F4 \n"); |
| break; |
| case K_DGCF05 : |
| printf( |
| "\\Kdgcf05 Transmit Data General: Ctrl-F5 \n"); |
| break; |
| case K_DGCF06 : |
| printf( |
| "\\Kdgcf06 Transmit Data General: Ctrl-F6 \n"); |
| break; |
| case K_DGCF07 : |
| printf( |
| "\\Kdgcf07 Transmit Data General: Ctrl-F7 \n"); |
| break; |
| case K_DGCF08 : |
| printf( |
| "\\Kdgcf08 Transmit Data General: Ctrl-F8 \n"); |
| break; |
| case K_DGCF09 : |
| printf( |
| "\\Kdgcf09 Transmit Data General: Ctrl-F9 \n"); |
| break; |
| case K_DGCF10 : |
| printf( |
| "\\Kdgcf10 Transmit Data General: Ctrl-F10 \n"); |
| break; |
| case K_DGCF11 : |
| printf( |
| "\\Kdgcf11 Transmit Data General: Ctrl-F11 \n"); |
| break; |
| case K_DGCF12 : |
| printf( |
| "\\Kdgcf12 Transmit Data General: Ctrl-F12 \n"); |
| break; |
| case K_DGCF13 : |
| printf( |
| "\\Kdgcf13 Transmit Data General: Ctrl-F13 \n"); |
| break; |
| case K_DGCF14 : |
| printf( |
| "\\Kdgcf14 Transmit Data General: Ctrl-F14 \n"); |
| break; |
| case K_DGCF15 : |
| printf( |
| "\\Kdgcf15 Transmit Data General: Ctrl-F15 \n"); |
| break; |
| |
| /* Data General Function Keys (control shifted) */ |
| case K_DGCSF01 : |
| printf( |
| "\\Kdgcsf01 Transmit Data General: Ctrl-Shift-F1 \n"); |
| break; |
| case K_DGCSF02 : |
| printf( |
| "\\Kdgcsf02 Transmit Data General: Ctrl-Shift-F2 \n"); |
| break; |
| case K_DGCSF03 : |
| printf( |
| "\\Kdgcsf03 Transmit Data General: Ctrl-Shift-F3 \n"); |
| break; |
| case K_DGCSF04 : |
| printf( |
| "\\Kdgcsf04 Transmit Data General: Ctrl-Shift-F4 \n"); |
| break; |
| case K_DGCSF05 : |
| printf( |
| "\\Kdgcsf05 Transmit Data General: Ctrl-Shift-F5 \n"); |
| break; |
| case K_DGCSF06 : |
| printf( |
| "\\Kdgcsf06 Transmit Data General: Ctrl-Shift-F6 \n"); |
| break; |
| case K_DGCSF07 : |
| printf( |
| "\\Kdgcsf07 Transmit Data General: Ctrl-Shift-F7 \n"); |
| break; |
| case K_DGCSF08 : |
| printf( |
| "\\Kdgcsf08 Transmit Data General: Ctrl-Shift-F8 \n"); |
| break; |
| case K_DGCSF09 : |
| printf( |
| "\\Kdgcsf09 Transmit Data General: Ctrl-Shift-F9 \n"); |
| break; |
| case K_DGCSF10 : |
| printf( |
| "\\Kdgcsf10 Transmit Data General: Ctrl-Shift-F10 \n"); |
| break; |
| case K_DGCSF11 : |
| printf( |
| "\\Kdgcsf11 Transmit Data General: Ctrl-Shift-F11 \n"); |
| break; |
| case K_DGCSF12 : |
| printf( |
| "\\Kdgcsf12 Transmit Data General: Ctrl-Shift-F12 \n"); |
| break; |
| case K_DGCSF13 : |
| printf( |
| "\\Kdgcsf13 Transmit Data General: Ctrl-Shift-F13 \n"); |
| break; |
| case K_DGCSF14 : |
| printf( |
| "\\Kdgcsf14 Transmit Data General: Ctrl-Shift-F14 \n"); |
| break; |
| case K_DGCSF15 : |
| printf( |
| "\\Kdgcsf15 Transmit Data General: Ctrl-Shift-F15 \n"); |
| break; |
| |
| case K_DGUPARR : |
| printf("\\Kdguparr Transmit Data General: Up Arrow \n"); |
| break; |
| case K_DGDNARR : |
| printf("\\Kdgdnarr Transmit Data General: Down Arrow \n"); |
| break; |
| case K_DGLFARR : |
| printf("\\Kdglfarr Transmit Data General: Left Arrow \n"); |
| break; |
| case K_DGRTARR : |
| printf("\\Kdgrtarr Transmit Data General: Right Arrow \n"); |
| break; |
| case K_DGSUPARR : |
| printf("\\Kdgsuparr Transmit Data General: Shift-Up Arrow \n"); |
| break; |
| case K_DGSDNARR : |
| printf("\\Kdgsdnarr Transmit Data General: Shift-Down Arrow \n"); |
| break; |
| case K_DGSLFARR : |
| printf("\\Kdgslfarr Transmit Data General: Shift-Left Arrow \n"); |
| break; |
| case K_DGSRTARR : |
| printf("\\Kdgsrtarr Transmit Data General: Shift-Right Arrow \n"); |
| break; |
| |
| case K_DGERASEPAGE : |
| printf("\\Kdgerasepage Transmit Data General: Erase Page \n"); |
| break; |
| case K_DGC1 : |
| printf("\\Kdgc1 Transmit Data General: C1 \n"); |
| break; |
| case K_DGC2 : |
| printf("\\Kdgc2 Transmit Data General: C2 \n"); |
| break; |
| case K_DGERASEEOL : |
| printf("\\Kdgeraseeol Transmit Data General: Erase EOL \n"); |
| break; |
| case K_DGC3 : |
| printf("\\Kdgc3 Transmit Data General: C3 \n"); |
| break; |
| case K_DGC4 : |
| printf("\\Kdgc4 Transmit Data General: C4 \n"); |
| break; |
| case K_DGCMDPRINT : |
| printf("\\Kdgcmdprint Transmit Data General: Command Print \n"); |
| break; |
| case K_DGHOME : |
| printf("\\Kdghome Transmit Data General: Home \n"); |
| break; |
| case K_DGSERASEPAGE : |
| printf("\\Kdgserasepage Transmit Data General: Erase Page \n"); |
| break; |
| case K_DGSC1 : |
| printf("\\Kdgsc1 Transmit Data General: Shift-C1 \n"); |
| break; |
| case K_DGSC2 : |
| printf("\\Kdgsc2 Transmit Data General: Shift-C2 \n"); |
| break; |
| case K_DGSERASEEOL : |
| printf("\\Kdgseraseeol Transmit Data General: Shift-Erase EOL \n"); |
| break; |
| case K_DGSC3 : |
| printf("\\Kdgsc3 Transmit Data General: Shift-C3 \n"); |
| break; |
| case K_DGSC4 : |
| printf("\\Kdgsc4 Transmit Data General: Shift-C4 \n"); |
| break; |
| case K_DGSCMDPRINT : |
| printf("\\Kdgscmdprint Transmit Data General: Shift-Command Print\n"); |
| break; |
| case K_DGBS : |
| printf("\\Kdgbs Transmit Data General: Backspace \n"); |
| break; |
| case K_DGSHOME : |
| printf("\\Kdshome Transmit Data General: Shift-Home \n"); |
| break; |
| |
| |
| /* Televideo Function Keys (unshifted) */ |
| case K_TVIF01 : |
| printf("\\Ktvif01 Transmit Televideo: F1 \n"); |
| break; |
| case K_TVIF02 : |
| printf("\\Ktvif02 Transmit Televideo: F2 \n"); |
| break; |
| case K_TVIF03 : |
| printf("\\Ktvif03 Transmit Televideo: F3 \n"); |
| break; |
| case K_TVIF04 : |
| printf("\\Ktvif04 Transmit Televideo: F4 \n"); |
| break; |
| case K_TVIF05 : |
| printf("\\Ktvif05 Transmit Televideo: F5 \n"); |
| break; |
| case K_TVIF06 : |
| printf("\\Ktvif06 Transmit Televideo: F6 \n"); |
| break; |
| case K_TVIF07 : |
| printf("\\Ktvif07 Transmit Televideo: F7 \n"); |
| break; |
| case K_TVIF08 : |
| printf("\\Ktvif08 Transmit Televideo: F8 \n"); |
| break; |
| case K_TVIF09 : |
| printf("\\Ktvif09 Transmit Televideo: F9 \n"); |
| break; |
| case K_TVIF10 : |
| printf("\\Ktvif10 Transmit Televideo: F10 \n"); |
| break; |
| case K_TVIF11 : |
| printf("\\Ktvif11 Transmit Televideo: F11 \n"); |
| break; |
| case K_TVIF12 : |
| printf("\\Ktvif12 Transmit Televideo: F12 \n"); |
| break; |
| case K_TVIF13 : |
| printf("\\Ktvif13 Transmit Televideo: F13 \n"); |
| break; |
| case K_TVIF14 : |
| printf("\\Ktvif14 Transmit Televideo: F14 \n"); |
| break; |
| case K_TVIF15 : |
| printf("\\Ktvif15 Transmit Televideo: F15 \n"); |
| break; |
| case K_TVIF16 : |
| printf("\\Ktvif16 Transmit Televideo: F16 \n"); |
| break; |
| |
| /* Televideo Function Keys (shifted) */ |
| case K_TVISF01 : |
| printf("\\Ktvisf01 Transmit Televideo: Shift-F1 \n"); |
| break; |
| case K_TVISF02 : |
| printf("\\Ktvisf02 Transmit Televideo: Shift-F2 \n"); |
| break; |
| case K_TVISF03 : |
| printf("\\Ktvisf03 Transmit Televideo: Shift-F3 \n"); |
| break; |
| case K_TVISF04 : |
| printf("\\Ktvisf04 Transmit Televideo: Shift-F4 \n"); |
| break; |
| case K_TVISF05 : |
| printf("\\Ktvisf05 Transmit Televideo: Shift-F5 \n"); |
| break; |
| case K_TVISF06 : |
| printf("\\Ktvisf06 Transmit Televideo: Shift-F6 \n"); |
| break; |
| case K_TVISF07 : |
| printf("\\Ktvisf07 Transmit Televideo: Shift-F7 \n"); |
| break; |
| case K_TVISF08 : |
| printf("\\Ktvisf08 Transmit Televideo: Shift-F8 \n"); |
| break; |
| case K_TVISF09 : |
| printf("\\Ktvisf09 Transmit Televideo: Shift-F9 \n"); |
| break; |
| case K_TVISF10 : |
| printf("\\Ktvisf10 Transmit Televideo: Shift-F10\n"); |
| break; |
| case K_TVISF11 : |
| printf("\\Ktvisf11 Transmit Televideo: Shift-F11\n"); |
| break; |
| case K_TVISF12 : |
| printf("\\Ktvisf12 Transmit Televideo: Shift-F12\n"); |
| break; |
| case K_TVISF13 : |
| printf("\\Ktvisf13 Transmit Televideo: Shift-F13\n"); |
| break; |
| case K_TVISF14 : |
| printf("\\Ktvisf14 Transmit Televideo: Shift-F14\n"); |
| break; |
| case K_TVISF15 : |
| printf("\\Ktvisf15 Transmit Televideo: Shift-F15\n"); |
| break; |
| case K_TVISF16 : |
| printf("\\Ktvisf16 Transmit Televideo: Shift-F16\n"); |
| break; |
| |
| /* Televideo Edit and Special Keys */ |
| case K_TVIBS : |
| printf("\\Ktvibs Transmit Televideo: Backspace \n"); |
| break; |
| case K_TVICLRLN : |
| printf("\\Ktviclrln Transmit Televideo: Clear Line \n"); |
| break; |
| case K_TVISCLRLN : |
| printf("\\Ktvisclrln Transmit Televideo: Shift-Clear Line\n"); |
| break; |
| case K_TVICLRPG : |
| printf("\\Ktviclrpg Transmit Televideo: Clear Page \n"); |
| break; |
| case K_TVISCLRPG : |
| printf("\\Ktvisclrpg Transmit Televideo: Shift-Clear Page\n"); |
| break; |
| case K_TVIDELCHAR : |
| printf("\\Ktvidelchar Transmit Televideo: Delete Char \n"); |
| break; |
| case K_TVIDELLN : |
| printf("\\Ktvidelln Transmit Televideo: Delete Line \n"); |
| break; |
| case K_TVIENTER : |
| printf("\\Ktvienter Transmit Televideo: Enter \n"); |
| break; |
| case K_TVIESC : |
| printf("\\Ktviesc Transmit Televideo: Esc \n"); |
| break; |
| case K_TVIHOME : |
| printf("\\Ktvihome Transmit Televideo: Home \n"); |
| break; |
| case K_TVISHOME : |
| printf("\\Ktvishome Transmit Televideo: Shift-Home \n"); |
| break; |
| case K_TVIINSERT : |
| printf("\\Ktviinsert Transmit Televideo: Insert \n"); |
| break; |
| case K_TVIINSCHAR : |
| printf("\\Ktviinschar Transmit Televideo: Insert Char \n"); |
| break; |
| case K_TVIINSLN : |
| printf("\\Ktviinsln Transmit Televideo: Insert Line \n"); |
| break; |
| case K_TVIPGNEXT : |
| printf("\\Ktvipgnext Transmit Televideo: Page Next \n"); |
| break; |
| case K_TVIPGPREV : |
| printf("\\Ktvipgprev Transmit Televideo: Page Previous \n"); |
| break; |
| case K_TVIREPLACE : |
| printf("\\Ktvireplace Transmit Televideo: Replace \n"); |
| break; |
| case K_TVIRETURN : |
| printf("\\Ktvireturn Transmit Televideo: Return \n"); |
| break; |
| case K_TVITAB : |
| printf("\\Ktvitab Transmit Televideo: Tab \n"); |
| break; |
| case K_TVISTAB : |
| printf("\\Ktvistab Transmit Televideo: Shift-Tab \n"); |
| break; |
| case K_TVIPRTSCN : |
| printf("\\Ktviprtscn Transmit Televideo: Print Screen \n"); |
| break; |
| case K_TVISESC : |
| printf("\\Ktvisesc Transmit Televideo: Shift-Esc \n"); |
| break; |
| case K_TVISBS : |
| printf("\\Ktvisbs Transmit Televideo: Shift-Backspace \n"); |
| break; |
| case K_TVISENTER : |
| printf("\\Ktvisenter Transmit Televideo: Shift-Enter \n"); |
| break; |
| case K_TVISRETURN : |
| printf("\\Ktvisreturn Transmit Televideo: Shift-Return \n"); |
| break; |
| case K_TVIUPARR : |
| printf("\\Ktviuparr Transmit Televideo: Up Arrow \n"); |
| break; |
| case K_TVIDNARR : |
| printf("\\Ktvidnarr Transmit Televideo: Down Arrow \n"); |
| break; |
| case K_TVILFARR : |
| printf("\\Ktvilfarr Transmit Televideo: Left Arrow \n"); |
| break; |
| case K_TVIRTARR : |
| printf("\\Ktvirtarr Transmit Televideo: Right Arrow \n"); |
| break; |
| case K_TVISUPARR : |
| printf("\\Ktvisuparr Transmit Televideo: Shift-Up Arrow \n"); |
| break; |
| case K_TVISDNARR : |
| printf("\\Ktvisdnarr Transmit Televideo: Shift-Down Arrow\n"); |
| break; |
| case K_TVISLFARR : |
| printf("\\Ktvislfarr Transmit Televideo: Shift-Left Arrow\n"); |
| break; |
| case K_TVISRTARR : |
| printf("\\Ktvisrtarr Transmit Televideo: Shift-Right Arrow\n"); |
| break; |
| case K_TVISEND: |
| printf("\\Ktvisend Transmit Televideo: Send\n"); |
| break; |
| case K_TVISSEND: |
| printf("\\Ktvissend Transmit Televideo: Shift-Send\n"); |
| break; |
| |
| /* HP Function and Edit keys */ |
| case K_HPF01 : |
| printf("\\Khpf01 Transmit Hewlett-Packard: F1 \n"); |
| break; |
| case K_HPF02 : |
| printf("\\Khpf02 Transmit Hewlett-Packard: F2 \n"); |
| break; |
| case K_HPF03 : |
| printf("\\Khpf03 Transmit Hewlett-Packard: F3 \n"); |
| break; |
| case K_HPF04 : |
| printf("\\Khpf04 Transmit Hewlett-Packard: F4 \n"); |
| break; |
| case K_HPF05 : |
| printf("\\Khpf05 Transmit Hewlett-Packard: F5 \n"); |
| break; |
| case K_HPF06 : |
| printf("\\Khpf06 Transmit Hewlett-Packard: F6 \n"); |
| break; |
| case K_HPF07 : |
| printf("\\Khpf07 Transmit Hewlett-Packard: F7 \n"); |
| break; |
| case K_HPF08 : |
| printf("\\Khpf08 Transmit Hewlett-Packard: F8 \n"); |
| break; |
| case K_HPF09 : |
| printf("\\Khpf09 Transmit Hewlett-Packard: F9 \n"); |
| break; |
| case K_HPF10 : |
| printf("\\Khpf10 Transmit Hewlett-Packard: F10 \n"); |
| break; |
| case K_HPF11 : |
| printf("\\Khpf11 Transmit Hewlett-Packard: F11 \n"); |
| break; |
| case K_HPF12 : |
| printf("\\Khpf12 Transmit Hewlett-Packard: F12 \n"); |
| break; |
| case K_HPF13 : |
| printf("\\Khpf13 Transmit Hewlett-Packard: F13 \n"); |
| break; |
| case K_HPF14 : |
| printf("\\Khpf14 Transmit Hewlett-Packard: F14 \n"); |
| break; |
| case K_HPF15 : |
| printf("\\Khpf15 Transmit Hewlett-Packard: F15 \n"); |
| break; |
| case K_HPF16 : |
| printf("\\Khpf16 Transmit Hewlett-Packard: F16 \n"); |
| break; |
| case K_HPRETURN : |
| printf("\\Khpreturn Transmit Hewlett-Packard: Return\n"); |
| break; |
| case K_HPENTER : |
| printf("\\Khpenter Transmit Hewlett-Packard: Enter (keypad)\n"); |
| break; |
| case K_HPBACKTAB : |
| printf("\\Khpbacktab Transmit Hewlett-Packard: Back Tab\n"); |
| break; |
| /* Siemens Nixdorf International 97801-5xx kverbs */ |
| case K_SNI_DOUBLE_0 : |
| printf("\\Ksni_00 Transmit SNI-97801-5xx: Double-Zero\n"); |
| break; |
| case K_SNI_C_DOUBLE_0 : |
| printf( |
| "\\Ksni_c_00 Transmit SNI-97801-5xx: Ctrl-Double-Zero\n"); |
| break; |
| case K_SNI_C_CE : |
| printf("\\Ksni_c_ce Transmit SNI-97801-5xx: Ctrl-CE\n"); |
| break; |
| case K_SNI_C_COMPOSE : |
| printf("\\Ksni_c_compose Transmit SNI-97801-5xx: Ctrl-Compose\n"); |
| break; |
| case K_SNI_C_DELETE_CHAR : |
| printf( |
| "\\Ksni_c_del_char Transmit SNI-97801-5xx: Ctrl-Delete Char\n"); |
| break; |
| case K_SNI_C_DELETE_LINE : |
| printf( |
| "\\Ksni_c_del_line Transmit SNI-97801-5xx: Ctrl-Delete Line\n"); |
| break; |
| case K_SNI_C_DELETE_WORD : |
| printf( |
| "\\Ksni_c_del_word Transmit SNI-97801-5xx: Ctrl-Delete Word\n"); |
| break; |
| case K_SNI_C_CURSOR_DOWN : |
| printf( |
| "\\Ksni_c_dnarr Transmit SNI-97801-5xx: Ctrl-Cursor Down\n"); |
| break; |
| case K_SNI_C_ENDMARKE : |
| printf("\\Ksni_c_endmarke Transmit SNI-97801-5xx: Ctrl-End Marke\n"); |
| break; |
| case K_SNI_C_F01 : |
| printf("\\Ksni_c_f01 Transmit SNI-97801-5xx: Ctrl-F1\n"); |
| break; |
| case K_SNI_C_F02 : |
| printf("\\Ksni_c_f02 Transmit SNI-97801-5xx: Ctrl-F2\n"); |
| break; |
| case K_SNI_C_F03 : |
| printf("\\Ksni_c_f03 Transmit SNI-97801-5xx: Ctrl-F3\n"); |
| break; |
| case K_SNI_C_F04 : |
| printf("\\Ksni_c_f04 Transmit SNI-97801-5xx: Ctrl-F4\n"); |
| break; |
| case K_SNI_C_F05 : |
| printf("\\Ksni_c_f05 Transmit SNI-97801-5xx: Ctrl-F5\n"); |
| break; |
| case K_SNI_C_F06 : |
| printf("\\Ksni_c_f06 Transmit SNI-97801-5xx: Ctrl-F6\n"); |
| break; |
| case K_SNI_C_F07 : |
| printf("\\Ksni_c_f07 Transmit SNI-97801-5xx: Ctrl-F7\n"); |
| break; |
| case K_SNI_C_F08 : |
| printf("\\Ksni_c_f08 Transmit SNI-97801-5xx: Ctrl-F8\n"); |
| break; |
| case K_SNI_C_F09 : |
| printf("\\Ksni_c_f09 Transmit SNI-97801-5xx: Ctrl-F9\n"); |
| break; |
| case K_SNI_C_F10 : |
| printf("\\Ksni_c_f10 Transmit SNI-97801-5xx: Ctrl-F10\n"); |
| break; |
| case K_SNI_C_F11 : |
| printf("\\Ksni_c_f11 Transmit SNI-97801-5xx: Ctrl-F11\n"); |
| break; |
| case K_SNI_C_F12 : |
| printf("\\Ksni_c_f12 Transmit SNI-97801-5xx: Ctrl-F12\n"); |
| break; |
| case K_SNI_C_F13 : |
| printf("\\Ksni_c_f13 Transmit SNI-97801-5xx: Ctrl-F13\n"); |
| break; |
| case K_SNI_C_F14 : |
| printf("\\Ksni_c_f14 Transmit SNI-97801-5xx: Ctrl-F14\n"); |
| break; |
| case K_SNI_C_F15 : |
| printf("\\Ksni_c_f15 Transmit SNI-97801-5xx: Ctrl-F15\n"); |
| break; |
| case K_SNI_C_F16 : |
| printf("\\Ksni_c_f16 Transmit SNI-97801-5xx: Ctrl-F16\n"); |
| break; |
| case K_SNI_C_F17 : |
| printf("\\Ksni_c_f17 Transmit SNI-97801-5xx: Ctrl-F17\n"); |
| break; |
| case K_SNI_C_F18 : |
| printf("\\Ksni_c_f18 Transmit SNI-97801-5xx: Ctrl-F18\n"); |
| break; |
| case K_SNI_C_USER1 : |
| printf( |
| "\\Ksni_c_user1 Transmit SNI-97801-5xx: Ctrl-Key below F18\n"); |
| break; |
| case K_SNI_C_F19 : |
| printf("\\Ksni_c_f19 Transmit SNI-97801-5xx: Ctrl-F19\n"); |
| break; |
| case K_SNI_C_USER2 : |
| printf( |
| "\\Ksni_c_user2 Transmit SNI-97801-5xx: Ctrl-Key below F19\n"); |
| break; |
| case K_SNI_C_F20 : |
| printf("\\Ksni_c_f20 Transmit SNI-97801-5xx: Ctrl-F20\n"); |
| break; |
| case K_SNI_C_USER3 : |
| printf( |
| "\\Ksni_c_user3 Transmit SNI-97801-5xx: Ctrl-Key below F20\n"); |
| break; |
| case K_SNI_C_F21 : |
| printf("\\Ksni_c_f21 Transmit SNI-97801-5xx: Ctrl-F21\n"); |
| break; |
| case K_SNI_C_USER4 : |
| printf( |
| "\\Ksni_c_user4 Transmit SNI-97801-5xx: Ctrl-Key below F21\n"); |
| break; |
| case K_SNI_C_F22 : |
| printf("\\Ksni_c_f22 Transmit SNI-97801-5xx: Ctrl-F22\n"); |
| break; |
| case K_SNI_C_USER5 : |
| printf( |
| "\\Ksni_c_user5 Transmit SNI-97801-5xx: Ctrl-Key below F22\n"); |
| break; |
| case K_SNI_C_HELP : |
| printf("\\Ksni_c_help Transmit SNI-97801-5xx: Ctrl-Help\n"); |
| break; |
| case K_SNI_C_HOME : |
| printf("\\Ksni_c_home Transmit SNI-97801-5xx: Ctrl-Home\n"); |
| break; |
| case K_SNI_C_INSERT_CHAR : |
| printf( |
| "\\Ksni_c_ins_char Transmit SNI-97801-5xx: Ctrl-Insert Char\n"); |
| break; |
| case K_SNI_C_INSERT_LINE : |
| printf( |
| "\\Ksni_c_ins_line Transmit SNI-97801-5xx: Ctrl-Insert Line\n"); |
| break; |
| case K_SNI_C_INSERT_WORD : |
| printf( |
| "\\Ksni_c_ins_word Transmit SNI-97801-5xx: Ctrl-Insert Word\n"); |
| break; |
| case K_SNI_C_LEFT_TAB : |
| printf("\\Ksni_c_left_tab Transmit SNI-97801-5xx: Ctrl-Left Tab\n"); |
| break; |
| case K_SNI_C_CURSOR_LEFT : |
| printf( |
| "\\Ksni_c_lfarr Transmit SNI-97801-5xx: Ctrl-Cursor Left\n"); |
| break; |
| case K_SNI_C_MODE : |
| printf("\\Ksni_c_mode Transmit SNI-97801-5xx: Ctrl-Mode\n"); |
| break; |
| case K_SNI_C_PAGE : |
| printf("\\Ksni_c_page Transmit SNI-97801-5xx: Ctrl-Page\n"); |
| break; |
| case K_SNI_C_PRINT : |
| printf("\\Ksni_c_print Transmit SNI-97801-5xx: Ctrl-Print\n"); |
| break; |
| case K_SNI_C_CURSOR_RIGHT: |
| printf( |
| "\\Ksni_c_rtarr Transmit SNI-97801-5xx: Ctrl-Cursor Right\n"); |
| break; |
| case K_SNI_C_SCROLL_DOWN : |
| printf( |
| "\\Ksni_c_scroll_dn Transmit SNI-97801-5xx: Ctrl-Scroll Down\n"); |
| break; |
| case K_SNI_C_SCROLL_UP : |
| printf("\\Ksni_c_scroll_up Transmit SNI-97801-5xx: Ctrl-Scroll Up\n"); |
| break; |
| case K_SNI_C_START : |
| printf("\\Ksni_c_start Transmit SNI-97801-5xx: Ctrl-Start\n"); |
| break; |
| case K_SNI_C_CURSOR_UP : |
| printf("\\Ksni_c_uparr Transmit SNI-97801-5xx: Ctrl-Cursor Up\n"); |
| break; |
| case K_SNI_C_TAB : |
| printf("\\Ksni_c_tab Transmit SNI-97801-5xx: Ctrl-Tab\n"); |
| break; |
| case K_SNI_CE : |
| printf("\\Ksni_ce Transmit SNI-97801-5xx: CE\n"); |
| break; |
| case K_SNI_CH_CODE: |
| printf("\\Ksni_ch_code Toggle SNI-97801-5xx: CH.CODE function.\n"); |
| break; |
| case K_SNI_COMPOSE : |
| printf("\\Ksni_compose Transmit SNI-97801-5xx: Compose\n"); |
| break; |
| case K_SNI_DELETE_CHAR : |
| printf("\\Ksni_del_char Transmit SNI-97801-5xx: Delete Char\n"); |
| break; |
| case K_SNI_DELETE_LINE : |
| printf("\\Ksni_del_line Transmit SNI-97801-5xx: Delete Line\n"); |
| break; |
| case K_SNI_DELETE_WORD : |
| printf("\\Ksni_del_word Transmit SNI-97801-5xx: Delete Word\n"); |
| break; |
| case K_SNI_CURSOR_DOWN : |
| printf("\\Ksni_dnarr Transmit SNI-97801-5xx: Cursor Down\n"); |
| break; |
| case K_SNI_ENDMARKE : |
| printf("\\Ksni_endmarke Transmit SNI-97801-5xx: End Marke\n"); |
| break; |
| case K_SNI_F01 : |
| printf("\\Ksni_f01 Transmit SNI-97801-5xx: F1\n"); |
| break; |
| case K_SNI_F02 : |
| printf("\\Ksni_f02 Transmit SNI-97801-5xx: F2\n"); |
| break; |
| case K_SNI_F03 : |
| printf("\\Ksni_f03 Transmit SNI-97801-5xx: F3\n"); |
| break; |
| case K_SNI_F04 : |
| printf("\\Ksni_f04 Transmit SNI-97801-5xx: F4\n"); |
| break; |
| case K_SNI_F05 : |
| printf("\\Ksni_f05 Transmit SNI-97801-5xx: F5\n"); |
| break; |
| case K_SNI_F06 : |
| printf("\\Ksni_f06 Transmit SNI-97801-5xx: F6\n"); |
| break; |
| case K_SNI_F07 : |
| printf("\\Ksni_f07 Transmit SNI-97801-5xx: F7\n"); |
| break; |
| case K_SNI_F08 : |
| printf("\\Ksni_f08 Transmit SNI-97801-5xx: F8\n"); |
| break; |
| case K_SNI_F09 : |
| printf("\\Ksni_f09 Transmit SNI-97801-5xx: F9\n"); |
| break; |
| case K_SNI_F10 : |
| printf("\\Ksni_f10 Transmit SNI-97801-5xx: F10\n"); |
| break; |
| case K_SNI_F11 : |
| printf("\\Ksni_f11 Transmit SNI-97801-5xx: F11\n"); |
| break; |
| case K_SNI_F12 : |
| printf("\\Ksni_f12 Transmit SNI-97801-5xx: F12\n"); |
| break; |
| case K_SNI_F13 : |
| printf("\\Ksni_f13 Transmit SNI-97801-5xx: F13\n"); |
| break; |
| case K_SNI_F14 : |
| printf("\\Ksni_f14 Transmit SNI-97801-5xx: F14\n"); |
| break; |
| case K_SNI_F15 : |
| printf("\\Ksni_f15 Transmit SNI-97801-5xx: F15\n"); |
| break; |
| case K_SNI_F16 : |
| printf("\\Ksni_f16 Transmit SNI-97801-5xx: F16\n"); |
| break; |
| case K_SNI_F17 : |
| printf("\\Ksni_f17 Transmit SNI-97801-5xx: F17\n"); |
| break; |
| case K_SNI_F18 : |
| printf("\\Ksni_f18 Transmit SNI-97801-5xx: F18\n"); |
| break; |
| case K_SNI_USER1 : |
| printf("\\Ksni_user1 Transmit SNI-97801-5xx: Key below F18\n"); |
| break; |
| case K_SNI_F19 : |
| printf("\\Ksni_f19 Transmit SNI-97801-5xx: F19\n"); |
| break; |
| case K_SNI_USER2 : |
| printf("\\Ksni_user2 Transmit SNI-97801-5xx: Key below F19\n"); |
| break; |
| case K_SNI_F20 : |
| printf("\\Ksni_f20 Transmit SNI-97801-5xx: F20\n"); |
| break; |
| case K_SNI_USER3 : |
| printf("\\Ksni_user3 Transmit SNI-97801-5xx: Key below F20\n"); |
| break; |
| case K_SNI_F21 : |
| printf("\\Ksni_f21 Transmit SNI-97801-5xx: F21\n"); |
| break; |
| case K_SNI_USER4 : |
| printf("\\Ksni_user4 Transmit SNI-97801-5xx: Key below F21\n"); |
| break; |
| case K_SNI_F22 : |
| printf("\\Ksni_f22 Transmit SNI-97801-5xx: F22\n"); |
| break; |
| case K_SNI_USER5 : |
| printf("\\Ksni_user5 Transmit SNI-97801-5xx: Key below F22\n"); |
| break; |
| case K_SNI_HELP : |
| printf("\\Ksni_help Transmit SNI-97801-5xx: Help\n"); |
| break; |
| case K_SNI_HOME : |
| printf("\\Ksni_home Transmit SNI-97801-5xx: Home\n"); |
| break; |
| case K_SNI_INSERT_CHAR : |
| printf("\\Ksni_ins_char Transmit SNI-97801-5xx: Insert Char\n"); |
| break; |
| case K_SNI_INSERT_LINE : |
| printf("\\Ksni_ins_line Transmit SNI-97801-5xx: Insert Line\n"); |
| break; |
| case K_SNI_INSERT_WORD : |
| printf("\\Ksni_ins_word Transmit SNI-97801-5xx: Insert Word\n"); |
| break; |
| case K_SNI_LEFT_TAB : |
| printf("\\Ksni_left_tab Transmit SNI-97801-5xx: Left Tab\n"); |
| break; |
| case K_SNI_CURSOR_LEFT : |
| printf("\\Ksni_lfarr Transmit SNI-97801-5xx: Cursor Left\n"); |
| break; |
| case K_SNI_MODE : |
| printf("\\Ksni_mode Transmit SNI-97801-5xx: Mode\n"); |
| break; |
| case K_SNI_PAGE : |
| printf("\\Ksni_page Transmit SNI-97801-5xx: Page\n"); |
| break; |
| case K_SNI_PRINT : |
| printf("\\Ksni_print Transmit SNI-97801-5xx: Print\n"); |
| break; |
| case K_SNI_CURSOR_RIGHT : |
| printf("\\Ksni_rtarr Transmit SNI-97801-5xx: Cursor Right\n"); |
| break; |
| case K_SNI_S_DOUBLE_0 : |
| printf( |
| "\\Ksni_s_00 Transmit SNI-97801-5xx: Shift-Double-Zero\n"); |
| break; |
| case K_SNI_S_CE : |
| printf("\\Ksni_s_ce Transmit SNI-97801-5xx: Shift-CE\n"); |
| break; |
| case K_SNI_S_COMPOSE : |
| printf("\\Ksni_s_compose Transmit SNI-97801-5xx: Shift-Compose\n"); |
| break; |
| case K_SNI_S_DELETE_CHAR : |
| printf( |
| "\\Ksni_s_del_char Transmit SNI-97801-5xx: Shift-Delete Char\n"); |
| break; |
| case K_SNI_S_DELETE_LINE : |
| printf( |
| "\\Ksni_s_del_line Transmit SNI-97801-5xx: Shift-Delete Line\n"); |
| break; |
| case K_SNI_S_DELETE_WORD : |
| printf( |
| "\\Ksni_s_del_word Transmit SNI-97801-5xx: Shift-Delete Word\n"); |
| break; |
| case K_SNI_S_CURSOR_DOWN : |
| printf( |
| "\\Ksni_s_dnarr Transmit SNI-97801-5xx: Shift-Cursor Down\n"); |
| break; |
| case K_SNI_S_ENDMARKE : |
| printf("\\Ksni_s_endmarke Transmit SNI-97801-5xx: Shift-End Marke\n"); |
| break; |
| case K_SNI_S_F01 : |
| printf("\\Ksni_s_f01 Transmit SNI-97801-5xx: Shift-F1\n"); |
| break; |
| case K_SNI_S_F02 : |
| printf("\\Ksni_s_f02 Transmit SNI-97801-5xx: Shift-F2\n"); |
| break; |
| case K_SNI_S_F03 : |
| printf("\\Ksni_s_f03 Transmit SNI-97801-5xx: Shift-F3\n"); |
| break; |
| case K_SNI_S_F04 : |
| printf("\\Ksni_s_f04 Transmit SNI-97801-5xx: Shift-F4\n"); |
| break; |
| case K_SNI_S_F05 : |
| printf("\\Ksni_s_f05 Transmit SNI-97801-5xx: Shift-F5\n"); |
| break; |
| case K_SNI_S_F06 : |
| printf("\\Ksni_s_f06 Transmit SNI-97801-5xx: Shift-F6\n"); |
| break; |
| case K_SNI_S_F07 : |
| printf("\\Ksni_s_f07 Transmit SNI-97801-5xx: Shift-F7\n"); |
| break; |
| case K_SNI_S_F08 : |
| printf("\\Ksni_s_f08 Transmit SNI-97801-5xx: Shift-F8\n"); |
| break; |
| case K_SNI_S_F09 : |
| printf("\\Ksni_s_f09 Transmit SNI-97801-5xx: Shift-F9\n"); |
| break; |
| case K_SNI_S_F10 : |
| printf("\\Ksni_s_f10 Transmit SNI-97801-5xx: Shift-F10\n"); |
| break; |
| case K_SNI_S_F11 : |
| printf("\\Ksni_s_f11 Transmit SNI-97801-5xx: Shift-F11\n"); |
| break; |
| case K_SNI_S_F12 : |
| printf("\\Ksni_s_f12 Transmit SNI-97801-5xx: Shift-F12\n"); |
| break; |
| case K_SNI_S_F13 : |
| printf("\\Ksni_s_f13 Transmit SNI-97801-5xx: Shift-F13\n"); |
| break; |
| case K_SNI_S_F14 : |
| printf("\\Ksni_s_f14 Transmit SNI-97801-5xx: Shift-F14\n"); |
| break; |
| case K_SNI_S_F15 : |
| printf("\\Ksni_s_f15 Transmit SNI-97801-5xx: Shift-F15\n"); |
| break; |
| case K_SNI_S_F16 : |
| printf("\\Ksni_s_f16 Transmit SNI-97801-5xx: Shift-F16\n"); |
| break; |
| case K_SNI_S_F17 : |
| printf("\\Ksni_s_f17 Transmit SNI-97801-5xx: Shift-F17\n"); |
| break; |
| case K_SNI_S_F18 : |
| printf("\\Ksni_s_f18 Transmit SNI-97801-5xx: Shift-F18\n"); |
| break; |
| case K_SNI_S_USER1 : |
| printf( |
| "\\Ksni_s_user1 Transmit SNI-97801-5xx: Shift-Key below F18\n"); |
| break; |
| case K_SNI_S_F19 : |
| printf("\\Ksni_s_f19 Transmit SNI-97801-5xx: Shift-F19\n"); |
| break; |
| case K_SNI_S_USER2 : |
| printf( |
| "\\Ksni_s_user2 Transmit SNI-97801-5xx: Shift-Key below F19\n"); |
| break; |
| case K_SNI_S_F20 : |
| printf("\\Ksni_s_f20 Transmit SNI-97801-5xx: Shift-F20\n"); |
| break; |
| case K_SNI_S_USER3 : |
| printf( |
| "\\Ksni_s_user3 Transmit SNI-97801-5xx: Shift-Key below F20\n"); |
| break; |
| case K_SNI_S_F21 : |
| printf("\\Ksni_s_f21 Transmit SNI-97801-5xx: Shift-F21\n"); |
| break; |
| case K_SNI_S_USER4 : |
| printf( |
| "\\Ksni_s_user4 Transmit SNI-97801-5xx: Shift-Key below F21\n"); |
| break; |
| case K_SNI_S_F22 : |
| printf("\\Ksni_s_f22 Transmit SNI-97801-5xx: Shift-F22\n"); |
| break; |
| case K_SNI_S_USER5 : |
| printf( |
| "\\Ksni_s_user5 Transmit SNI-97801-5xx: Shift-Key below F22\n"); |
| break; |
| case K_SNI_S_HELP : |
| printf("\\Ksni_s_help Transmit SNI-97801-5xx: Shift-Help\n"); |
| break; |
| case K_SNI_S_HOME : |
| printf("\\Ksni_s_home Transmit SNI-97801-5xx: Shift-Home\n"); |
| break; |
| case K_SNI_S_INSERT_CHAR : |
| printf( |
| "\\Ksni_s_ins_char Transmit SNI-97801-5xx: Shift-Insert Char\n"); |
| break; |
| case K_SNI_S_INSERT_LINE : |
| printf( |
| "\\Ksni_s_ins_line Transmit SNI-97801-5xx: Shift-Insert Line\n"); |
| break; |
| case K_SNI_S_INSERT_WORD : |
| printf( |
| "\\Ksni_s_ins_word Transmit SNI-97801-5xx: Shift-Insert Word\n"); |
| break; |
| case K_SNI_S_LEFT_TAB : |
| printf("\\Ksni_s_left_tab Transmit SNI-97801-5xx: Shift-Left Tab\n"); |
| break; |
| case K_SNI_S_CURSOR_LEFT : |
| printf( |
| "\\Ksni_s_lfarr Transmit SNI-97801-5xx: Shift-Cursor Left\n"); |
| break; |
| case K_SNI_S_MODE : |
| printf("\\Ksni_s_mode Transmit SNI-97801-5xx: Shift-Mode\n"); |
| break; |
| case K_SNI_S_PAGE : |
| printf("\\Ksni_s_page Transmit SNI-97801-5xx: Shift-Page\n"); |
| break; |
| case K_SNI_S_PRINT : |
| printf("\\Ksni_s_print Transmit SNI-97801-5xx: Shift-Print\n"); |
| break; |
| case K_SNI_S_CURSOR_RIGHT: |
| printf( |
| "\\Ksni_s_rtarr Transmit SNI-97801-5xx: Shift-Cursor Right\n"); |
| break; |
| case K_SNI_S_SCROLL_DOWN : |
| printf( |
| "\\Ksni_s_scroll_dn Transmit SNI-97801-5xx: Shift-Scroll Down\n"); |
| break; |
| case K_SNI_S_SCROLL_UP : |
| printf("\\Ksni_s_scroll_up Transmit SNI-97801-5xx: Shift-Scroll Up\n"); |
| break; |
| case K_SNI_S_START : |
| printf("\\Ksni_s_start Transmit SNI-97801-5xx: Shift-Start\n"); |
| break; |
| case K_SNI_S_CURSOR_UP : |
| printf("\\Ksni_s_uparr Transmit SNI-97801-5xx: Shift-Cursor Up\n"); |
| break; |
| case K_SNI_S_TAB : |
| printf("\\Ksni_s_tab Transmit SNI-97801-5xx: Shift-Tab\n"); |
| break; |
| case K_SNI_SCROLL_DOWN : |
| printf("\\Ksni_scroll_dn Transmit SNI-97801-5xx: Scroll Down\n"); |
| break; |
| case K_SNI_SCROLL_UP : |
| printf("\\Ksni_scroll_up Transmit SNI-97801-5xx: Scroll Up\n"); |
| break; |
| case K_SNI_START : |
| printf("\\Ksni_start Transmit SNI-97801-5xx: Start\n"); |
| break; |
| case K_SNI_TAB : |
| printf("\\Ksni_tab Transmit SNI-97801-5xx: Tab\n"); |
| break; |
| case K_SNI_CURSOR_UP : |
| printf("\\Ksni_uparr Transmit SNI-97801-5xx: Cursor Up\n"); |
| break; |
| |
| case K_BA80_ATTR: |
| printf("\\Kba80_attr Transmit BA80: Attr\n"); |
| break; |
| case K_BA80_C_KEY: |
| printf("\\Kba80_c_key Transmit BA80: C\n"); |
| break; |
| case K_BA80_CLEAR: |
| printf("\\Kba80_clear Transmit BA80: Clear\n"); |
| break; |
| case K_BA80_CMD: |
| printf("\\Kba80_cmd Transmit BA80: Cmd\n"); |
| break; |
| case K_BA80_COPY: |
| printf("\\Kba80_copy Transmit BA80: Copy\n"); |
| break; |
| case K_BA80_DEL: |
| printf("\\Kba80_del Transmit BA80: Delete\n"); |
| break; |
| case K_BA80_DEL_B: |
| printf("\\Kba80_del_b Transmit BA80: Delete B\n"); |
| break; |
| case K_BA80_DO: |
| printf("\\Kba80_do Transmit BA80: Do\n"); |
| break; |
| case K_BA80_END: |
| printf("\\Kba80_end Transmit BA80: End\n"); |
| break; |
| case K_BA80_ENV: |
| printf("\\Kba80_env Transmit BA80: Env\n"); |
| break; |
| case K_BA80_EOP: |
| printf("\\Kba80_eop Transmit BA80: EOP\n"); |
| break; |
| case K_BA80_ERASE: |
| printf("\\Kba80_erase Transmit BA80: Erase\n"); |
| break; |
| case K_BA80_FMT: |
| printf("\\Kba80_fmt Transmit BA80: Format\n"); |
| break; |
| case K_BA80_HELP: |
| printf("\\Kba80_help Transmit BA80: Help\n"); |
| break; |
| case K_BA80_HOME: |
| printf("\\Kba80_home Transmit BA80: Home\n"); |
| break; |
| case K_BA80_INS: |
| printf("\\Kba80_ins Transmit BA80: Insert\n"); |
| break; |
| case K_BA80_INS_B: |
| printf("\\Kba80_ins_b Transmit BA80: Insert B\n"); |
| break; |
| case K_BA80_MARK: |
| printf("\\Kba80_mark Transmit BA80: Mark\n"); |
| break; |
| case K_BA80_MOVE: |
| printf("\\Kba80_move Transmit BA80: Move\n"); |
| break; |
| case K_BA80_PA01: |
| printf("\\Kba80_pa01 Transmit BA80: PA1\n"); |
| break; |
| case K_BA80_PA02: |
| printf("\\Kba80_pa02 Transmit BA80: PA2\n"); |
| break; |
| case K_BA80_PA03: |
| printf("\\Kba80_pa03 Transmit BA80: PA3\n"); |
| break; |
| case K_BA80_PA04: |
| printf("\\Kba80_pa04 Transmit BA80: PA4\n"); |
| break; |
| case K_BA80_PA05: |
| printf("\\Kba80_pa05 Transmit BA80: PA5\n"); |
| break; |
| case K_BA80_PA06: |
| printf("\\Kba80_pa06 Transmit BA80: PA6\n"); |
| break; |
| case K_BA80_PA07: |
| printf("\\Kba80_pa07 Transmit BA80: PA7\n"); |
| break; |
| case K_BA80_PA08: |
| printf("\\Kba80_pa08 Transmit BA80: PA8\n"); |
| break; |
| case K_BA80_PA09: |
| printf("\\Kba80_pa09 Transmit BA80: PA9\n"); |
| break; |
| case K_BA80_PA10: |
| printf("\\Kba80_pa10 Transmit BA80: PA10\n"); |
| break; |
| case K_BA80_PA11: |
| printf("\\Kba80_pa11 Transmit BA80: PA11\n"); |
| break; |
| case K_BA80_PA12: |
| printf("\\Kba80_pa12 Transmit BA80: PA12\n"); |
| break; |
| case K_BA80_PA13: |
| printf("\\Kba80_pa13 Transmit BA80: PA13\n"); |
| break; |
| case K_BA80_PA14: |
| printf("\\Kba80_pa14 Transmit BA80: PA14\n"); |
| break; |
| case K_BA80_PA15: |
| printf("\\Kba80_pa15 Transmit BA80: PA15\n"); |
| break; |
| case K_BA80_PA16: |
| printf("\\Kba80_pa16 Transmit BA80: PA16\n"); |
| break; |
| case K_BA80_PA17: |
| printf("\\Kba80_pa17 Transmit BA80: PA17\n"); |
| break; |
| case K_BA80_PA18: |
| printf("\\Kba80_pa18 Transmit BA80: PA18\n"); |
| break; |
| case K_BA80_PA19: |
| printf("\\Kba80_pa19 Transmit BA80: PA19\n"); |
| break; |
| case K_BA80_PA20: |
| printf("\\Kba80_pa20 Transmit BA80: PA20\n"); |
| break; |
| case K_BA80_PA21: |
| printf("\\Kba80_pa21 Transmit BA80: PA21\n"); |
| break; |
| case K_BA80_PA22: |
| printf("\\Kba80_pa22 Transmit BA80: PA22\n"); |
| break; |
| case K_BA80_PA23: |
| printf("\\Kba80_pa23 Transmit BA80: PA23\n"); |
| break; |
| case K_BA80_PA24: |
| printf("\\Kba80_pa24 Transmit BA80: PA24\n"); |
| break; |
| case K_BA80_PGDN: |
| printf("\\Kba80_pgdn Transmit BA80: Page Down\n"); |
| break; |
| case K_BA80_PGUP: |
| printf("\\Kba80_pgup Transmit BA80: Page Up\n"); |
| break; |
| case K_BA80_PICK: |
| printf("\\Kba80_pick Transmit BA80: Pick\n"); |
| break; |
| case K_BA80_PRINT: |
| printf("\\Kba80_print Transmit BA80: Print\n"); |
| break; |
| case K_BA80_PUT: |
| printf("\\Kba80_put Transmit BA80: Put\n"); |
| break; |
| case K_BA80_REFRESH: |
| printf("\\Kba80_refresh Transmit BA80: Refresh \n"); |
| break; |
| case K_BA80_RESET: |
| printf("\\Kba80_reset Transmit BA80: Reset\n"); |
| break; |
| case K_BA80_RUBOUT: |
| printf("\\Kba80_rubout Transmit BA80: Rubout\n"); |
| break; |
| case K_BA80_SAVE: |
| printf("\\Kba80_save Transmit BA80: Save\n"); |
| break; |
| case K_BA80_SOFTKEY1: |
| printf("\\Kba80_softkey1 Transmit BA80: Softkey 1\n"); |
| break; |
| case K_BA80_SOFTKEY2: |
| printf("\\Kba80_softkey2 Transmit BA80: Softkey 2\n"); |
| break; |
| case K_BA80_SOFTKEY3: |
| printf("\\Kba80_softkey3 Transmit BA80: Softkey 3\n"); |
| break; |
| case K_BA80_SOFTKEY4: |
| printf("\\Kba80_softkey4 Transmit BA80: Softkey 4\n"); |
| break; |
| case K_BA80_SOFTKEY5: |
| printf("\\Kba80_softkey5 Transmit BA80: Softkey 5\n"); |
| break; |
| case K_BA80_SOFTKEY6: |
| printf("\\Kba80_softkey6 Transmit BA80: Softkey 6\n"); |
| break; |
| case K_BA80_SOFTKEY7: |
| printf("\\Kba80_softkey7 Transmit BA80: Softkey 7\n"); |
| break; |
| case K_BA80_SOFTKEY8: |
| printf("\\Kba80_softkey8 Transmit BA80: Softkey 8\n"); |
| break; |
| case K_BA80_SOFTKEY9: |
| printf("\\Kba80_softkey9 Transmit BA80: Softkey 9\n"); |
| break; |
| case K_BA80_UNDO: |
| printf("\\Kba80_undo Transmit BA80: Undo\n"); |
| break; |
| |
| case K_I31_F01: |
| printf("\\Ki31_f01 Transmit IBM 31xx: F1\n"); |
| break; |
| case K_I31_F02: |
| printf("\\Ki31_f02 Transmit IBM 31xx: F2\n"); |
| break; |
| case K_I31_F03: |
| printf("\\Ki31_f03 Transmit IBM 31xx: F3\n"); |
| break; |
| case K_I31_F04: |
| printf("\\Ki31_f04 Transmit IBM 31xx: F4\n"); |
| break; |
| case K_I31_F05: |
| printf("\\Ki31_f05 Transmit IBM 31xx: F5\n"); |
| break; |
| case K_I31_F06: |
| printf("\\Ki31_f06 Transmit IBM 31xx: F6\n"); |
| break; |
| case K_I31_F07: |
| printf("\\Ki31_f07 Transmit IBM 31xx: F7\n"); |
| break; |
| case K_I31_F08: |
| printf("\\Ki31_f08 Transmit IBM 31xx: F8\n"); |
| break; |
| case K_I31_F09: |
| printf("\\Ki31_f09 Transmit IBM 31xx: F9\n"); |
| break; |
| case K_I31_F10: |
| printf("\\Ki31_f10 Transmit IBM 31xx: F10\n"); |
| break; |
| case K_I31_F11: |
| printf("\\Ki31_f11 Transmit IBM 31xx: F11\n"); |
| break; |
| case K_I31_F12: |
| printf("\\Ki31_f12 Transmit IBM 31xx: F12\n"); |
| break; |
| case K_I31_F13: |
| printf("\\Ki31_f13 Transmit IBM 31xx: F13\n"); |
| break; |
| case K_I31_F14: |
| printf("\\Ki31_f14 Transmit IBM 31xx: F14\n"); |
| break; |
| case K_I31_F15: |
| printf("\\Ki31_f15 Transmit IBM 31xx: F15\n"); |
| break; |
| case K_I31_F16: |
| printf("\\Ki31_f16 Transmit IBM 31xx: F16\n"); |
| break; |
| case K_I31_F17: |
| printf("\\Ki31_f17 Transmit IBM 31xx: F17\n"); |
| break; |
| case K_I31_F18: |
| printf("\\Ki31_f18 Transmit IBM 31xx: F18\n"); |
| break; |
| case K_I31_F19: |
| printf("\\Ki31_f19 Transmit IBM 31xx: F19\n"); |
| break; |
| case K_I31_F20: |
| printf("\\Ki31_f20 Transmit IBM 31xx: F20\n"); |
| break; |
| case K_I31_F21: |
| printf("\\Ki31_f21 Transmit IBM 31xx: F21\n"); |
| break; |
| case K_I31_F22: |
| printf("\\Ki31_f22 Transmit IBM 31xx: F22\n"); |
| break; |
| case K_I31_F23: |
| printf("\\Ki31_f23 Transmit IBM 31xx: F23\n"); |
| break; |
| case K_I31_F24: |
| printf("\\Ki31_f24 Transmit IBM 31xx: F24\n"); |
| break; |
| case K_I31_F25: |
| printf("\\Ki31_f25 Transmit IBM 31xx: F25\n"); |
| break; |
| case K_I31_F26: |
| printf("\\Ki31_f26 Transmit IBM 31xx: F26\n"); |
| break; |
| case K_I31_F27: |
| printf("\\Ki31_f27 Transmit IBM 31xx: F27\n"); |
| break; |
| case K_I31_F28: |
| printf("\\Ki31_f28 Transmit IBM 31xx: F28\n"); |
| break; |
| case K_I31_F29: |
| printf("\\Ki31_f29 Transmit IBM 31xx: F29\n"); |
| break; |
| case K_I31_F30: |
| printf("\\Ki31_f30 Transmit IBM 31xx: F30\n"); |
| break; |
| case K_I31_F31: |
| printf("\\Ki31_f31 Transmit IBM 31xx: F31\n"); |
| break; |
| case K_I31_F32: |
| printf("\\Ki31_f32 Transmit IBM 31xx: F32\n"); |
| break; |
| case K_I31_F33: |
| printf("\\Ki31_f33 Transmit IBM 31xx: F33\n"); |
| break; |
| case K_I31_F34: |
| printf("\\Ki31_f34 Transmit IBM 31xx: F34\n"); |
| break; |
| case K_I31_F35: |
| printf("\\Ki31_f35 Transmit IBM 31xx: F35\n"); |
| break; |
| case K_I31_F36: |
| printf("\\Ki31_f36 Transmit IBM 31xx: F36\n"); |
| break; |
| case K_I31_PA1: |
| printf("\\Ki31_pa1 Transmit IBM 31xx: PA1\n"); |
| break; |
| case K_I31_PA2: |
| printf("\\Ki31_pa2 Transmit IBM 31xx: PA2\n"); |
| break; |
| case K_I31_PA3: |
| printf("\\Ki31_pa3 Transmit IBM 31xx: PA3\n"); |
| break; |
| case K_I31_RESET: |
| printf("\\Ki31_reset Transmit IBM 31xx: Reset\n"); |
| break; |
| case K_I31_JUMP: |
| printf("\\Ki31_jump Transmit IBM 31xx: Jump\n"); |
| break; |
| case K_I31_CLEAR: |
| printf("\\Ki31_clear Transmit IBM 31xx: Clear\n"); |
| break; |
| case K_I31_ERASE_EOF: |
| printf("\\Ki31_erase_eof Transmit IBM 31xx: Erase to End of Field\n"); |
| break; |
| case K_I31_ERASE_EOP: |
| printf("\\Ki31_eop Transmit IBM 31xx: Erase to End of Page\n"); |
| break; |
| case K_I31_ERASE_INP: |
| printf("\\Ki31_inp Transmit IBM 31xx: Erase Input Operation\n"); |
| break; |
| case K_I31_INSERT_CHAR: |
| printf("\\Ki31_ins_char Transmit IBM 31xx: Insert Character\n"); |
| break; |
| case K_I31_INSERT_SPACE: |
| printf("\\Ki31_ins_space Transmit IBM 31xx: Insert Space\n"); |
| break; |
| case K_I31_DELETE: |
| printf("\\Ki31_delete Transmit IBM 31xx: Delete Character\n"); |
| break; |
| case K_I31_INS_LN: |
| printf("\\Ki31_ins_line Transmit IBM 31xx: Insert Line\n"); |
| break; |
| case K_I31_DEL_LN: |
| printf("\\Ki31_del_ln Transmit IBM 31xx: Delete Line\n"); |
| break; |
| case K_I31_PRINT_LINE: |
| printf("\\Ki31_prt_line Transmit IBM 31xx: Print Line\n"); |
| break; |
| case K_I31_PRINT_MSG: |
| printf("\\Ki31_prt_msg Transmit IBM 31xx: Print Message\n"); |
| break; |
| case K_I31_PRINT_SHIFT: |
| printf("\\Ki31_prt_shift Transmit IBM 31xx: Print Shift\n"); |
| break; |
| case K_I31_CANCEL: |
| printf("\\Ki31_cancel Transmit IBM 31xx: Cancel\n"); |
| break; |
| case K_I31_SEND_LINE: |
| printf("\\Ki31_send_line Transmit IBM 31xx: Send Line\n"); |
| break; |
| case K_I31_SEND_MSG: |
| printf("\\Ki31_send_msg Transmit IBM 31xx: Send Message\n"); |
| break; |
| case K_I31_SEND_PAGE: |
| printf("\\Ki31_send_page Transmit IBM 31xx: Send Page\n"); |
| break; |
| case K_I31_HOME: |
| printf("\\Ki31_home Transmit IBM 31xx: Home\n"); |
| break; |
| case K_I31_BACK_TAB: |
| printf("\\Ki31_back_tab Transmit IBM 31xx: Back Tab\n"); |
| break; |
| case K_SUN_STOP: |
| printf("\\Ksunstop Transmit SUN Console: Stop\n"); |
| break; |
| case K_SUN_AGAIN: |
| printf("\\Ksunagain Transmit SUN Console: Again\n"); |
| break; |
| case K_SUN_PROPS: |
| printf("\\Ksunprops Transmit SUN Console: Props\n"); |
| break; |
| case K_SUN_UNDO: |
| printf("\\Ksunundo Transmit SUN Console: Undo\n"); |
| break; |
| case K_SUN_FRONT: |
| printf("\\Ksunfront Transmit SUN Console: Front\n"); |
| break; |
| case K_SUN_COPY: |
| printf("\\Ksuncopy Transmit SUN Console: Copy\n"); |
| break; |
| case K_SUN_OPEN: |
| printf("\\Ksunopen Transmit SUN Console: Open\n"); |
| break; |
| case K_SUN_PASTE: |
| printf("\\Ksunpaste Transmit SUN Console: Paste\n"); |
| break; |
| case K_SUN_FIND: |
| printf("\\Ksunfind Transmit SUN Console: Find\n"); |
| break; |
| case K_SUN_CUT: |
| printf("\\Ksuncut Transmit SUN Console: Cut\n"); |
| break; |
| case K_SUN_HELP: |
| printf("\\Ksunhelp Transmit SUN Console: Help\n"); |
| break; |
| |
| default: |
| printf("No additional help available for this kverb\n"); |
| } |
| printf("\n"); |
| |
| /* This is not the proper way to do it since it doesn't show */ |
| /* all emulations, nor does it show the special modes, but it */ |
| /* is better than nothing. */ |
| |
| printf("Current bindings:\n"); |
| found = 0; |
| for (i = 256; i < KMSIZE ; i++) { |
| con_event evt = mapkey(i); |
| if (evt.type != kverb) |
| continue; |
| if ((evt.kverb.id & ~F_KVERB) == xx) { |
| found = 1; |
| printf(" \\%-4d - %s\n",i,keyname(i)); |
| } |
| } |
| #ifdef OS2MOUSE |
| for ( button = 0 ; button < MMBUTTONMAX ; button++ ) |
| for ( event = 0 ; event < MMEVENTSIZE ; event++ ) |
| if ( mousemap[button][event].type == kverb ) { |
| if ( (mousemap[button][event].kverb.id & ~F_KVERB) == xx ) { |
| found = 1; |
| printf(" Mouse - %s\n",mousename(button,event)); |
| } |
| } |
| #endif /* OS2MOUSE */ |
| |
| if ( !found ) { |
| printf(" (none)\n"); |
| } |
| return(0); |
| } |
| #endif /* NOKVERBS */ |
| #endif /* OS2 */ |
| |
| #ifndef NOXFER |
| /* D O H R M T -- Give help about REMOTE command */ |
| |
| static char *hrset[] = { |
| "Syntax: REMOTE SET parameter value", |
| "Example: REMOTE SET FILE TYPE BINARY", |
| " Asks the Kermit server to set the named parameter to the given value.", |
| " Equivalent to typing the corresponding SET command directly to the other", |
| " Kermit if it were in interactive mode.", "" }; |
| |
| int |
| dohrmt(xx) int xx; { |
| int x; |
| if (xx == -3) return(hmsga(hmhrmt)); |
| if (xx < 0) return(xx); |
| if ((x = cmcfm()) < 0) return(x); |
| switch (xx) { |
| |
| case XZCPY: |
| return(hmsg("Syntax: REMOTE COPY source destination\n\ |
| Asks the Kermit server to copy the source file to destination.\n\ |
| Synonym: RCOPY.")); |
| |
| case XZCWD: |
| #ifdef NEWFTP |
| return(hmsg("Syntax: REMOTE CD [ name ]\n\ |
| Asks the Kermit or FTP server to change its working directory or device.\n\ |
| If the device or directory name is omitted, restore the default.\n\ |
| Synonym: RCD.")); |
| #else |
| return(hmsg("Syntax: REMOTE CD [ name ]\n\ |
| Asks the Kermit server to change its working directory or device.\n\ |
| If the device or directory name is omitted, restore the default.\n\ |
| Synonym: RCD.")); |
| #endif /* NEWFTP */ |
| |
| case XZDEL: |
| #ifdef NEWFTP |
| return(hmsg("Syntax: REMOTE DELETE filespec\n\ |
| Asks the Kermit or FTP server to delete the named file(s).\n\ |
| Synonym: RDEL.")); |
| #else |
| return(hmsg("Syntax: REMOTE DELETE filespec\n\ |
| Asks the Kermit server to delete the named file(s).\n\ |
| Synonym: RDEL.")); |
| #endif /* NEWFTP */ |
| |
| case XZMKD: |
| #ifdef NEWFTP |
| return(hmsg("Syntax: REMOTE MKDIR directory-name\n\ |
| Asks the Kermit or FTP server to create the named directory.\n\ |
| Synonym: RMKDIR.")); |
| #else |
| return(hmsg("Syntax: REMOTE MKDIR directory-name\n\ |
| Asks the Kermit server to create the named directory.\n\ |
| Synonym: RMKDIR.")); |
| #endif /* NEWFTP */ |
| |
| case XZRMD: |
| #ifdef NEWFTP |
| return(hmsg("Syntax: REMOTE RMDIR directory-name\n\ |
| Asks the Kermit or FTP server to remove the named directory.\n\ |
| Synonym: RRMDIR.")); |
| #else |
| return(hmsg("Syntax: REMOTE RMDIR directory-name\n\ |
| Asks the Kermit server to remove the named directory.\n\ |
| Synonym: RRMDIR.")); |
| #endif /* NEWFTP */ |
| |
| case XZDIR: |
| #ifdef NEWFTP |
| return(hmsg("Syntax: REMOTE DIRECTORY [ filespec ]\n\ |
| Asks the Kermit or FTP server to provide a directory listing of the named\n\ |
| file(s) or if no file specification is given, of all files in its current\n\ |
| directory. Synonym: RDIR.")); |
| #else |
| return(hmsg("Syntax: REMOTE DIRECTORY [ filespec ]\n\ |
| Asks the Kermit server to provide a directory listing of the named\n\ |
| file(s) or if no file specification is given, of all files in its current\n\ |
| directory. Synonym: RDIR.")); |
| #endif /* NEWFTP */ |
| |
| case XZHLP: |
| #ifdef NEWFTP |
| return(hmsg("Syntax: REMOTE HELP\n\ |
| Asks the Kermit or FTP server to list the services it provides.\n\ |
| Synonym: RHELP.")); |
| #else |
| return(hmsg("Syntax: REMOTE HELP\n\ |
| Asks the Kermit server to list the services it provides.\n\ |
| Synonym: RHELP.")); |
| #endif /* NEWFTP */ |
| |
| case XZHOS: |
| return(hmsg("Syntax: REMOTE HOST command\n\ |
| Sends a command to the other computer in its own command language\n\ |
| through the Kermit server that is running on that host. Synonym: RHOST.")); |
| |
| #ifndef NOFRILLS |
| case XZKER: |
| return(hmsg("Syntax: REMOTE KERMIT command\n\ |
| Sends a command to the remote Kermit server in its own command language.\n\ |
| Synonym: RKERMIT.")); |
| |
| case XZLGI: |
| return(hmsg("Syntax: REMOTE LOGIN user password [ account ]\n\ |
| Logs in to a remote Kermit server that requires you login. Note: RLOGIN\n\ |
| is NOT a synonym for REMOTE LOGIN.")); |
| |
| case XZLGO: |
| return(hmsg("Syntax: REMOTE LOGOUT\n\ |
| Logs out from a remote Kermit server to which you have previously logged in." |
| )); |
| |
| case XZPRI: |
| return(hmsg("Syntax: REMOTE PRINT filespec [ options ]\n\ |
| Sends the specified file(s) to the remote Kermit and ask it to have the\n\ |
| file printed on the remote system's printer, using any specified options.\n\ |
| Synonym: RPRINT.")); |
| #endif /* NOFRILLS */ |
| |
| case XZREN: |
| #ifdef NEWFTP |
| return(hmsg("Syntax: REMOTE RENAME filespec newname\n\ |
| Asks the Kermit or FTP server to rename the file. Synonym: RRENAME.")); |
| #else |
| return(hmsg("Syntax: REMOTE RENAME filespec newname\n\ |
| Asks the Kermit server to rename the file. Synonym: RRENAME.")); |
| #endif /* NEWFTP */ |
| |
| case XZSET: |
| return(hmsga(hrset)); |
| |
| case XZSPA: |
| return(hmsg("Syntax: REMOTE SPACE [ name ]\n\ |
| Asks the Kermit server to tell you about its disk space on the current\n\ |
| disk or directory, or in the one that you name. Synonym: RSPACE.")); |
| |
| #ifndef NOFRILLS |
| case XZTYP: |
| #ifdef NEWFTP |
| return(hmsg("Syntax: REMOTE TYPE file\n\ |
| Asks the Kermit or FTP server to send the named file to your screen.\n\ |
| Synonym: RTYPE.")); |
| #else |
| return(hmsg("Syntax: REMOTE TYPE file\n\ |
| Asks the Kermit server to send the named file(s) to your screen.\n\ |
| Synonym: RTYPE.")); |
| #endif /* NEWFTP */ |
| |
| |
| case XZWHO: |
| return(hmsg("Syntax: REMOTE WHO [ name ]\n\ |
| Asks the Kermit server to list who's logged in, or to give information\n\ |
| about the named user. Synonym: RWHO.")); |
| #endif /* NOFRILLS */ |
| |
| #ifndef NOSPL |
| case XZQUE: |
| return(hmsg( |
| "Syntax: [ REMOTE ] QUERY { KERMIT, SYSTEM, USER } variable-name\n\ |
| Asks the Kermit server to send the value of the named variable of the\n\ |
| given type, and make it available in the \\v(query) variable. When the\n\ |
| type is KERMIT functions may also be specified as if they were variables.")); |
| |
| case XZASG: |
| return(hmsg( |
| "Syntax: REMOTE ASSIGN variable-name [ value ]\n\ |
| Assigns the given value to the named global variable on the server.\n\ |
| Synonyms: RASG, RASSIGN.")); |
| #endif /* NOSPL */ |
| |
| case XZPWD: |
| return(hmsg( |
| #ifdef NEWFTP |
| "Syntax: REMOTE PWD\n\ |
| Asks the Kermit server to display its current working directory.\n\ |
| Synonym: RPWD.")); |
| #else |
| "Syntax: REMOTE PWD\n\ |
| Asks the Kermit or FTP server to display its current working directory.\n\ |
| Synonym: RPWD.")); |
| #endif /* NEWFTP */ |
| |
| case XZXIT: |
| #ifdef NEWFTP |
| return(hmsg("Syntax: REMOTE EXIT\n\ |
| Asks the Kermit server to exit (without disconnecting), or closes an FTP\n\ |
| connection. Synonym: REXIT, and (for FTP only) BYE, FTP BYE.")); |
| #else |
| return(hmsg("Syntax: REMOTE EXIT\n\ |
| Asks the Kermit server to exit. Synonym: REXIT.")); |
| #endif /* NEWFTP */ |
| |
| default: |
| if ((x = cmcfm()) < 0) return(x); |
| printf("?Sorry, no help available - \"%s\"\n",cmdbuf); |
| return(-9); |
| } |
| } |
| #endif /* NOXFER */ |
| #endif /* NOHELP */ |
| #endif /* NOICP */ |