📄 ckc192.upd
字号:
writes, particularly in the "estimated time left" slot, so I added 3 linesof code to screenc() so Kermit could optimize this itself.ckuusx.c, 21 Nov 93.From Kai Uwe Rommel, 21 Nov 93 (begin quote):I have fixed the problems. Included I send a few diffs and a new ckotio.c,because I took the opportunity for a few cleanups in this module.I have also made changes to allow compilation with IBM's TCP/IP 2.0, which hasa 32-bit socket interface. Unfortunately, this has the implication, that now*two* DLL's are required, SO32DLL.DLL and TCP32DLL.DLL. Also, the executabledoesn't run with TCP/IP 1.2.1 any longer. So, we should make the distributed32-bit executable for TCP/IP 1.2.1 and it also runs with TCP/IP 2.0. I madechanges only to allow someone to recompile C-Kermit if he has only TCP/IP2.0. To fully support it, we will have to wait until I finally find the timeto restructure the TCP/IP support.I have, BTW, dropped the IBMSELECT code, because it is not needed, both TCP/IP1.2.1 and 2.0 support the BSD select() call and that is more portable.Another problem: It is currently not possible to check for the return code ofprograms run via zshcmd(). In addition, the exit code was not returnedcorrectly from zsyscmd() in the aegis and OS/2 cases. I have somewhat quick-fixed zshcmd() for the OS/2 case to allow the "IF FAIL" command to work. TheUNIX branch has to be fixed too. However, that only allows to check if thereturn code is not zero. Sometimes it would be convenient to determine theexact exit code of the program. How about adding a variable \v(exitcode)which holds the return code of the last program run via zshcmd() or zsyscmd()?My current wish list of things I would like to do looks like:- Fix timed keyboard input with an additional thread instead of alarm()- Restructure TCP/IP code to support multiple vendors with one executable- Allow remote operation over serial lines and TELNET connections- Add Tektronix emulation(End quote)Built 16- and 32-bit OS/2 versions OK, 21 Nov 93; put cko190.zip up fortesting on net. All reactions so far are positive.Another INPUT command speedup: Rather than always doing 1-second timed reads,time each read for the amount of time left in given timeout interval. Thisreduces the number of system calls considerably, and still works fine --succeeds when it should succeed, fails when it should fail, terminatescorrectly under both extremes: no characters arriving at all; a steady streamof characters arriving. ckuus4.c 21 Nov 93.Revisited old problem of UNIX and VMS CONNECT showing a couple garbagecharacters upon first accessing a second or subsequent connection. It wasjust a matter of having the CONNECT module reset its i/o buffer pointerswhenever it knew it had a new connection, or that the current connection hadterminated because of an i/o error. CKVCON.C (VMS) 5A(031), ckucon.c (UNIX)5A(058), 23 Nov 93.When transferring a file with packets longer than about 2300, debug() callswould fail because the text to be logged was longer than the debug-recordbuffer. This made it tough to track down certain kinds of errors related tolong packets. I changed the debug code to grow the buffer as necessary,dynamically. ckuusx.c, 24 Nov 93.Moved closing of debug log to just before _exit() is called, so now we can logthe actions of ttres(), ttclos(), etc. Reorganized UNIX ttclos() to not do alot of silly things to the command terminal, especially if it was using stdin(file descriptor 0) to communicate with it. ckutio.c, 24 Nov 93.Added new WRITE-LINE (synonym: WRITELN) command. Just like WRITE, exceptit writes its argument string in the form of a line or record, appropriate tothe underlying operating system. This lets scripts create output filesin a system-independent fashion. ckuusr.c 5A(113), 24 Nov 93.Change ttclos() in ckutio.c for UNIX to unset the TIOCSINUSE flag for thedevice, since this bit had been set for it in ttopen(). I'm not sure if thisfixes any problem, but it shouldn't hurt. Also, changed sysinit() to callpriv_ini() before doing anything else at all. Apparently some UNIX versions(386BSD, etc) won't allow a set[gu]id program to open /dev/tty to get theterminal modes, etc, so this makes Kermit's effective UID be the user's realUID before any attempt is made to get terminal modes, etc. ckutio.c 5A(117)24 Nov 93.Removed "#define WAIT_T pid_t" from ckcdeb.h (within #ifdef POSIX).Apparently, this is just completely wrong -- nowhere is the argument to wait()a pid_t; it's always either an int or else a struct of some kind. According"Portable C Software", it's always safe to call wait() with an (int *).ckcdeb.h 24 Nov 93.Changed lockfile for 386BSD from /var/spool/uucp to /var/spool/lock --suggested by many people. makefile.Changed ckhost(), the routine that gets the local host name, to callgethostbyname() in 386BSD, rather than utsname(). Suggested by Nick Sayer<mrappe@quack.kfu.com>, who says 386BSD (a.k.a. Jolix 0.1+pk0.2.4) didn't haveutsname(). ckuusx.c.Chased down a report that SET DIAL INIT-STRING didn't work when invoked froma macro. As far as I can tell, it works fine. However, SHOW DIAL did notreport your DIAL INIT-STRING or PREFIX if you had not previously SET MODEM tosomething, which could be misleading. ckudia.c 5A(051) 24 Nov 93.The file attributes structure, zsattr, defined in ckcdeb.h, contained a membercalled passwd. But some C compilers can't deal with structure members havingthe same names as other identifiers. This killed C-Kermit compilation underAltos Xenix 3.0. Reported by Ken George <nsaho@tuns.ca>. ck*fio.c, 24 Nov 93.Fixed BSEND and TSEND macros in standard CKERMIT.INI file; they would messup if given wildcards.Fixed SET HOST and TELNET commands to automatically SET CONTROL PREFIX 255for TCP/IP connections. This omission pointed out by Bill Glass. ckuus7.c,25 Nov 93.INPUT commands, when executed from VMS C-Kermit in remote mode for readingmaterial from the console terminal (e.g. for checking terminal answerbacksequence), were not working right because the VMS version of coninc() did notcheck to see if it timed out in certain cases and returned a character valuelike 0 or 127 rather than -1 in these cases. Fixed in coninc(), CKVTIO.C2.0-064 25 Nov 93.VMS C-Kermit session logs were being written in Stream_LF format, but stillcontained carriage returns, which made them look funny when viewed in VMSeditors (little arrows showed up at the end of each line). This was fixed byopening the session log with "rfm=stm" (new) as well as "ctx=stm". Suggestedby Jason Seaman <jason@wccf.mit.edu>, Whitaker College, MIT. CKVFIO.C2.0-105, 25 Nov 93.Executing a series of file transfer commands from a command file or macro tookan inordinate amount of time because of long, annoying pauses between eachcommand. It seems there were some gratuitous sleep(1)'s and sleep(2)'s in theprotocol module. These were to allow "nonblocking" mode changes to take placebetween command and protocol mode. These sleeps really had no business in theprotocol module, and should be placed -- if necessary! -- in the appropriatesystem-dependent modules. Removing them makes multiple local-mode transfers(send this, send that, send another, ...) go just as fast as a single wildcardtransfer. For remote-mode transfers: same speedup, but you have to rememberto put SET DELAY 0 in your command file! ckcpro.w 5A(057), ckutio.c 5A(118),25 Nov 93.Built today's version on SunOS 4.1.3, NeXTSTEP 3.0, Dell System V R4,OpenVMS/VAX, OpenVMS/AXP, Linux 0.99.13, RS/6000 AIX 3.1, DEC OSF/1-AXP.A couple minor adjustments for FreeBSD to yesterday's code from Scott Mace<smace@freefall.cdrom.com>: declaration of sys_errlist[] in ckcfn3.c, SETSPEED keyword list in ckuus3.c, vanity banner for FreeBSD. While futzing withthe SET SPEED list yet again, I took the opportunity to redesign how it works.Kermit-specific symbols are now defined (or undefined) in ckcdeb.h for theuncommon speeds, and these can be augmented or overriden from the CC commandline using BPS_xxxx or NOB_xxxx symbols. Also, added 57600 and 115200 forLinux, and added an as-yet-unused entry for 230400 bps. Documentation onspeed configuration added to ckccfg.doc. 26 Nov 93.Added SET CONSOLE as an invisible synonym for SET COMMAND, as the word CONSOLEis bit more intuitive, and in preparation for possibly adding other console-related items, like SPEED, PARITY, FLOW, ... ckuusr.c 5A(114) 26 Nov 93.About 6-8 weeks ago, Paul Placeway sent in a new set of source for MacintoshKermit, in which several bugs were fixed in the Mac-specific (ckm*.*) modules,and which had been adapted for compilation under Think C as well as MPW C.These have now been adapted to C-Kermit edit 190, and I made several otherchanges too: added a fix to doactive() from Ed Huff <huff@mcclb0.med.nyu.edu>,apparently overlooked by Paul (?); I filled in the zhome() and zgtdir()functions (code from Steven Woolgar <famus2@dmi.usherb.ca>); enabled the CDand PWD commands as well as the corresponding functions and variables. Somechanges to ckcdeb.h, ckuus5.c, ckuusr.c, ckcfns.c. Compiles under MPW C 3.2just fine, seems to run OK too, except CD command still pops up a bunch ofwindows on the screen saying "Writing to the console in applications is NOTsupported!". And zhome() always seems to return the null string. Andzgtdir() always seems to return the name of the disk, but not the currentfolder... (see code for these in ckmfio.c.) 26 Nov 93.Added makefile entry for FreeBSD from Scott Mace <smace@freefall.cdrom.com>.29 Nov 93.Added SET PRINTER and SHOW PRINTER commands for OS/2 C-Kermit. ckuusr.h,ckuusr.c, ckuus2.c, ckuus3.c, ckuus5.c. 30 Nov 93.ID swapping needed for access() in the BSDI version: -DSW_ACC_ID added tothe bsdi makefile entry. From John Kohl. 1 Dec 93.A fix from Kai Uwe Rommel for an OS/2 C-Kermit bug: if Kermit was left inCONNECT mode, the OS/2 system could not be shut down. ckotio.c 5A(110)1 Dec 93.Added SET { FILE, TERMINAL } CHARACTER-SET HP-ROMAN8, to support HewlettPackard's proprietary Latin-1-like 8-bit character set. The translation usedis the one provided by HP (e.g. via iconv); it is not invertible. Also, fixedincorrect translation from DGI to Latin-2. ckuxla.h, ckuxla.c 5A(021),1 Dec 93.Fixed TRANSLATE command to work right when one (or both) of the character-setsis Latin-2 or CP852. ckuus4.c, 1 Dec 93.Changed terminal emulator in OS/2 C-Kermit to not display transparent-printmaterial on the screen, since this is how a real VT102 works.ckocon.c 5A(106) 1 Dec 93.Consolidated and rearranged some Mac-specific definitions and declarations:ckcdeb.h, ckmusr.c, ckmtio.c, ckuus5.c, ckuus6.c. The need for this waspointed out by Joe Bearly <jst@itsa.ucsf.edu>. 1 Dec 93.Fixed sdata() to make a special case for the Atari ST when looking to seewhether to interrupt the D-packet-sending loop, because the ST version ofttchk() never returns a value > 1. ckcfn2.c 5A(049) 1 Dec 93.Changed the packet-mode interruption defaults from 2 Ctrl-C's to 3 Ctrl-C's.This prevents protocol breakouts when users SET CONTROL UNPREFIX 3 or 131,because 3 Ctrl-C's in a row will be encoded with a repeat count. This changemight be a little disconcerting to users, but when they type two and nothinghappens, they will almost certainly type a third. ckcmai.c, 2 Dec 93.Added a new compile-time symbol: NDGPWNAM. If you define this, e.g. inCFLAGS or KFLAGS, it skips the forward declaration of getpwnam() in ckufio.c,presumably because it was already declared in <pwd.h>, and avoid "conflictingtypes for getpwnam" errors, e.g. from GCC 2.5.6. ckufio.c 5A(077) 5 Dec 77.The 32-bit version of OS/2 C-Kermit, when in server mode, failed to redirectthe output of REMOTE DIRECTORY, REMOTE TYPE, and similar commands (which workby running a copy of CMD.COM via popen()), to the Kermit client. Rather, theoutput would appear on the server's screen. This was caused by a bug in theIBM C++ PDK Beta compiler which I have been using. I upgraded to IBM C++ Set2.0, and the problem went away. 8 Dec 93.When Kai Uwe dropped the OS/2 C-Kermit IBM-style select() in favor of the BSDversion, he forgot to update ckotcp.c and ckotcp.def, so OS/2 C-Kermit wouldno longer run on systems where IBM TCP/IP was not installed, because of adynamic linking error at startup time caused by _bsdselect missing from thedummy DLL. Kai Uwe to the rescue. 8 Dec 93.Bo Kullmar noticed that SET TRANSFER CANCELLATION 3 3 does not quite make itsafe to SET CONTROL UNPREFIX 3. This is because the code in ttinl() to checkfor cancellation ignored the parity bit, so (for example) \x03\x83\x03 couldstill kill a transfer. I changed ttinl() to ignore the parity bit only ifPARITY was not NONE; this should be nearly 100% safe now that all C-Kermitprograms capable of remote-mode operation also do automatic parity detection.Also, packet-mode interruption should occur only when C-Kermit is in remotemode, but ttinl() was letting it happen in local mode too, so I changed it.Also, I removed cancellation code from two C-Kermit programs that included it,but that could never be in remote mode: Mac Kermit and Atari ST Kermit.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -