Icon The Kermit Project   |   Now hosted by Panix.com
New York City USA   •   kermit@kermitproject.org
since 1981
Translations  (see below for credits):
Spanish | Español
C-Kermit 9.0   Index to C-Kermit documentation   Kermit 95

C-Kermit “Daily” Source-Code Archive

Frank da Cruz
fdc@columbia.edu ← (send reports to)

As of C-Kermit 10.0, this page lists only the actual Alpha and Beta tests. The "daily" updates are now found HERE.

As of C-Kermit 10.0 Beta.11, 8 August 2024

This page last updated: Fri Aug 9 12:16:45 2024 Eastern USA time
ALL FTP LINKS CONVERTED TO HTTPS 7 May 2021
▶▶ See brief change log below    ▶▶ Go to voluminous update history

See table of recent C-Kermit builds, successful and unsuccessful. If you download and build this version, please send results to the email above for inclusion in the table.

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 Web site whenever there is something new to show and reasonable consistency checks don't fail. Since 2010, new builds aren't as frequent; "daily" is a slight overstatement due to the cancellation of the Kermit Project as my day job.

DOWNLOAD TARGET Description
x.tar.gz Unix C-Kermit for Unix source code, Tar archive, Gzip compression (gunzip, 2.4MB)
x.tar.Z Unix Ditto, Compress compression (uncompress, 3.5MB).
x.tar Unix Ditto, not compressed (10MB)
x.zip VMS Unix and VMS source code, ZIP archive (unzip*, 2.8MB).
Test-Tar Unix Clickable directory listing of files in the kermit/test/tar directory.
Test-Text (both) Clickable directory listing of files in the kermit/test/text directory.
* Use "unzip  x.zip" on Unix (Linux, OSX, BSD, etc), as well as in (Open) VMS or DOS or Windows.

Note:  the x.* files are symlinks to the latest archive, e.g. cku404-beta09.tar.gz. Whenever a new development version is installed, the symlinks are automatically updated to point to it. Any version can also be referenced by its real name, e.g.: cku400‑beta06.tar.gz or cku305‑alpha07.tar.gz or cku304‑dev20.zip.

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 the primary development platforms (these days, pretty much just Linux and NetBSD — the days of guest IDs all over the Internet are long gone). A detailed C-Kermit edit history going back to the C-Kermit 8.0 release in 2003 is HERE.

Instructions for UNIX (e.g. Linux, macOS, HP-UX, BSD, ...):

  1. Download the archive into a fresh directory.
  2. Unpack the archive (e.g. "gunzip x.tar.gz ; tar xvf x.tar.gz" or "unzip x.zip").
    Note: The files go in the current directory; a new directory is not created for them. That's why the archive should be placed in a fresh directory.
  3. "make xxx" (xxx = platform target; see table just below).
  4. This makes an executable, "wermit" in your current directory.
    If the build fails, look at the target in the makefile for suggestions on what to do. For example if a header file or runtime library can't be found, there are often ways to get around it without having to change the makefile or the source files. If you need help, send email.
  5. 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 (this doesn't apply to Mac OS X).
  6. "./wermit" to start it (only a real release should be called 'kermit').
  7. When satisfied that it works satisfactorily rename it to 'kermit' and install it in the desired place with the appropriate owner, group, and permissions. NOTE: Do not use "make install" unless you have root (system adminstrator) permission. Even then it might have some problems.

CLICK HERE for greater detail.

Commonly-used C-Kermit Makefile targets
Target Description
linux Linux, all versions
freebsd FreeBSD 4.1 or later
openbsd OpenBSD 2.3 or later
netbsd NetBSD 1.41 or later
macosx Apple Mac OS X
macos Apple macOS (newer than Mac OS X)
hpux1000 Hewlett-Packard HP-UX 10
hpux1100 Hewlett-Packard HP-UX 11
aix IBM AIX 4.2 or later
solaris9 Sun Solaris 9 or later

There are over 750 targets in the makefile, including many variations on each target listed above that add optional features (e.g. "make linux+ssl"), remove unwanted features (e.g. "make linux KFLAGS=-DNODEPRECATED"), support older OS versions or obscure and forgotten Unix-based platforms, etc.

Instructions for VMS (aka OpenVMS):

VMS C-Kermit source code come in a Zip file rather than a Tar archive. If you don't have Unzip, you can download it from the Info-ZIP project, which bills Zip/Unzip as the "Third Most Portable Program in the World" (after "Hello World" and C-Kermit; see note at the bottom of the Info-Zip download page). C-Kermit 9.0.305 Zip files should unpack smoothly on all VMS systems.

To build C-Kermit for VMS:

  1. Make a new directory and SET DEFAULT to it.
  2. Download the Zip file into the new directory.
  3. Unzip the Zip file ("unzip x.zip").
  4. Give the command "@ckvker.com" to run the DCL command file that builds C-Kermit.
If the build was successful a WERMIT.EXE file will be in the directory. If the build failed immediately with "%DCL‑W‑USGOTO, target of GOTO not found - label \\SKIP_HELP" (this shouldn't happen any more), it means you should re-unzip the Zip file with "unzip -a x.zip" or "unzip -aa x.zip".

For greater detail, CLICK HERE to see detailed C-Kermit building and installation instructions. In particular Section 7: Building VMS C-Kermit from the Source Code and Section 5: Installing VMS C-Kermit (after it's built).

Change Log

The changes in C-Kermit since version 8.0.211 was released 10 April 2004 are listed newest first.

See the UPDATE HISTORY for detailed descriptions of each change; it is updated much more frequently than this page is (15-20 years ago it really was almost daily).

Besides the C-Kermit 10.0 formal Beta test releases listed below, pre-test versions for the next Beta are posted occasionally, so interested parties can test new additions or changes before the next announcement. CLICK HERE to see the currently available pretests; the latest one is always on top. When there are pretest versions newer than the last Beta, the changes are described HERE.
08 Aug 2024 10.0 Beta.11 Minor changes for Unix and VMS, detailed HERE.
03 Jul 2023 10.0 Beta.10 All problems noted in the previous entry fixed; compiles with Clang 15 with no prototype warnings; all functions are prototyped to Clang's satisfaction, yet C-Kermit can still be built with old pre-ANSI compilers.
09 May 2023 10.0 Beta.09 Complies with Clang requirement that all functions must have prototypes (in C-Kermit's case, nearly 700 of 'em). Although the prototypes were (mostly) all present, some had problems, and some of the corresponding functions lacked an ANSI declaration.
15 Dec 2022 10.0 Beta.08 Very much like Beta.07 but is accompanied by the first new Beta for Windows (which is called Beta.04 but is based on C-Kermit 10.0 Beta.08) since 15 September, CLICK HERE for details.
07 Dec 2022 10.0 Beta.07 No more recursive evaluation of variables unless you ask for it. No more Wart. Better support for new OpenSSL releases. Space-saving compile-time feature-deselection options rehabilited. Numerous minor fixes and adaptations.
14 Oct 2022 10.0 Beta.06 A mistake that prevented Beta.05 from building on HP-UX fixed. Improved user interface for accessing higher interface speeds. Restored ability of the DIRECTORY command to accept multiple filepecs. Restored proper operation of the TOUCH command. Hundreds of source-code adjustments to suppress modern compiler warnings. Details HERE
27 Sep 2022 10.0 Beta.05 Support for a whole bunch of higher serial speeds (up to 4000000 bps). New /INTERPRET option for the TYPE command that interprets any Kermit backslash-escapes (variable references, etc) as it displays the file's contents. New /TOSCREEN and /INTERPRET options for the COPY command. Fixes some long-standing errors where the file-transfer protocol could step out of bounds on negotiated parameters. Removed arrow-key support from the Unix version because the corresponding API is "deprecated". Numerous minor improvements and countless syntax modernizations to cut down on compiler warnings. Details HERE
03 Jun 2022 10.0 Beta.04 Corrects one or two syntax errors fatal to compilation.
02 Jun 2022 10.0 Beta.03 Corrects some warnings and adds new "no networks" and "no tcp/ip" build options.
17 May 2022 10.0 Beta.02 Corrects two fatal errors affecting only non-ANSI-C builds (which I can't test myself).
16 May 2022 10.0 Beta.01 Big version-number change (explained HERE) and much polishing up of details in preparation for a formal release: more serial port high speeds added; elimination of more compiler warnings; some minor bugs fixed.
24 Jan 2022 9.0.307 Alpha.07 More minor changes to eliminate compile-time warnings.
15 Dec 2021 9.0.306 Alpha.06 At some point since the last real release of C-Kermit (9.0.302 in 2011) some unguarded ANSI C constructions snuck into the code so pre-ANSI (e.g. K&R) C compilers could no longer build C-Kermit. This has been fixed in Alpha.06, along with numerous picky-compiler warnings. Vielen Dank to Peter Eichhorn of Assyst GmbH, Aschheim-Dornach, Germany, "Herr C-Kermit/HP-UX".
14 Nov 2021 9.0.305 Alpha.05 New support for 1,500,000bps serial port speed for platforms that offer it. Numerous adjustments to APIs, header files, and C compilers that changed out from under C-Kermit since the last release. A file-transfer bug fixed that resulted in the truncation of the filename when using ultra-short packets. Also a problem was fixed that occurred when transferring any file that contained 0xff bytes through an external Xmodem protocol. Most notably we now have successful builds on VMS operating system versions from 7.3 to 8.4 on various hardware platforms. See the update notes for details.
14 Sep 2021 9.0.304 Alpha.04 (Alpha.03 was not uploaded)  Nothing functional, mainly just adaptations to the changes in underlying Unix platforms to eliminate or at least cut down on compilation warnings and errors. Plus new adaptations to VMS from David Hittner as well as a correction to the way the VMS Zip file was created. It should unzip smoothly now (without "-aa") but there might still be some problems with the VMS compilation but it compiled with no errors or warnings on NetBSD, Ubuntu, and Red Hat.
19 Sep 2020 9.0.305 Alpha.02 A couple edits from Debian produced in the process of getting C-Kermit back into its distribution. Plus a bunch of "compliance" edits so C-Kermit builds cleanly with the latest gcc (9.3.0). All warnings (most of them harmless) were eliminated on Ubuntu 20.04.1, NetBSD 9.0, and Red Hat 6.1. Reports from other platforms would be appreciated; send them to my email address shown at the top.
24 Jul 2020 9.0.305 Alpha.01 § Emergency test release to cope with a backwards-incompatible change in glibc 2.28, in which the symbol _IO_file_flags, which C-Kermit depends on to do stdin-buffer peeking, disappeared. See the diffs with the previous edit (9.0.304 Dev.24) here; the same change should be appliable to earlier versions of C-Kermit. Please check C-Kermit 9.0.305 Alpha.01 with recent Ubuntu, Debian, and other Linux distributions with glibc 2.28 or later to make sure it compiles and runs. Then I can release it and they can put it back with in their package collections; until then apt-gets for C-Kermit to Ubuntu and Debian and who knows where else will be answered by "E: Package 'ckermit' has no installation candidate" This is a temporary workaround, a better one will likely follow.  § The detailed C-Kermit change log was reorganized into "latest-first" order rather than the traditional chronological ("latest-last") order and it was reformatted for easier reading.
7 May 2020 9.0.304 Dev.24 Dated: 25 Apr 2020 § Improvements to date/time parsing. § Segfault in CHANGE command fixed.
31 Jan 2020 9.0.304 Dev.23 Dated: 4 Sep 2018 § Function calls like \findex(a b c,\m(line)) would spew out spurious ?<ERROR:MISSING_ARG:\findex()> error messages in certain contexts because of the embedded spaces in the first argument. Fixing this required a fundamental redesign of the command parser. This was done and I've been using the result pretty intensely for 16 months and it seems to be solid. I'm releasing it now (31 Jan 2020) in tandem with a new release of the Photogallery script, which triggers lots of the aforesaid spurious messages in Dev.22 and earlier. The new Photogallery works in C-Kermits back to 9.0.301, but with varying amounts of spurious error messages. § New "word mode" for \freplace() ("help func replace"). § Lisp ROUND fixed to not lose sign. § Some cosmetic improvements to the CHANGE command.
1 May 2017 9.0.304 Dev.22 § Fundamental redesign of C-Kermit's method for passing arguments to macros, necessary because of a longstanding bug in which a single argument passed by the caller could look like multiple arguments to the callee if it contained certain characters. Changes to 25 modules were required. With these changes I was finally able to write a usable text-to-html conversion script, which is HERE, and then I used it to convert my 9294-line C-Kermit update notes file to HTML, HERE (use this link to go straight to the bottom, where the latest entries are) (Note: the current version of the change log has newest entries at the top and is much improved stylistically). Also in this version: § FOPEN /STDOUT and FOPEN /STDERR to complete the support for using C-Kermit scripts in Unix pipelines; § Some improvements to error messages that are issued during script execution; § various bug fixes (see notes).
21 Apr 2017 9.0.304 Dev.21 § New FOPEN /STDIN command allows the FREAD command to read from Standard Input as well as from a file.  § New ECHO command for S-expressions. Previously there was no way to print things in Lisp code.  § HELP SEXP now shows second argument (decimal places) for ROUND.  § New switches for GETC (command to read one character from the terminal): /TIMEOUT:seconds, /QUIET (to suppress any error messages), /CHECK (to see if any characters are available to be read).  § \fcvtdate(string,functioncode) now accepts bare macro name as function code, as long as the value of the macro is numeric (oversight corrected; it was supposed to do this in first place).   DEAR PEOPLE: I would like to make a new formal release of C-Kermit but I need the cooperation of packagers for the many Linux and *BSD distributions and Mac OS X, especially with respect to OpenSSL.
16 Feb 2016 9.0.304 Dev.20 § Fixed a problem with creating files in recent releases of Mac OS X.
05 Feb 2016 9.0.304 Dev.19 § Put back new sizes of things with help from Mark Sapiro, who tested them on some platforms I don't have access to. § Expanded Locale support to the \fcvtdate() function, so now you can emit locale-appropriate dates in your scripts. Also the \fcvtdate() function accepts a new format code (6) for displaying dates with their month names spelled out in full. The Locale documentation has been updated.
04 Feb 2016 9.0.304 Dev.18 § Backed off the "sizes of things" changes because they cause segfaults on some platforms I don't have access to; will revisit later.
03 Feb 2016 9.0.304 Dev.17 § Maximum sizes of all sorts of buffers were increased for 64-bit builds, so macro definitions can be almost infinitely long, packet buffers can hold the largest possible load, etc.  § The CHANGE command is now documented HERE.  § New features were added the CHANGE command, including two different ways to preserve the original files.  § Some bugs fixed in the CHANGE command (for example, it didn't work at all on Linux).  § Bugs in the SET TEMP-DIRECTORY command were fixed.  § A bug in the IF WRITEABLE command when applied to a directory was fixed.  § Some robustness and defensiveness problems with some of C-Kermit's internal APIs were fixed.  § The S-Expression (LISP) ROUND operator fixed to not crash (as it did on certain platforms but not others).  § Local arrays were fixed to be deallocated when their declaring context vanished even when they did not shadow another array of the same name higher up.
18 Jan 2016 9.0.304 Dev.16

§ A new 'linux' target in the makefile that should correct numerous problems in feature selection and locating libraries and header files.  § Copyright updated to 2016.
25 Dec 2015 9.0.304 Dev.15

§ Changes to makefile for building on Red Hat Linux EL6 on x86_64, and in particular for detecting the case where the ncurses lib is installed but ncurses.h is not (in which case C-Kermit builds without curses support).   § Patches from Bernard Spil: "Kermit fails to build when OpenSSL libraries built without SSLv3 are used (configure --no-ssl2 --nossl3). This has surfaced when building with the latest LibreSSL 2.3. In addition, there are issues with LibreSSL as it does not support SSL compression nor Perl EGD as entropy source."
10 Oct 2015 9.0.304 Dev.14

§ Two closing braces were missing in ck_ssl.c at line 2207, which prevented Dev.13 from being built with OpenSSL support.
05 Feb 2015 9.0.304 Dev.13

§ Default SSL/TLS FTP, HTTP, and Telnet connections to TSL 1.0 instead of SSL 3.0 or 2.3 (thanks to Jake Thompson). § Fix inconsistent declarations of vmode variable that was causing K95 to crash when built with Open Watcom (thanks to David Berner).   § Fixed SET LOGIN USER to allow a variable to be given as the username.    § Added SHOW FUNCTION string command to show the names of all built-in functions whose name contain the given string. Example: "show function hex" to show the names of the built-in functions that deal with hexadecimal strings; then you can type "help function decodehex" (or whatever) to get the details about the function.
11 Jan 2015 9.0.304 Dev.12

§ Downloads (RECEIVE or GET) would crash Kermit on any Unix-family platform that does not have UCCP, or any other Unix-family build done with -DNOUUCP. This would occur in Kermit protocol downloads and with FTP GET. Maybe also with SSH. This should be fixed in Dev.12. Thanks to Glenn Sherman for reporting the problem. § The copyright year was updated to 2015.
03 Nov 2014 9.0.304 Dev.11

(Dev.10 skipped)

§ Fixed DIRECTORY /EXCEPT: switch to work when /BRIEF switch was also given. § Fixed the client end of many REMOTE commands, such as REMOTE PWD, which had been getting spurious parse errors, apparently for many years. Thanks to Alan Jones and to Harold Baldwin for reporting the problem. § Improved HELP SET FILE text to mention that SET FILE COLLISION OVERWRITE doesn't work for a server unless it has also been told to ENABLE DELETE. § Fixes to \fsplit(text,array,TSV) for when text contained grouping characters. § Updates to Debian Linux MULTIARCH support from Ian Beckwith. § Some fixes for "compliance" issues and inconsistent declarations from Mark Wooding.
20 Jan 2014
9.0.304 Dev.09
§ A fix from Jeff for SET AUTH TLS VERIFY NO to allow scripts to run with no user interaction when server does not provide a certificate. § Fixed a core dump that could happen in the TOUCH command. § New briefer current-directory string in C-Kermit prompt on Unix. § Further adaptations for Windows.
06 Dec 2013
9.0.304 Dev.08
§ Some more fixes and changes for a Windows version of C-Kermit. § Improved error messages from scripts. § Suppression of spurious parse errors in certain IF commands. § Locale support enabled for certain sorting operations, e.g. of directory listings.
24 Nov 2013
9.0.304 Dev.07
Fixes to the new CHANGE command. Fixes for NetBSD 6.1 (time_t change). Fixes to \fpictureinfo() and a new return code, 3, for square images. Fixes to some of the new locale-aware date/time functions. Fixes for latest Android SDK from Jake Thompson. Changes to make C-Kermit 9.0 integrate with the Open Source modules for Windows, as a first step in releasing an Open Source followon to Kermit 95, to be announced later.
25 Jul 2013
9.0.304 Dev.06
§ LOCALE SUPPORT for platforms that have locales (internationalization features for languages, character sets, dates, etc). This begins with new functions (next item) to get day and month names in the language and character set specified in the locale, but also has other ramifications that might not please everybody; for example, that it can change the behavior of certain functions like \fupper() \flower(), and \fcapitalize(), making them work as expected for the first time for languages other than English (at least so long as they are encoded in a single-byte character set such as ISO-8859-1). Perhaps most noticeable: any messages generated by the operating system or C-language APIs (if they are internationized) can come out in the language and character set specified in the locale; for example “Archivo o directorio inexistente” rather than “No such file or directory”. However, since the user interface of C-Kermit itself is not internationalized, its own commands and messages are still in English.

§ Internationalized day and month names: New functions \fdayname() and \fmonthname() to supply the name of the day of the week or month of the year that corresponds to a given date, a day or month number, or the current date, in the language and character-set of the current locale. HELP FUNCTION DAYNAME and HELP FUNCTION MONTHNAME for details.

§ Disabling the locale features. To return Kermit to its previous anglocentric behavior, you can (a) start it with a special command-line option, (b) define a certain environment variable, or (c) give a SET LOCALE command at the C-Kermit> prompt (see documentation).

§ New CHANGE command, to change strings in text files. For example, suppose you manage a website with thousands of files in a directory tree, many of which link to an offsite page whose URL has just changed. Now you can fix them all with a single C-Kermit command:

change /recursive ~/web/*.html www.oldname.com www.newname.com
The CHANGE command has lots of options:
 /after:         /dotfiles       /modtime:       /not-before:
 /before:        /except:        /nodotfiles     /recursive
 /case:          /larger-than:   /norecursive    /simulate
 /count:         /list           /not-after:     /smaller-than:
...for file selection (size, date, exception lists, dot-files), directory traversal (flat or recursive), modification time of changed files (updated or preserved), and reporting of results. HELP CHANGE for details and options.

§ Added GREP /ARRAY:&a to get the names of all the files that contain text that matches a given pattern into an array, which can be looped through later to take any desired actions with the files: moving them, renaming them, transferring them, etc. The GREP command has lots of options, too, like CHANGE and TOUCH do, for file selection, recursion, what to do with results, etc.

§ Added a new \fcvtdate() format code, 5, which produces a result in fully-delimited numerics: yyyy:mm:dd:hh:mm:ss, so individual fields can be easily picked out; for example, with \fword(), e.g.:

\fword(\fcvtdate(today,5),3) (third word of today's date, day of month)
Also, just for symmetry with \v(day) and \v(nday) (which have been in C-Kermit forever), I added \v(nmonth), \v(month), and \v(year), that evaluate to the current month (numeric), current month (English 3-letter abbreviation), and year, respectively.

§ Added a way for a Kermit script to test whether a file is text or binary: IF BINARY filename, IF TEXT filename. Also the new \ffileinfo() function now returns a more detailed result, which gives some more detail about the encoding if it's a text file: 7-bit, 8-bit, UTF-8, UCS-2.

§ New IF conditions for lexical comparisons: NEQ, LLE, LGE. Previously these could only be done with IF NOT EQU, IF NOT LGT, IF NOT LLT.

15 Apr 2013
9.0.304 Dev.05
§  Fixed a problem with SET TELNET WAIT OFF being overridden by faulty Telnet protocol negotiations and fixed a deadlock when negotiating Telnet parameters with the Synchronet BBS.  § Added IF FUNCTION to test for availability of a given built-in function.  § Expanded the \fpictureinfo() function to extract the internal “date taken” timestamp (if any) from a JPG photo or scan.  § Added a new \ffilecompare() function to check whether two files are identical.  § Some bug fixes and cosmetic changes noted at the bottom of the Change Log. The two new built-in functions are used in a new script, renamejpgs, that renames digital-camera and scanner generated JPGs according to the date taken or scanned.
22 Mar 2013
9.0.304 Dev.04
(1) Added SET EXIT MESSAGE { ON, OFF, STDOUT, STDERR }, so the text (if any) from an EXIT command, e.g.:
EXIT 1 "File not found"
can be supressed, printed normally, or sent to stderr. Added EXIT MESSAGE status to SHOW EXIT and updated HELP SET EXIT.  

(2) Made a new function \ffileinfo(name,&a) that populates the specified array with 7 or 8 (or 9) elements:

  1. the file's name;
  2. the full path of the directory where the file resides;
  3. the file's modification date-time yyyymmdd hh:mm:ss;
  4. platform-specific permissions string, e.g. "drwxrwxr-x" or "RWED,RWE,RE,E";
  5. platform-specific permissions code, e.g. an octal number like 40775;
  6. the file's size in bytes;
  7. file type: 1=regular file; 2=executable; 3=directory; 4=link; 0=unknown.
  8. (if filename is link) name of linked-to file.
  9. (in Dev.06) "binary" or "text:xxx", where xxx is 8bit, 7bit, utf8, etc.
12 Mar 2013
9.0.304 Dev.03
§ The TOUCH command was updated to allow an arbitrary modification date-time to be applied to the touched file(s), rather than always the current date-time. Kermit's TOUCH command is quite powerful in its file selection capabilities, including size, date, type, patterns, exception lists, recursion, etc. Type HELP TOUCH at the C-Kermit prompt for details. § C-Kermit now shortens pathnames as much as possible for the file-transfer display, necessary because Unix paths are getting longer and longer and the name of the file increasingly tends to disappear off the end. This was done by replacing the user's home path with "~/" and/or leaving the path off entirely when the file is in C-Kermit's current directory.
11 Mar 2013
9.0.304 Dev.02
This is a development version, not widely tested and therefore not ready for release. Since the Kermit Project at Columbia University was canceled, I no longer have access to a wide variety of platforms for development and testing.   What's new in 9.0.304: § Android support via the "make linux" path (Tim Sneddon). § Noted in makefile that "make linux" works for Raspberry Pi. § Fixes for OpenSSL 1.0.0 and later; C-Kermit built with OpenSSL was sometimes spuriously refusing to run when a new SSL version was detected (Adam Friedlander and Jeff Altman). § Support for multiarchitecture libraries in Linux (curses, resolv, etc) (Ian Beckwith). § Fix for a core dump when transferring a file on OpenBSD on Sparc64 due to some inconsistencies in declarations between modules (the edit with just this fix was marked 9.0.303 and may have made its way into some OpenBSD distributions). § Various minor fixes described in the Change Log. Thanks also to Bruce Skelly for verification on the Raspberry Pi.
20 Aug 2011
The C-Kermit 9.0.302 release, contains corrections applying only to FreeBSD 8 and 9.
11 Jul 2011
The C-Kermit 9.0.301 release, contains a correction applying only to Solaris 10 and 11.
06 Jul 2011
Beta.01
C-Kermit 9.0.301 Beta.01. Fixes DNS lookup in Solaris 10 and 11 (which apparently has never worked); suppresses a couple compiler warnings in the SSL module. So far there is no need for 9.0.301 on any platform but Solaris 10 and 11.
30 Jun 2011
The C-Kermit 9.0.300 release (actually released 28 June but dated 30 June).
21 Jun 2011
Beta.02
Builds correctly on more and more platforms with and without MIT Kerberos 5 and/or OpenSSL.
16 Jun 2011
Beta.01
First Open Source version. FORCE-3 error checking. Simple variable evaluation. See the C-Kermit 9.0 Beta Test release notes.
21 Sep 2010
Alpha.09
SSL feature detection updates in Solaris and Linux; pseudoterminal support update in Solaris.
23 Aug 2010
Alpha.08
CSV support for \fjoin(), Suse Linux UUCP lockfile update.
05 Aug 2010
Alpha.07
Several bug fixes, new \fstrcmp() function.
07 Apr 2010
Alpha.06
Comma-Separated Value files, documented HERE.
05 Apr 2010
Alpha.05
New functions: \fcvtcsets() (converts a string from one character set to another); \fdecodehex() (decodes hex escapes in a string); \fstringtype() (tells if a string is 7-bit, 8-bit, or UTF-8). Documented HERE.
29 Mar 2010
Alpha.04
FTP connections could not be made from 64-bit Unix platforms like Mac OS X or RHEL5 on x86_64, or any Unix OS on Alpha hardware. This should be fixed now. Also various unrelated compile-time warnings fixed.
19 Mar 2010
Alpha.03
See notes for details. General: § Escape-sequence stripping from session log by INPUT as well as by CONNECT. § New commands for selectively issuing progress or debugging messages from scripts. § A fix to prevent the fixed packet-timeout interval from going to an unexpected value. Unix: § Relaunching a closed SSH connection with the CONNECT command is now possible. § Unlike Alpha.02, Alpha.03 can be built on FreeBSD 8.0 and SunOS 4.1. § New aixg target for building on AIX with gcc. § New aix+ibmssl target for building on AIX with IBM SSL. VMS: § "Large File Support" now included by default on 64-bit hardware on VMS 7.3 and later § Kermit's internal FTP client is now included by default in any build that also includes TCP/IP networking. § In network builds that request OpenSSL support are more self-configuring. § Preliminary limited support for the ODS-5 file system on VMS 7.2 and later. § Support for older and older VMS versions.
01 Feb 2010
Alpha.02
§ Fix for unbalanced #ifdefs in ckuusy.c from SMS, which affected VMS only. § A fix for INPUT /COUNT:n from Gerry Belanger. § New \fsqueeze() function to squeeze each instance of multiple whitespace in a string into a single blank (and to remove leading and trailing whitespace). § For Kerberos builds NO_KRB5_INIT_ETS now defined by default, since krb5_init_ets() is no longer used and may be missing from the Kerberos libs. § Improvements to FSEEK /FIND:pattern. § Improvements to \fword() and \fsplit() so they work as expected with strings encoded in 8-bit character sets. § A fix to serial port handling from John Dunlap when trying to disable RTS/CTS flow control on a 3-wire cable. § The C-Kermit program herald now announces if SSL, Kerberos 4, or Kerberos 5 support is included. § Adaptation to MINIX 3.1.5, except for the FTP client. § ckuker.nr (Nroff man page source) is now included in the tarball so "make install" will work.
20 Nov 2009
Alpha.01
First C-Kermit 9.0.299 Alpha-test release, Described here.
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 \%a upper, \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 commands 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 compilation 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.

12 Jun 2006
Dev.19
Large file support added for IRIX 6.5 by Scott Kasten. File transfer display fixed for RESEND/REGET of large files. tru64-51b+openssl makefile target fixed, SSL/TLS versions now build OK on Tru64 Unix.
14 May 2006
Dev.18
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 failures 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; if match index.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?
  • On the file-transfer display screen, do all the numbers look right?
  • Do numbers look right in debug and transaction logs?
  • Does the DIRECTORY command show the correct file size for all files?
  • Can you use FOPEN and FSEEK on both regular and long files?
  • What are the results of the following S-Expressions?
    (^ 2 30) (^ 2 31) (^ 2 32) (^ 2 62) (^ 2 63) (^ 2 64) (^ 2 99)
  • Do all your scripts still work?
  • etc. etc.

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:

\flopx(sesame.cc.columbia.edu) = edu
\flopx(sesame.cc.columbia.edu,,2) = columbia.edu

Laid some more groundwork for hybrid 32/64-bit builds (to allow "long" files to be transferred on 32-bit platforms that supply an appropriate API).

14 Nov 2005
Dev.06
Strictly for debugging an isolated FTP/SSL problem; one debug statement added.
11 Nov 2005
Dev.05
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 "dir ck[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.
10 May 2004 Allow access to FTP ports above 16383. Fix FTP output of Unicode text to screen. Relax FTP FEAT parsing to allow different kinds of whitespace. Fix short-circuit property of S-Expressions like (AND X Y). Inhibit automatic switching from SPACE parity to NONE on autodownload. Fix DIAL MACRO to work with multi-word phone numbers. Deal with compile-time warning on certain Red Hat systems regarding <baudboy.h>.
17 Apr 2004 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".

  Translations of this page courtesy of...

Language Link Date Translator Organization
Spanish Español 2024/01/05 Marglin Araujo chicksx.com
C-Kermit 10.0 / The Kermit Project / kermit@kermitproject.org