Annotation of researchv10dc/lbin/kermit/ckuker.upd, revision 1.1.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.