Standards-Version: 3.9.6 (no changes)
[ckermit.git] / ckermit70.txt
index 4661a51..a796cfd 100644 (file)
@@ -12,7 +12,7 @@ For C-Kermit 7.0
 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
@@ -1566,7 +1566,7 @@ II. NEW FEATURES
    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:
@@ -3973,7 +3973,7 @@ define HSDIAL {                ; High Speed DIAL
           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.
@@ -4646,7 +4646,7 @@ define HSDIAL {                ; High Speed DIAL
    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
 
@@ -5792,7 +5792,7 @@ SET HOST /PTY {sh -c "grep somestring *.txt"}
           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
@@ -7480,7 +7480,7 @@ SET HOST /PTY {sh -c "grep somestring *.txt"}
    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.
@@ -7625,7 +7625,7 @@ SET HOST /PTY {sh -c "grep somestring *.txt"}
    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
@@ -8597,7 +8597,7 @@ SET HOST /PTY {sh -c "grep somestring *.txt"}
 
    /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
@@ -11389,7 +11389,7 @@ C-Kermit> remote directory | sort +0.22 -0.40
    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):
@@ -13236,7 +13236,7 @@ while true {
 
    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!
 
@@ -13974,11 +13974,31 @@ while true {
                 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
@@ -14142,10 +14162,10 @@ while true {
      * 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:
@@ -15046,7 +15066,7 @@ while true {
    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:
@@ -15330,11 +15350,13 @@ ELSE command-list
        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
 
@@ -15502,6 +15524,10 @@ ELSE command-list
 
   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
@@ -15693,7 +15719,7 @@ ELSE command-list
    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
@@ -15724,7 +15750,7 @@ ELSE command-list
    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:
 
@@ -15867,7 +15893,7 @@ ELSE command-list
    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
@@ -15936,7 +15962,7 @@ ELSE command-list
    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:
@@ -15978,8 +16004,8 @@ ELSE command-list
   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
@@ -16025,7 +16051,7 @@ ELSE command-list
    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:
 
@@ -16150,7 +16176,7 @@ ELSE command-list
           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
 
@@ -16190,11 +16216,11 @@ ELSE command-list
   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
@@ -16226,7 +16252,7 @@ ELSE command-list
    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
@@ -16245,7 +16271,7 @@ ELSE command-list
    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
@@ -16255,7 +16281,7 @@ ELSE command-list
    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
 
@@ -16632,7 +16658,7 @@ CC  Nation            Effective     Mandatory    Notes
 
 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
@@ -16700,7 +16726,7 @@ COVER   "COS" is a misprint.  There is no COS.  Pretend it says "SCO" or "VOS".
 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}".
@@ -16810,7 +16836,7 @@ Index:  Missing entries: SET { SEND, RECEIVE } PATHNAMES, Call waiting, ...
    suggestions for improvements, additional index entries, and any other
    comments:
 
-   [648]kermit@columbia.edu
+   [651]kermit@columbia.edu
 
 APPENDIX V. ADDITIONAL COPYRIGHT NOTICES
 
@@ -16821,7 +16847,7 @@ 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.                                   */
@@ -16962,7 +16988,7 @@ APPENDIX V. ADDITIONAL COPYRIGHT NOTICES
 
    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
@@ -17000,11 +17026,11 @@ APPENDIX V. ADDITIONAL COPYRIGHT NOTICES
 
    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
 
@@ -17638,24 +17664,27 @@ 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