Short:    Very SMART mass decoder of USENET binaries
Uploader: dwhiting@europa.com  (Dick Whiting)
Author:   dwhiting@europa.com  (Dick Whiting)
Type:     comm/news
Version:  V1.01 Minor fixes plus add BinHex decoding
Replaces: comm/news/DWdecode*


REQUIREMENTS: 
-------------

You will need several programs/libraries from Aminet:

   RexxArpLib by Willy Langeveld  - util/rexx/ral3p3.lha

   FlashFind  by Frank Würkner    - util/cli/FlashFind1.2.lha

   A UUdecoder
     e.g. UUout by Nicolas Dade   - util/arc/uuOut114.lha
     
   A Base64 decoder 
     e.g. Base64coders by Edmund Vermeulen - comm/mail/Base64coders.lha

   A BinHex decoder 
     e.g. binhex374 by Nik Soggia - util/arc/binhex374.lha

   And, of course, some Use Net files with encoded binaries;)

FILES INCLUDED IN THIS ARCHIVE:

   DWdecode               - the REAL program.
   DWdecode.Base64.Types  - means of identifying Base64 first lines
   DWdecode.Binary.Types  - means of identifying filenames in subject
   DWdecode.Doc           - text format of documentation
   DWdecode.Encode.Types  - MIME encoding types
   DWdecode.Guide         - Amiga guide documentation
   DWdecode.Guide.info    - info file for guide
   DWdecode.Prefs         - a starter preference file
   DWdecode.Readme        - copy of the Aminet readme file
   DWdecode.Section.Types - describes Section lines of UUencoded files
   DWdecode.Skip.Froms    - allows for filtering based on From: lines
   DWdecode.Skip.Subjects - allows for filtering based on Subject: lines 
   Samples/....           - subdirectory with example script(s)

   arexxqsort.lha         - handles sorting of stem variables.
       by Willy Langeveld - originally found on Aminet 


BASICS: 
-------

This program does MASS decoding of Use Net files. It decodes ALL binaries
that it is able to recognize, which is most;) from the source directory
and optionally from ALL subdirectories as well.


WHAT IT DOES:
-------------

It uses information from MIME content lines, section lines, begin lines
and (if it must) the subject line to determine what kind of encoding is
used and which parts go together. It reports on files that have missing
parts and on ones that it is unable to obtain complete information for.   

It handles either single directories or can handle COMPLETE directory trees.

It handles files with SINGLE & MULTIPLE UUencoded OR Base64 binaries 
within them and Multipart UUencoded or Base64 files.

It handles files with APPLE/DOUBLE format. My logic uses the LAST file 
of a given name within a SINGLE input file. This forces the APPLE portion
to be considered a duplicate and not processed.

It allows you to filenote the decoded binaries with a variety of
substitution values as well as literals. 

It is quite 'smart' and generally can figure out most files.

It is highly configurable and using external files can 'learn'.

It should work with almost ANY Base64 and UU decoder.

It allows for filtering based on From: and/or Subject: lines.

It allows for deleting input files after decoding, deleting duplicates, 
deleting input files based on From: &/or Subject: lines, deleting files
that have ONLY text in them, and deleting files based on their age.    

Reporting can be tailored by setting/unsetting a variety of switches on the
command line or in the prefs file.

------------------------------------------------------------------

  v1.01 Fixes/Changes:        

      Discovered that RexxTricks.Library uses the SAME function name as 
         QuickSort, BUT in a different format. 
         Added code to test if RexxTricks is present and to call QSORT 
         in that format if necessary instead of W.L's. 
         The SORTS are faster if RexxTricks.Library is NOT present,
         so try to do decoding prior to anything that might add it.

      Can NOW place in directory named DWDECODE and have it WORK!! Really 
         stupid error - thanks to Paul Copsey for finding this one.

      Now correctly deletes parts greater than 1 of multipart input files
         when DeleteDups is specified. 

      If DWdecode MUST resort to using just Subject: line information will
         now consider the SAME partname appearing multiple times in the 
         subject, IFF it is the only name present, as THE name to use.

      Added support for BinHex files (only 1/1 type files). 
         New variables w/defaults: 
            BinHexCmd='BHD data=%DF %SF'
            BinCmdFail=20

      Removed unused variable DumpB64Files from preferences/help.

      Now handles PC type lines with Ctrl-M's

      Now filenotes output files containing parens in their names

      Now writes FileNote errors to log/console as requested

      Made maximum filename length on report = 30 characters.          

      Added message referring user to logfile for errors.

      Added Guide format of 'documentation'.


  v1.0  Initial Release

------------------------------------------------------------------

I homeschool my kids and they would love a postcard from where EVER you live. 
Instant Geography Lesson;)      
                                                                          
POSTCARDS:    Dick Whiting                                                
              28590 S. Beavercreek Rd.                                    
              Mulino, Oregon 97042                                        
              USA                                                         
                                                                          
Bug Reports, etc:                                                         
                                                                          
Dick Whiting <dwhiting@europa.com>                   
March 28, 1997
                                                                          
------------------------------------------------------------------
