Annotation of researchv10dc/lbin/kermit/ckuker.upd, revision 1.1

1.1     ! root        1: C-KERMIT FOR UNIX, CHANGES FROM VERSION 4E(069) TO 4E(070), 29 Jan 88
        !             2: 
        !             3: ckuusr.c
        !             4:   Put reference to SIGSTOP in #ifdef SIGTSTP conditionals.
        !             5: 
        !             6: ckcmai.c
        !             7:   Update version number and date.
        !             8: 
        !             9: C-KERMIT FOR UNIX, CHANGES FROM VERSION 4E(068) TO 4E(069), 27 Jan 88
        !            10: 
        !            11: ckcfn2.c:
        !            12:   In input(), set the rdatap pointer to the timeout message.
        !            13: 
        !            14: ckucmd.c:
        !            15:   Change name of getwd() to gtword(), to avoid conflict with BSD getwd()
        !            16:   function.
        !            17: 
        !            18: ckufio.c:
        !            19:   Change to conditionalize zgtdir() function, calling getwd() for BSD,
        !            20:   getcwd() for System V, and returning a constant string for others.
        !            21: 
        !            22: ckutio.c:
        !            23:   Change foreground/background test in conint() for Berkeley to be based
        !            24:   on something that really works, namely testing the process group against
        !            25:   the controlling terminal's process group.  There is apparently no way to
        !            26:   do this in Sys V...  This fixes the disappearing prompt problem, at least
        !            27:   on BSD-based systems.  (Thanks to Fuat Baran for this.)
        !            28: 
        !            29: 
        !            30: C-KERMIT FOR UNIX, CHANGES FROM VERSION 4E(067) TO 4E(068), 24 Jan 88
        !            31: 
        !            32: Make this the standard released version, rename all files to ck* from xk*.
        !            33: 
        !            34: Change version number and date in ckcmai.c.
        !            35: 
        !            36: Makefile:
        !            37:   Add entries for sco286 and sco86 to Makefile (D.W. Bettinger, DEAN@SUVM)
        !            38:   Make ckudia.c depend on ckucmd.h (G. Uddeborg, [email protected])
        !            39: 
        !            40: ckwart.c:
        !            41:   Change ungetc(c) to ungetc(c,fp) in case '/' in gettoken().
        !            42: 
        !            43: ckcfns.c:
        !            44:   In function cwd(), after changing directory, ask system for new directory
        !            45:   name by calling new function zgtdir().
        !            46: 
        !            47: ckuusr.c:
        !            48:   Add stptrap() function to allow job to be suspended by Ctrl-Z.
        !            49:   Change call to dial() to ckdial().
        !            50: 
        !            51: ckudia.c:
        !            52:   Change name of dial() to ckdial() to avoid name conflict.
        !            53:   Add support for ATT 7300 modem from R.E. Hill (untested).
        !            54: 
        !            55: ckutio.c:
        !            56:   Add corrections to conint() from Bob Brown ([email protected])
        !            57:   to make Ctrl-Z job suspension work right.
        !            58:   Add support for ATT 7300 modem from R.E. Hill (untested).
        !            59: 
        !            60: ck?fio.c:
        !            61:   Add new function zgtdir() to ck[uvdmi]fio.c, to return name of current
        !            62:   working directory.  Call it from ckcfns.c.
        !            63: 
        !            64: C-KERMIT FOR UNIX, CHANGES FROM VERSION 4E(066) TO 4E(067), 5 Aug 87
        !            65: 
        !            66: This version makes the minor corrections to 4E(066) that proved necessary
        !            67: after the beta test of that release.
        !            68: 
        !            69: - ckcfns.c -
        !            70: 
        !            71: In spar(), fix long packet negotiation to allow "set send packet-length"
        !            72:  override to work.
        !            73: Rename maxsize parameter of getpkt to bufmax to avoid confusion with global
        !            74:  maxsize.
        !            75: 
        !            76: - ckcfn2.c -
        !            77: 
        !            78: In rpack(), allow 3 tries to get a packet.  This allows for hosts (like IBM
        !            79:  mainframes) that echo the CR that terminates C-Kermit's packets with a CRLF.
        !            80: Misc "lint" cleanups.
        !            81: 
        !            82: - ckcmai.c -
        !            83: 
        !            84: Update program version number and date, give credit to more people.
        !            85: 
        !            86: - ckucon.c -
        !            87: 
        !            88: Change wait(0) to wait((int *)0).
        !            89: 
        !            90: - ckudia.c -
        !            91: 
        !            92: Add Concord Condor CDS 220 2400b modem support from Jim Guyton.
        !            93: Misc "lint" cleanups.
        !            94: 
        !            95: - ckufio.c -
        !            96: 
        !            97: Change wait(0) to wait((int *)0).
        !            98: Don't #include <sys/file.h> for Xenix (this might be dangerous?).
        !            99: In zxcmd, set effective group & user IDs for BSD to override security
        !           100:  checks of csh.
        !           101: 
        !           102: - ckuker.mak (Makefile) -
        !           103: 
        !           104: Added make options for cleaning out intermediate & object files and for lint.
        !           105: Added make option for CDC VX/VE systems.
        !           106: Added some comments for improved clarity.
        !           107: 
        !           108: - ckutio.c -
        !           109: 
        !           110: Break a line that was longer than 80 chars.
        !           111: Add missing return in conditionals at end of ttpkt(), so program can run
        !           112:  on Pyramid and similar systems.
        !           113: Add support for CDC VX/VE Sys V Unix from S.O. Lidie, Lehigh U.
        !           114: Don't #include <sys/file.h> for Xenix.
        !           115: 
        !           116: - ckuusr.h -
        !           117: 
        !           118: Move definition of KERMRC here from ckuusr.c.
        !           119: 
        !           120: - ckuusr.c -
        !           121: 
        !           122: Fix parsing of "show paramaters" (now you can edit it).
        !           123: Change wait(0) to wait((int *)0).
        !           124: Remove some debug() statements.
        !           125: Move definition of KERMRC from here to ckuusr.h, so "show" command can find it.
        !           126: Set default prompt before reading init file instead of after, so "set prompt"
        !           127:  in init file will work.
        !           128: Set effective group & user IDs for shell command execution.
        !           129: 
        !           130: - ckuus2.c -
        !           131: 
        !           132: Fix help message for "set send/receive packet-length".
        !           133: 
        !           134: - ckuus3.c -
        !           135: 
        !           136: Attempt to fix parsing of "remote cwd" command from take file.
        !           137: Fix typo in "Extended-length packets requested" message.
        !           138: 
        !           139: - ckvfio.c -
        !           140: 
        !           141: Define PWDCMD so that "cwd" can work (hopefully).
        !           142: 
        !           143: - ckvtio.c -
        !           144: 
        !           145: Add missing syscleanup() function (just returns 0).
        !           146: 
        !           147: 
        !           148: C-KERMIT FOR UNIX, CHANGES FROM VERSION 4D(061) TO 4E(066), 5 Aug 87
        !           149: 
        !           150: This version is being released as a test version, because it has not been
        !           151: tested at all on the Mac, Amiga, VMS, or Data General, or on many of the common
        !           152: Unix systems (SUN, etc), and has not been tested in local mode at all except
        !           153: under Ultrix 2.0 on a VAX 750, and under 2.9BSD on a Pro-380.
        !           154: 
        !           155: 
        !           156: MAJOR CHANGES:
        !           157: 
        !           158: Added support for long packets.
        !           159: 
        !           160: Performance improvements: less copying of received data, more efficient i/o.
        !           161: 
        !           162: C-Kermit now takes its init file always, even if invoked with command-line
        !           163: action arguments.
        !           164: 
        !           165: Easy escape from packet mode (^C^C at any time).
        !           166: 
        !           167: Added file bytesize mask to 'set file type {text, binary} {7, 8}' so that
        !           168: Kermit can be used to strip 8th data bit during file transfer (e.g. of
        !           169: Wordstar files), independent of parity setting.  Default 8.
        !           170: 
        !           171: Added 'set terminal bytesize {7, 8}'.  Default 7.
        !           172: 
        !           173: Added 'set retry' command to adjust packet retransmission limit.
        !           174: 
        !           175: Included changes to support Data General, Apollo, Amiga, Mac with Megamax C.
        !           176: 
        !           177: New 'make' options for sys5r3, CIE Regulus, HP-UX, IBM IX/370, zilog.
        !           178: 
        !           179: Better statistics reporting.
        !           180: 
        !           181: Fix a few major bugs:
        !           182: . Loss of trailing control characters at end of file when sending.
        !           183: . 2-character checksum now works with 8-bit binary files.
        !           184: . Background/take-file interaction fixed, maybe.
        !           185: . Insertion of spurious CRLF at position 4096 when doing 'kermit -k'.
        !           186: . Parsing of multine 'get' command (again).
        !           187: 
        !           188:                            Tested against:
        !           189: Tested under:              MS-Kermit  VM/CMS  DEC-20  VMS  Prime  Ultrix  PDP11
        !           190: . Ultrix 1.2 on VAX 8650       x
        !           191: . Ultrix 1.1 on VAX 750        x
        !           192: . Ultrix 2.0 on VAX 750        x        x        x     x     x      x       x
        !           193: . Ultrix 2.0 on VAX 8700       x
        !           194: . System V on 3B20             x                 x                  x
        !           195: . 2.9BSD on Pro-380                              x                  x
        !           196: 
        !           197: THINGS NOT DONE:
        !           198: 
        !           199: Sliding windows.
        !           200: 
        !           201: Cleaning up the horrible #ifdef mess, especially in CKU[TF]IO.C (at least,
        !           202: not very much).
        !           203: 
        !           204: Improving the command parser.  One obvious improvement would be to replace the
        !           205: relatively limited CKUCMD command-parsing package with the newer, more general
        !           206: and powerful CCMD package.  This was not done because (a) CCMD is bigger, and
        !           207: (b) CCMD has not yet been ported to all the systems that C-Kermit can be built
        !           208: for (VMS, Data General, etc etc).  Anyway, CKUCMD does the job.
        !           209: 
        !           210: Command macros.
        !           211: 
        !           212: A consistent, sensible treatment of program return codes, to allow C-Kermit
        !           213: to be run from scripts or DCL procedures, etc, so that they can tell whether 
        !           214: Kermit "succeeded" or "failed".  But what does failure or success mean?
        !           215: What if it transfers 29 out of 30 files?  What should the return code be?
        !           216: 
        !           217: Improving modem support.  There are ioctl's in BSD & Ultrix (TIOC(N)MODEM,
        !           218: TIOC(N)CAR, TIOCWONLINE) for ignoring/heeding modem signals, but it's not
        !           219: clear (to me) which versions of BSD they apply to.  If somebody wants to
        !           220: straighten this out in ckutio.c, be my guest.
        !           221: 
        !           222: Dealing in any way with lock files or bidirectional terminal lines, esp. the
        !           223: acucntrl business in 4.3BSD, the uugetty business in Sys V, making the program
        !           224: run suid, etc.  Got many, many hints about this, but it's so touchy I'll leave
        !           225: this to somebody who knows what she's doing and can test the results on a
        !           226: variety of systems.  The main problem is that this area is the least
        !           227: consistent among all the Unix variants.  Lock files and directories, their
        !           228: names, the permissions thereon, and the contents thereof differ from system to
        !           229: system, from one version of a system to the next, and within the same version
        !           230: of the same system, from site to site.
        !           231: 
        !           232: REMOTE KERMIT command support in the C-Kermit server.
        !           233: 
        !           234: Attribute packets.
        !           235: 
        !           236: Dialing code for ATT7300 from Richard E. Hill.
        !           237: 
        !           238: "Demon dialer" code from Jon Zeeff.
        !           239: 
        !           240: Code for automatically choosing a dialout line from Frank Wortner.
        !           241: 
        !           242: Support for Tandy 6000 and Alcyon Regulus from Frank Wortner.
        !           243: 
        !           244: etc etc
        !           245: 
        !           246: 
        !           247: CHANGES, MODULE BY MODULE:
        !           248: 
        !           249: - ckcdeb.h -
        !           250: 
        !           251: remove #ifdef LONG_DEF ... #endif because LONG_DEF wasn't used anywhere.
        !           252: remove old commented-out Amiga junk (Phil Julian).
        !           253: 
        !           254: define FREAD and FWRITE for Fortune, which doesn't have sys/file.h
        !           255: (David Sizeland).
        !           256: 
        !           257: Put conditional comments around vax11c #includes if not vax11c (Ron Heiby).
        !           258: 
        !           259: Add typedef SIGTYP for signal(), it's void under Sys V R3, int elsewhere
        !           260: (Ron Heiby).
        !           261: 
        !           262: - ckcfn2.c -
        !           263: 
        !           264: Insert #include ckcsym.h before other includes for benefit of Megamax C,
        !           265: so that symbol MAC can be defined (Jim Noble)
        !           266: 
        !           267: Remove extraneous * from "*pkt++" in for-statement in chk2() (Jim Noble).
        !           268: 
        !           269: change all "screen(SCR_PT,'Q',(long)n,recpkt);" to
        !           270:            "screen(SCR_PT,'Q',(long)(*n),recpkt);" (3 places) (Jim Noble).
        !           271: 
        !           272: Fix type-2 block checks for binary files (make everything unsigned)
        !           273: (David Wilson).
        !           274: 
        !           275: Change name of unchar() macro to xunchar(), to remove conflict with unchar
        !           276: typedef for unsigned character on ATT3Bx SVR3 systems (Ron Heiby).
        !           277: 
        !           278: Add support for long packets, mostly in rpack() and spack().
        !           279: 
        !           280: In input(), recognize a valid Error packet even if it has the wrong
        !           281: sequence number.
        !           282: 
        !           283: Make chk2() only return the low order 12 bits of the checksum, to ward off
        !           284: sign extension problems.
        !           285: 
        !           286: Remove extra level of copying by eliminating call to inlin() in rpack().
        !           287: Instead, call ttinl() directly.
        !           288: 
        !           289: Replace rpack() and spack() with "book-Kermit" versions, to allow receiving
        !           290: and sending of long packets, and removing many extraneous and time-consuming
        !           291: validity checks.
        !           292: 
        !           293: Change packet logging functions to start at the ^A when there are leading
        !           294: nulls (e.g. padding) that would otherwise act as string terminators.
        !           295: 
        !           296: Recode dopar() to do a simple table lookup, rather than calculate parity,
        !           297: to improve packet construction speed.
        !           298: 
        !           299: Fix resend() to resend a packet even if it has leading null pad characters.
        !           300: 
        !           301: - ckcfns.c -
        !           302: 
        !           303: Zillions of "#ifdef datageneral...#endif" sections added, mostly having
        !           304: to do with wildcard expansion, yuck (the ckc* files weren't s'posed to have
        !           305: system dependencies).
        !           306: 
        !           307: Changed extern long tsecs to extern int tsecs.
        !           308: 
        !           309: Fixed getpkt() to remember final leftovers, so that trailing control
        !           310: characters are not ommitted during send (Gordon Scott).
        !           311: 
        !           312: Fixed sdebu() to display seol rather than eol (Scott Ribe).
        !           313: 
        !           314: Add rdebu() to display rpar() results.
        !           315: 
        !           316: Change name of unchar() macro to xunchar() to avoid S5r3 name conflict.
        !           317: 
        !           318: Cast tsecs to (long) in call to tlog in tstats() (Dan Murphy).
        !           319: 
        !           320: Replace rpar() and spar() with "book-Kermit" versions.
        !           321: 
        !           322: Remove extraneous variable chklen.
        !           323: 
        !           324: Add resetc() function to reset some statistics counters.
        !           325: 
        !           326: Move fstats(), tstats(), sdebu(), and rdebu() from here to ckuus2.c,
        !           327: because ckcfns.c had grown too large for some systems (like PDP-11s).
        !           328: Must keep text size of each module below 8K!
        !           329: 
        !           330: - ckcker.h -
        !           331: 
        !           332: Change name of unchar() macro to xunchar().
        !           333: 
        !           334: - ckcmai.c -
        !           335: 
        !           336: Process init file before reading command line args.
        !           337: 
        !           338: SAS version had some code to support the REMOTE KERMIT command via a
        !           339: temp file kludge, which was omitted (do it right, use CCMD, maybe next
        !           340: release).
        !           341: 
        !           342: Shortened hlptxt again, sigh (for Xenix).
        !           343: 
        !           344: #include "ckcsym.h" for Mac.
        !           345: 
        !           346: #ifdef datageneral for longer filenames.
        !           347: 
        !           348: #ifdef for Apollo which wants to use main() for something else.
        !           349: 
        !           350: New server REMOTE HELP message for Mac.
        !           351: 
        !           352: Remove extraneous variable chklen.
        !           353: 
        !           354: - ckcpro.w - 
        !           355: 
        !           356: Change calling convention for rpar(), which now returns a string pointer.
        !           357: 
        !           358: Reset the tty after returning from packet protocol.
        !           359: 
        !           360: Remove extraneous variable 'image', which caused problems for some compilers.
        !           361: 
        !           362: Issue "Escape back" messages when given 'send' or 'receive' command in
        !           363: remote mode.
        !           364: 
        !           365: Terminate with message when error packet received and running in background
        !           366: (Les Mikesell).
        !           367: 
        !           368: Only reset statistics counters when files are actually being transferred.
        !           369: 
        !           370: - ckucmd.c -
        !           371: 
        !           372: Many conditionals added to support Apollo and Data General.
        !           373: 
        !           374: - ckufio.c -
        !           375: 
        !           376: make zchout return -1 or 0, rather than just passing along ferror's
        !           377: return code.
        !           378: 
        !           379: change NULL arg to execl to (char *)NULL in zxcmd().
        !           380: 
        !           381: Various conditionals for Apollo Aegis.
        !           382: 
        !           383: Updated support for Fortune (now FT18), from David Sizeland, London University
        !           384: Medical School.
        !           385: 
        !           386: #include <sys/types.h> before other includes (Les M).
        !           387: 
        !           388: - ckutio.c -
        !           389: 
        !           390: Many Apollo Aegis conditionals.
        !           391: 
        !           392: Minor Fortune changes.
        !           393: 
        !           394: In conint(), always perform background check, so that backgrd flag can
        !           395: be set correctly.  This allows errors in TAKE files to be fatal once again
        !           396: (as they were in 4C). (Gordon Scott) 
        !           397: 
        !           398: Also in conint(), enable SIGTERM and SIGHUP signals so lock files can be
        !           399: cleaned up (Les M).
        !           400: 
        !           401: Rearrange the whole conint() function until it seems to make sense, and
        !           402: try to make connoi() symmetrical with it, i.e. put back the same interrupts
        !           403: that conint() set traps for.
        !           404: 
        !           405: Remove trailing text from #endif's.
        !           406: 
        !           407: In ttpkt(), the call to fcntl should OR the FNDELAY bit into the flags,
        !           408: not AND it! (2 places) (Howard Chu, umich)  For BSD, replace this call
        !           409: with an ioctl() to set and unset FIONBIO (blocking/nonblocking i/o).
        !           410: (Later, don't do any of this for BSD.  Measurements showed BSD does better
        !           411: with blocking reads and buffer checks.)
        !           412: 
        !           413: Make some changes to myread() so that it actually works under 4.xBSD.
        !           414: Change some of the System III/V code as well, so that myread() can actually
        !           415: return -1 when no data is available (inspection of the previous code showed
        !           416: that this could never happen before).  (Later, BSD doesn't use myread() any
        !           417: more.)
        !           418: 
        !           419: Add parity to list of args for ttpkt(), so that it can be saved for use by
        !           420: other tt functions, particularly ttinl().  Saves another copy step.  Add
        !           421: parity arg to calls from ckcpro.w and ckudia.c.  *** WARNING -- This required
        !           422: corresponding changes in ck[idvm...]tio.c, which could not be tested! ***
        !           423: 
        !           424: Allow user to type ^C^C anytime during packet protocol to exit from
        !           425: the program and restore terminal modes, by checking for this in ttinl(),
        !           426: and adding a new -2 return code.  *** Need to change ck[vd...]tio.c too! ***
        !           427: 
        !           428: Add support for HP-UX dialout modems from Bill Coalson of McDonnell Douglas.
        !           429: 
        !           430: Add syscleanup() function, currently empty.
        !           431: 
        !           432: Rearrange myread() a little bit for doing myunread() (Les M).
        !           433: 
        !           434: Totally rewrite ttinl() for efficiency & cleanliness.  No #ifdef's!
        !           435: 
        !           436: - ckuusr.h -
        !           437: 
        !           438: Add symbol for 'set terminal'.
        !           439: 
        !           440: - ckuusr.c -
        !           441: 
        !           442: Return(0) from parser when we exit from command file.
        !           443: 
        !           444: change dcl of istat & qstat from int to SIGTYP.
        !           445: 
        !           446: in cmdlin(), make sure to set quiet = 1 if 'k' option was elected.  This
        !           447: fixes the infamous 4K CRLF bug (the 'conoll("")' in ckcmai.c was inserting
        !           448: an unbuffered CRLF into the buffered data after the first 4K buffer).
        !           449: 
        !           450: Add 'set retry'.
        !           451: 
        !           452: Add call to syscleanup() from doexit().
        !           453: 
        !           454: Change some GOOD_EXITs to BAD_EXITs.
        !           455: 
        !           456: Fix parsing of the last line of multiline 'get' to allow editing.
        !           457: 
        !           458: Fix reading multiline 'get' commands from 'take' file.
        !           459: 
        !           460: Move functions shopar(), dolog(), debopn() to ckuus2 because ckuusr.c was
        !           461: getting too big to compile on some systems (PDP-11s, etc).  Also, move
        !           462: statistics display to new function dostat() in ckuus2.c.
        !           463: 
        !           464: - ckuus2.c -
        !           465: 
        !           466: Some new messages for Data General.
        !           467: 
        !           468: Add '-e' (extended packet length) to usage() message, but remove -h so
        !           469: whole message still fits on screen.
        !           470: 
        !           471: Fix hmsg() to allow editing of 'help' commands.  Previously, operations like
        !           472: 'help send<esc><^W>' would fracture the command line.
        !           473: 
        !           474: Move functions shopar(), dolog(), debopn() here from ckuusr.c.  Add dostat().
        !           475: 
        !           476: In shopar(), display limits on send & receive packet lengths, file and
        !           477: terminal byte sizes.
        !           478: 
        !           479: Move fstats(), tstats(), sdebu(), and rdebu() here from ckcfns.c.
        !           480: 
        !           481: - ckuus3.c -
        !           482: 
        !           483: Conditionals for Data General.
        !           484: 
        !           485: Add 'set retry'.
        !           486: 
        !           487: Add support for long packets in 'set send/receive packet-length'.
        !           488: 
        !           489: Add trailing argument to 'set file type {binary, text} {7, 8}'.
        !           490: 
        !           491: Add 'set terminal bytesize {7, 8}'.
        !           492: 
        !           493: Remove extraneous variable 'image', which caused problems for some compilers.
        !           494: 
        !           495: Increase debug and transaction log string buffer lengths, and do length
        !           496: checking before sprintf()'s to avoid core dumps.
        !           497: 
        !           498: - ckucon.c -
        !           499: 
        !           500: Before forking, do signal(SIGUSR1,SIG_SIGN) to avoid killing parent if
        !           501: connecting to a line with no carrier.  Without this, the child's signal would
        !           502: arrive before the parent's handler was set up (Les M).
        !           503: 
        !           504: - ckudia.c -
        !           505: 
        !           506: Change declarations of savAlrm and savInt from int to SIGTYP (Ron Heiby).
        !           507: 
        !           508: Change Hayes dialing string from AT DT to AT D.
        !           509: 
        !           510: Change Ventel modem dial string from "<K%s'r>" to "<K%s\r>" (Jim Knutson).
        !           511: 
        !           512: - ckuscr.c -
        !           513: 
        !           514: Change declaration of savAlrm from int to SIGTYP (Ron Heiby).
        !           515: 
        !           516: Don't output gratuitous messages when in quiet mode.
        !           517: 
        !           518: Increase script buffer size (SBUFL) from 300 to 512 (Les M).
        !           519: 
        !           520: Remove 7-char restriction on "expect" strings (Les M).  Then remove this
        !           521: change after core dumps.
        !           522: 
        !           523: Log script execution to session log.  Requires addition of new flushi()
        !           524: function.
        !           525: 
        !           526: - ckwart.c -
        !           527: 
        !           528: Several minor fixes from Jim Noble, mostly regarding format of output file.
        !           529: 
        !           530: - Makefile (ckuker.mak) -
        !           531: 
        !           532: New Fortune support under "make ft18" (David Sizeland).
        !           533: 
        !           534: New make option for "sys5r3" (Ron Heiby).
        !           535: 
        !           536: New make option for "cie" (David Lawyer).
        !           537: 
        !           538: New make option for "hpux" (Bill Coalson).
        !           539: 
        !           540: New make option for "ix370" (Wayne Van Pelt).
        !           541: 
        !           542: New make option for "zilog" (Dave Woolley).
        !           543: 
        !           544: Add Xenix hints (Dan Murphy).
        !           545: 
        !           546: 
        !           547: C-KERMIT FOR UNIX, CHANGES FROM 4D(060) TO 4D(061), 9 SEP 86:
        !           548: 
        !           549: Changes from Jack Rouse and Phil Julian of SAS Institute:
        !           550: . Commodore Amiga support replaced, all-new CKI*.* files.
        !           551: . Revert CKUCMD.[CH] and CKUUS?.[CH] to their old selves (mostly).
        !           552: . Fix multiline GET parsing.
        !           553: . Supply a missing printf() parameter in CKWART.C.
        !           554: 
        !           555: Other changes:
        !           556: . Fix top-level parse loop in CKUUSR.C to reset any erroneous start state.
        !           557: . Make sysinit() in CK[UVMI]IO.C return -1 if it fails, 0 if it succeeds.
        !           558: . Have CKCMAI.C check sysinit() return code.
        !           559: . Change refs in CKUFIO.C to _file member of FILE structure to fileno().
        !           560: . In CKUFIO.C, have zclosf() kill fork before wait().
        !           561: . In CKUTIO.C, fix typos in Sys-V speed setting code.
        !           562: . In CKCFN2.C fix errpkt() to close open files.
        !           563: . Add 4.3BSD acu control code to CKUTIO.C, under NEWUUCP conditional.
        !           564: 
        !           565: Compiled and tested under Ultrix 1.1 (= 4.2BSD), Ultrix 1.2 (whatever that
        !           566: may be a hybrid of), 2.9BSD on a DEC Pro/380, and true 4.3BSD on a VAX
        !           567: 11/750 (4.3BSD includes an earlier version of C-Kermit -- 4C(057) -- on
        !           568: its distribution tape).
        !           569: 
        !           570: 
        !           571: C-KERMIT FOR UNIX, CHANGES FROM 4C(058) TO 4D(060), 29 APR 86:
        !           572: 
        !           573: . Add support for Commodore Amiga (Lattice C) from Davide Cervone of Rochester
        !           574:   University in modules CKI*.*, with minor changes to CKCMAI.C, CKUUS?.C,
        !           575:   CKUCMD.C, CKCDEB.H.  No effect on UNIX Kermit. 
        !           576: 
        !           577: . Fix several minor bugs in UNIX version:
        !           578:   - Multiline GET command failure when executed from TAKE file (CKUUSR.C).
        !           579:   - File collision renaming bugs fixed, algorithm improved (CKUFIO.C).
        !           580:   - CONNECT command now reports fork creation failure (CKUCON.C).
        !           581: 
        !           582: 
        !           583: C-KERMIT FOR UNIX, CHANGES FROM 4C(057) TO 4C(058), 19 MAR 86:
        !           584: 
        !           585: makefile:
        !           586: . Add special entry "rtu" for Masscomp.
        !           587: . Fix up "bsd29" entry.
        !           588: 
        !           589: ckcdeb.h:
        !           590: . Added defs for CHAR and LONG for 2.9 BSD.
        !           591: 
        !           592: ckcfns.c:
        !           593: . Make reof() return a value, like it's supposed to.
        !           594: . Make spar() set the right packet terminator (seol, not eol).
        !           595: . Change tinit() to put a NAK packet in retransmit buffer, but don't send it.
        !           596: . Reset cxseen in reof(), so it isn't sticky for the next file.
        !           597: 
        !           598: ckcfn2.c:
        !           599: . Fix input() to treat NAK for packet n+1 as ACK for packet n.
        !           600: . Defend against writing 0 past end of buffer in rpack().
        !           601: 
        !           602: ckcpro.w:
        !           603: . Don't send NAK automatically at beginning of receive.
        !           604: . In <sseof> rule, call sfile with argument xflg, like sfile expects.
        !           605: . Sleep a couple secs before returning to give last packet some time to escape.
        !           606: 
        !           607: ckucon.c:
        !           608: . Remove ^S from among escape character arguments.
        !           609: 
        !           610: ckufio.c:
        !           611: . Change execl() calls to have NULL as 5th arg, rather than (char *)0.
        !           612: . Fix up 2.9 BSD stuff, make it use opendir() for directory stepping.
        !           613: 
        !           614: ckutio.c:
        !           615: . Fix nontimed read in ttinl() to work.
        !           616: . Change msleep() to return immediately if argument is 0 (for dial pause).
        !           617: . Skip setting console modes in con...() functions if not a real tty.
        !           618: . Give system error message in ttopen() if line can't be opened.
        !           619: . Remove erroneous references to DIRSIZ.
        !           620: . Fix up 2.9BSD stuff.
        !           621: 
        !           622: ckuusr.c:
        !           623: . Change execl() calls to have NULL as 5th arg, rather than 0, or (char *)0.
        !           624: 
        !           625: ckvfio.c (VAX/VMS support):
        !           626: . Fix system() to allow spawning interactive shell if '!' command given.
        !           627: . Fix zopeni() to not spuriously reject certain calls, so REMOTE commands work.
        !           628: . Fix msleep(m) to return immediately if m==0.
        !           629: 
        !           630: 
        !           631: C-KERMIT FOR UNIX, CHANGES FROM 4C(056) TO 4C(057), 31 JUL 85:
        !           632: 
        !           633: general (many modules affected):
        !           634: . Change "set send packet-length" to override Send-Init value.
        !           635: . Change still more global character variables from int or char to CHAR.
        !           636: . Fix 4.1BSD and C/70 support (Charles Brooks), 2.9 support (Herm Fischer).
        !           637: 
        !           638: ckcfns.c:
        !           639: . Server always executes generic (but not host) commands in text mode.
        !           640: . Change calling convention for getchx() to allow better reporting of eof.
        !           641:   Some earlier changes had apparently broken PDP-11 support for binary
        !           642:   files because of sign extension...
        !           643: . Again, several hours after initial announcement of 4C(057) found that above
        !           644:   change had busted things for 68000s (again) because of still more int/char
        !           645:   conversion problems.  Changed 'next' from int to char and moved its file
        !           646:   begin/end function to a new flag variable, 'first'.  Hopefully, not too many
        !           647:   copies got out; those that did are dated 29 July; the version with this fix
        !           648:   is dated 31 July.  Sigh...
        !           649: 
        !           650: ckuusr.c:
        !           651: . Fix timing statistics to work for 16-bit machines too (Dan).
        !           652: . Change calls to execl() to terminate with "(char *)0", not "0".
        !           653: 
        !           654: ckufio.c:
        !           655: . Fix bug that sometimes prevented sending files with 14-char long names.
        !           656: 
        !           657: ckutio.c:
        !           658: . Herm fixed it up so all the changes in previous edits that broke his
        !           659:   modem control code are now more compatible with it.  Also, myread() -- the
        !           660:   nonblocking equivalent of read() -- was fixed to report errors better.
        !           661: 
        !           662: ckudia.c:
        !           663: . Many changes from Herm & Dan, mostly relating to modem control and resetting
        !           664:   alarms to get the dialing-with-no-carrier-to-connected-with-carrier
        !           665:   transition working again.
        !           666: 
        !           667: 
        !           668: C-KERMIT FOR UNIX, CHANGES FROM 4C(055) TO 4C(056), 11 JUL 85:
        !           669: 
        !           670: ckcpro.w:
        !           671: . Make new ssfile state, to allow for display of data in ack to file header.
        !           672: . If data comes in ack to file header, log to transaction file.
        !           673: . Put local filename in data field of ack to F packet.
        !           674: . Add calls to new rtimer(), gtimer() to allow transactions to be timed.
        !           675: . When sending, include D in EOF packet in all cases when interrupted.
        !           676:   Previously, only "czseen" would do it, but not cxseen.
        !           677: . Upon receipt of Z packet, send Ack AFTER closing file rather than before.
        !           678:   If file can't be closed, send Error packet instead of Ack.
        !           679: . Upon receipt of error packet while receiving file, discard file.
        !           680: . Upon receipt of unexpected packet type, send Error, not Nak.
        !           681: 
        !           682: ckcfns.c:
        !           683: . Change clsof() to accept an argument specifying whether to discard.
        !           684: . Change clsof() to keep incomplete file regardless of arg if keep != 0.
        !           685: . Change clsof() to return -1 if output file could not be closed.
        !           686: . Change name of getch() to getchx() to avoid conflict with libraries.
        !           687: . Fix Yet Another Problem with 8th-bit Quoting Negotation.  The bug was that
        !           688:   if other side said 'N' we would treat 'N' as quoting prefix rather than "NO"
        !           689:   (but only if parity was set to other than none).
        !           690: . Remove input buffer flush from sfile() (why was it ever there???).
        !           691: . Change seof() to accept an argument to put in the Z-packet data field.
        !           692: . Add transaction timing statistics to reof(),reot() for transaction log.
        !           693: . Combine sfile() and sxpack() into one function.
        !           694: 
        !           695: ckcfn2.c:
        !           696: . Improve performance of rpack by reducing scan for soh to number of chars
        !           697:   read rather than whole buffer (required changing inlin()'s return code).
        !           698: . Allow rpack to skip over "blank lines" without failing; this was preventing
        !           699:   file transfer with some systems that always sent CRLF before transmitting
        !           700:   anything (e.g. UCLA's MVS/TSO VTAM).
        !           701: . Don't flush input buffer at end of rpack(), because if the packet that we
        !           702:   just read is a repeat or an echo, the one we want might be queued up after
        !           703:   it.  Instead, flush in input() only after the desired packet arrives.
        !           704: . Allow user to type ^A^C^C to interrupt rpack and exit cleanly from program.
        !           705: 
        !           706: ckuusr.c:
        !           707: . Add "incomplete" to "set" parse table and display incomplete in "show".
        !           708: . Add "%" command for comment lines.
        !           709: . Add elapsed time and effective baud rate display to "statistics" command.
        !           710: . Fix "show parameters", had send/receive end-of-packet reversed.
        !           711: . Make modem-type lookup in "show" a little cleaner.
        !           712: . Fix "echo" to interpret \ooo escapes in its argument.
        !           713: 
        !           714: ckuus2.c:
        !           715: . Add "help set incomplete".
        !           716: . Fix help message for "set line".
        !           717: 
        !           718: ckuus3.c:
        !           719: . Add "set incomplete" support.
        !           720: . Allow "set prompt" argument in doublequotes and strip quotes if used, to
        !           721:   allow specification of prompt with leading &/or trailing blanks.
        !           722: . Fix "set send/receive padding/pad-character" -- they had variables reversed.
        !           723: 
        !           724: ckufio.c:
        !           725: . For Pro/Venix V1, make MAXWILD and SSPACE even smaller, so malloc() still
        !           726:   has some space left to allocate...
        !           727: . Change zclose() to return -1 if file could not be closed.
        !           728: 
        !           729: ckutio.c:
        !           730: . Use Sys III/V nonblocking read() technique also for 4.xBSD -- improves
        !           731:   performance noticably!
        !           732: . Add rtimer() and gtimer() functions for resetting/getting elapsed time.
        !           733: . Don't return failure from tthang() if line wasn't open.
        !           734: . Print warning message if tthang() or ttunlk() fail.
        !           735: . In ttclos(), relinquish exclusive access.
        !           736: . Change some #ifdefs so they depend on features, like FIONREAD, rather than
        !           737:   system, like BSD4.  This allows collapsing a lot of redundant code.
        !           738: 
        !           739: ckucon.c:
        !           740: . Add hangup (h) option to escape character arguments.
        !           741: 
        !           742: ckuscr.c:
        !           743: . Change static timeInt() to global scrtime() to avoid problems on code
        !           744:   mapped systems.
        !           745: 
        !           746: 
        !           747: C-KERMIT FOR UNIX, CHANGES FROM 4C(054) TO 4C(055), 28 JUNE 85:
        !           748: 
        !           749: ckudia.c (all changes by Dan Schullman, DEC):
        !           750: . Add support for US Robotics modem (untested) from Joe Orost at Berkeley.
        !           751: . Reorganize MDMINF data structure to accommodate US Robotics (some char
        !           752:    fields had to become strings).
        !           753: . Allow interrupts (SIGINT, e.g. ^C) to cancel dialing in progress.
        !           754: . Ring bell when connection made successfully.
        !           755: . Close line on failures.
        !           756: . Allow stored numbers with DF100 and 200 modems.
        !           757: 
        !           758: ckudia.c now supports the following modems:
        !           759: . Cermetek Info-Mate 212 A
        !           760: . DEC DF03-AC
        !           761: . DEC DF100 Series
        !           762: . DEC DF200 Series
        !           763: . General Data Comm 212A/ED
        !           764: . Hayes Smartmodem 1200 & compatibles
        !           765: . Penril
        !           766: . Racal Vadic
        !           767: . US Robotics 212A
        !           768: . Ventel
        !           769: Plus "unknown" modems and direct (modemless) connections.
        !           770: 
        !           771: 
        !           772: C-KERMIT FOR UNIX, CHANGES FROM 4C(053) TO 4C(054), 25 JUNE 85:
        !           773: 
        !           774: ckuker.mak (makefile):
        !           775: . Add "make ft17" for Fortune 16:32 For:Pro 1.7.
        !           776: . Add "make uts24" for Amdahl UTS 2.4
        !           777: . Add "make valid" for Valid Scaldstar CAD system
        !           778: . Add "make c70" for BBN C/70 IOS 2.4
        !           779: 
        !           780: ckcmai.c:
        !           781: . Add call to sysinit()
        !           782: 
        !           783: ck[uvm]tio.c:
        !           784: . Add sysinit() function.  For VMS, open console.  For others, null for now.
        !           785: 
        !           786: ckutio.c, ckufio.c:
        !           787: . Add support for Fortune 16:32, mostly like 4.1bsd.
        !           788: . Ditto for Amdahl UTS 2.4, mostly like V7.
        !           789: 
        !           790: ckuus2.c:
        !           791: . Expand a couple tabs in hlp1 (-h help message) so things line up right.
        !           792: 
        !           793: 
        !           794: C-KERMIT FOR UNIX, CHANGES FROM 4C(052) TO 4C(053), 21 JUNE 85:
        !           795: 
        !           796: ckcfn2.c:
        !           797: . Change dopar() to be of type CHAR.
        !           798: . Fix dopar() to calculate odd parity correctly.
        !           799: 
        !           800: ckucon.c, ckuscr.c:
        !           801: . Add "extern CHAR dopar();" declarations.
        !           802: 
        !           803: 
        !           804: C-KERMIT FOR UNIX, CHANGES FROM 4C(050) TO 4C(052), 18 JUNE 85:
        !           805: 
        !           806: ckcfns.c:
        !           807: . Repair rpar() and spar() handling of 8th bit prefix negotiation.
        !           808: . In sinit(), when sending from stdin, allow "-a name" to work.
        !           809: . In rcvfil(), guard against receiving a null F packet.
        !           810: 
        !           811: ckcmai.c:
        !           812: . Change hlptxt[] to contain less than 256 characters (for Xenix)
        !           813: 
        !           814: ckcpro.c:
        !           815: . In proto() call ttopen() with a temp, x, rather than "local", then only
        !           816:   set local if x was set.
        !           817: 
        !           818: ckucmd.c:
        !           819: . In cmifi(), make y long rather than int.  This was making some 16-bit
        !           820:   machines erroneously report that files longer than 32K could not be found.
        !           821: 
        !           822: ckuker.mak (makefile): 
        !           823: . Change symbol 3BX to ATT3BX (has to start with letter)
        !           824: . Remove line continuations in the middle of strings
        !           825: . Add entry for sys3nid (System III/V on PDP-11 with no I&D space)
        !           826: 
        !           827: ckufio.c:
        !           828: . Add appropriate #ifdef for TOWER1 in zkself()
        !           829: . Add 2.9bsd identification string
        !           830: 
        !           831: ckutio.c: 
        !           832: . Move definition of CTTNAM from here to ckcdeb.h, so it can be shared.
        !           833: . In initrawq() (for V7 only) read the proc table again after fork().
        !           834: . Change symbol 3BX to ATT3BX.
        !           835: . Get rid of the (void) casts in strxxx() invocations -- the proliferation
        !           836:   of conditionals was getting ridiculous, and it was only to please lint.
        !           837: . In conbin() for Sys III/V, open terminal in 7-bit, parity-enabled mode rather
        !           838:   than 8-bit, no-parity mode (some sites actually use parity).
        !           839: . In conint(), trap and ignore QUIT signal, trap SIGHUP and handle like SIGINT.
        !           840:   This prevents lock files from being left behind after hangup or quit.
        !           841: . In connoi(), turn off traps for SIGQUIT, SIGHUP.
        !           842: . In ttopen(), add Sys III/V code using ctermid() to better determine remote/
        !           843:   local status when stdin redirected.  If not Sys III/V and stdin redirected,
        !           844:   assume local, rather than remote, so that "set speed" and other local-mode
        !           845:   only commands will work.
        !           846: . Add 2.9bsd identification string
        !           847: . Make new ANYBSD symbol to select 4.1, 4.2, and 2.9.  In some cases, all 3
        !           848:   work the same, in others, 2.9 and 4.2 are the same, 4.1 special.
        !           849: 
        !           850: ckuus*.c:
        !           851: . In command line invocation, base local/remote determination on CTTNAM.
        !           852: . In "set line" only ask ttopen() to set local/remote if not default tty.
        !           853: . Ignore SIGQUIT and SIGINT signals while inferior shell active in XXSHE:.
        !           854:   Previously, both Kermit and the inferior shell would catch them.
        !           855: . In XYLINE: call ttopen() with a temp, x, rather than "local", then only
        !           856:   set local if x was set.
        !           857: . Change message "status report..." to "status report:" to avoid dot confusion.
        !           858: 
        !           859: 
        !           860: C-KERMIT FOR UNIX, CHANGES FROM VERSION 4.2(030) TO 4C(050), 30 May 85:
        !           861: 
        !           862: All files except ckwart.* have been renamed according to a consistent
        !           863: convention, see ckaaaa.hlp for an explanation.
        !           864: 
        !           865: Copyright notices added to every module, so we can't be enjoined from
        !           866: distributing our own program if we give the right to other organizations,
        !           867: like Berkeley, to distribute it.
        !           868: 
        !           869: ckwart.c
        !           870: 
        !           871: . Move the #define in the txt1 string to not start on a new line.
        !           872: . Fix the comments printed by wart so they can't be construed as comments
        !           873:   by the compiler that compiles wart.
        !           874: . Include formfeed among the skipped-over whitespace characters.
        !           875: . Add wart version information. 
        !           876: 
        !           877: ckcdeb.h (formerly ckdebu.h):
        !           878: 
        !           879: Forget about typedefing LONG to be unsigned long -- it causes too many
        !           880: problems for PDP-11 C compilers, etc.  Just let LONG be long.
        !           881: 
        !           882: If symbols DEBUG and TLOG not defined (e.g. in Makefile), then define
        !           883: null macros to replace calls to the debug() and tlog() functions, to save
        !           884: space and execution time.  Program is too big for Macintosh with these
        !           885: functions compiled in.
        !           886: 
        !           887: Establish a symbol NLCHAR.  If this symbol is defined, then text (ascii)
        !           888: files are stored with a single character (such as lf or cr) terminating
        !           889: each line, and this character is the value of NLCHAR.  If not defined,
        !           890: then the system uses CRLF.  When NLCHAR is defined, C-Kermit maps between
        !           891: that character and CRLF.
        !           892: 
        !           893: ckcfns.c, ckcfn2.c (formerly ckfns.c, ckfns2.c):
        !           894: 
        !           895: . change all calls to screen() to new form.
        !           896: . fix bug in sfile() that sometimes prevented literal names from working.
        !           897: . don't translate send-as names in sfile, always use them literally.
        !           898: . change input() to always resend() after getting a NAK.
        !           899: . change getpkt to clear leftovers when starting new file (next = -1),
        !           900:   so that filenames in F pkt wouldn't have garbage after previous file
        !           901:   was interrupted.
        !           902: . Change call to zchin() to use new calling convention so bytes with
        !           903:   hi bit on won't be confused with eof on some systems.
        !           904: . Reset czseen in seof, not in clsif, so that remote ^X while C-Kermit
        !           905:   sending will result in correct Z packet with D in data.
        !           906: . In resend(), don't send any packet if packet buffer is empty.
        !           907: . Un-hardwire getch() from Unix newline text file convention.
        !           908: . Fix bug that sometimes resulted in contents of R or X packet
        !           909:   having first character doubled.
        !           910: . Fix bug in getpkt that prevented leftovers from being transmitted
        !           911:   after end of file.
        !           912: . Have tinit() clear c[xz]seen and filnam to prevent bad things happening
        !           913:   after interruption or emergency protocol exit.
        !           914: . Have syscmd() return 0 if called with null string.  This allows single
        !           915:   process systems like the Macintosh to act as servers, even if they can't do
        !           916:   commands like remote directory.
        !           917: . Send out initial nak when doing receive, so that there will be something
        !           918:   in the packet buffer to resend.
        !           919: . Check for failure return code from zchout, to catch disk full errors, etc.
        !           920: . When server getting input from a system function, call zopeni() on new
        !           921:   ZSYSFN channel, rather than circumventing zopeni() by calling zopen().
        !           922: . Clean up inlin() a little, use maxt vs MAXTRY consistently. 
        !           923: . Change rpack,spack,rpar,spar,etc to use the new, separated send/receive
        !           924:   packet parameters (padding,timeout,eol,soh,etc).
        !           925: 
        !           926: ckcker.h (formerly ckermi.h):
        !           927: 
        !           928: . Removed #include <stdio.h> and <ctype.h> from ckermi.h.  Macintosh does not
        !           929:   need all that... (thanks, Bill)
        !           930: . Remove include of ckdebu.h (now ckcdeb.h).
        !           931: . Add defs for LF and NUL.
        !           932: . Add def for new ZSYSFN file i/o channel.
        !           933: 
        !           934: ckcpro.w (formerly ckprot.w) Protocol Module:
        !           935: 
        !           936: . Add "a" state to cancel any transaction.
        !           937: . Remove entries for input='N', since this is now handled by input().
        !           938: . Fix "a" state to not cause "OK" message when files closed.
        !           939: 
        !           940: ckucmd.c (formerly ckcmd.c) Unix Command Package:
        !           941: 
        !           942: . Set global cmerrp (error prefix) to be same as prompt, but with '>' stripped.
        !           943: . Allow interactive command continuation using trailing '\'.
        !           944: . Change "*bp++ == NUL;" in getwd() to simply "bp++;".
        !           945: . Test for CR as well as NL for line termination (for Apollo Aegis).
        !           946: . In ckucmd.h, #define getchar specially for VMS and Aegis.
        !           947: . In cmfld, return(0) from filling out default when ESC typed; this prevents
        !           948:   "log trans <ESC>transact.log <ESC>transact.log <ESC>transact.log ..."
        !           949: . In cmtxt, preserve pointers & counts across calls in case of reparse.
        !           950: . In getwd, return -1, NOT -2, if ^U (line kill) is typed.
        !           951: 
        !           952: ckucon.c (formerly ckconu.c) Connect module:
        !           953: 
        !           954: . When writing to session log, make some minimal attempt to recover
        !           955:   from disk full or other i/o errors (just turn off logging flag).
        !           956: . Add baud and parity info to status display.
        !           957: 
        !           958: ckudia.c (formerly ckdial.c) Dial command:
        !           959: 
        !           960: . Support added for Racal-Vadic, Cermetek, Penril, General Datacomm.
        !           961: . Use msleep() for higher precision timing.
        !           962: 
        !           963: ckufio.c (formerly ckzunx.c, and before that ckzbsd.c):
        !           964: 
        !           965: Started from Charles Brooks's 4.2 ckzunx.c, which is the original C-Kermit
        !           966: release 4.2 version, to which he added 4.1bsd support.
        !           967: 
        !           968: . Fixed zltor() to only count dots after the last '/'.
        !           969: . Declared malloc as "char *malloc()".
        !           970: . Change fprintf(fp[n],s) to fputs(s, fp[n]) in zsout & zsoutl.
        !           971: . Added zkself() function to log self out, for use by server "bye".
        !           972: . Changed calling convention for zchin() to allow 68000's etc to return EOF.
        !           973: . Make zopeno() chown the file to self, in case program set[ug]id'd.
        !           974: . Changed znewn() to try not to contruct a name that is too long.
        !           975: . Merge in Gregg Wonderly's v7 support.
        !           976: . Make various changes to v7 support to fit proc table stuff to other systems.
        !           977: 
        !           978: . (023) Changed zopeni(), when called with new ZSYSFN channel number,
        !           979:   to invoke zxcmd() to start a fork and get its fd; also changed zclose()
        !           980:   and chkfn() accordingly.
        !           981: 
        !           982: . (024) In zchki(), allowed 0 as well as S_IFREG as S_IFMT value for ordinary
        !           983:   file; Sys V stat() can return either of these values for an ordinary file.
        !           984:   Also, insert missing #else in zkself().
        !           985: 
        !           986: . (025) declare zchki() to be of type 'long', so that it can return valid
        !           987:   file sizes for big files.  Also fix internal variables that hold size to
        !           988:   also be long.  (Same change to ckvfio.c.)  Also, change ckcfns.c and ckucmd.c
        !           989:   to declare 'long zchki();'.
        !           990: 
        !           991: ckutio.c (formerly ckxunx.c and ckxbsd.c):
        !           992: 
        !           993: Started from Charles Brooks's 4.2 ckxunx.c, which is the original C-Kermit
        !           994: release 4.2 version, to which he added 4.1bsd support.
        !           995: 
        !           996: . Added the following for Pro/Venix Version 1:
        !           997:    - Filled in msleep() using alarm(-clockticks).
        !           998:    - Filled in conchk() and ttchk() using TIOCQCNT.
        !           999:    - Changed default tty name (dftty) to be "/dev/com1.dout".
        !          1000:    - Added line locking via /usr/spool/uucp/LCK..devname and TIOCEXCL.
        !          1001: . Changed local variable c from int to CHAR in ttinl().
        !          1002: . Let CEB's code to hangup line upon close in 4.1bsd also work for 4.2bsd.
        !          1003: . Removed flock() from ttopen(), call ttlock() before trying to open tty.
        !          1004: . Corrected some places where alarms & signals were not turned off.
        !          1005: 
        !          1006: . Changed calling convention for ttopen() to allow it to set the "local"
        !          1007:   variable, since ttopen can call the system to figure out whether a given
        !          1008:   device is the job's controlling tty.  Also had to change all modules that
        !          1009:   call ttopen() to pass this variable by reference instead of by value.
        !          1010: 
        !          1011: . In ttopen, copy ttname string into a static ttnmsv string global to ckutio
        !          1012:   module, rather than just copying the pointer (which is pointing at a moving
        !          1013:   target).  Should fix PC/IX tthang() problem.
        !          1014: 
        !          1015: . Add support for AT&T 3B-series under 3BX conditional; initially, it just
        !          1016:   follows UXIII conditional, but uses special uucp lock file name.
        !          1017: 
        !          1018: ckuusr.c, ckuus2.c, ckuus3.c (formerly ckuser.c, ckusr2.c, ckusr3.c):
        !          1019: 
        !          1020: . all occurrences of printf(s) replaced by printf("%s",s) or puts(s).
        !          1021: . shortening of remaining long strings.
        !          1022: . continuation lines now allowed in commands if line ends with "\".
        !          1023: . make "dir" command arg default to ".", not "*", to prevent recursive listing.
        !          1024: . make "!" command with no args do system("$SHELL").
        !          1025: . removed redundant definitions of ncmd, nrmt, nprm.
        !          1026: . totally redefined and rewrote screen() function.
        !          1027: . Change send-as to use cmtxt, not cmfld; remove cmcfm.
        !          1028: . Fix send command to wait for confirmation after wild filespec (this was
        !          1029:   broken by send-as change above, few people saw it).
        !          1030: . Put 'log debug' command in #ifdef DEBUG
        !          1031: . Put 'log transaction' command in #ifdef TLOG
        !          1032: . Use 'transact.log' as default name for transaction log, rather than
        !          1033:   'transaction.log', which is too long for all but 4.2bsd Unixes.
        !          1034: . Use symbols for exit() & doexit() return codes, not hardwired 0 and 1.
        !          1035: . Use symbol for name of init file.
        !          1036: . Put Unix-specific messages in #ifdef's
        !          1037: . In 'set line', put speed back to -1 if not local.
        !          1038: . Change "*xargv++;" in cmdlin() to simply "xargv++;".
        !          1039: . Change all "if (x = (cmcfm()) < 0)" to "if ((x = cmcfm()) < 0)".
        !          1040: . In ckuus3, change "turnch == y" to "turnch = y"; this bug prevented
        !          1041:   "set handshake" from working.
        !          1042: . Add code in shopar() to look up and display modem type correctly.
        !          1043: . Change "set line" code to have ttopen() figure out local/remote mode.
        !          1044: . Fix "set line" not to erroneously set ttname if it ttopen fails.
        !          1045: . In remote cwd parsing, accept CR as well as NL as password terminator.
        !          1046: . In local directory command, use DIRCMD rather than "ls -l ".
        !          1047: . In screen() function SCR_QE, print long argument with %ld so the ^A
        !          1048:   status report doesn't show all 0's on systems where ints and longs
        !          1049:   are different length (%ld was already used in the other screen functions).
        !          1050: . Fix multiline 'get' parsing to allow editing (required fixes to ckucmd.c).
        !          1051: . Add conditionals for init file name for various systems.
        !          1052: . Phase out the following set commands:
        !          1053:   set end-of-packet, set start-of-packet, set timeout, set padding & pad-ch.
        !          1054:   Replace by set send (each of these) and set receive (each of these), to
        !          1055:   allow inbound & outbound packet parameters to be set separately.
        !          1056: . Put new set send/receive params in show command display.
        !          1057: . Add version info for ckudia and ckuscr to 'sho ver'.
        !          1058: . Add init file name to 'sho param'.
        !          1059: . Replace system("pwd") in XXCWD code with system(PWDCMD), defined in ckufio.

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.