As of C-Kermit version: 7.0.196
This file created: 8 February 2000
This file last updated:
-Mon Sep 13 08:52:41 2010
+Mon Aug 8 10:39:18 2011
Authors: Frank da Cruz and Christine M. Gianone
with a message, but without changing the exit status from what it
normally would have been, use the \v(exitstatus) variable, e.g.:
- exit \v(existatus) Goodbye from \v(cmdfile).
+ exit \v(exitstatus) Goodbye from \v(cmdfile).
The EXIT status is returned to the system shell or whatever other
process invoked C-Kermit, e.g. in UNIX:
first PDIAL command in a PDIAL sequence. Values are:
-2: Unknown because TAPI handled the phone number translation.
- -1: Unknown because some kind of error occured.
+ -1: Unknown because some kind of error occurred.
0: Internal within PBX.
1: Toll-free.
2: Local within calling area.
disabled.
SET TELNET ENVIRONMENT DISPLAY is used to set the DISPLAY variable that
- is sent to the host, as well as the the XDISPLAY location.
+ is sent to the host, as well as the XDISPLAY location.
2.3.5. Connecting to Raw TCP Sockets
Make an secure private connection with SSL (only if SSL support
is included in your version of Kermit). In this case the port
name might need to be https rather than http, e.g. "set host
- secureserver.xyxcorp.com https /ssl".
+ secureserver.xyzcorp.com https /ssl".
/TLS
Make an secure private connection with TLS (only if TLS support
mailed or printed and then deleted. This has the advantages of (a) not
requiring a temporary file, and (b) allowing mail to have a proper
subject in place of the filename. Temporary files were bad not only
- because they required (a) space, and (b) writeability of the current
+ because they required (a) space, and (b) writability of the current
directory, but also because using them could result in wiping out an
existing file. See [467]Section 4.7 for more about SEND /MAIL and SEND
/PRINT.
However, we can use some fairly-well established file naming
conventions for this purpose. C-Kermit 7.0 lets you provide lists of
filename patterns that are used to separately determine the file type
- for each individual file being transfered. A pattern is a string,
+ for each individual file being transferred. A pattern is a string,
possibly containing the special characters "*" (asterisk, which matches
any string of zero of more characters) and/or "?" (question mark, which
matches any single character). For example "a*b" matches all files
/DOTFILES
(UNIX and OS-9 only) Normally files whose names begin with "."
- are skipped when matching wildcards that do not also beging with
+ are skipped when matching wildcards that do not also begin with
".". Include /DOTFILES to force these files to be included too.
/RECURSIVE
CP855
This PC Code Page contains all the Cyrillic letters that are
also in ISO 8859-5, and is therefore useful for non-Russian
- Cyrillic text (Ukrainian, Belorussian, etc), unlike CP866, which
+ Cyrillic text (Ukrainian, Belarusian, etc), unlike CP866, which
has a smaller repertoire of Cyrillic letters.
CP1251
break characters unless you put them in the include list.
Suppose, for example, you have a file in which each line is a
Tab-separated list of words, numbers, or phrases that might
- contain puncuation, special characters like $ and @, 8-bit bit
+ contain punctuation, special characters like $ and @, 8-bit bit
characters, etc (like something that might have been exported
from a spreadsheet or database), and you want to split only on
Tab; here is a way (\m(line) is a line read from the file):
IF WRITEABLE name
Succeeds if name is the name of an existing file or directory
- that is writeable, e.g.:
+ that is writable, e.g.:
if not writeable \v(lockdir) echo Please read installation instructions!
creating \&b[] if necessary or, if \&b[] is already
declared, stopping early if its size is less than 14.
- ARRAY COPY \&a[17] \&b
+ ARRAY COPY \&a[17:] \&b
This copies all the elements of \&a[] starting with 17
until the last to \&b[], creating \&b[] if necessary or,
if \&b[] is already declared, stopping early if \&b[] is
- not big enough.
+ not big enough. Suppose, for example, you have a script
+ whose arguments are string1, string2, and a list of files,
+ whose job is to change all occurrences of string1 to
+ string2 in each of the files. But if the list of files is
+ omitted, then "*" (all files in the current directory) is
+ assumed:
+
+if < \v(argc) 3 exit 1 "Usage: \%0 string1 string2 [ files ]"
+if not def \%3 {
+ .n := \ffiles(*,&a)
+} else {
+ array copy &_[3:] &a
+ .n := \fdim(&a)
+}
+for i 1 n 1 {
+ ! cat \&a[i] | sed -e "s|\%1|\%2|g" > /tmp/_x
+ rename /tmp/_x \&a[i]
+}
+
+ ARRAY COPY \&a[17] \&b
+ Same as previous example.
ARRAY CLEAR arrayname
Sets all the elements of the array to the empty value. You may
* An attempt to set the value of an array element that is out of
bounds or that has not been declared simply fails.
- C programmers expect an array of size nto have elements 0 through n-1.
+ C programmers expect an array of size n to have elements 0 through n-1.
Fortran programmers expect the same array to have elements 1 through n.
C-Kermit accommodates both styles; when you declare an array of size n,
- it has n=1 elements, 0 through n, and you can use the array in your
+ it has n+1 elements, 0 through n, and you can use the array in your
accustomed manner, 0-based or 1-based.
However, note that C-Kermit has certain biases towards 1-based arrays:
shell. In VMS and other non-UNIX platforms, the Kerbang line has no
effect and can be omitted.
- It might be desireable for a script to know whether it has been invoked
+ It might be desirable for a script to know whether it has been invoked
directly from the shell (as a Kerbang script) or by a TAKE command
given to the Kermit prompt or in a Kermit command file or macro. This
can be done as in this example:
the rules of precedence. All Boolean assertions are always
evaluated; there is no "early stopping" property and therefore no
question about when or if side effects will occur -- if any Boolean
- assertion has side effects, they will always occur.
+ assertion has side effects, they will always occur. (Early stopping
+ is, however, possible with the [631]S-Expression IF introduced in
+ C-Kermit 8.0.)
Constructions of arbitrary complexity are possible, within reason.
- Also see [631]Section 7.4 for new IF / WHILE conditions.
+ Also see [632]Section 7.4 for new IF / WHILE conditions.
7.21. Screen Formatting and Cursor Control
7.23. Floating-Point Arithmetic
+ For a more convenient way of dealing with floating-point numbers
+ than the one described here, see the [633]C-Kermit 8.0 update notes,
+ the section on [634]S-Expressions.
+
C-Kermit 7.0 adds limited support for floating-point numbers (numbers
that have fractional parts, like 3.141592653). This support is provided
through a small repertoire of functions and in Boolean expressions that
result to \ffpround(xxx,0) (to round).
Floating-point numbers (or variables or functions that return them) can
- be used in Boolean expressions (see [632]Section 7.20.2) that compare
+ be used in Boolean expressions (see [635]Section 7.20.2) that compare
numbers:
= x y
and is executed otherwise.
Floating-point numbers can be sorted using ARRAY SORT /NUMERIC (see
- [633]Section 7.10.5 ).
+ [636]Section 7.10.5 ).
Two floating-point constants are provided:
Syntactically, \m(name) and \s(name) differ only in that the sequence
[*] at the end of the name (where * is any sequence of 0 or more
characters) is treated as substring notation in \s(name), but is
- considered part of the name in \m(name) (to see why, see [634]Section
+ considered part of the name in \m(name) (to see why, see [637]Section
7.10.9).
7.26. New WAIT Command Options
heading is the time of the most recent event (including when the
program started).
- See [635]Section 1.10, where the \v(kbchar) variable is explained. This
+ See [638]Section 1.10, where the \v(kbchar) variable is explained. This
lets you modify a loop like the one above to also accept
single-character commands, which interrupt the WAIT, and dispatch
accordingly. For example:
8. USING OTHER FILE TRANSFER PROTOCOLS
In C-Kermit 7.0, alternative protocols can be selected using switches.
- Switches are described in [636]Section 1.5; the use of
- protocol-selection switches is described in [637]Section 4.7.1.
+ Switches are described in [639]Section 1.5; the use of
+ protocol-selection switches is described in [640]Section 4.7.1.
Example:
send /binary /protocol:zmodem x.tar.gz
where a keyword (rather than a single letter) specifies the function,
and if an argument is to be included, it is separated by a colon (or
equal sign). Most of the new extended-format command-line options are
- only for use with the Internet Kermit Service Daemon; see the [638]IKSD
+ only for use with the Internet Kermit Service Daemon; see the [641]IKSD
Administration Guide for details. However, several of them are also
general in nature:
become the name of the script file, rather than the pathname of
the C-Kermit program, which is its normal value. Primarily for
use in the top line of "Kerbang" scripts in UNIX (see
- [639]Section 7.19). Example from UNIX command line:
+ [642]Section 7.19). Example from UNIX command line:
$ kermit [ regular kermit args ] + filename
kermit -L -s "*.c"
In UNIX only, "kermit -L -s ." means to send the current
- directory tree. See [640]Sections 4.10 and [641]4.11 about
+ directory tree. See [643]Sections 4.10 and [644]4.11 about
recursive file transfer.
-V
- Equivalent to SET FILE PATTERNS OFF ([642]Section 4.3) and SET
+ Equivalent to SET FILE PATTERNS OFF ([645]Section 4.3) and SET
TRANSFER MODE MANUAL. In other words, take the FILE TYPE setting
literally. For example, "kermit -VT oofa.bin" means send the
file in Text mode, no matter what its name is and no matter
thus it is called G-Kermit (for GNU Kermit). All it does is send and
receive files, period. You can find it at:
- [643]http://www.columbia.edu/kermit/gkermit.html
+ [646]http://www.columbia.edu/kermit/gkermit.html
Where the C-Kermit 7.0 binary might be anywhere from 1 to 3 million
bytes in size, the G-Kermit binary ranges from 30K to 100K, depending
In such cases G-Kermit might be preferred since it generally starts up
faster, and yet transfers files just as fast on most (but not
necessarily all) kinds of connections; for example, it supports
- streaming ([644]Section 4.20).
+ streaming ([647]Section 4.20).
G-Kermit is also handy for bootstrapping. It is easier to load on a new
computer than C-Kermit -- it fits on a floppy diskette with plenty of
diskette on Xenix with "dosread", and then use G-Kermit to receive
C-Kermit (which does not fit on a diskette). If diskettes aren't an
option, other bootstrapping methods are possible too -- see the
- [645]G-Kermit web page for details.
+ [648]G-Kermit web page for details.
III. APPENDICES
IV. ERRATA & CORRIGENDA
- The following errors in [646]Using C-Kermit, Second Edition, first
+ The following errors in [649]Using C-Kermit, Second Edition, first
printing, have been noted.
First, some missing acknowledgements for C-Kermit 6.0: JE Jones of
393 \Fverify() description. The 3rd sentence could be stated more clearly
as "If all characters in string2 are also in string1, 0 is returned."
398 Copying \ffiles() results to an array before is not required as of
- C-Kermit 7.0 (see [647]Section 7.3).
+ C-Kermit 7.0 (see [650]Section 7.3).
403 In "(\%a + 3) * (\%b 5)", a minus sign is missing between b and 5.
407 C-Kermit 7.0 no longer supports multiline GET. Change
"get, \%1, \%2" to "get {\%1} {\%2}" or "get /as:{\%2} {\%1}".
suggestions for improvements, additional index entries, and any other
comments:
- [648]kermit@columbia.edu
+ [651]kermit@columbia.edu
APPENDIX V. ADDITIONAL COPYRIGHT NOTICES
/* */
/* Copyright (c) 1995 by Oy Online Solutions Ltd. */
/* */
-/* Distribution of this source code is strictly forbbidden. Use of this */
+/* Distribution of this source code is strictly forbidden. Use of this */
/* source code is granted to the University of Columbia C-Kermit project */
/* to be distributed in binary format only. Please familiarize yourself */
/* with the accompanying LICENSE.P file. */
The license and distribution terms for any publically available version
or derivative of this code cannot be changed. i.e. this code cannot
- simply be copied and put under another distrubution license [including
+ simply be copied and put under another distribution license [including
the GNU Public License.]
The reason behind this being stated in this direct manner is past
Used for Big Number library in Kermit 95 (k95crypt.dll, k2crypt.dll).
- [ [649]Top ] [ [650]C-Kermit ] [ [651]Kermit Home ]
- __________________________________________________________________
+ [ [652]Top ] [ [653]C-Kermit ] [ [654]Kermit Home ]
__________________________________________________________________
- CKERMIT70.HTM / The Kermit Project / Columbia University / 8 Feb 2000
+ CKERMIT70.HTM / The Kermit Project / Columbia University / 8 Feb 2000 /
+ Last update: 8 Aug 2011
References
628. http://www.columbia.edu/kermit/ckermit70.html#x7.5
629. http://www.columbia.edu/kermit/ckb2.htm
630. http://www.columbia.edu/kermit/ckermit80.html
- 631. http://www.columbia.edu/kermit/ckermit70.html#x7.4
- 632. http://www.columbia.edu/kermit/ckermit70.html#x7.20.2
- 633. http://www.columbia.edu/kermit/ckermit70.html#x7.10.5
- 634. http://www.columbia.edu/kermit/ckermit70.html#x7.10.9
- 635. http://www.columbia.edu/kermit/ckermit70.html#x1.10
- 636. http://www.columbia.edu/kermit/ckermit70.html#x1.5
- 637. http://www.columbia.edu/kermit/ckermit70.html#x4.7.1
- 638. http://www.columbia.edu/kermit/iksd.html
- 639. http://www.columbia.edu/kermit/ckermit70.html#x7.19
- 640. http://www.columbia.edu/kermit/ckermit70.html#x4.10
- 641. http://www.columbia.edu/kermit/ckermit70.html#x4.11
- 642. http://www.columbia.edu/kermit/ckermit70.html#x4.3
- 643. http://www.columbia.edu/kermit/gkermit.html
- 644. http://www.columbia.edu/kermit/ckermit70.html#x4.20
- 645. http://www.columbia.edu/kermit/gkermit.html
- 646. http://www.columbia.edu/kermit/ckb2.htm
- 647. http://www.columbia.edu/kermit/ckermit70.html#x7.3
- 648. mailto:kermit@columbia.edu
- 649. http://www.columbia.edu/kermit/ckermit70.html#top
- 650. http://www.columbia.edu/kermit/ckermit.html
- 651. http://www.columbia.edu/kermit/index.html
+ 631. http://www.columbia.edu/kermit/ckermit80.html#x9
+ 632. http://www.columbia.edu/kermit/ckermit70.html#x7.4
+ 633. http://www.columbia.edu/kermit/ckermit80.html
+ 634. http://www.columbia.edu/kermit/ckermit80.html#x9
+ 635. http://www.columbia.edu/kermit/ckermit70.html#x7.20.2
+ 636. http://www.columbia.edu/kermit/ckermit70.html#x7.10.5
+ 637. http://www.columbia.edu/kermit/ckermit70.html#x7.10.9
+ 638. http://www.columbia.edu/kermit/ckermit70.html#x1.10
+ 639. http://www.columbia.edu/kermit/ckermit70.html#x1.5
+ 640. http://www.columbia.edu/kermit/ckermit70.html#x4.7.1
+ 641. http://www.columbia.edu/kermit/iksd.html
+ 642. http://www.columbia.edu/kermit/ckermit70.html#x7.19
+ 643. http://www.columbia.edu/kermit/ckermit70.html#x4.10
+ 644. http://www.columbia.edu/kermit/ckermit70.html#x4.11
+ 645. http://www.columbia.edu/kermit/ckermit70.html#x4.3
+ 646. http://www.columbia.edu/kermit/gkermit.html
+ 647. http://www.columbia.edu/kermit/ckermit70.html#x4.20
+ 648. http://www.columbia.edu/kermit/gkermit.html
+ 649. http://www.columbia.edu/kermit/ckb2.htm
+ 650. http://www.columbia.edu/kermit/ckermit70.html#x7.3
+ 651. mailto:kermit@columbia.edu
+ 652. http://www.columbia.edu/kermit/ckermit70.html#top
+ 653. http://www.columbia.edu/kermit/ckermit.html
+ 654. http://www.columbia.edu/kermit/index.html