|
|
1.1 root 1: C-KERMIT FOR UNIX, CHANGES FROM 4C(056) TO 4C(057), 31 JUL 85:
2:
3: general (many modules affected):
4: . Change "set send packet-length" to override Send-Init value.
5: . Change still more global character variables from int or char to CHAR.
6: . Fix 4.1BSD and C/70 support (Charles Brooks), 2.9 support (Herm Fischer).
7:
8: ckcfns.c:
9: . Server always executes generic (but not host) commands in text mode.
10: . Change calling convention for getchx() to allow better reporting of eof.
11: Some earlier changes had apparently broken PDP-11 support for binary
12: files because of sign extension...
13: . Again, several hours after initial announcement of 4C(057) found that above
14: change had busted things for 68000s (again) because of still more int/char
15: conversion problems. Changed 'next' from int to char and moved its file
16: begin/end function to a new flag variable, 'first'. Hopefully, not too many
17: copies got out; those that did are dated 29 July; the version with this fix
18: is dated 31 July. Sigh...
19:
20: ckuusr.c:
21: . Fix timing statistics to work for 16-bit machines too (Dan).
22: . Change calls to execl() to terminate with "(char *)0", not "0".
23:
24: ckufio.c:
25: . Fix bug that sometimes prevented sending files with 14-char long names.
26:
27: ckutio.c:
28: . Herm fixed it up so all the changes in previous edits that broke his
29: modem control code are now more compatible with it. Also, myread() -- the
30: nonblocking equivalent of read() -- was fixed to report errors better.
31:
32: ckudia.c:
33: . Many changes from Herm & Dan, mostly relating to modem control and resetting
34: alarms to get the dialing-with-no-carrier-to-connected-with-carrier
35: transition working again.
36:
37:
38: C-KERMIT FOR UNIX, CHANGES FROM 4C(055) TO 4C(056), 11 JUL 85:
39:
40: ckcpro.w:
41: . Make new ssfile state, to allow for display of data in ack to file header.
42: . If data comes in ack to file header, log to transaction file.
43: . Put local filename in data field of ack to F packet.
44: . Add calls to new rtimer(), gtimer() to allow transactions to be timed.
45: . When sending, include D in EOF packet in all cases when interrupted.
46: Previously, only "czseen" would do it, but not cxseen.
47: . Upon receipt of Z packet, send Ack AFTER closing file rather than before.
48: If file can't be closed, send Error packet instead of Ack.
49: . Upon receipt of error packet while receiving file, discard file.
50: . Upon receipt of unexpected packet type, send Error, not Nak.
51:
52: ckcfns.c:
53: . Change clsof() to accept an argument specifying whether to discard.
54: . Change clsof() to keep incomplete file regardless of arg if keep != 0.
55: . Change clsof() to return -1 if output file could not be closed.
56: . Change name of getch() to getchx() to avoid conflict with libraries.
57: . Fix Yet Another Problem with 8th-bit Quoting Negotation. The bug was that
58: if other side said 'N' we would treat 'N' as quoting prefix rather than "NO"
59: (but only if parity was set to other than none).
60: . Remove input buffer flush from sfile() (why was it ever there???).
61: . Change seof() to accept an argument to put in the Z-packet data field.
62: . Add transaction timing statistics to reof(),reot() for transaction log.
63: . Combine sfile() and sxpack() into one function.
64:
65: ckcfn2.c:
66: . Improve performance of rpack by reducing scan for soh to number of chars
67: read rather than whole buffer (required changing inlin()'s return code).
68: . Allow rpack to skip over "blank lines" without failing; this was preventing
69: file transfer with some systems that always sent CRLF before transmitting
70: anything (e.g. UCLA's MVS/TSO VTAM).
71: . Don't flush input buffer at end of rpack(), because if the packet that we
72: just read is a repeat or an echo, the one we want might be queued up after
73: it. Instead, flush in input() only after the desired packet arrives.
74: . Allow user to type ^A^C^C to interrupt rpack and exit cleanly from program.
75:
76: ckuusr.c:
77: . Add "incomplete" to "set" parse table and display incomplete in "show".
78: . Add "%" command for comment lines.
79: . Add elapsed time and effective baud rate display to "statistics" command.
80: . Fix "show parameters", had send/receive end-of-packet reversed.
81: . Make modem-type lookup in "show" a little cleaner.
82: . Fix "echo" to interpret \ooo escapes in its argument.
83:
84: ckuus2.c:
85: . Add "help set incomplete".
86: . Fix help message for "set line".
87:
88: ckuus3.c:
89: . Add "set incomplete" support.
90: . Allow "set prompt" argument in doublequotes and strip quotes if used, to
91: allow specification of prompt with leading &/or trailing blanks.
92: . Fix "set send/receive padding/pad-character" -- they had variables reversed.
93:
94: ckufio.c:
95: . For Pro/Venix V1, make MAXWILD and SSPACE even smaller, so malloc() still
96: has some space left to allocate...
97: . Change zclose() to return -1 if file could not be closed.
98:
99: ckutio.c:
100: . Use Sys III/V nonblocking read() technique also for 4.xBSD -- improves
101: performance noticably!
102: . Add rtimer() and gtimer() functions for resetting/getting elapsed time.
103: . Don't return failure from tthang() if line wasn't open.
104: . Print warning message if tthang() or ttunlk() fail.
105: . In ttclos(), relinquish exclusive access.
106: . Change some #ifdefs so they depend on features, like FIONREAD, rather than
107: system, like BSD4. This allows collapsing a lot of redundant code.
108:
109: ckucon.c:
110: . Add hangup (h) option to escape character arguments.
111:
112: ckuscr.c:
113: . Change static timeInt() to global scrtime() to avoid problems on code
114: mapped systems.
115:
116:
117: C-KERMIT FOR UNIX, CHANGES FROM 4C(054) TO 4C(055), 28 JUNE 85:
118:
119: ckudia.c (all changes by Dan Schullman, DEC):
120: . Add support for US Robotics modem (untested) from Joe Orost at Berkeley.
121: . Reorganize MDMINF data structure to accommodate US Robotics (some char
122: fields had to become strings).
123: . Allow interrupts (SIGINT, e.g. ^C) to cancel dialing in progress.
124: . Ring bell when connection made successfully.
125: . Close line on failures.
126: . Allow stored numbers with DF100 and 200 modems.
127:
128: ckudia.c now supports the following modems:
129: . Cermetek Info-Mate 212 A
130: . DEC DF03-AC
131: . DEC DF100 Series
132: . DEC DF200 Series
133: . General Data Comm 212A/ED
134: . Hayes Smartmodem 1200 & compatibles
135: . Penril
136: . Racal Vadic
137: . US Robotics 212A
138: . Ventel
139: Plus "unknown" modems and direct (modemless) connections.
140:
141:
142: C-KERMIT FOR UNIX, CHANGES FROM 4C(053) TO 4C(054), 25 JUNE 85:
143:
144: ckuker.mak (makefile):
145: . Add "make ft17" for Fortune 16:32 For:Pro 1.7.
146: . Add "make uts24" for Amdahl UTS 2.4
147: . Add "make valid" for Valid Scaldstar CAD system
148: . Add "make c70" for BBN C/70 IOS 2.4
149:
150: ckcmai.c:
151: . Add call to sysinit()
152:
153: ck[uvm]tio.c:
154: . Add sysinit() function. For VMS, open console. For others, null for now.
155:
156: ckutio.c, ckufio.c:
157: . Add support for Fortune 16:32, mostly like 4.1bsd.
158: . Ditto for Amdahl UTS 2.4, mostly like V7.
159:
160: ckuus2.c:
161: . Expand a couple tabs in hlp1 (-h help message) so things line up right.
162:
163:
164: C-KERMIT FOR UNIX, CHANGES FROM 4C(052) TO 4C(053), 21 JUNE 85:
165:
166: ckcfn2.c:
167: . Change dopar() to be of type CHAR.
168: . Fix dopar() to calculate odd parity correctly.
169:
170: ckucon.c, ckuscr.c:
171: . Add "extern CHAR dopar();" declarations.
172:
173:
174: C-KERMIT FOR UNIX, CHANGES FROM 4C(050) TO 4C(052), 18 JUNE 85:
175:
176: ckcfns.c:
177: . Repair rpar() and spar() handling of 8th bit prefix negotiation.
178: . In sinit(), when sending from stdin, allow "-a name" to work.
179: . In rcvfil(), guard against receiving a null F packet.
180:
181: ckcmai.c:
182: . Change hlptxt[] to contain less than 256 characters (for Xenix)
183:
184: ckcpro.c:
185: . In proto() call ttopen() with a temp, x, rather than "local", then only
186: set local if x was set.
187:
188: ckucmd.c:
189: . In cmifi(), make y long rather than int. This was making some 16-bit
190: machines erroneously report that files longer than 32K could not be found.
191:
192: ckuker.mak (makefile):
193: . Change symbol 3BX to ATT3BX (has to start with letter)
194: . Remove line continuations in the middle of strings
195: . Add entry for sys3nid (System III/V on PDP-11 with no I&D space)
196:
197: ckufio.c:
198: . Add appropriate #ifdef for TOWER1 in zkself()
199: . Add 2.9bsd identification string
200:
201: ckutio.c:
202: . Move definition of CTTNAM from here to ckcdeb.h, so it can be shared.
203: . In initrawq() (for V7 only) read the proc table again after fork().
204: . Change symbol 3BX to ATT3BX.
205: . Get rid of the (void) casts in strxxx() invocations -- the proliferation
206: of conditionals was getting ridiculous, and it was only to please lint.
207: . In conbin() for Sys III/V, open terminal in 7-bit, parity-enabled mode rather
208: than 8-bit, no-parity mode (some sites actually use parity).
209: . In conint(), trap and ignore QUIT signal, trap SIGHUP and handle like SIGINT.
210: This prevents lock files from being left behind after hangup or quit.
211: . In connoi(), turn off traps for SIGQUIT, SIGHUP.
212: . In ttopen(), add Sys III/V code using ctermid() to better determine remote/
213: local status when stdin redirected. If not Sys III/V and stdin redirected,
214: assume local, rather than remote, so that "set speed" and other local-mode
215: only commands will work.
216: . Add 2.9bsd identification string
217: . Make new ANYBSD symbol to select 4.1, 4.2, and 2.9. In some cases, all 3
218: work the same, in others, 2.9 and 4.2 are the same, 4.1 special.
219:
220: ckuus*.c:
221: . In command line invocation, base local/remote determination on CTTNAM.
222: . In "set line" only ask ttopen() to set local/remote if not default tty.
223: . Ignore SIGQUIT and SIGINT signals while inferior shell active in XXSHE:.
224: Previously, both Kermit and the inferior shell would catch them.
225: . In XYLINE: call ttopen() with a temp, x, rather than "local", then only
226: set local if x was set.
227: . Change message "status report..." to "status report:" to avoid dot confusion.
228:
229:
230: C-KERMIT FOR UNIX, CHANGES FROM VERSION 4.2(030) TO 4C(050), 30 May 85:
231:
232: All files except ckwart.* have been renamed according to a consistent
233: convention, see ckaaaa.hlp for an explanation.
234:
235: Copyright notices added to every module, so we can't be enjoined from
236: distributing our own program if we give the right to other organizations,
237: like Berkeley, to distribute it.
238:
239: ckwart.c
240:
241: . Move the #define in the txt1 string to not start on a new line.
242: . Fix the comments printed by wart so they can't be construed as comments
243: by the compiler that compiles wart.
244: . Include formfeed among the skipped-over whitespace characters.
245: . Add wart version information.
246:
247: ckcdeb.h (formerly ckdebu.h):
248:
249: Forget about typedefing LONG to be unsigned long -- it causes too many
250: problems for PDP-11 C compilers, etc. Just let LONG be long.
251:
252: If symbols DEBUG and TLOG not defined (e.g. in Makefile), then define
253: null macros to replace calls to the debug() and tlog() functions, to save
254: space and execution time. Program is too big for Macintosh with these
255: functions compiled in.
256:
257: Establish a symbol NLCHAR. If this symbol is defined, then text (ascii)
258: files are stored with a single character (such as lf or cr) terminating
259: each line, and this character is the value of NLCHAR. If not defined,
260: then the system uses CRLF. When NLCHAR is defined, C-Kermit maps between
261: that character and CRLF.
262:
263: ckcfns.c, ckcfn2.c (formerly ckfns.c, ckfns2.c):
264:
265: . change all calls to screen() to new form.
266: . fix bug in sfile() that sometimes prevented literal names from working.
267: . don't translate send-as names in sfile, always use them literally.
268: . change input() to always resend() after getting a NAK.
269: . change getpkt to clear leftovers when starting new file (next = -1),
270: so that filenames in F pkt wouldn't have garbage after previous file
271: was interrupted.
272: . Change call to zchin() to use new calling convention so bytes with
273: hi bit on won't be confused with eof on some systems.
274: . Reset czseen in seof, not in clsif, so that remote ^X while C-Kermit
275: sending will result in correct Z packet with D in data.
276: . In resend(), don't send any packet if packet buffer is empty.
277: . Un-hardwire getch() from Unix newline text file convention.
278: . Fix bug that sometimes resulted in contents of R or X packet
279: having first character doubled.
280: . Fix bug in getpkt that prevented leftovers from being transmitted
281: after end of file.
282: . Have tinit() clear c[xz]seen and filnam to prevent bad things happening
283: after interruption or emergency protocol exit.
284: . Have syscmd() return 0 if called with null string. This allows single
285: process systems like the Macintosh to act as servers, even if they can't do
286: commands like remote directory.
287: . Send out initial nak when doing receive, so that there will be something
288: in the packet buffer to resend.
289: . Check for failure return code from zchout, to catch disk full errors, etc.
290: . When server getting input from a system function, call zopeni() on new
291: ZSYSFN channel, rather than circumventing zopeni() by calling zopen().
292: . Clean up inlin() a little, use maxt vs MAXTRY consistently.
293: . Change rpack,spack,rpar,spar,etc to use the new, separated send/receive
294: packet parameters (padding,timeout,eol,soh,etc).
295:
296: ckcker.h (formerly ckermi.h):
297:
298: . Removed #include <stdio.h> and <ctype.h> from ckermi.h. Macintosh does not
299: need all that... (thanks, Bill)
300: . Remove include of ckdebu.h (now ckcdeb.h).
301: . Add defs for LF and NUL.
302: . Add def for new ZSYSFN file i/o channel.
303:
304: ckcpro.w (formerly ckprot.w) Protocol Module:
305:
306: . Add "a" state to cancel any transaction.
307: . Remove entries for input='N', since this is now handled by input().
308: . Fix "a" state to not cause "OK" message when files closed.
309:
310: ckucmd.c (formerly ckcmd.c) Unix Command Package:
311:
312: . Set global cmerrp (error prefix) to be same as prompt, but with '>' stripped.
313: . Allow interactive command continuation using trailing '\'.
314: . Change "*bp++ == NUL;" in getwd() to simply "bp++;".
315: . Test for CR as well as NL for line termination (for Apollo Aegis).
316: . In ckucmd.h, #define getchar specially for VMS and Aegis.
317: . In cmfld, return(0) from filling out default when ESC typed; this prevents
318: "log trans <ESC>transact.log <ESC>transact.log <ESC>transact.log ..."
319: . In cmtxt, preserve pointers & counts across calls in case of reparse.
320: . In getwd, return -1, NOT -2, if ^U (line kill) is typed.
321:
322: ckucon.c (formerly ckconu.c) Connect module:
323:
324: . When writing to session log, make some minimal attempt to recover
325: from disk full or other i/o errors (just turn off logging flag).
326: . Add baud and parity info to status display.
327:
328: ckudia.c (formerly ckdial.c) Dial command:
329:
330: . Support added for Racal-Vadic, Cermetek, Penril, General Datacomm.
331: . Use msleep() for higher precision timing.
332:
333: ckufio.c (formerly ckzunx.c, and before that ckzbsd.c):
334:
335: Started from Charles Brooks's 4.2 ckzunx.c, which is the original C-Kermit
336: release 4.2 version, to which he added 4.1bsd support.
337:
338: . Fixed zltor() to only count dots after the last '/'.
339: . Declared malloc as "char *malloc()".
340: . Change fprintf(fp[n],s) to fputs(s, fp[n]) in zsout & zsoutl.
341: . Added zkself() function to log self out, for use by server "bye".
342: . Changed calling convention for zchin() to allow 68000's etc to return EOF.
343: . Make zopeno() chown the file to self, in case program set[ug]id'd.
344: . Changed znewn() to try not to contruct a name that is too long.
345: . Merge in Gregg Wonderly's v7 support.
346: . Make various changes to v7 support to fit proc table stuff to other systems.
347:
348: . (023) Changed zopeni(), when called with new ZSYSFN channel number,
349: to invoke zxcmd() to start a fork and get its fd; also changed zclose()
350: and chkfn() accordingly.
351:
352: . (024) In zchki(), allowed 0 as well as S_IFREG as S_IFMT value for ordinary
353: file; Sys V stat() can return either of these values for an ordinary file.
354: Also, insert missing #else in zkself().
355:
356: . (025) declare zchki() to be of type 'long', so that it can return valid
357: file sizes for big files. Also fix internal variables that hold size to
358: also be long. (Same change to ckvfio.c.) Also, change ckcfns.c and ckucmd.c
359: to declare 'long zchki();'.
360:
361: ckutio.c (formerly ckxunx.c and ckxbsd.c):
362:
363: Started from Charles Brooks's 4.2 ckxunx.c, which is the original C-Kermit
364: release 4.2 version, to which he added 4.1bsd support.
365:
366: . Added the following for Pro/Venix Version 1:
367: - Filled in msleep() using alarm(-clockticks).
368: - Filled in conchk() and ttchk() using TIOCQCNT.
369: - Changed default tty name (dftty) to be "/dev/com1.dout".
370: - Added line locking via /usr/spool/uucp/LCK..devname and TIOCEXCL.
371: . Changed local variable c from int to CHAR in ttinl().
372: . Let CEB's code to hangup line upon close in 4.1bsd also work for 4.2bsd.
373: . Removed flock() from ttopen(), call ttlock() before trying to open tty.
374: . Corrected some places where alarms & signals were not turned off.
375:
376: . Changed calling convention for ttopen() to allow it to set the "local"
377: variable, since ttopen can call the system to figure out whether a given
378: device is the job's controlling tty. Also had to change all modules that
379: call ttopen() to pass this variable by reference instead of by value.
380:
381: . In ttopen, copy ttname string into a static ttnmsv string global to ckutio
382: module, rather than just copying the pointer (which is pointing at a moving
383: target). Should fix PC/IX tthang() problem.
384:
385: . Add support for AT&T 3B-series under 3BX conditional; initially, it just
386: follows UXIII conditional, but uses special uucp lock file name.
387:
388: ckuusr.c, ckuus2.c, ckuus3.c (formerly ckuser.c, ckusr2.c, ckusr3.c):
389:
390: . all occurrences of printf(s) replaced by printf("%s",s) or puts(s).
391: . shortening of remaining long strings.
392: . continuation lines now allowed in commands if line ends with "\".
393: . make "dir" command arg default to ".", not "*", to prevent recursive listing.
394: . make "!" command with no args do system("$SHELL").
395: . removed redundant definitions of ncmd, nrmt, nprm.
396: . totally redefined and rewrote screen() function.
397: . Change send-as to use cmtxt, not cmfld; remove cmcfm.
398: . Fix send command to wait for confirmation after wild filespec (this was
399: broken by send-as change above, few people saw it).
400: . Put 'log debug' command in #ifdef DEBUG
401: . Put 'log transaction' command in #ifdef TLOG
402: . Use 'transact.log' as default name for transaction log, rather than
403: 'transaction.log', which is too long for all but 4.2bsd Unixes.
404: . Use symbols for exit() & doexit() return codes, not hardwired 0 and 1.
405: . Use symbol for name of init file.
406: . Put Unix-specific messages in #ifdef's
407: . In 'set line', put speed back to -1 if not local.
408: . Change "*xargv++;" in cmdlin() to simply "xargv++;".
409: . Change all "if (x = (cmcfm()) < 0)" to "if ((x = cmcfm()) < 0)".
410: . In ckuus3, change "turnch == y" to "turnch = y"; this bug prevented
411: "set handshake" from working.
412: . Add code in shopar() to look up and display modem type correctly.
413: . Change "set line" code to have ttopen() figure out local/remote mode.
414: . Fix "set line" not to erroneously set ttname if it ttopen fails.
415: . In remote cwd parsing, accept CR as well as NL as password terminator.
416: . In local directory command, use DIRCMD rather than "ls -l ".
417: . In screen() function SCR_QE, print long argument with %ld so the ^A
418: status report doesn't show all 0's on systems where ints and longs
419: are different length (%ld was already used in the other screen functions).
420: . Fix multiline 'get' parsing to allow editing (required fixes to ckucmd.c).
421: . Add conditionals for init file name for various systems.
422: . Phase out the following set commands:
423: set end-of-packet, set start-of-packet, set timeout, set padding & pad-ch.
424: Replace by set send (each of these) and set receive (each of these), to
425: allow inbound & outbound packet parameters to be set separately.
426: . Put new set send/receive params in show command display.
427: . Add version info for ckudia and ckuscr to 'sho ver'.
428: . Add init file name to 'sho param'.
429: . Replace system("pwd") in XXCWD code with system(PWDCMD), defined in ckufio.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.