home *** CD-ROM | disk | FTP | other *** search
/ back2roots/padua / padua.7z / padua / uucp / duucp-1.17 / AU-117b0.readme < prev    next >
Text File  |  2014-05-19  |  25KB  |  815 lines

  1. AmigaUUCP 1.17-beta, Long Feature List
  2.  
  3. This is the long feature list for the AmigaUUCP 1.17-beta release,
  4. providing a detailed list of changes for each program.
  5.  
  6. THIS IS NOT A COMPLETE RELEASE. Backup what you have before installing
  7. this software. This software is meant to be installed over an existing
  8. AmigaUUCP installation. If are using other news software (such as
  9. wCNews) you should pick and choose carefully what you install.
  10.  
  11. Thanks go to a variety of alpha-testers. Many source changes were provided
  12. by Chris Hinds Genly for ANSI compatibility. Many suggestions were posted
  13. and provided by Kai 'wusel' Siering.
  14.  
  15. Note that this *is a beta*. There may still be severe problems. Please
  16. refer issues to me (amigauucp@adastra.cvl.va.us). I have not provided
  17. updates to DMAIL or DNEWS because they are still messy.
  18.  
  19. Major changes throughout:
  20.  
  21.     Understands UUSpool: subdirectories by system
  22.  
  23.     ANSI, GCC, and (hopefully) SAS/C compatible
  24.  
  25.     malloc() results checked throughout
  26.  
  27.     error returns at 30 instead of 1
  28.  
  29.     usage() messages put out for wrong arguments
  30.  
  31.     pure and residentable, except for Getty
  32.  
  33.     updated man pages
  34.  
  35. Major changes by program:
  36.  
  37. SENDMAIL:
  38.  
  39.     .22
  40.         Added in support for wusel's RFC-976 SmartUUCP option.
  41.  
  42.         No longer lose the first header if it isn't "From " and
  43.         properly process mail that starts with a ">From ". SMail
  44.         and sendmail 8.* both do this differently.
  45.  
  46.     .21
  47.         Check malloc() results.
  48.  
  49.         Reformat. Added debugging when PROCDEBUG defined at compile time.
  50.  
  51.         Message-id is now RFC-822 compliant.
  52.  
  53.         If a message-id header exists, a new one is NOT added.
  54.  
  55.         A new config option StripUUCP causes addresses to have ".UUCP"
  56.         stripped prior to resolving domain stuff. Primarily for the
  57.         uunet.ca folks...
  58.  
  59.         Bounces now return up to 65535 lines of the bounce.
  60.  
  61.         Now calls UUX instead of building UUSpool: files internally.
  62.  
  63.         Errors to stderr instead of stdout.
  64.  
  65.         A locally stored message now has a proper "id" in the Received
  66.         header.
  67.  
  68.         Comparisons for headers are no longer case sensitive.
  69.  
  70.         Deal properly with TIMEZONES of the form -0500 and +0400.
  71.         Partial timezones are still not supported, but this would
  72.         be easily added if anyone needs it.
  73.  
  74.         Use standard list processing features instead of the "funky"
  75.         stuff that Matt depended on.
  76.  
  77.         If RealName is empty, then an empty "()" is no longer appended.
  78.  
  79.         Multiple From: and Subject: lines are no longer submitted in
  80.         the final mail. The last one in applies.
  81.  
  82.         If the UserName supplied via "-f" has a "@" or "!" in it, then
  83.         "@node.domain" is no longer appended; the "-f" argument is taken
  84.         as a FQDN for the From: header.
  85.  
  86. UUXQT:
  87.     .19
  88.         Added rlharc for Peter Simons LHarcUUCP.
  89.  
  90.     .18
  91.         Changes to support UseSubDirs. If UseSubDirs is set, UUXQT
  92.         will scan for files in UUSpool as well as all its subdirectories.
  93.         If a hostname is given as an argument, UUXQT will process only
  94.         that hostname's subdirectory.
  95.  
  96.     .17
  97.         Parse the X.* file more cleanly.
  98.  
  99.         Error messages now go to stderr, not stdout.
  100.  
  101.     .16
  102.         Cleaned up debugging output (when compiled with PROCDEBUG).
  103.  
  104.     .15
  105.         Doesn't confusingly report that there are "no files to process"
  106.         when re-checking for new files, after the first set has already
  107.         been processed. Exits quietly.
  108.  
  109.     .14
  110.         Reformatted.
  111.  
  112.         RNEWS now gets file named explicitly instead of as stdin. This
  113.         is a performance win (fewer seeks).
  114.  
  115.         Checks are made earlier to see if UUXQT is already running.
  116.  
  117.         No longer explicitly name UUSPOOL when doing directory scan,
  118.         this should improve scan times (UUXQT does a chdir() to UUSPOOL
  119.         almost first thing -- always has, so that is the current
  120.         directory for the scan).
  121.  
  122.         Improved some error handling.
  123.  
  124.         UUXQT used to halt after the first batch had an error. Not
  125.         any more. The individual error is logged, then UUXQT goes on
  126.         to the next batch. The total number of batches with errors is
  127.         logged at the end, if there are any.
  128.  
  129.         What, me worry?
  130.  
  131.     .12
  132.         Renames control files after error instead of deleting them or
  133.         leaving them as is.  X. ->    E.
  134.  
  135.         Does not chdir back to home directory after error but before
  136.         scan is done.
  137.  
  138.         Understands BSMTP (batch SMTP)
  139.  
  140. UUCICO:
  141.     .26
  142.         Added -nodelay and -packets to be compatible with wusel's
  143.         UUCICO.
  144.  
  145.         -nodelay causes UUCICO to not wait after a "no chars found
  146.         at port" (added as part of Steve Drew's changes. see below
  147.         starting at "Small mods added.."). For very high speed devices,
  148.         it could cause a problem.
  149.  
  150.         -packets causes UUCICO to calculate the most efficient packet
  151.         size to use for outgoing packets. NOTE: MANY UNIX SYSTEMS WILL
  152.         NOT SUPPORT THIS PROPERLY. Taylor UUCP does, of course. Without
  153.         this set, if -P6 (1024 byte packets) and only 100 bytes needed
  154.         to be sent, all 1024 bytes were sent. With this set, only 128
  155.         bytes are set.
  156.  
  157.     .25
  158.         Added checking for USESUBDIRS to uucico.c in read_ctl()
  159.         and to sysdep.c in work_scan(). If work_scan() cannot
  160.         find files to process in UUSpool:<system_name> it will
  161.         search simply UUSpool:.
  162.  
  163.         Logfile name when getty changed to T:uucico.log from
  164.         "uuslave.log".
  165.  
  166.         work_scan() no longer terminates the passed hostname after
  167.         seven characters. It still only *uses* 7, as do UUX and
  168.         sendmail; but the parameter is not modified (this fixes
  169.         a problem where a second work_scan for the same system
  170.         would fail -- because a full hostname over seven characters
  171.         would now only be seven chars, and the directory couldn't
  172.         be found).
  173.  
  174.         Several statics depended on DICE startup setting locals
  175.         to zero without an initializer. No more.
  176.  
  177.         Noticed that turnon() doesn't know about ^PRLCK. Didn't
  178.         fix it though.
  179.  
  180.     .24
  181.         Included all of Steve Drew's sd-3 changes, except for
  182.         the setvbuf() one. I set _bufsiz to 8192, so that all
  183.         stdio files have a buffer of 8K.
  184.  
  185.         SD-3 also included the XferStat patches from Andrew Kopp, as
  186.         modified by John Bickers, so they are in here as well.
  187.  
  188.         Fixed/improved a hair on the way Steve was calling the
  189.         mailer's and now get the mailer specified in UULib:Config
  190.         instead of always using "sendmail".
  191.  
  192.         Included Russell McOrmond's patch to set_baud in sysdep.c
  193.         where Overide was not being checked before the baud rate
  194.         of the serial port was being changed.
  195.  
  196.         Included several of my debugging patches.
  197.  
  198.         All malloc's are now checked.
  199.  
  200.         Included 'wusel's patches to fix rename() where the destination
  201.         name wasn't sent by the remote UUCICO. Allows a directory
  202.         destination (from the UUCP command) where the destination was
  203.         specified as a directory, and the filename should be the same
  204.         as the origination filename.
  205.  
  206.         Filesize and CPS rate for receive_file and send_file are logged,
  207.         based on wusel's patches.
  208.  
  209.         Based on wusel's patches, added UUXqtInterval where UUXQT is
  210.         started every 'x' number of file pairs (UUXqtInterval is 'x').
  211.         Added UUXqtPriority, which defines the priority that UUXqt
  212.         is started at. On 1.3, Execute() is used, on 2.0+, System().
  213.  
  214.         The parameter options NDxXrnPstB and -proto now may have their
  215.         arguments either WITH OR WITHOUT a space.
  216.  
  217.         The -N option now has the parameter length checked against
  218.         maxhostlen (20).
  219.  
  220.         XferStat now has a single array with the logfile name in it,
  221.         and the protocol is always logged (was just for 'G' & 'g').
  222.  
  223.         Externs cleaned up, all necessary externs are "Prototype"d
  224.         and SysBase and DOSBase are in "includes.h".
  225.  
  226.         Eliminated use of "shorts" in deference to ints.
  227.  
  228.         Most honest-to-goodness error messages used to go to stdout.
  229.         They now go to stderr. I think I got most of them. Debug messages
  230.         still go to stdout. Most real error messages are also logged.
  231.  
  232.         After closing the serial port, now wait 5 seconds (used to be 3)
  233.         before trying to reopen it.
  234.  
  235.         UUCICO now reports when it doesn't know the system name, without
  236.         failing quietly.
  237.  
  238.         Now, if a send-expect timeout occurs, and no retries/retransmits
  239.         (ie, the '-' in the send-expect string) are left, the loop
  240.         stops without sending the other stuff in the send-expect string.
  241.  
  242.         A couple of FAIL vs. REFUSED checks were wrong (normally not
  243.         important, but I wanted it correct); and a couple of if()
  244.         statements depended on SUCCESS == 0.
  245.  
  246.         On a send-expect abort, don't run UUXqt.
  247.  
  248.         In local_receive_file() the "Receive" request was being built
  249.         with garbage on the end. Most UUCP's couldn't care less, because
  250.         the garbage was AFTER everything they looked for. Taylor cares
  251.         because it has extensions that use the space afterwards. Thanks
  252.         to Peter Woods <peterw@swamp.amigans.gen.nz> for noticing this
  253.         and providing a fix that I based my fix on. Also added some
  254.         additional logging (at level 1) to note when this happens.
  255.  
  256.         These are Steve Drew's (drew@bootrom.cgo.dec.com) changes:
  257.  
  258.           o Small mods to reading chars that results in less cpu load
  259.         when recieving data at high speeds. This only seems to have
  260.         a noticeable benifit to faster Amiga's ie 020/030/040 machines.
  261.         I have seen the load go from %70 down to < %10 on a 030 machine.
  262.  
  263.           o Fix to getname() that resulted in overwritting memory for
  264.         systems that gave > 20 chars of data in the Shere message.
  265.         (Thanks to Kai 'wusel' Siering for the fix).
  266.  
  267.           o run sendmail async
  268.  
  269.           o Added Mail notify on failure/success file copies (see below)
  270.  
  271.           o Added Packet retransmit loggin. (adds line to uuspool: if any
  272.         retransmits)
  273.  
  274.           o GIO changes to Force failure if > %25 packets in error.
  275.  
  276.           o Fixed bug with send_file returning COPYFAIL (otherwise
  277.         AmigaUUCP could loose files on send if protocol error just
  278.         after startup)
  279.  
  280.           o Logging of phone number dialed to logfile (even if dial fails).
  281.  
  282.           o Record device used and phone number dailed in xferstat.
  283.  
  284.           o Records if conversation failed to both logfile and xferstat.
  285.  
  286.         xferstat example:
  287.  
  288.         < bigsys 06-12-92 00:45:36 > 06-12-92 00:45:49 (00:00:13)  1121    590    52%
  289.         | g 3  256    427    14155 #          0     7680 #    0    1
  290.         | VIA device serial.device unit 0 number 5558014
  291.         # Conversation FAILED => LOGFILE
  292.  
  293.     .23
  294.         send-expect timeout modified for instr().
  295.  
  296. UUCP:
  297.     .04
  298.         Now, checks for USESUBDIRS config option, and if set, try
  299.         to use UUSPOOL:systemname. If a Lock() on that directory
  300.         fails, then place command files in UUSPOOL the old way.
  301.  
  302.         Accept "-u user" and "-g grade" options, to set the user
  303.         and grades used. User, as before, defaults to what is set
  304.         in UULib:config. Grade, as before, defaults to "A".
  305.  
  306.         Fixed extra chdir() bug where a lock could be left on UUSPOOL.
  307.  
  308.         Eliminated lots of unused, unrequired, static arrays.
  309.  
  310.     .03
  311.         UUCP no longer reads UULib:Config directly, it uses the
  312.         library routines.
  313.  
  314.         No longer uses 'ints' to hold addresses.
  315.  
  316.         Error messages go to stderr, not stdout.
  317.  
  318.         Global pointers are properly null'ed.
  319.  
  320.         Added an atexit() handler, to deal with locks and libraries.
  321.  
  322.         Reformat.
  323.  
  324. UUNAME:
  325.     .03
  326.         UUNAME now works as advertised. New -c and -l arguments are
  327.         recognized, in conformance with HDB UUCP. Duplicate sites
  328.         in L.Sys are not listed.
  329.  
  330. UUSTAT:
  331.     .02
  332.         Now check UseSubDirs
  333.  
  334.     .01
  335.         Initial release
  336.  
  337. UUX:
  338.     .08
  339.  
  340.         Use read() and write() for copying the files to get
  341.         major speed increase.
  342.  
  343.         Added checks for UseSubDir. If set, then place files in
  344.         subdirectories of UUSPOOL. If not, do as always.
  345.  
  346.         Add -g (grade), -u (user), and -n (no copy) options.
  347.  
  348.         Up stdio buffer size to 8K. Improves performance dramatically.
  349.  
  350.     .07
  351.         Removed enforcer hit/array limits on filesize.
  352.  
  353.         Now used buffered stdio for copying the data file instead
  354.         of character stdio.
  355.  
  356.         Error messages now go to stderr, instead of stdout.
  357.  
  358.         No files are left open at exit, now.
  359.  
  360.         All global pointers are properly null'ed.
  361.  
  362.         No more 16/32 bit assumptions (addresses were in ints).
  363.  
  364.         Reformat.
  365.  
  366. UUHOSTS:
  367.     .04
  368.         Updated. Its still worthless, use UUNAME.
  369.  
  370. UUPOLL:
  371.     .05
  372.         Removed stuff that doesn't make any difference any more (like
  373.         checking T:UUCP.LOCK) and ANSI'ed the program.
  374.  
  375.         It's still worthless. Don't use it.
  376.  
  377. FIFO
  378.     37.5
  379.         The fifo-hander now understands ACTION_WAIT_CHAR. It doesn't
  380.         actually honor the timeout field, but assumes a zero timeout
  381.         (for knowing whether or not a character is present to be
  382.         read). Patch provided by David Varley, Victoria, Australia
  383.         (sol.deakin.OZ.AU!drum3!dave).
  384.  
  385.         All version strings (and the library Version/Revision)
  386.         updated to 37.5.
  387.  
  388.         Cleaned up sources to compile with ANSI flags set. Updated
  389.         makefile with an "install" command and changed it to not
  390.         compile directly to L: and LIBS:.
  391.  
  392.     37.4
  393.         Added 'K' flag.  This flag causes any Write() to fail if
  394.         there are no readers on the other end of the fifo and is
  395.         extremely useful in preventing lockup situations.
  396.  
  397.         Changes made to l:fifo-handler and libs:fifo.library
  398.  
  399. UUCP.LIB
  400.  
  401.     1.17
  402.     LoadHashObject() now allows an escaped (via '\') quoted string in
  403.     the input (UULib:Aliases).
  404.  
  405.     Sources are now ANSI compliant. Removed most ndir stuff as SAS/C,
  406.     DICE and GCC all have their own. Removed qsort(). Removed the
  407.     /include/sys/*.h files, as they conflicted with commercial DICE
  408.     and GCC, and were unused except for Manx.
  409.  
  410.     Manx support can be considered to be "dead".
  411.  
  412.     security.c now uses the dos.library SameLock() on v36 or above.
  413.  
  414.     getpwnam.c returns real_name information (finger info).
  415.  
  416.     isdir.c now works properly over Envoy.
  417.  
  418.     malloc()'s are now checked throughout the library (with DICE).
  419.  
  420.     C= 2.0 (or above) includes are unconditionally required to generate
  421.     the library.
  422.  
  423.     Added safe_chdir() to the library so that the proper CLI directory
  424.     is restored on finish.
  425.  
  426. COMPRESS:
  427.     .04
  428.         Added in Chris Hinds Genly's changes to use uucp.lib
  429.         compression calls. Now knows about ODU.
  430.  
  431. DCRON
  432.     .02
  433.         Added IDENT() string.
  434.  
  435.         SAS/C compatibility and ANSI prototypes (Chris Genly's changes,
  436.         plus a few).
  437.  
  438.         Got rid of the typedef abominations.
  439.  
  440. TARSPLIT
  441.     .02
  442.         SAS/C compatibility and ANSI prototypes (Chris Genly's changes,
  443.         plus a few).
  444.  
  445. UNSHAR:
  446.     .02
  447.         SAS/C compatibility and ANSI prototypes (Chris Genly's changes,
  448.         plus a few).
  449.  
  450. UUDECODE
  451.  
  452.     .02
  453.         SAS/C compatibility and ANSI prototypes (Chris Genly's changes,
  454.         plus a few).
  455.  
  456.         Switched use of local index() to libc's strchr().
  457.  
  458. UUENCODE
  459.  
  460.     .02
  461.         SAS/C compatibility and ANSI prototypes (Chris Genly's changes,
  462.         plus a few).
  463.  
  464. FORWARDNEWS.C:
  465.     .06
  466.         More cleanup changes.
  467.  
  468.         Use pragmas now.
  469.  
  470.         Allow '!' as synonym for '-' in UULib:Sys file for
  471.         consistency with Unix systems.
  472.  
  473.         The UULib:Sys file now doesn't have to have '\' continuation
  474.         characters on comment and empty lines.
  475.  
  476.         UULib:Sys now allows whitespace to preceed groupnames on
  477.         continuation lines.
  478.  
  479.         Some logic changes for a small speedup in processing.
  480.  
  481. BATCHNEWS.C:
  482.  
  483.     .10
  484.         ANSI-fied.
  485.  
  486.         Now supports -t and -h arguments.
  487.  
  488.         A usage() message is printed when bad arguments are used.
  489.  
  490.         All malloc()'s are now checked.
  491.  
  492. RNEWS.C:
  493.     .27
  494.         Now, if control is in uulib:newsgroups, file control messages
  495.         in control. Otherwise, discard them.
  496.  
  497.     .26
  498.         Re-implemented the OnlyOne option (-1) which was evidently
  499.         broken as part of the 1.16 base release by Matt! I just got
  500.         the first bug report on it.
  501.  
  502.         Removed an extraneous error check in unbatch().
  503.  
  504.         Set-up for "forward-only" groups.
  505.  
  506.         RNews would exit leaving an extra lock on the directory it
  507.         started from; if any warning or error messages were printed.
  508.  
  509.         Error messages are now printed to stderr, instead of stdout.
  510.  
  511.         Error exit()'s now exit (30) instead of "whatever" (1, 2, 10
  512.         were all used).
  513.  
  514.     .25
  515.         Additional debugging data for file removals. New procedure
  516.         rm(), which spits out the file name before doing the
  517.         remove().
  518.  
  519.     .24
  520.         If RNews had to figure out the compression method (ie, -u
  521.         wasn't specified, and it was a "compress"/"cunbatch" style
  522.         batch); RNews wasn't removing the temporary file. Oops. I
  523.         probably broke this in patch 19.
  524.  
  525.         Make DOSBase a "struct Library" not "struct DOSLibrary" for
  526.         version checking purposes.
  527.  
  528.     .23
  529.         Changed ulog() information for "decompression failed" to a
  530.         LogLevel 1, instead of a LogLevel -1 (ie, made it not appear
  531.         by default during a local posting).
  532.  
  533.     .22
  534.         Added the -p argument to indicate that RNEWS is being called
  535.         by POSTNEWS. The only effect is that a specified uncompressor
  536.         via the -u argument is ignored (as this is normally specified
  537.         as a default in UULib:Config).
  538.  
  539.         Also changed so that if the uncompressor fails, RNEWS does not
  540.         terminate but continues to try to interpret the batch. Thus,
  541.         programs that don't set the -p properly can create batches,
  542.         and post news locally with only a minor performance impact.
  543.  
  544.     .21
  545.         The 2.04 includes had Flush() as a void in <clib/dos_protos.h>,
  546.         this was screwing with DICE's brain. Using 3.1 includes now.
  547.  
  548.         The temporary file created when "-u" was not being removed
  549.         due to the filename array (Buf) being overwritten in the
  550.         HandleSequenceNumber procedure -- now the filename has its
  551.         own array (FBuf).
  552.  
  553.     .20
  554.         RNEWS was not properly terminating the input array from
  555.         .next files, causing article numbers to be misformed (this
  556.         was broken by .19).
  557.  
  558.         NewsDir is now used, instead of many calls on GetConfigDir().
  559.  
  560.         Memory storing pathnames wasn't being free'd appropriately,
  561.         it wasn't returned until RNEWS terminated.
  562.  
  563.         Some error handling added to CopyToGroup().
  564.  
  565.         The '-n' argument now gives more useful information when RNEWS
  566.         is compiled with DEBUG.
  567.  
  568.         RNEWS was limiting the size of a .next file to seven bytes.
  569.         Not any more.
  570.  
  571.     .19
  572.         When the -u flag is specified, a batch header of the "#!"
  573.         form is now stripped from the input file -- the compression
  574.         header will be logged with "-x 1" or higher.
  575.  
  576.         A article header of "! rnews" (as opposed to "#! rnews")
  577.         was allowed. It no longer is.
  578.  
  579.         JunkFlag is now a global, reducing the individual article
  580.         data path.
  581.  
  582.         CopyToGroup now uses AmigaDOS style I/O; resulting in a
  583.         speed improvement.
  584.  
  585.         HandleSequenceNumber now uses AmigaDOS style I/O; resulting
  586.         in a speed improvement.
  587.  
  588.         Several local allocations were removed and replaced with
  589.         use of a global Buffer resulting in a speed improvement.
  590.  
  591.         More error handling.
  592.  
  593.     .18
  594.         A very-old bug, exacerbated by .17, where a Lock() was not
  595.         released on an input file, has been corrected.
  596.  
  597.     .17
  598.         Added -u flag for specifying the decompresser to run. SHOULD
  599.         be -d (for C News compatibility), but that was already in use
  600.         for setting the debug level.
  601.  
  602.         Some work to simplify gunbatch/funbatch, if I decide to go
  603.         back and support those.
  604.  
  605.     .16
  606.         Changed a buffer to unsigned char, which caused non-cunbatch
  607.         compressed-file headers to fail sometimes.
  608.  
  609.     .15
  610.         .next files are now created without using update I/O, so that
  611.         XFH should work.
  612.  
  613.         Article numbers no longer roll over at 32767.
  614.  
  615.         The long-standing problem with "#! r_n_e_w_s" being in an article
  616.         screwing up RNEWS has been corrected.
  617.  
  618.         Even more better error handling.
  619.  
  620.         It was possible for RNEWS to get into an infinite loop under
  621.         some error conditions (such as out-of-memory). This is no longer
  622.         true.
  623.  
  624.         If a newsbatch does *not* have a "#! cunbatch" header, RNEWS
  625.         checks for the "magic numbers" to see if it should be handled
  626.         as a compressed batch.
  627.  
  628.         Added '-t' option for specifying temporary directory for building
  629.         uncompressed batches. Significantly reduces thrashing on my
  630.         news partition when set to T: (ram disk) as well as a significant
  631.         speed improvement. Does eat up memory though, especially if the
  632.         input is from stdin and it is a pipe.
  633.  
  634.         Initial NewsOverView coding. Not yet supported.
  635.  
  636.         Much reformatting (because I wanted to :).
  637.  
  638. POSTNEWS.C:
  639.  
  640.     .09
  641.         PostNews now sets the -p argument for RNEWS. This requires
  642.         RNews-23 or above.
  643.  
  644.         SysBase and DOSBase are declared external for pragma support.
  645.  
  646.     .08
  647.         The obsolete 'Newsfeed' email message is no longer sent.
  648.  
  649.         PostNews will no longer duplicate From, Date, Message-Id,
  650.         Organization, Subject, or Newsgroup headers. It's comparison
  651.         of headers is no longer case-sensitive.
  652.  
  653.         Rewrote lots of it.
  654.  
  655.         Error messages now go to standard error, whereas before
  656.         they may have been redirected into the bit-bucket.
  657.  
  658.         If RNews fails while trying to file the article, PostNews
  659.         now checks the return status and logs a message. The temporary
  660.         files generated to post the news article is NOT deleted.
  661.  
  662.         The day (like "Mon") is now included when PostNews generates
  663.         a Date header.
  664.  
  665.         PostNews now checks arguments much more carefully. A variety
  666.         of error-checking has been added, and miscellaneous garbage
  667.         removed.
  668.  
  669.         The stdio bufsize now set to 8K (from default of 1024 bytes).
  670.  
  671. TRIMNEWS.C
  672.  
  673.     .07
  674.         Made ANSI compliant.
  675.  
  676.     .06
  677.         Version .05 of TrimNews would fail on 1.3 and below due to
  678.         the use of the 2.0+ function.
  679.  
  680.         TrimNews now logs the number of files deleted and how many
  681.         bytes were in the files deleted.
  682.  
  683.     .05
  684.         If DeleteFile() fails, print an error message to stdout as to
  685.         *why* it failed. Useful for debugging. 2.0 and above only.
  686.  
  687.         On 2.0 and above, if TrimNews is compiled with DEBUG set,
  688.         extensive debug information for ExAll() related things is
  689.         displayed on stdout.
  690.  
  691.         On 3.0 and above, TrimNews waits for 2 seconds after processing
  692.         a directory before switching to the next directory.
  693.  
  694.     .04
  695.         When on 2.04 and above, use a double-buffered ExAll(), instead
  696.         of the prior single-buffered ExAll(). Allocate the ExAllData
  697.         buffers to be 200 bytes larger than ExAll() is informed. These
  698.         two changes are to work around ExAll() bugs.
  699.  
  700.         Implement a "-all" argument to indicate that all articles are
  701.         to be deleted. This overrides any specification in UULib:Newsgroups
  702.         or any -h parameter. ".next" files are NOT deleted.
  703.  
  704.         Implement a "-h <hours>" argument to indicate that deletion
  705.         should take place in the specified <hours> instead of days. This
  706.         does not override a days argument in UULib:Newsgroups, and is
  707.         global (for all newsgroups).
  708.  
  709.     .03
  710.         When on 2.04 and above, use ExAll instead of ExNext(). Large
  711.         speed improvement and avoid problems with ExNext() on some
  712.         filesystems.
  713.  
  714.         Remove stdio for significant decrease in object size.
  715.  
  716.         TrimNews will now recognize a break between groups (it
  717.         used to ignore CTRL-C completely).
  718.  
  719. ANYMAIL.C
  720.  
  721.     .05
  722.         Modified source to be ANSI compliant.
  723.  
  724. SPLITMBOX.C
  725.  
  726.     .02
  727.         Modified source to be ANSI compliant.
  728.  
  729. FROM.C
  730.     .06
  731.         Added _bufsiz = 8192 for speed.
  732.  
  733.         Some reformat.
  734.  
  735.     .05
  736.         Modified source to be ANSI compliant.
  737.  
  738.     .04
  739.         If a subject or a username was less than 20 characters wide,
  740.         extra newlines would be added into the output for a message.
  741.         Not any more...
  742.  
  743.         The username field is expanded to 25 characters, and the subject
  744.         field to 45. They both were 20 previously. The message number
  745.         field is expanded to 4 characters.
  746.  
  747.         If a username cannot be found, "from" now exits with a return
  748.         code of 30, not 0.
  749.  
  750.         "from" now calls exit() instead of falling off...
  751.  
  752. UIDENT.C
  753.  
  754.     .03
  755.         Modified source to be ANSI compliant.
  756.  
  757. MAILQ.C
  758.     .05
  759.         Added ctrl-c checking.
  760.  
  761.         Added atexit() support.
  762.  
  763.         Some reformat.
  764.  
  765.     .04
  766.         Modified source to be ANSI compliant.
  767.  
  768. LOCKSERIAL
  769.     .03
  770.         Modified source to be ANSI compliant.
  771.  
  772. FLATTOHEIRARCHICAL
  773.  
  774.     .02
  775.         Modified source to be ANSI compliant.
  776. EXPANDM
  777.  
  778.     .02
  779.         ANSI-ized and output has been prettified.
  780.  
  781. TRIMFILE
  782.  
  783.     .02
  784.         Properly NULL OwnDevUnit in global section.
  785.  
  786.         Error messages to stderr.
  787.  
  788.         Failure exit()'s now at 30, instead of 1.
  789.  
  790.         Improved parameter and other error checking.
  791.  
  792.         Source is ANSI compliant.
  793.  
  794.         Reformat.
  795.  
  796. GETTY
  797.     .14
  798.         I have no idea what went into .12 and .13.
  799.  
  800.         Added Chris Wichura's patches for checking DOS version;
  801.         and if >= 36 (ie, 2.0 or above) setting the local environment
  802.         variable "GettyLogin". If Getty was run with UserReport (-u1);
  803.         then User and RealName from the Passwd entry are also set as
  804.         local environment variables.
  805.  
  806.         Cleaned up some errors/warnings for non-ANSI-isms.
  807.  
  808.         A bad SetSignal() in Disconnect() was corrected.
  809.  
  810.         All malloc()'s are now checked for success.
  811.  
  812.         The "real" fifo.h is now included.
  813.  
  814.         A lot of reformat, but not complete.
  815.