From: Frank da Cruz To: wermit-l@wkuvx1.wku.edu Subject: C-Kermit 6.1 Alpha.08 Here's Alpha.08 of C-Kermit 6.1.193. Still a closed Alpha (pre-Beta) test, not ready for open public testing yet. Details about the new version are given in the text files mentioned towards the end of this message. Let me know if you want off the announcement list. (Note: I added some more people to this mailing who haven't seen any of this before, some of whom have built and/or otherwise taken care of C-Kermit on other platforms or are working on new ports -- if you have any questions, send me e-mail.) GENERAL CHANGES SINCE ALPHA.07 (24 Sept 1997) Quite a few! (If you have not received previous announcements, see the ckermit2.upd and ckc193.upd files for complete details.) Sending directory trees: . SET { SEND, RECEIVE } PATHNAMES { RELATIVE, ABSOLUTE, OFF } . Define new common intermediate representation for pathnames (UNIX format). . Extend SET FILE NAMES CONVERTED to handle pathnames also. . SEND /RECURSIVE allows transmission of directory trees. . New functions to get recursive file and directory lists: \frfiles(), \fdirectories(), \frdirectories(). . Text and Binary filename pattern lists for automatic switching. . \fnextfile() now works safely from its own separate file/directory list. . Bigger file lists allowed in most versions. Client/Server: . Local MKDIR and RMDIR commands added. . REMOTE MKDIR and RMDIR commands added, for client to tell server to create or remove directories, plus corresponding ENABLE and DISABLE commands. . Server end of REMOTE MKDIR and RMDIR commands added. Performance: . Some hopefully significant file-transfer speedups, especially for binary-mode no-parity transfers (some transfers clocked at FTP speeds on our local Ethernet). . Changed SET TRANSFER CRC-ACCUMULATION default from ON to OFF for speed. . SET FILE OUTPUT { BLOCKING, NONBLOCKING, BUFFERED, UNBUFFERED } . Peak CPS added to STATISTICS display. . STATISTICS { /BRIEF, /VERBOSE }, /BRIEF is new default. More and more SEND qualifiers: . SEND /LIST: . SEND /MOVE: . SEND /RENAME: Connections: . Better detection of connection loss during and after file transfer. . BYE or FINISH when given after connection drops no longer get stuck. . Improved messages in fullscreen file-transfer display esp. for failures. . URL-stripping for "set host" and "telnet". Command Language and Script Programming: . New REDO command re-executes the most recent command that matches the pattern. . New WHERE command ("where did that file go that I just transferred???") . ?-file lists now show whether a file is regular or a directory. . Automatic (local) arrays for macros and command files. . SET OUTPUT SPECIAL-ESCAPE { ON, OFF } to en/disable \N, \B, \L in OUTPUT. . New assignment syntax: .name = value means DEFINE name value .name := value means ASSIGN name value .name ::= value means EVALUATE value then assign result to name . IF ABSOLUTE succeeds if is absolute (not relative) . DELETE has new /VERBOSE and /QUIET switches . Commit each WRITE FILE line to disk when written. . Added SHOW LOGS, broke this info out from SHOW FILE. . New variables \v(printer), \v(escape), . New functions \fdirname(filespec) (returns the directory part of a file specification), \frandom(max) (pseudorandom number generator). . Command-file reader more tolerant of unexpected record formats. . SET WILD { SHELL, KERMIT } [ { /MATCH-DOT-FILES, /NO-MATCH-DOT-FILES } ] (new switches: UNIX only) New command-line options: . New command-line option, -G, which is like -g (GET), but sends result to stdout. Use, for example, to suck files up for printing to the remote from the local via autoupload: "kermit -G oofa.txt | lpr". Fixes: . "define \%a 12:00:00, pause \%a" now works right. . Some foulups in autodownload parity detection. . EXIT warnings no longer issued when running background or in batch. . Numerous minor parsing and command-editing fixes. . Clear network buffers before starting a new Rlogin session to prevent rlogin protocol foulups. Open Issues: . Supporting serial speeds above 38400 in IRIX 6.2 and later, or for that matter, supporting "set speed" at all in IRIX 6.2 and later (I'm getting mixed reports). . Transferring bizarre-record-format files in VMS that worked with Kermit-32. . Getting/setting file permissions in VMS . Making it work at all on the BeBox. . Adding TCP/IP support for Plan 9 (should be interesting!). . Lousy performance on AOS/VS (in case anybody cares). My DG mini is dead (as is DG itself as far as I can tell). Short of a miracle, Alpha.07 is the final edition of C-Kermit for AOS/VS. As you can see, the changes since last time are, well, massive, no doubt retain a few rough edges, and need a LOT of heavy testing. The new directory-tree sending ability is pretty unique, I think. Not only is it possible to send a directory tree between (say) two UNIXes or two VMS's, you can do it between any pair of UNIX, VMS, OS/2, Windows 95, Windows NT (when the next version of K95 comes out), Windows 3.x or DOS (when the next version of MS-DOS Kermit comes out), or (if anybody can compile and debug it) AOS/VS. And not only that, the directories can contain any mixture of text and binary files. This is possible because of the following new developments: . The new ability of UNIX C-Kermit (and the forthcoming versions of K95 and MS-DOS Kermit) to descend through a directory tree when sending files (does not apply to VMS which already could do this by expanding wildcards such as "[...]*.*"; similarly for AOS/VS). This needs to be added for VOS, OS-9, and other active C-Kermit versions. . The ability to send relative pathnames (or absolute ones) in a standardized, cross-platform format. . The ability of C-Kermit to automatically create directories when receiving files (this might need to be added for VOS, OS-9, etc). . Filename pattern lists for automatic selection of text and binary mode. Default lists are supplied for each platform, and the user can replace them, add patterns to them, or remove patterns from them. To illustrate how easy it is to send a directory between like systems, all you need to do on the sending system is: $ kermit ; Start Kermit C-Kermit> cd /usr/olga ; CD to desired source directory C-Kermit> send /recursive * ; Send all files recursively On the receiving computer: $ kermit ; Start Kermit C-Kermit> cd /home/ivan/ C-Kermit> mkdir olgas-files ; Create desired destination directory C-Kermit> cd olgas-files ; CD to it, and... C-Kermit> receive /pathnames:relative ; (abbreviate "r /pa:r") File dates and times are preserved across the transfer, and for UNIX/UNIX transfers only, also permissions. When sending files between unlike systems, there are lots of other considerations, obviously, like setting up automatic text/binary mode switching and character-set conversion appropriately; for example: Sender: cd xxx ; CD to root of source tree set file type binary ; Default transfer mode set file character-set hp-roman8 ; Local character set for text files set xfer character-set latin1 ; Transfer character set set file patterns on ; Enable automatic file-type switching... set file binary-patterns *.Z *.gz *.o ; based on these patterns... set file text-patterns *.txt *.c *.h ; for binary and text files. send /recursive * ; Send all the file in this directory tree Receiver: cd yyy ; CD to root of destination tree set file character-set cp850 ; Local character set for text files receive /pathnames:relative ; Receive with pathnames WHERE TO FIND IT C-Kermit 6.1.193 Alpha.08 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. Among the interesting text files: ckermit2.upd -- Detailed documentation of new features since 6.0.192. ckc193.upd -- Program edit history since 6.0.192. ckuins.doc -- UNIX installation instructions. ckvins.doc -- VMS installation instructions. ckvker.bwr -- VMS C-Kermit "beware file" with new hints on CD, etc. ckuker.bwr -- UNIX C-Kermit beware file. ckcplm.doc -- Program logic manual, API definition, etc. alpha0[1-8].txt -- Announcements of each Alpha test. INDIVIDUAL ALPHA.08 BINARIES: I did not have a chance to update and test all of them this time (the net has been really awful); the binaries marked with (*) are C-Kermit 6.1.193 Alpha.08, transferred using itself to the Kermit ftp site; the others are mostly Alpha.07; I'll be bringing the others up to date over the coming days. ftp://kermit.columbia.edu/kermit/test/bin/ ckdker-aosvsii.pr: DG 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.hpux500wintcp HP-9000/550 HP-UX 5.21 + TWG-TCP/IP 1.2 ckuker.hpux80oc-hp9000_385 HP-9000/385 HP-UX 8.00 ckuker.hpux90o700 HP-9000/712 HP-UX 9.05 * ckuker.hpux100o-10.20 HP-9000/715 HP-UX 10.20 * ckuker.du32 DEC Alpha Digital UNIX 3.2 * ckuker.du40 DEC Alpha Digital UNIX 4.0 ckuker.irix51-5.3 SGI IRIX 5.3 * ckuker.irix60-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 NeSTSTEP 3.1 * 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.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.solaris25-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 I'd be glad to do more of these myself and spare you the trouble -- for that I'd need guest IDs on systems I can Telnet to from here, and which have the necessary C compilers, header files, & libraries. Thanks to all of you for your help with & comments on this version so far! Please beat it to death and send any bug reports straight to me so I don't embarrass myself too much when announcing the public Beta. 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 in the ckc193.upd file). And if you have trouble, of course, let me know. - Frank