command or program. The built-in command might not behave the way
the platform-specific external one did, but many options are
available for customization. Of course the underlying
- platform-specific command can still be accessed with "!", "@", or
+ platform-specific command can still be accesssed with "!", "@", or
"RUN" wherever the installation does not forbid. In UNIX, the "ls"
- command can be accessed directly as "ls" in C-Kermit. See
+ command can be accesssed directly as "ls" in C-Kermit. See
[352]Section 4.5.1 for details.
7. SEND ? prints a list of switches rather than a list of filenames.
If you want to see a list of filenames, use a (system-dependent)
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:
As of C-Kermit 7.0, in the UNIX version only, the COPY and RENAME
commands are built in and do not call the underlying platform's COPY or
RENAME command. This allows them to work in "NOPUSH" versions and other
- circumstances where it can't access system commands, and it allows file
- copying and renaming to be done portably in scripts. The
+ circumstances where it can't accesss system commands, and it allows
+ file copying and renaming to be done portably in scripts. The
characteristics of the built-in COPY or RENAME include:
* It fails if the source file is a directory or is wild or lacks read
- access.
+ accesss.
* It fails if the source file is the destination file.
* It allows the destination file to be a directory, in which case the
source file is copied (or renamed) into it with the same name.
1.18. The MANUAL Command
- The MANUAL command can be used to access the appropriate Kermit manual
+ The MANUAL command can be used to accesss the appropriate Kermit manual
or other manual. The general syntax is:
MANUAL [ string ]
If the string is omitted, C-Kermit asks the underlying system to
- access the C-Kermit manual using whatever method is appropriate
+ accesss the C-Kermit manual using whatever method is appropriate
for the system.
The specific action depends on the system. In UNIX, a "man" command is
1. Only one READ file and one WRITE file can be open at a time.
2. The READ and WRITE commands are strictly line oriented.
3. These commands can not be used with binary files.
- 4. They do not support read/write access or random access.
+ 4. They do not support read/write accesss or random accesss.
5. The syntax is a bit counterintuitive for programmers.
The new file i/o system allows multiple files to be open at once, in
any desired combination of modes (read/write/append) supported by the
operating system, for line, block (record), or character i/o, for
- sequential or random access, using consistent syntax and conventions.
+ sequential or random accesss, using consistent syntax and conventions.
The new system, however, does not replace the old one, since the old
system still must be used for:
The command to open a file is:
FILE OPEN [ switches ] variable filename
- Opens a file for the type of access specified by the switches,
- or for read-only access if no switches are given. Upon success,
+ Opens a file for the type of accesss specified by the switches,
+ or for read-only accesss if no switches are given. Upon success,
a channel number is assigned to this file and stored in the
given variable so you can refer to the open file in subsequent
i/o commands. If the file can not be opened, the FILE OPEN
The FILE OPEN switches are:
/READ
- Open the file for read access. If no switches are given, /READ
+ Open the file for read accesss. If no switches are given, /READ
is assumed. If the file does not exist or can't be opened for
- read access, the FILE OPEN command fails.
+ read accesss, the FILE OPEN command fails.
/WRITE
Allow writing. If a file of the same name already exists, it is
switch is meaningless (but still can be used) in UNIX. In VMS,
Windows, and OS/2, it inhibits end-of-line processing and
conversion, and so should be used for binary files and/or files
- that are to be accessed in record or character mode rather than
+ that are to be accesssed in record or character mode rather than
line by line.
The variable for the channel number can be any kind of variable: the
The loop works because a relative SEEK outside the file fails.
- It is also possible to use block i/o to manage random-access files with
- fixed-length records (as long as they don't contain NUL characters).
- Suppose, for example, you have a file of "card image" records with
- fixed-field information about customers, such as:
+ It is also possible to use block i/o to manage random-accesss files
+ with fixed-length records (as long as they don't contain NUL
+ characters). Suppose, for example, you have a file of "card image"
+ records with fixed-field information about customers, such as:
Name: Columns 1-32 (column numbers are 1-based)
Address: Columns 33-72
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.
set dial macro xxx
dial xyzcorp
- This defines a DIAL MACRO called xxx, which puts an access code on the
+ This defines a DIAL MACRO called xxx, which puts an accesss code on the
front of the number. Another example might be:
def xxx if equal "\v(modem)" "hayes-1200" return \freplace(\%1,$,{,,,,,})
be busy.
To illustrate the final item, suppose you have a choice among many
- phone service providers; the provider is chosen by dialing an access
+ phone service providers; the provider is chosen by dialing an accesss
code before the number. Different providers might be better (e.g.
cheaper) for certain times of day or days of the week, or for dialing
- certain locations; you can use the DIAL macro to add the access for the
- most desirable provider.
+ certain locations; you can use the DIAL macro to add the accesss for
+ the most desirable provider.
Similarly, when the same number might be reached through multiple
providers, it's possible that one provider might not be able to
Although C-Kermit includes its own Telnet implementation, you might
need to use an external Telnet program to make certain connections;
- perhaps because it has access or security features not available in
+ perhaps because it has accesss or security features not available in
C-Kermit itself. As noted above, the only precautions necessary are
usually:
set host /server *
if fail stop 1 X.25 "set host *" failed
- And then access it from the client as follows:
+ And then accesss it from the client as follows:
set network type x.25
if fail stop 1 Sorry - no X.25 support
open any dialout device when its open count indicates that another
process has it open. SHOW COMM (in QNX only) displays the setting, and
if you have a port open, it also shows the current open count (with
- C-Kermit's own access always counting as 1).
+ C-Kermit's own accesss always counting as 1).
2.12. The Connection Log
On multiuser systems, it is possible to keep a single, shared,
system-wide connection log, but this is not recommended since (a) it
- requires you keep a publicly write-accessible logfile (a glaring target
- for mischief), and (b) it would require each user to log to that file
- and not disable logging. A better method for logging connections, in
- UNIX at least, is syslogging (see [429]ckuins.txt Section 15 and
+ requires you keep a publicly write-accesssible logfile (a glaring
+ target for mischief), and (b) it would require each user to log to that
+ file and not disable logging. A better method for logging connections,
+ in UNIX at least, is syslogging (see [429]ckuins.txt Section 15 and
[430]Section 4.2 of the [431]IKSD Administration Guide for details).
2.13. Automatic Connection-Specific Flow Control Selection
eight headers may be specified.
/USER:name
- In case a page requires a username for access.
+ In case a page requires a username for accesss.
/PASSWORD:password
- In case a page requires a password for access.
+ In case a page requires a password for accesss.
/ARRAY:arrayname
Tells Kermit to store the response headers in the given array,
As noted in the manual, C-Kermit's CONNECT command on UNIX is not a
terminal emulator, but rather a "semitransparent pipe" between the
- terminal or emulator you are using to access C-Kermit, and the remote
+ terminal or emulator you are using to accesss C-Kermit, and the remote
host to which C-Kermit is connected. The "semitransparent" qualifier is
because of character-set translation as well as several actions taken
by the emulator in response to the characters or strings that pass
printing, also called Controller printing (as distinct from Autoprint
or line or screen print). It is intended mainly for use on UNIX
workstation consoles (as opposed to remote logins), but with some care
- can also be used when accessing C-Kermit remotely.
+ can also be used when accesssing C-Kermit remotely.
Transparent printing is related to APC by sharing C-Kermit's built-in
ANSI escape-sequence parser to detect "printer on" and "printer off"
2. Only the 7-bit forms of the escape sequences are supported. The
8-bit CSI C1 control is not recognized.
3. Autoprint is not supported, since this requires a full-fledged
- terminal emulator with direct access to the screen.
+ terminal emulator with direct accesss to the screen.
4. The start-print and stop-print sequences pass through to the screen
(there is no way to avoid this without causing unacceptable delays
or deadlocks in CONNECT mode). Thus if your terminal or emulator
4.2.1.3. SECURITY
- Some sites might not wish to allow access to system commands or
- external programs from within Kermit. Such access, including all the
+ Some sites might not wish to allow accesss to system commands or
+ external programs from within Kermit. Such accesss, including all the
features described here, can be disabled in various ways:
1. When building from source code, include -DNOPUSH among the CFLAGS.
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
4.4. File Permissions
"Permissions" refers to a code associated with a file that specifies
- who is allowed to access it, and in what manner. For example, the
+ who is allowed to accesss it, and in what manner. For example, the
owner, the members of one or more groups, the system administrator, and
everybody else, might be allowed various combinations of Read, Write,
- Append, Execute, or Listing access.
+ Append, Execute, or Listing accesss.
The permission code goes by different names on different platforms. In
UNIX, it might be called the filemode. In VMS, it is called the file
4.4.2.1.1. UNIX
UNIX supports three categories of users, File Owner, Group, and World,
- and three types of file access permission: Read, Write, and Execute.
+ and three types of file accesss permission: Read, Write, and Execute.
Thus, a UNIX file's permissions are expressed in 9 bits.
The system-dependent permission string for UNIX is a 3-digit octal
4.4.2.1.2. VMS
VMS supports four categories of users, System, File Owner, Group, and
- World, and four types of file access permission: Read, Write, Execute,
+ World, and four types of file accesss permission: Read, Write, Execute,
and Delete. Thus, a VMS file's permissions are expressed in 16 bits.
The system-dependent protection string for VMS is a 4-digit hexadecimal
whether the file "foo" exists; and it runs an inferior process, which
might be a problem in some environments for resource and/or security
reasons, and won't work at all in a "nopush" environment (e.g. one in
- which C-Kermit is configured to forbid access to exterior commands and
+ which C-Kermit is configured to forbid accesss to exterior commands and
programs, e.g. in a VMS "captive account").
In C-Kermit 7.0 on VMS and UNIX, and in K95 1.1.19 and later, the
shows the "/tmp/foo" file. If you want to see all "foo" files in
the /tmp tree, do "cd /tmp" and then "dir /recursive foo".
* If a file size of -1 is shown, or date-time of 0000-00-00 00:00:00,
- this means the file was located, but access to information about
+ this means the file was located, but accesss to information about
the file was denied to C-Kermit.
* In VMS, if FOO.DIR;1 is a directory within your current directory,
"directory foo" and "directory [.foo]" list the files in the [.FOO]
wd /headings *.txt
- Of course you can still access your external directory listing program
+ Of course you can still accesss your external directory listing program
by using RUN or "!", e.g. in VMS:
run directory /size/date/protection/except=*.obj oofa.*;0
Chooses buffered file output; this is the default. UNIX does its
normal sort of disk buffering. The optional size specifies
Kermit's own file output buffer size, and therefore the
- frequency of disk accesses (write() system calls) -- the bigger
- the size, the fewer the disk accesses.
+ frequency of disk accessses (write() system calls) -- the bigger
+ the size, the fewer the disk accessses.
SET FILE OUTPUT UNBUFFERED [ size ]
This forces each file output write() call to actually commit the
4.20.2.5. Streaming on X.25 Connections
- We have only limited access to X.25 networks. One trial was performed
+ We have only limited accesss to X.25 networks. One trial was performed
in which the 1MB Solaris 2.4 Sparc executable was transferred over a
SunLink X.25 connection; nothing is known about the actual physical
connection. With a packet length of 8000 and a window size of 30, the
visual aspect of the packet that would be seen by the terminal (or,
more to the point, the emulator, such as K95). This way, only C-Kermit
goes into RECEIVE mode, and not also the terminal emulator through
- which C-Kermit is accessed. And therefore, it is no longer necessary to
- SET TERMINAL AUTODOWNLOAD OFF to prevent multiple Kermits from going
+ which C-Kermit is accesssed. And therefore, it is no longer necessary
+ to SET TERMINAL AUTODOWNLOAD OFF to prevent multiple Kermits from going
into receive mode at once, but of course it is still necessary to
ensure that, when you have multiple Kermits in a chain, that the
desired one receives the autodownload.
started in interactive mode, and would cause it to exit if it
entered server mode via command-line option.) When C-Kermit is
to be the server, you can use { ENABLE, DISABLE } EXIT to
- control the client's access to this feature.
+ control the client's accesss to this feature.
REMOTE MKDIR directory-name
Tells the client to ask the server to create a directory with
When attempting to execute a REMOTE RMDIR, the server can remove only a
single directory, not an entire sequence or tree. The system service
that is called to remove the directory generally requires not only that
- the server process has write delete access, but also that the directory
- contain no files.
+ the server process has write delete accesss, but also that the
+ directory contain no files.
In the future, a REMOTE RMDIR /RECURSIVE command (and the accompanying
protocol) might be added. For now, use the equivalent REMOTE HOST
[547]http://www.unicode.org/
- and access the various online introductions, FAQs, technical reports,
+ and accesss the various online introductions, FAQs, technical reports,
and other information. For greater depth, order the latest version of
the published Unicode Standard. The following overview contains a great
many oversimplifications and perhaps an opinion or two.
bytes in UCS-2 text pose problems for current applications and
transmission methods. And to make matters worse, different hardware
platforms store UCS-2 characters in different byte order. Thus a UCS-2
- file transferred by FTP (or accessed via NFS, etc) between two
+ file transferred by FTP (or accesssed via NFS, etc) between two
computers with different architecture might have its bytes in the wrong
order (or worse; see [549]Section 6.6.5.1 ).
storage. Any officially sanctioned method of doing this is called a UCS
Transformation Format, or UTF. One such method, called UTF-16, is
essentially identical with UCS-2 except that it designates certain code
- values as "escape sequences" (called surrogate pairs) to access
+ values as "escape sequences" (called surrogate pairs) to accesss
characters in other planes without having to use full UCS-4. We won't
discuss UTF-16 further here, since at the moment there are no other
planes. Several other UTF's (such as UTF-1, UTF-2, and UTF-7) have
conversion between ASCII and UTF-8 is no conversion at all, and
applications or platforms (such as Plan 9 from Bell Labs) that use
UTF-8 "for everything" can still run traditional ASCII-only
- applications and be accessed from them. In particular, unlike UCS-2,
+ applications and be accesssed from them. In particular, unlike UCS-2,
ASCII characters are not padded with NUL bytes. But also unlike UCS-2,
there is no transparency for Latin-1 or any other non-ASCII character
set. Every non-ASCII UCS-2 character is represented by a sequence of 2
UTF-8 was first used in Plan 9 and soon will be available in Linux. It
will probably spread from there (Unicode in some form is, of course,
- also used in Windows NT, but only internally -- not for access from
+ also used in Windows NT, but only internally -- not for accesss from
outside).
To use UTF-8 or any other character set that uses 8-bit bytes in your
stated without doubt that C-Kermit's key mapping will not work for
UTF-8 values, since (a) the key map is indexed by 8-bit byte values and
(b) C-Kermit reads keystrokes a byte at a time (these comments do not
- apply to K95, which has direct access to the keyboard and can read
+ apply to K95, which has direct accesss to the keyboard and can read
"wide" keycodes and uses them to index a "wide" keymap).
Restrictions: As noted, the CONNECT command does not support UCS-2 as a
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):
[a b c d e f g h i j k l m n o p q r s t u v w x y z]
Note that \%* can not be used at top level, since Kermit does not have
- access to the raw command line (only to its elements separately, after
+ accesss to the raw command line (only to its elements separately, after
they have been processed by the shell and the C library).
C-Kermit 7.0 also adds a SHIFT command:
"file:index", or "file.index", and the code above would have worked
just as well (with the corresponding syntax adjustments). But to be
able to use an associative array in a program after the array is built,
- we need a method of accessing all its elements without knowing in
+ we need a method of accesssing all its elements without knowing in
advance what they are. That's where the chosen notation comes in.
First of all, any macro name that ends with "<xxx>" (where "xxx" is any
.max := \&b[\%i]
}
}
- echo Most popular file: \m(name), accesses: \m(max)
+ echo Most popular file: \m(name), accessses: \m(max)
This lists the files and counts and then announces which file has the
highest count.
contain the command-line arguments, if any, that appear after "--" or
"=", if any. This array is saved and restored around macro calls;
recall that inside macros it contains the macro argument vector
- (allowing you to access arguments programmatically, and to have more
+ (allowing you to accesss arguments programmatically, and to have more
than 9 of them).
At top level, notice the difference between the \&@[] and \&_[] arrays.
440 Change "set terminal byteszie" to "set terminal bytesize".
Change "input Password:" to "input 10 Password".
-448 Franchise script: "access line" should be "access \m(line)".
+448 Franchise script: "accesss line" should be "accesss \m(line)".
453 There are two incorrectly coded IF statements in the DELIVER macro
definition. Replace both occurrences of "if > \%1 \%3 {" with
"xif > \%i \%3 {" (replace "if" by "xif" and "\%1" with "\%i").
/* */
/* 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