To: wermit-l@wkuvx1.wku.edu Subject: C-Kermit 6.1 Alpha.12 This is to announce C-Kermit 6.1 Alpha.12. Still a closed Alpha, like last time. Mainly just bug fixes to Alpha.11, with a few minor additions; almost ready for Beta, I hope. As usual, several new people have been added to the mailing list (see notes at end about how to find out what happened in previous Alphas). GENERAL CHANGES SINCE ALPHA.11 (3 Jan 1998): . Added: REMOTE SET TRANSFER MODE { AUTOMATIC, MANUAL } . Added: \v(intime) variable: how many milliseconds INPUT required. . Added: \fword(s1,n,s2) extracts word number from string s1. . Added: Display modem's CONNECT message in "Call complete" message. . Added: Optional message for EXIT and QUIT, like END and STOP. . Added: Display of sizeof(various-data-types) to SHOW FEATURES. . Added: Display of wildcard-expansion list limit to SHOW FEATURES. . Fixed: Program exit status code when file transfer fails (again!). . Fixed: Overflows and/or FPEs when calculating throughput (I hope). . Fixed: { SEND, GET } { /BINARY, /TEXT } (see below). . Fixed: -Q ("fast") command-line option when used on small builds. . Fixed: A couple out-of-bounds array references in debug() statements. . Fixed: Missing return value from dohopts(). . Fixed: Various subtle parsing problems with switches, etc. . Fixed: Lots of feature-selection #ifdef combinations. . Updated: ckermit2.upd file (documentation of new features). . Improved: text/binary filename pattern lists (SHOW PATTERNS to see). . Replaced: References to (nonportable) memcpy() with new ckmemcpy(). . Strengthened: Validation of date-time fields in the command parser. The /TEXT and /BINARY switches previously did not supersede all the other rules regarding text-vs-binary transfers. But if the user goes to the trouble of typing "send /binary oofa.txt", this indicates s/he really wants the file transferred in binary mode, regardless what filename pattern its name might match, and regardless of the "whoami" and "whatami" mechanisms, or any other automatic means by which the most appropriate mode is determined. This works in both directions (SEND and GET) except when the server's TRANSFER MODE is AUTO, in which case the client can still prevail with the new REMOTE SET TRANSFER MODE MANUAL command. (Note that manual transfer mode disables both "whoami" and filename pattern-matching.) \fword(s1,n,s2) returns word #n from the string s1, where "word" is defined by default as any sequence of ASCII letters or digits. You can change the default by including a break set in string s2. So for example, if you dial a modem and it says "CONNECT 31200/ARQ/V32/LAPM/V42BIS" (which is now included in the "Call complete" message) and you want to grab the modulation speed out of this string, it's easy: echo Modulation speed = \fword(\v(dialresult),2) and in fact, the above would work the same even if the modem had only said "CONNECT 31200". I *hope* I have forestalled all the floating-point exceptions and overflows that occur when using high-precision (floating-point) timers and then converting the result to a long. In case the floating-point number has greater magnitude than the maximum value for a long, the result is (according to K&R) "undefined", and in practice ranges from no noticable effect, to a core dump (SCO), to a system halt (reported on AIX). Meanwhile, somebody somewhere might find a good use for \v(intime). For example, a typing-speed test (press the space-bar to exit): .\%n = 0 ; New shorthand for DEFINE (remember?) .\%t = 0 while true { input -1 ; Wait for any character if eq {\v(inchar)} { } break ; Exit if Space increment \%n ; Count it increment \%t \v(intime) ; Accumulate the time (msecs) } .\%s ::= \%n * 1000 / \fmax(\%t,1) ; (shorthand for evaluate and assign) echo echo Your typing speed is \%s keys per second. (you have to do this for at least several seconds to get a good number.) UNIX-SPECIFIC CHANGES . Added: HP-UX 11.00 support (thanks to John Bigg). . Added: Bigger buffers by default (BIGBUFOK) for HP-UX 9.x. . Increased: Non-BIGBUFOK wildcard expansion list from 1K to 4K files. . Fixed: Orphan CONNECT forks on HP-UX after hitting Reset key. . Fixed: SET CARRIER-WATCH ON in HP-UX and other non-cooperating UNIXes. . Fixed: Treatment of SET FLOW AUTO in IRIX and NeXTSTEP. . Fixed: Certain very obscure SEND-switch parsing problems. The big news here is that C-Kermit finally pops back to its prompt automatically on serial connections when carrier drops if CARRIER-WATCH is not OFF, as documented, even on platforms like NeXTSTEP and HP-UX and SunOS where it never worked before. If you hate this behavior, then curse EIA and CCITT (ITU-T), not me, and then put SET CARRIER-WATCH OFF in your .mykermrc file. The obscure SEND-switch problem, in case you're interested, occurred if you gave a command like "send /b foo.bar". Well, "/b" does not match any switch uniquely, so Kermit says "fine, it's not a switch, it's a filename". And if there happens be a "b" directory under root, well... Can you guess? (No fair peeking at ckc193.upd.) Open UNIX issues: . Reportedly uid/gid switching does not work right on NeXTSTEP 3.3. . C-Kermit not building on FreeBSD 2.2.5 because "_xstr" undefined. . Still no C-Kermit 6.1 version for the BeBox or Plan 9. VMS-SPECIFIC CHANGES . Increased: Wildcard expansion list from 4K to 1024K (1M) files. . Fixed: Method for determining if C-Kermit is running in a batch job. . Fixed: Undesired writing of file-transfer display into batch log. . Fixed: INPUT from serial device with SET CARRIER OFF and no carrier. . Fixed: Broken filename completion (nobody noticed this???) . Removed: Set program name, bad idea (lasts forever). . Maybe fixed: Extraneous character in CONNECT when modem says NO CARRIER. Those of you who were having trouble using C-Kermit for remote-mode file transfers under DECIntact (and maybe also ALL-IN-1?), try this: C-Kermit> set line /share ; (or "set line /share tt:") (I said this last time but got no reports back. So? Did I fix it?) Open VMS issues: . I don't have access to Alpha VMS 6.x any more, can't make binaries, sorry. . Inability to transfer certain types of files that Kermit-32 can transfer. . Inability to create or CD to a directory when the directory specification includes a DECnet node. WHERE TO FIND IT C-Kermit 6.1.193 Alpha.12 is in the usual places for C-Kermit test versions, along with early drafts of all the update documentation, etc: ftp://kermit.columbia.edu/kermit/test/tar/ cku193src.tar.Z Source code (UNIX and VMS), tar, UNIX compress cku193src.tar.gz Source code (UNIX and VMS), tar, gzipped cku193txt.tar.Z Other text files, tar, UNIX compress cku193txt.tar.gz Other text files, tar, gzipped ftp://kermit.columbia.edu/kermit/test/text/ Individual source and text files for these and other platforms: AOS/VS, Stratus VOS, etc etc. Among the interesting text files: ckermit2.upd -- Detailed documentation of new features since 6.0. ckaaaa.hlp -- Overview of files, file naming conventions, etc. ckc193.upd -- Program edit history since 6.0. ckuins.doc -- UNIX installation instructions. ckvins.doc -- VMS installation instructions. ckvker.bwr -- VMS C-Kermit "beware file" (hints and tips). ckuker.bwr -- UNIX C-Kermit beware file. ckcplm.doc -- Program logic manual, API definition, etc. ckccfg.doc -- Program configuration options. alpha*.txt -- Announcements of each Alpha test. INDIVIDUAL ALPHA.12 BINARIES: The binaries marked with (*) are Alpha.12, transferred using itself (in streaming mode this time) to the Kermit ftp site; the others are earlier 6.1 Alphas (built at sites I can't reach any more or that have since been upgraded to newer OS versions, etc): ftp://kermit.columbia.edu/kermit/test/bin/ * ckdker-aosvsii.pr: DG MV 2500 AOS/VS-II * ckuker.bsd44c-hp9000_300 HP-9000/300 4.4BSD-Lite ckuker.bsdi2-2.1 PC, BSDI 2.1 ckuker.bsdi2-3.0 PC, BSDI 3.0 * ckuker.bsdi2-3.1 PC, BSDI 3.1 * ckuker.du32 DEC Alpha Digital UNIX 3.2 * ckuker.du40 DEC Alpha Digital UNIX 4.0 * ckuker.hpux500wintcp HP-9000/550 HP-UX 5.21 + TWG-TCP/IP 1.2 * ckuker.hpux80c-hp9000_385 HP-9000/385 HP-UX 8.00 (not optimized) * ckuker.hpux80oc-hp9000_385 HP-9000/385 HP-UX 8.00 (optimized) * ckuker.hpux90-hp9000_712 HP-9000/712 HP-UX 9.05 (not optimized) * ckuker.hpux90o700-hp9000_712 HP-9000/712 HP-UX 9.05 (optimized) * ckuker.hpux100-10.20 HP-9000/715/33 HP-UX 10.20 (not optimized) * ckuker.hpux100o-10.20 HP-9000/715/33 HP-UX 10.20 (optimized) * ckuker.irix51-5.3 SGI IRIX 5.3 * ckuker.irix60-6.2 SGI IRIX 6.0, built on 6.2 * ckuker.irix62-6.2 SGI IRIX 6.2 (**) * ckuker.linux-1.2.13-i386 PC, Red Hat Linux 1.2.13 * ckuker.next-3.1-mc68040 NeXT 68040 NeXTSTEP 3.1 * ckuker.next33-3.3-mc68040 NeXT 68040 NeXTSTEP 3.3 * ckuker.qnx16 QNX 4.24 16-bit * ckuker.qnx32 QNX 4.24 32-bit * ckuker.rs6aix41c IBM RS/6000 AIX 4.1 * ckuker.sco32v504net PC, SCO OpenServer 5.0.4 * ckuker.sinix542-5.42-mips SNI SINIX 5.4.2 MIPS (RM200) * ckuker.solaris2x-2.4-sparc Sun Sparc, Solaris 2.4 * ckuker.solaris2xg-2.4-sparc Sun Sparc, Solaris 2.4 (made with gcc) * ckuker.solaris2x25-2.4-sparc Sun Sparc, Solaris 2.4 + SunLink X.25 * ckuker.solaris25-2.5.1-sparc Sun Sparc, Solaris 2.5.1 * ckuker.solaris25g-2.5.1-sparcSun Sparc, Solaris 2.5.1 (made with gcc) * ckuker.solaris26-2.6-sparc Sun Sparc, Solaris 2.6 * ckuker.sunos41c-4.1.3-sparc Sun Sparc, SunOS 4.1.3_U1 * ckuker.ultrix42c-4.3-mips DECstation 5000, Ultrix 4.3 * ckuker.unixware2-2.1.1 PC, Unixware 2.1.1 * ckuker.unixware2-2.1.2 PC, Unixware 2.1.2 ckvaker-vms62-nonet.exe: Alpha CPU, VMS 6.2, no TCP/IP ckvaker-vms62-tgv40a.exe: Alpha CPU, VMS 6.2, MultiNet 4.0A * ckvaker-vms71-nonet.exe: Alpha CPU, VMS 7.1, no TCP/IP * ckvaker-vms71-tgv40b.exe: Alpha CPU, VMS 7.1, MultiNet 4.0B * ckvvker-vms55-nonet.exe: VAX CPU, VMS 5.5-2, no TCP/IP * ckvvker-vms55-ucx20.exe: VAX CPU, VMS 5.5-2, UCX 2.0 * ckvvker-vms61-nonet.exe: VAX CPU, VMS 6.1, no TCP/IP * ckvvker-vms61-tgv40a.exe: VAX CPU, VMS 6.1, MultiNet 4.0AX * ckvvker-vms71-nonet.exe: VAX CPU, VMS 7.1, no TCP/IP * ckvvker-vms71-tgv40b.exe: VAX CPU, VMS 7.1, MultiNet 4.0B (**) The IRIX 6.2 version is built on an O2, and so (at last) has the high serial speeds. Type "set speed ?" to see. I'd be glad to do more of these myself and spare you the trouble -- for that I'd need guest IDs on systems or configurations not listed above, to which I can Telnet from here, and which have the necessary C compilers, header files, & libraries. C-Kermit 6.1 has not yet been checked out in OS-9, Atari ST, or Macintosh -- volunteers? (But VOS and Amiga work is in progress.) Thanks to all of you for your help with & comments on this version so far! Please continue to beat on it and send any bug reports straight to me. If you do succeed in building it on a platform not listed above, please let me know the details (machine make & model, OS and version, separate TCP/IP product, if any, and the size (in bytes) of the resulting executable (for addition to the table at the end of the ckc193.upd file). And if you have trouble, of course, let me know about that too. - Frank P.S. And also let me know if you want off this mailing list.