Between formal C-Kermit releases, and even between Alpha and Beta releases
during C-Kermit testing periods, the current working sources are uploaded
to the Kermit FTP site on a daily basis (except on days when they don't
change, which they didn't between 23 May 2004 and 12 June 2005):

Included in the archive is a plain-text file,
ckc212.txt, which
contains the detailed edit history, with the newest edits described at the
bottom. The daily upload is not guaranteed to build successfully on the
many platforms where a true release or Beta builds, but it does build on
at least 2 or 3 of our primary development platforms (Solaris, Linux, VMS,
HP-UX, Windows, or whatever we're working on that day).

Download the archive into a fresh directory.
To build for Unix
(CLICK HERE for greater detail)…:

If you will be using it to dial out or to make serial-port connections,
give it the same owner, group, and permissions as cu, minicom, tip, or
whatever.

"./wermit" to start it.

To build for VMS, "unzip -aa" the Zip file into a fresh directory and
type "@ckvker.com". This makes an executable
"WERMIT.EXE". For greater detail, CLICK
HERE.

The changes in C-Kermit since version
8.0.211 was released are listed
in reverse chronological order:

20 Dec 2006
Dev.27

Very minor, fixed some compiler warnings in the VMS version.

20 Dec 2006
Dev.26

Fixed FTP timeouts to work on the command channel as well the data
channel, e.g. for directory listings, and added code to make timeouts work
for uploads as well as downloads, but so far this is untested. Fixed some
compiler warnings from HP-UX 9 and earlier over the new timeout code.
§ Fixed a
bug in the VMS version of C-Kermit in which downloading a file with
SET DESTINATION NOWHERE (or /CALIBRATE) could fail if there was not enough
space on the disk to hold the file, even though the file was not going to be
stored on the disk.
§ Changed \fkeywordvalue() (which parses
name=value pairs) to allow alternative separators to be specified;
e.g. in CGI scripts where the separator can be either
= or &.

13 Dec 2006
Dev.25

Fixed a bug in INPUT /COUNT:. Removed an unnecessary debug()
statement in ckufio.c that caused some compiler warnings.

11 Dec 2006
Dev.24

By popular demand (especially this week with the Kermit FTP site server
malfunctioning), I added a SET FTP TIMEOUT feature. For now, it works on
downloads only, only on the data connection (so, for example, it doesn't
help with stuck DIRECTORY commands). Works as expected in conjunction with
SET FTP ERROR-ACTION when downloading multiple files with MGET. Needs a lot
of testing on both clear-text FTP and FTPS (SSL/TLS) sessions. I'll flesh
it out later.
Other changes…
§ Fixed a bad bug in the date-parsing routines; it's been
there for years: if a date string includes a timezone, e.g. "Sat, 9 Dec 2006
19:26:23 EST", and converting it to GMT changes the date, the separate
variables for day, month, and year (which are used later) were not updated,
and the final result was a day off.
§ For communication protocols: INPUT/COUNT:n to read exactly n characters without any
matching. Can be used, for example, with $CONTENT_LENGTH in CGI
scripts; NUL characters are counted but not collected.
§ Added an optional 4th argument to \findex(),
\frindex(), \fsearch(), and \frsearch(): the
desired occurrence number of the searched-for string.
§ Added \fcount(s1,s2) to tell the number of
occurrences of s1 in s2.
§ Added \ffunction(s1) to tell whether a given
built-in function exists.
§ Changed RENAME/COLLISION:PROCEED to be
/COLLISION:SKIP,
which is clearer (but kept PROCEED as an invisible synonym).
§ Made "help locus" a synonym for "help set locus".
§ Fixed several places where a string variable was being
compared by "==" to a string literal, reported by Pavol Rusnak.

01 Dec 2006
Dev.23

Added COPY /PRESERVE (like "cp -p" in Unix) and COPY
/OVERWRITE:option. DIRECTORY /BRIEF fixed to pay attention to other
switches. SHOW CONNECTION fixed to show TCP Port (service, socket) number
in TCP connections; ditto for the connection log. DECLARE command fixed to
allow for empty array element initializers (e.g. undefined variables).
Fixed DIRECTORY /ARRAY:&a to behave sensibly when no files are
found, i.e. to create a 0-dimension array. Fixed the general treatment of
0-dimension arrays to be consistent. Fixed DIR /ARRAY:&a to
produce an array of correct dimension when file selection switches are
included. Added the ability to compose the name of a function,
e.g. "define\%aupper,\f\%a(abc)".
Fixed a few obscure parsing programs in the Lisp subsystem, e.g. (=) would
hang. Changed predicate operators to work even if there is only one
operand, the same as Franz Lisp.

12 Oct 2006
Dev.22

New TOUCH command, like UNIX but accepts all the same file-selection
switches as Kermit's DIRECTORY command. New netbsd+openssl makefile target.
Fixed the new RENAME command to work in the case where the source and
destination file names both include paths. Fixed the FOPEN and FCLOSE
commmands to make sure to scrub and reinitialize all the file information
(previously it was possible that some of the old info, e.g. current line
number, could be inherited from a previously closed file). Fixed an
unguarded variable reference in \fdialmessage() that broke
compilition when NODIAL was defined.

05 Oct 2006
Dev.21

One fairly major change: code was added to not drop DTR on a serial
connection when closing the connection and/or EXITing if SET EXIT HANGUP is
OFF. I don't have a good way to test this just now, but at least it seems
to compile OK on a fair number of platforms. And then some minor
things... Added DIRECTORY /COUNT:x to count the number of files that
match the given criteria and store the result in the given variable. Fixed
DIRECTORY /TOP to work if the number of lines was omitted, displaying the
top 10. Added HDIRECTORY as an invisible synonym for DIR /SORT:SIZE
/REVERSE, i.e. show the biggest ("H"ugest) files first; can be used with
other switches, e.g. HDIR /TOP to show the 10 biggest files. Fixed
DIRECTORY /FOLLOWLINKS and /NOFOLLOWLINKS, which apparently always behaved
the same. Added \v(dialmessage) which is the text string
corresponding to \v(dialstatus) (e.g. 2 = "Communication device not
specified"). Added a missing UUCP lock directory name definition for Linux
(used only for display). Even more minor: Improved error messages for new
RENAME command. Made IF KERBANG more reliable. Fixed
\fkeywordval(xxx) to undefine xxx (e.g. when a keyword parameter
xxx is defined with no value). Truncated super-verbose syntax error
messages to be just one line long.

09 Jul 2006
Dev.20

New \fpictureinfo() function for getting information about JPG
and GIF images; CLICK HERE for a demonstration
script that creates a website from a collection of JPGs. Also: Verified
that Kermit's FTP client transfers large files correctly in both directions
with the 64-bit Tru64 FTP server, and also handles recovery correctly in
both directions (apparently results are mixed with other FTP servers that
supposedly handle large files). I added FTP REPUT and FTP RESEND as
FTP-specific synonyms for RESEND, just as FTP REGET was already available as
an FTP-specific synonym for REGET. I fixed the IF command to use large
integers in all numeric comparisons, e.g.

if > \%a 3000000001 ...

(this didn't work before).

I fixed \fkeywordvalue() to allow for values comprised of more than
one word, and I added \v(lastkeywordvalue) to represent the keyword
most recently processed by \fkeywordvalue(). I changed
\f_status(\%c), when the argument was not defined, to behave the
same as if it contained a channel number of a file that was not open. This
makes it possible to write commands lines like this:

if \f_status(\%c) fwrite /line \%c blah blah blah...

without having to worry about whether we have opened the file yet. What
else... I fixed \fstripb() to not dump core if called without
the optional second argument. Added \fgetpidinfo(n) to get
information about Process ID n; currently only for Unix, returns 1
if the process is alive; 0 if the process does not exist.

Also: New invisible WDIRECTORY command = DIR /SORT:DATE /REVERSE.
And new /TOP:n DIRECTORY command switch says to show only the
top n lines of the listing.

New feature: SET SEXPRESSION TRUNCATE-ALL-RESULTS lets you force
S-Expressions to do only integer arithmetic (see the two
Easter date calculation scripts).
Big new feature: A new set of switches for the RENAME command, allowing
you to rename groups of files at once, changing case of letters or changing
the character set, removing spaces or changing them to something else,
and doing anchored or floating or occurrence-based string replacement,
described HERE.
Other changes: the FILE commands (FOPEN, FREAD, FWRITE, FCLOSE, etc) have
been changed to consume far less memory. Various #ifdefs corrected
for different feature-selection combinations.

27 Mar 2006
Dev.17

New secure builds for Linux: linux+ssl (OpenSSL 0.9.7 or later);
linux+krb5 (Kerberos 5); linux+krb5+ssl (both), tested on
Red Hat AS4.3 (the old targets don't seem to work any more). Warnings about
getsockopt() and getsockname() in Mac OS X fixed.
Improved targets for HP-UX with OpenSSL, with and without Zlib.

13 Mar 2006
Dev.16

Fixed FTP [M]GET /DELETE /MOVE-TO:xxx. This combination never
worked. Created a new target for HP-UX 10 and 11 with OpenSSL but not
Zlib, for systems where Zlib is not installed. Added OpenSSL version number
display to SHOW FEATURES. Verified this edit with AIX 5.3.

04 Mar 2006
Dev.15

Added large file support for AIX 4.2 and later. Added SSL option
for AIX 5.1 and later. Fixes for IRIX 6.4 and 6.5 (DIRECTORY command would
loop forever). HELP command fixed to work for tokens as well as keywords.
Thanks to J. Scott Kasten for the IRIX fixes.

23 Feb 2006
Dev.14

Attempted to squelch a few more SSL messages when SET QUIET ON.
Adjustments to the HP-UX 7.00 makefile target. New makefile targets for
NetBSD and IRIX 6.5 with SSL/TLS, SRP, and ZLIB. New NetBSD target omitting
curses. New IRIX 6.5 target for building with GCC. Updated
Linux-with-no-curses (linuxnc), Linux-with-curses-rather-than-ncurses
(linuxc) targets. Old NetBSD targets retired since the new ones should work
with any NetBSD release.

09 Feb 2006
Dev.13

Fixed a couple typos that caused warnings or build failues on some
platforms. Finally determined that large file support (LFS) can be the
default on all Solaris builds (Sparc and PC), Solaris 9 and later.
Maybe earlier versions also but I don't have access to them any more to
check. So all the regular "solarisxxx" targets were changed to
select LFS, and the previous "solarisxxxlfs" targets are now just
synonyms.

08 Feb 2006
Dev.12

Fixed "value too large for switch case" compilation errors in S-Expression
parser. Fixed setting of serial speed to 921600bps on platforms that
support it. Restored the ability to use arithmétic expressions in
compact substring notation, which I broke back in August, and this required
a small change in syntax in the [startpos-endpos]
form (changing the separator from "-" to "_" but that
shouldn't bother anyone because this is a new and as-yet undocumented
feature. Fixes for the HP-UX 6 and 7 makefile targets. A new build for SCO
OSR6, which required a fair amount of source-code changes plus a new
makefile target. Fixed a bug that has been in C-Kermit ever since command
switches were added in version 7.0: variables were not expanded in the
the RECEIVE command as-name. The current list of 32-32/64-64 bit builds
is now in a table HERE.

09 Jan 2006
Dev.11

Large-file access and large-integer arithmetic working in FreeBSD,
NetBSD, OpenBSD, HP-UX, and UnixWare. Here is the current status of 32-bit
builds that support 63-bit file lengths and integer arithmetic. All known
pure 64-bit builds (Tru64 Unix, Solaris with -xarch=generic64, Linux on
X86_64, etc) handle large files and big numbers automatically. All the
regular 32-bit builds (QNX 4.25, older HP-UX versions, etc) seem OK.

Linux

OK on all versions I've tried back to Red Hat 6.1.

Solaris

OK in Solaris 9 on Sparc. Not tested on Intel or in other
Solaris releases.

HP-UX

Tested OK on HP-UX 11.11 PA-RISC and 11i v2 IA64.

FreeBSD

Tested OK on Intel back to FreeBSD 3.3.

NetBSD

OK on Intel in NetBSD 2.0.3. LFS apparently not ready in NetBSD 1.x.

OpenBSD

Tested OK on Intel back to OpenBSD 2.5

Mac OS X

Tested OK on Mac OS X 10.3.9 and later.

UnixWare

Tested OK on SCO UnixWare 7.1.4.

AIX

LFS should work but not tested, I have no access.

IRIX 6.5

LFS requires changing all APIs to blah64().

Other changes in Dev.11:

New command FSEEK/FIND:pattern, seeks to the
first line in an FOPEN'd file containing the given string or matching the
given pattern.

FSTATUS can now be given without a channel number if only one file
is FOPEN'd.

Another correction to the pattern matcher involving clists;
"ifmatchindex.html[a-hj-z]*"
succeeded when it should have failed.

Got rid of LONGLONG feature test, we don't need it.

Made command error messages less verbose - no more dumping the command
stack unless you request it.

Fixed WRITE SESSION to report success when it succeeds.

Copyrights updated to 2006.

29 Dec 2005
Dev.10

Implemented X/Open Single UNIX Specification Version 2 (UNIX 98) Large File
Support (LFS), allowing 32-bit platforms to access, manage, and transfer
files bigger than 2GB on platforms that support LFS. These include Linux
on Intel PC hardware, Mac OS X 10.3.9 or 10.4.x, and Solaris 9 and 10
(Solaris on Sparc, of course, also supports pure 64-bit builds, but the LFS
version has a much smaller footprint). This should work for both Kermit
and FTP protocol transfers, although I have not yet found a way to test it
in the FTP client. It also has the side benefit that new 64-bit signed
integer data type can also be used elsewhere, e.g. in arithmetic, so the
S-Expression and regular arithmetic expression evaluators were upgraded to
use it when available. This applies to both 32-bit LFS platforms as well
as 100% 64-bit platforms. All of this involved massive changes in the code,
touching virtually every module, and there are sure to be spots I missed,
so thorough testing is warranted. I've built and tested to some extent on
both 32- and 64-bit versions of Linux going back to 1999, plus OpenVMS, SCO
Unixware 7.1, FreeBSD 4.11, Tru64 Unix 4.0F, and Mac OS X 10.3.9 and 10.4.2.
Areas to watch out for:

Does the SEND command work for regular files as well as long files?

Can both regular and long files be received?

Do versions that do not support long files properly refuse to receive
them?

When building, use "make linux" to build any Linux version. This
should automatically include LFS support on Linuxes that include it. I
haven't been able to find any Linux platforms that don't, but in case it
causes trouble, use "make linuxnolfs". For Solaris, use "make solaris9lfs"
or "make solaris10lfs". I didn't make this the default for Solaris yet
because I don't seem to have access to the i386 version of Solaris any more
to make sure it works there too (Sun cc or gcc). For Mac OS X 10.3.9 or
later, use "make macosx10.4".

Adding LFS to other builds on other platforms that support it should be
easy: just do this:

make clean
make xxx "KFLAGS=-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"

where xxx is any makefile target. If you do this, let me know the results.
Other changes in this edit are:

Fixed S-Expressions in the Mac OS X version.

Added HTTP support to FreeBSD and OpenBSD versions.

Added a new switch, /EXCEPT:pattern, to the GREP command.

15 Dec 2005
Dev.09

Added buffering code to speed up HTTP GET and all other input from an
HTTP server; result is about 20 × faster on a fast network connection
(clear-text, non-SSL connections only).
Changed DIRECTORY and DELETE commands to not show filenames in braces when
printing error messages.
An updated HP-UX 9.xx makefile target to avoid core dumps from stack
exhaustion.
Fixed a typo in the non-ANSIC definition of ckfstoa().

04 Dec 2005
Dev.08

Discovered that on a SET PORT /SSL connection, Kermit treats incoming
0xff data bytes (e.g. sent from the POP server) as IACs and goes into Telnet
negotiations. This makes it impossible to retrieve email from a SSL or TLS
POP server if the mail contains any 0xff bytes, because the POP server
doesn't do Telnet protocol. Kermit's current SSL and TLS methods both
allowed for Telnet negotiations to be initiated by one side or the other.
Added two new ones: /SSL-RAW and /TLS-RAW, which do not respond to Telnet
IACs but, rather, accept them as data. Also: Updated INPUT and MINPUT help
text; changed "make netbsd" to be a synonym for "make netbsd2" because the
original netbsd target was ancient and got compiler warnings.

03 Dec 2005
Dev.07

In the DATE command and related functions, fixed parsing of dates like "Wed,
13 Feb 2002 17:43:02 -0800 (PST)", commonly used in email. Added a new
format code 4 to \fcvtdate() to emit asctime() format,
used in BSD-format email message envelopes. Added a new function
\femailaddress() which, given a From: or Sender: header line from
an RFC2822-format email address, extracts and returns the actual email
address. Added INPUT /CLEAR so INPUT can be started with a clean buffer
without requiring a separate CLEAR INPUT command. Added INPUT /NOWRAP
which is explained HERE. Fixed some SSL/TLS
messages that were not suppressed if SET QUIET ON. Fixed FOPEN /APPEND to
work right even if the file didn't exist. Fixed IF KERBANG to not
spuriously succeed if used in a Kerbang script that was invoked by another
Kerbang script; it should succeed only for the top-level script. Changed
\flop() and flopx() functions to take a third argument, a
number signifying at which occurrence of the break character to lop, so:

More data-type tests in SHOW FEATURES.
••
A typo in the HP-UX 7.00 Makefile target was corrected.
••
Even after the previous changes, it was still possible for SWITCH to produce
incorrect results if the value of a case-label variable was too long. Any
such error is now fatal to the script where it occurs.
••
An idea popped into my head after having typed too many commands like
"dirck[cuw]*.[cwh]" to check the list of matching files,
and then having to retype the same filespec in a SEND command: Why not
unleash some unused control character such as Ctrl-K to spit out the most
recently entered input filespec? So I did that, and also
added a new variable \v(lastfilespec) that expands to the same last
filespec, for use in scripts.
••
The Unix version of C-Kermit failed to put anything in the session log if
SET TERMINAL DEBUG ON. I changed it to log the debugging format, since
that's what user who noticed this wanted. The alternative would be to just
log the raw incoming stream as usual, or to add Yet Another SET Command to
choose.

26 Oct 2005
Dev.04

Adjustment of builds for various old platforms to avoid the "long long not
defined" compilation failure (older HP-UX versions, etc). Please
notify me
of any further failures. Adaptation to OpenSSL 0.9.8. More data-type
feature tests for SHOW FEATURES (remember, this is to shake out the
platforms differences in advance of attempting long-file support for 32-bit
architectures). Major fixes to the SWITCH statement; it did not allow for
long case labels (including variables that are expanded into long strings) and
under certain circumstances it could execute the wrong case, e.g. if two
case labels were not unique in their first 50 characters. The length limit
for labels has been raised to 8K, overflows are now detected, and certain other
failures have been corrected that are too hard to explain.

23 Oct 2005
Dev.03

Nothing major. In no special order: Prevented HTTP POST from adding an
extraneous CRLF at the end. Fixed warnings in network and FTP for
socket-related functions on HP-UX 11i V2, and got long-file transfers
working on HP-UX 11i. Added tests to SHOW FEATURES for macros like INT_MAX,
LONG_MAX, LLONG_MAX, as well as sizeof(long long) to shake out
where we're going to have trouble when we start implementing the hybrid
long-file support. Fixed some old-style prototypes for get/setuid-type
functions. Continued work on the pattern matcher: patterns such as
"*[abc]" could make Kermit loop or dump core; this is fixed. FREAD
was fixed to fail and give a message if it tries to read a record that is too
big for its buffer. FREAD /SIZE:n was fixed to make sure it reads
n bytes or else fails. \Flen() and some other built-in
functions would fail on string arguments longer than 8K, this is fixed.
ASKQ was changed to not echo anything unless requested to do so, by adding a
new switch /ECHO:c, allowing a character (such as asterisk) to be
specified for echoing. Not echoing makes ASKQ very convenient for use in
CGI scripts. FTP GET /COMMAND (used e.g. for piping an incoming file into
more or less) always dumped core, fixed now. Various minor
code corrections and cleanups. And, with this edit, C-Kermit is
MINIX3-ready!

27 Aug 2005
Dev.02

More 64-bit work. When
a 32-bit versions of Kermit is sent a long file, the result isn't pretty.
First it truncates the file size that was announced in the sender's
Attribute packet so the file-transfer display statistics are all wrong, and
then in most cases when the 2^31 (or 2^32) byte boundary was hit, a trap
would occur causing Kermit to exit immediately. As a first step in adapting
32-bit versions of C-Kermit to long files, I fixed these problems. And
discovered that on some platforms, (such as in 32-bit C-Kermit builds on Mac
OS X 10.3.9) the file would be received successfully anyway -- don't ask me
how. Began to add some consciousness of 64-bitness at compile time (new
CK_64BIT macro) and runtime (new \v(bits) variable). 64-bit builds
now announce themselves as such in the startup banner. Got rid of numerous
compiler warnings for socket-related calls in 64-bit builds and I hope also
most 32-bit ones. In other areas: fixed ASKQ asterisk-echoing in VMS; fixed
reception of files that had device specifications but no directory field in
VMS; fixed REMOTE DIRECTORY listings to terminate lines correctly (with
CRLF, not just LF); replaced all the silly FreeBSD makefile targets with a
consolidated one ("make freebsd"); added a new makefile target
("macosx10.4_64") for 64-bit builds on Mac OS 10.4, and starting now I'm
bumping the "Dev.xx" number each time there's a new upload; this one
is Dev.02.

17 Aug 2005

Some work on 64-bit versions of C-Kermit. New targets 'solaris10_64' and
'solaris9_64' that actually work (Sun CC only, I'm still having problems
with gcc). Having built them, I found some runtime problems: some versions
(notably Solaris) would not make Telnet connections; other versions (such as
Linux on ia64 or x86_64) would not make ssh connections. These are now
fixed. The big news is that 64-bit builds transfer large files correctly
between themselves. So far these include Solaris 9 and 10, Linux on AMD
x86_64, Linux on ia64, and Tru64 Unix on Alpha. These versions also handle
long files in all the other ways that Kermit deals with files -- the
DIRECTORY command, the file-related functions, the local file interface
(FOPEN / FREAD / FWRITE / FCLOSE). I believe the FTP client also works, but
it's hard to prove. The next -- and much more difficult -- step is to
handle long files on those 32-bit platforms that support them, through any
of several "transitional APIs". Also in this edit, I changed the plain-text
version of ASKQ to echo asterisks.

14 Aug 2005

New build target for Mac OS X 10.x that automatically picks up Mac OS
version, e.g. 10.4.2, for the program herald. Updated UnixWare 7 target
(uw7) to also pick up UnixWare version automatically. Fixed FOPEN to set
the channel variable to -1 if it fails rather than possibly leaving it
undefined. Added two special channel values, -8 and -9, that turn all FILE
i/o commands (FREAD, FWRITE, FSEEK, etc) into noops that succeed (-8) or
fail (-9). Fixed IF DIRECTORY to work for Unix pathnames that begin with
tilde. Fixed the NONOSETBUF compile-time directive (which instructs Kermit
to make stdout unbuffered) as well as the corresponding runtime
--unbuffered command-line option. Cleared up some compiler warnings.

11 Aug 2005

Compact substring notation extended
to allow ending position to be specified instead of length; thus
\s(foo[12:18]) means the substring of foo starting at position 12
of length 18, and the new \s(foo[12-18]) means the substring of foo
starting at position 12 and ending with position 18. // Fixed a six-year-old
bug relating to disconnected compound ELSE parts. Now those who prefer to
put the ELSE on the line after the closing brace of the IF clause can do so
once again. // Added HTTP support in Mac OS X 10.3 and later, and on BSDI
4.x. // Built on Mac OS X 10.3.9 and 10.4.2, Solaris 9 and 10, RH Linux AS4,
Tru64 Unix 4.0F, and SCO Unixware 7.1.4.

18 Jul 2005

Added OpenSSL support for Tru64 Unix.
Added HTTP support for NetBSD.
Fixed HTTP GET command work with URLs that contain metacharacters.
Fixed the June 16th fix to the pattern matcher.
Added some missing HELP text.

27 Jun 2005

New makefile targets for Solaris 10.

16 Jun 2005

Fixed some problems matching patterns that use the [a-z] construct.

15 Jun 2005

New build target for Mac OS X 10.3 with Kerberos 5 and OpenSSL.
Fixed error in herald generation for NetBSD 1.5, 1.6. Fixed SET TERMINAL
IDLE-ACTION OUTPUT to work as documented, i.e. to send a NUL character if
the OUTPUT string is empty. New SET WILDCARD-EXPANSION
{ ON, OFF } command
allows straightforward processing of filenames obtained programmatically if
they happen to contain literal metacharacters, or for that matter if you
want to type them interactively without all the quoting.

12 Jun 2005

New IF LINK command (Unix only) to test for symlinks.
New SET TERMINAL LF-DISPLAY command.
New --unbuffered command-line option for Unix, to force unbuffered
console i/o.
New \flopx() function returns rightmost field from string (such as
file extension).
Improved IDLE-ACTION OUTPUT interpretation in SHOW TERMINAL display.
Automatic version number generation for herald in NetBSD 2.0 and later.
Security updates.
Fixed \fdirectory() when used with nonwild directory name.
Fixed date/time differencing across year boundary.
Fixed FTP HELP to override verbosity setting.
Fixed some incorrect prototypes.
Fixed a syntax error in CKVKER.COM.

23 May 2004

Fix automatic redialing of numbers that contain spaces when DIAL MACRO
is defined. Add client and server side of REMOTE MESSAGE. Fix FTP CD to
strip quotes or braces from around argument.

The UUCP lockfile for Mac OS X was /var/spool/uucp, which does
not exist. Fixed it to be /var/spool/lock, which does exist, and
re-uploaded version 8.0.211. You can tell the difference because SHOW
VERSIONS has a 17 Apr 2004 for the Communications I/O module. Also the 10.3
executable now has a designer banner: "Mac OS X 10.3".