home *** CD-ROM | disk | FTP | other *** search
/ DP Tool Club 17 / CD_ASCQ_17_101194.iso / dos / util / zpro211 / ziprpro.rev < prev   
Text File  |  1994-08-28  |  46KB  |  1,065 lines

  1.                  ZIP'R Professional For DOS Revision History
  2.  
  3.  
  4. 08-29-94 ■ Version 2.11
  5.  
  6.          . Moved about 225 error messages into a library (stream)
  7.            file, reducing the code size by about 15K.  Made sure
  8.            that ZIP'R Pro issues an appropriate error message if
  9.            the library file can't be located when an error condition
  10.            occurs.
  11.  
  12.          . Corrected a potential problem where the decompression
  13.            signal file was not being deleted at the end of the
  14.            decompression routine when using PKZIP.  The code was
  15.            accurate when using ARJ, LHA, or Internal ZIP, but PKZIP
  16.            code for this procedure was not included.
  17.  
  18.          . Corrected a potential problem where the attributes of the
  19.            compressed file were being set to read-only before attempting
  20.            to decompress it using ARJ, LHA, or PKUNZIP.  Made sure that
  21.            the attributes are set to Normal before decompressing it.
  22.  
  23.          . Streamlined the compression and decompression code by
  24.            combining the common parts of these processes for ARJ, LHA,
  25.            Internal ZIP and PKZIP.
  26.  
  27.  
  28. 08-22-94 ■ Version 2.10
  29.  
  30.          . Added code to make sure that ZIP'R Pro does not attempt
  31.            to display the button menu if no .ZPD files could be
  32.            found in the \ZIPRPRO sub-directory.
  33.  
  34.          . Added a command to reset the window coordintes after a
  35.            user selects a button from the button menu to make sure
  36.            that the DisplayPrelogValues routines write information
  37.            to accurate locations.  (This routine uses absolute screen
  38.            writing, requiring that the window be set to 1,1,80,25.)
  39.  
  40.          . Created two new routines to set the file attributes for
  41.            files to read-only and normal, and replaced numerous
  42.            instances in the code where the file was being manually
  43.            reset to specific attributes.
  44.  
  45.          . Corrected a potential problem where file attributes could
  46.            have been set on a non-existent compressed file.
  47.  
  48.          . Added support for the new button style menu to re-read the
  49.            directory after returning from executing the ZIF Editor.
  50.            In the event that files are created or deleted from the
  51.            ZIP'R Pro directory, ZIP'R Pro will regenerate the dialog
  52.            box to display an accurate collection of buttons.
  53.  
  54.          . Added a button style interface to ZIP'R Pro to make it more
  55.            user friendly.  When "ZIPRPRO.EXE" is executed without any
  56.            passed parameters, the new menu interface will pop up and
  57.            display a list of all available .ZPD files.  Users can click
  58.            the left mouse button over a push button to execute the
  59.            corresponding program, or they can click the right mouse
  60.            button over a push button to invoke the ZIF Editor and edit
  61.            the corresponding file.
  62.  
  63.  
  64. 08-16-94 ■ Version 2.03
  65.  
  66.          . Fixed a major problem when using internal ZIP compression.
  67.            When attempting to recompress a program using the Update
  68.            option, users would receive an Error Number 5, (File Access
  69.            Denied).  The compressed file had been marked as read-only, and
  70.            therefore could not be initialized for any other action.  This
  71.            error condition did not appear when using a Novell network, so
  72.            internal beta-testing efforts did not catch the problem.  Added
  73.            code to make sure the compressed file's attributes were properly
  74.            set before any action to the file is attempted.
  75.  
  76.          . Updated the version number code in the registration
  77.            procedure.
  78.  
  79.          . Fixed several Clear-Screen problems by replacing the
  80.            built-in Clear-Screen command with a custom routine
  81.            that resets the Window to 1,1, 80,25.
  82.  
  83.  
  84. 07-18-94 ■ Version 2.02
  85.  
  86.          . Enhanced ZIP'R Pro's ability to handle "overwrite" error
  87.            messages generated by PKUNZIP.EXE or ARJ.EXE.  When either
  88.            of these programs detects a file on the hard drive that
  89.            already exists in the compressed file, they will issue an
  90.            overwrite message, prompting the user whether or not the
  91.            file should be replaced with the one located in the
  92.            compressed file.  Each of these programs will then generate
  93.            an exit code, which normally causes ZIP'R Pro to cease the
  94.            program execution and terminate.  Since these errors are
  95.            non-fatal errors, ZIP'R Pro now offers users the choice of
  96.            whether to continue with normal program execution or not.
  97.  
  98.            Why is this necessary?  The most common need for this feature
  99.            is when programs such as Central Point Anti-Virus or Microsoft
  100.            Anti-Virus place "CHKLIST.CPS" or "CHKLIST.MS" files in each
  101.            directory when a virus scan is executed on a user's computer.
  102.            The first time this happens, the compressor (PKZIP, for example)
  103.            adds the left-over virus file into the archive.  The next time
  104.            a virus scan is executed, PKUNZIP detects that a file by the
  105.            same name exists in the program directory, generates an exit
  106.            code, and thus causes ZIP'R Pro to terminate execution.  (This
  107.            could prove to be frustrating, since a file by this name is
  108.            placed in EVERY scanned directory.)  ZIP'R Pro will now detect
  109.            if an overwrite message occurs, and will display a message
  110.            box, allowing the user the option of whether to continue
  111.            with the normal program execution or not.
  112.  
  113.  
  114.          . Fixed a problem where ZIP'R Pro was not trapping and
  115.            reporting errors that occurred during the decompression
  116.            process.  Instead, ZIP'R Pro would simply error out, and
  117.            terminate program execution.  (This bug was introduced
  118.            in version 2.00.)
  119.  
  120.  
  121. 07-11-94 ■ Version 2.01
  122.  
  123.          . Version 2.01 of ZIP'R Pro contains an updated INSTALL.EXE
  124.            file.  One of our users reported that InocuLAN (by Cheyenne
  125.            Software) was reporting an occurrence of the Tony-H virus in
  126.            the INSTALL.EXE file.  We believe this was a false-positive
  127.            report, and not cause for alarm.  However, we are releasing
  128.            ZIP'R Pro 2.01 with the INSTALL.EXE file in uncompressed
  129.            format.  Also, the file BONUS.DOC has been removed.
  130.  
  131.  
  132. 06-29-94 ■ Version 2.00
  133.  
  134.          . Added support for a user-specified compression mode.
  135.            Valid values are BestMethod, Deflate, Implode, Shrink,
  136.            and Store.
  137.  
  138.          . Added support for a user-specified deflate level when
  139.            using internal ZIP compression.
  140.  
  141.          . Added support for user-specified implode values when using
  142.            internal ZIP compression.
  143.  
  144.          . Converted the ClrScr w/Error Message calls to use the
  145.            HandleError procedure.
  146.  
  147.          . Changed the ProcessErrorCode procedure to a function.
  148.  
  149.          . Modified the HandleError procedure to allow it to process
  150.            error codes that must be passed to the ShowErrorMessage
  151.            procedure.
  152.  
  153.          . Changed the DeletedFiles variable in the COMP unit from a
  154.            literal string to a boolean.
  155.  
  156.          . Changed the MatchingFileFound variable in the COMP unit from
  157.            a literal string to a boolean.
  158.  
  159.          . Added code to only display the gauge window when necessary and
  160.            resize the compression window depending on whether the gauge
  161.            window is displayed or not.
  162.  
  163.          . Changed gauge window display to be indented rather than out-
  164.            dented.
  165.  
  166.          . Added a fail-safe check to the DeleteAllFilesExcept routine
  167.            to make sure that the current directory is not the root
  168.            directory of a hard drive.
  169.  
  170.          . Added a fail-safe check to make sure that the Accurate File
  171.            Size Calculation displays Level 4 on the prelog screen when
  172.            Internal ZIP is being used.  (With Internal ZIP, all calculations
  173.            are 100% accurate.)
  174.  
  175.          . Changed the directory existence checks to use a procedure from
  176.            a commercial library, instead of our own STSI library.  Our
  177.            procedure was not handling root directories properly.
  178.  
  179.          . Added code to read the current entry when decompressing a .ZIP
  180.            file with the Internal ZIP code.  New code makes sure that any
  181.            imbedded directories are created if they do not exist.  Any
  182.            directory entries contained without files are discarded.  This
  183.            allows more complete compatibility with PKWare's PKZIP.  Previous
  184.            code would cause a decompression error to occur.
  185.  
  186.          . Moved all of the DrawHeader and DrawCompressionScreen calls inside
  187.            of the ZPExec routine, where possible.  This fixed a problem where
  188.            incorrect messages were sometimes displayed during the compression
  189.            or decompression processes.
  190.  
  191.          . Fixed several issues relating to the display of the decompression
  192.            query box that pops up when a duplicate file exists on the hard
  193.            drive.  Widened the available display for the filename and
  194.            potential directory entry, and added fail-safe code to truncate
  195.            these on the left side if they get too long.
  196.  
  197.          . Modified the remaining routines in the COMP, DECOMP, and
  198.            EXECUTE units to use the HandleError procedure.
  199.  
  200.          . Created a common procedure in the COMP unit to contain the
  201.            compression signal file related detection and creation
  202.            code.
  203.  
  204.  
  205. 06-20-94 ■ Version 1.28  (Internal BETA Version - Not Released!)
  206.  
  207.          . Fixed a problem where the screen was not being cleared after
  208.            windowed decompression.  Added a reset of the screen and
  209.            color output.
  210.  
  211.          . Modified shadows on compression and decompression screens
  212.            to be completely black.
  213.  
  214.          . Added a command to reset the Window coordinates before
  215.            attempting to write the file count or twirling bars display
  216.            to the screen.  After adding several window-relative routines,
  217.            both displays were being written to a relative window, instead
  218.            of the absolute screen coordinates.
  219.  
  220.          . Fixed a problem where the title and copyright notice on the
  221.            Query screen started "disappearing" after other Internal
  222.            ZIP windowing routines had been implemented.  Used window-
  223.            relative screen writing instead of absolute screen writing.
  224.  
  225.          . Created a textured background screen for the Internal ZIP
  226.            compression and decompression windows.
  227.  
  228.          . Added a "Moving files.  Please wait!" header to the display
  229.            screen when files are being deleted after the compression
  230.            process.
  231.  
  232.          . Added a call to the UpdateGaugeWindow procedure during the
  233.            file deletion process to provide a visual progress indicator.
  234.  
  235.          . Altered the DeleteAllFilesExcept procedure to use a direct
  236.            directory search to delete files, instead of a FileMaskList
  237.            generated from the original archive file.  This allows the
  238.            procedure to work in all situations.
  239.  
  240.          . Changed the name of the stDeleteFilesIntZIP procedure to
  241.            DeleteAllFilesExcept.
  242.  
  243.          . Created a header window to be used for displaying status
  244.            messages during the compression / decompression processes.
  245.            This replaces old code which simple used absolute screen
  246.            writing.
  247.  
  248.          . Added a bar graph and compression/decompression window
  249.            to be used when Internal ZIP is used as the compression
  250.            type for a program.  The bar graph is updated depending on
  251.            the current file vs. the total files to be compressed or
  252.            the total files located inside the ZIP file.
  253.  
  254.          . Created a common HandleError procedure in the Errors unit
  255.            to centralize the compression/decompression error handling.
  256.  
  257.          . Created a common LaunchExternalDecompressor procedure in the
  258.            Decomp unit, reducing final .EXE code size by about 2K.
  259.  
  260.          . Worked around a problem where an empty sub-directory would
  261.            cause an error #2 during the compression process (File Not
  262.            Found).
  263.  
  264.          . Set up a file counter to keep track of the total number
  265.            of files that will be compressed into the internal ZIP
  266.            generated file.
  267.  
  268.          . Enabled sub-directory creation during internal ZIP
  269.            decompression.
  270.  
  271.          . Added code to recurse sub-directories during the internal
  272.            ZIP compression process.
  273.  
  274.          . Made sure that the compression and decompression signal
  275.            files are erased if an error occurs during internal ZIP
  276.            compression or decompression.
  277.  
  278.          . Added code to call the Done routine if an error occurs
  279.            during the internal ZIP compression / decompression
  280.            processes.
  281.  
  282.          . Created a routine to calculate the exact disk space
  283.            needed for extracting a ZIP file when using the
  284.            internal ZIP compression / decompression routines.
  285.  
  286.          . Added preliminary support for internal PKZIP 2.0
  287.            compatible compression and decompression.
  288.  
  289.  
  290. 06-10-94 ■ Version 1.27
  291.  
  292.          . No coding changes.
  293.  
  294.  
  295. 05-26-94 ■ Version 1.26
  296.  
  297.          . Changed the AddBackSlash procedure to stAddBackSlash
  298.            when generating the ZIPRProPath.  stAddBackSlash adds
  299.            a backslash when the last character in the path is a
  300.            colon.
  301.  
  302.          . Modified the behavior of the prelog screen display
  303.            to prevent the screen from being displayed if the
  304.            PrelogDelay was set to 0.
  305.  
  306.          . Fixed a problem where the prelog screen was being
  307.            displayed when the PrelogType was set to NONE.
  308.  
  309.          . Changed all "Halt" statements to "stHalt(?)", where
  310.            ? is the ERRORLEVEL.
  311.  
  312.          . Changed an error message in the DECOMP unit to use
  313.            an stTVMessageBox.
  314.  
  315.  
  316.  
  317. 04-22-94 ■ Version 1.25
  318.  
  319.          . No modifications.  (See ZIFPRO.REV for modifications
  320.            to the ZIF Editor Pro.
  321.  
  322.  
  323. 03-26-94 ■ Version 1.24
  324.  
  325.          . Removed all /CLEANUP option code from ZIPRPRO.  This
  326.            option is now available from the ZIF Editor.  A code
  327.            size reduction of about 11K was achieved.
  328.  
  329.          . Modified code so that ZIP'R Pro does not execute the
  330.            program when the /TEST parameter is being used.  It
  331.            simply displays the parameters and exits.
  332.  
  333.          . Changed the "TEST" parameter to "/TEST".
  334.  
  335.          . Fixed a problem where the compression signal file
  336.            was not being deleted if an error occured while
  337.            attempting to test the archive integrity.
  338.  
  339.          . Fixed a problem where an error message was not being
  340.            issued if a compression or decompression signal file was
  341.            detected.  ZIPRPRO would simply exit, with no warning.
  342.  
  343.          . Created enumerated types for PrelogType and
  344.            RegisteredVersion, replacing the literal strings used
  345.            previously.
  346.  
  347.          . Re-worked the INI and ZIF test display procedures to
  348.            use string arrays.  This change reduced the code
  349.            size slightly, and substantially reduced the complexity
  350.            of these procedures.
  351.  
  352.          . Converted the ScanActivityIndicator string variable
  353.            to an enumerated type.  Corrected a problem where a
  354.            mis-spelling of a literal string could have caused
  355.            the Twirling Bars to fail to work.
  356.  
  357.          . Added a common function to search for ARJ, LHA,
  358.            PKZIP, and PKUNZIP in their respective paths, the
  359.            ZIP'R Pro path, and the DOS PATH before calling
  360.            any of these programs.  The common function reduced
  361.            the code size by .5K.
  362.  
  363.          . Modified code to check for the existence of a backslash
  364.            at the end of the ARJ, LHA, and ZIP paths after they
  365.            are read from the .INI file.  If a trailing backslash
  366.            is not detected, one is added.
  367.  
  368.  
  369. 03-10-94 ■ Version 1.23
  370.  
  371.          . Modified an error message about the program parent
  372.            directory not being present to be more accurate by
  373.            stating that either the program parent directory or
  374.            the main program directory is not present.
  375.  
  376.          . Converted the FloppyFormat variable to an enumerated
  377.            type within the code for easier variable-checking.
  378.  
  379.          . Added a ZPExec procedure that contains all compression
  380.            and decompression related Exec functions.  (Code size
  381.            reduction of 6.5K.)
  382.  
  383.          . Moved several boolean variables into the INI and ZIF
  384.            records, to make the code more concise.
  385.  
  386.          . Changed the default value for SubdirectoryDeletion to
  387.            True.
  388.  
  389.          . Changed If..Else If statments in Errors unit to a Case
  390.            statement to make the code shorter and more concise.
  391.  
  392.          . Moved all common string literal declarations into a new
  393.            ZPSTRING unit.
  394.  
  395.          . Increased the estimated string array size for Exclude,
  396.            Extract, IN, OUT, TSRPre, and TSRPost commands.
  397.  
  398.          . Converted CompressionType literal strings to an
  399.            enumerated type.
  400.  
  401.          . Changed all error message strings that were passed as
  402.            variables to a global routine into an enumerated type.
  403.            This allows automatic compiler validation, and shortened
  404.            the code by over 10K.
  405.  
  406.  
  407. 03-03-94 ■ Version 1.22
  408.  
  409.          . Added 3D effects to query and error screen dialog boxes.
  410.  
  411.          . Added an IOResult check and corresponding error message
  412.            if the ProgramParent directory can not be successfully
  413.            created on a RAM Disk.
  414.  
  415.          . Circumvented a potential problem in the compression and
  416.            decompression routines where a default value for the
  417.            Compression and Decompression Swap parameters was not
  418.            being set.  The compression procedure would issue an
  419.            error message under this circumstance.  Altered the
  420.            code to provide a fail-safe parameter assignment.
  421.  
  422.          . Corrected a problem in the ARJ Decompression procedure
  423.            where the "Default" Decompression Swap parameter was
  424.            not being read.
  425.  
  426.          . Added code to convert the ZIPRPROPath to upper case.
  427.  
  428.          . Removed several "EraseDecompressionSignalFile"
  429.            statements from the beginning of the DecompressZipFile
  430.            procedure.  This file had not yet been created at
  431.            this point in the procedure.
  432.  
  433.          . Corrected a problem where the update option was not
  434.            working properly.  (Broken in 1.22, not released.)
  435.  
  436.          . Fixed a problem where a runtime error 202 would occur
  437.            if the file PKUNZIP.EXE could not be found.  The
  438.            runtime error would be issued prior to displaying the
  439.            error message from ZIPRPRO.  (Increased stack.)
  440.  
  441.          . Added automatic ProgramParent directory creation if
  442.            extracting to a RAM disk.
  443.  
  444.          . Added preliminary support for extraction to a RAM disk.
  445.  
  446.          . Corrected a problem where an error message would be
  447.            issued if the "Program" directory did not exist.  This
  448.            created a problem if a "Program Parent" directory was
  449.            specified, since the program directory might not exist
  450.            under this circumstance.
  451.  
  452.          . Corrected a problem where the .N?? file was not being
  453.            deleted if errors were detected when checking the
  454.            validity of the values in the .INI and .ZIF files.
  455.  
  456.          . Shortened several code segments by using better coding
  457.            techniques.
  458.  
  459.          . Corrected a potential problem where the .SXT signal
  460.            file could be mistakenly deleted by ZIPRPRO.
  461.  
  462.          . Combined the Done and DoneNoSXTDelete routines into a
  463.            common procedure.  Added an enumerated type variable
  464.            to pass to this procedure, informing it of any
  465.            restrictions to observe.
  466.  
  467.  
  468. 02-26-94 ■ Version 1.21
  469.  
  470.          . Corrected minor spacing / carriage return problems on
  471.            dialog box (Query) screens.
  472.  
  473.          . Corrected a potential problem where the /CLEANUP option
  474.            would delete files in the current directory, not the
  475.            ZIPRPRO sub-directory, if launched from a directory
  476.            other than the ZIPRPRO sub-directory.
  477.  
  478.          . Corrected a problem where a runtime error 2 would occur
  479.            in the CreateSubDirectoriesUnderOS2 procedure, because
  480.            an Else statement was omitted.
  481.  
  482.          . Streamlined the code by creating two erase file routines
  483.            to replace the separate erase routines used previously.
  484.  
  485.  
  486. 02-16-94 ■ Version 1.20
  487.  
  488.          . Fixed a major problem where the original .ZIP file
  489.            could be deleted if the executable file could not be
  490.            found and update option was enabled.  (Data loss could
  491.            occur in this situation, especially if Selective
  492.            Extraction or Selective Exclusion was enabled.)
  493.  
  494.          . Added support to erase the *.DFL, *.NFL, *.OFL, and
  495.            *.DIR files when using the /Cleanup option.
  496.  
  497.          . Added support to manually create subdirectories when
  498.            operating under OS/2.  This option will circumvent a
  499.            potential problem where PKUNZIP cannot create sub-
  500.            directories under OS/2.  (This problem has been reported
  501.            to PKWare.)
  502.  
  503.          . Updated IFDEF and IFNDEF statements throughout the code
  504.            to minimize code size for each module.
  505.  
  506.          . Moved several string pointer variables into the INI and
  507.            ZIF record variables.
  508.  
  509.          . Reduced the ARJ and LHA default memory requirements
  510.            to more realistic levels.
  511.  
  512.          . Re-compiled with updated libraries.
  513.  
  514.          . Corrected a problem in the stTV3ChoiceBox procedure
  515.            that caused the box to be too narrow to properly
  516.            center a long header.
  517.  
  518.          . Added support to display the Command Processor and
  519.            ZIP'R Pro Path information in the new style message
  520.            boxes.
  521.  
  522.          . Corrected a problem where the TestFlag boolean was
  523.            not being set early enough in the code to display
  524.            the INI Parameters screen.  (%2 = TEST)
  525.  
  526.          . Added support to display the .INI Parameters in the
  527.            new style message boxes.
  528.  
  529.          . Added all missing .ZPD Parameters to the ZPD Parameter
  530.            display procedure.  Added code to display the first
  531.            10 INCommands, OUTCommands, ExcludeFiles, ExtractFiles,
  532.            TSRPreProgramCommands, and TSRPostProgramCommands.
  533.  
  534.          . Added support to read old style .ZPD files, prior
  535.            to current version.  (Set internal flags if the new
  536.            UseINCommands, UseOUTCommands, UseTSRPreCommands,
  537.            and UseTSRPostCommands variables could not be found
  538.            in the .ZPD file.)
  539.  
  540.          . Added support to display the .ZPD Parameters in the
  541.            new style message boxes.
  542.  
  543.          . Fixed a problem in the stTV3ChoiceBox procedure, that
  544.            caused a system hang if the maximum number of lines
  545.            exceeded the pre-defined limit.
  546.  
  547.          . Added support to read UseINCommands, UseOUTCommands,
  548.            UseTSRPreCommands, and UseTSRPostCommands variables
  549.            from the .ZPD file.
  550.  
  551.  
  552. 01-30-94 ■ Version 1.19a  (Internal Release)
  553.  
  554.          . Corrected a problem where the swap file name was not
  555.            being passed to the swapping exec procedure.  (This
  556.            problem was introduced, in version 1.20, when the
  557.            common exec swapping functions were created.)
  558.  
  559.          . Added support to specify whether EMS memory is to be
  560.            used over XMS memory for the swapping exec procedure.
  561.            The default behavior is to use EMS first, but may be
  562.            overridden.
  563.  
  564.          . Added support to swap to XMS memory during program
  565.            execution, if available.  Previously, only EMS or
  566.            disk was used for the swap file.
  567.  
  568.          . Modified the swapping-related procedure calls to force
  569.            a swap (default) as a fail-safe procedure.
  570.  
  571.          . Modified the WindowedCompression and WindowedDecompression
  572.            procedure calls to automatically force windowed mode
  573.            (default) as a fail-safe procedure.
  574.  
  575.          . Converted all execute calls to use the new procedures.
  576.  
  577.          . Removed the STSI2 unit from the uses clause to prevent
  578.            unnecessary compilation.
  579.  
  580.          . Corrected a problem where the swap file (.SWF extension)
  581.            was not being erased when the /Cleanup option was
  582.            specified.  (This file has the system attribute set.)
  583.  
  584.          . Created common execution functions to reduce code
  585.            size and complexity.
  586.  
  587.          . Corrected a potential problem where the compressed
  588.            file could have been deleted, if an incorrect value
  589.            for CompressionSwap or DecompressionSwap was read from
  590.            the .INI file.
  591.  
  592.          . Converted the internal SortedExtraction variable
  593.            to a Boolean type.
  594.  
  595.          . Corrected a problem where the .INI file was not
  596.            being read prior to checking the cleanup password.
  597.  
  598.          . Changed the behavior of the cleanup password
  599.            procedure to not prompt for a password if the
  600.            password is blank.
  601.  
  602.          . Converted internal WindowedCompression and
  603.            WindowedDecompression variables to Boolean types.
  604.  
  605.          . Reduced the memory requirement default values for
  606.            PKZIP and PKUNZIP.  (New default swapping option will
  607.            be added to the ZIF Editor.)
  608.  
  609.          . Re-worked the .INI and .ZIF read routines to make the
  610.            code faster and more concise.
  611.  
  612.          . Added support for the new INIVersion, ZIFVersion,
  613.            UseDiskForExecSwap, UseEMSForExecSwap, and
  614.            UseXMSForExecSwap parameters.
  615.  
  616.          . Re-arranged the order and placement of passed parameter
  617.            related code, to allow the disposal of unnecessary
  618.            pointer variables.
  619.  
  620.          . Modified dialog box code to allow centering or left
  621.            justification.
  622.  
  623.          . Changed all error messages to be displayed using the
  624.            new style dialog boxes.
  625.  
  626.          . Converted all query screens to the new style.
  627.            Corrected various punctuation problems in the text
  628.            of the new screens.
  629.  
  630.          . Modified cleanup password field to automatically
  631.            convert characters entered to upper case.
  632.  
  633.          . Corrected a problem in the swapping Exec routines
  634.            where the executed program would hang.  (This problem
  635.            was caused by the mouse handler routines not being
  636.            disabled before performing the swap, and was introduced
  637.            in version 1.20.)
  638.  
  639.          . Added password protection for the /Cleanup option.
  640.  
  641.          . Updated prelog screen to show the amount of Heap memory
  642.            available.
  643.  
  644.  
  645. 01-20-94 ■ Version 1.19
  646.  
  647.          . Added additional error messages for new error checking
  648.            procedures, and corrected a typo in a separate error
  649.            message.
  650.  
  651.          . Enhanced the conventional memory available routine to
  652.            provide a more accurate estimate of the amount of
  653.            conventional memory available on the system.  (This
  654.            figure approximates the free memory reported by MEM.)
  655.  
  656.          . Corrected a problem where the logic controlling the
  657.            loading of a command processor was backwards when
  658.            executing a .BAT or .BTM file
  659.  
  660.          . Added a check to force a command processor to be
  661.            loaded if the program to be executed contains a
  662.            .BAT or .BTM extension.
  663.  
  664.          . Added support to execute the desired program without
  665.            loading a command processor first.  This increases
  666.            the memory available to the program by about 3-5K.
  667.  
  668.          . Removed unnecessary "Continue" statements from the
  669.            INI and ZIF file read routines.
  670.  
  671.          . Converted internal string pointer variables to use
  672.            INI and ZIF records.
  673.  
  674.          . Added support in the TSR Container file section to
  675.            use the AlternateEXELaunchDirectory feature.
  676.  
  677.          . Fixed a problem where the "CALL" statement was not
  678.            being placed in front of the program name in the TSR
  679.            Container file if the Parameters field was blank.
  680.  
  681.          . Corrected a potential problem where the current drive
  682.            and directory was not being set prior to executing
  683.            OUT commands.  This could have been a problem if the
  684.            current drive and/or directory was changed during
  685.            program execution, such as when shelling to DOS.
  686.  
  687.          . Added support for an alternate EXE launch directory
  688.            to make it possible to launch a program from a
  689.            directory other than the one in which the executable
  690.            file resides.  (The program does NOT have to be an
  691.            EXE file.)  This feature allows programs, such as
  692.            Microsoft Works, Borland Pascal, and others, to be
  693.            executed from a data subdirectory.
  694.  
  695.          . Added preliminary support for string encryption and
  696.            decryption.
  697.  
  698.  
  699. 01-06-94 ■ Version 1.18
  700.  
  701.          . Improved the Conventional memory estimate on the
  702.            prelog screen to more accurately reflect the amount
  703.            of memory available after swapping.
  704.  
  705.          . Updated the BIOS screens to match the direct-write
  706.            screens.
  707.  
  708.          . Added support for AUTO, DIRECT, and BIOS screen write
  709.            modes.  This should help to solve any screen-related
  710.            compatibility problems that might exist.
  711.  
  712.          . Added video mode detection when using the AUTO screen
  713.            writes option.
  714.  
  715.          . Updated the prelog screen to display the status of the
  716.            Use Atomic Lock Files option.
  717.  
  718.          . Updated the prelog screen to display the Selective
  719.            Extraction (SXT) and Selective Exclusion (SXC) entries
  720.            separately.  (If either option is disabled, the
  721.            corresponding entry count will be 0.)
  722.  
  723.          . Updated the prelog screen to display the status of the
  724.            new Subdirectory Deletion option.
  725.  
  726.          . Added support to NOT delete sub-directories when using
  727.            PKZIP v2.04g.  This switch is necessary when an OS/2
  728.            system is operating on a network in combination with
  729.            other systems.  Due to some sort of conflict, sub-
  730.            directories can not be re-created under OS/2.  (Unsure
  731.            whether this is an OS/2, NetWare Requester, or PKZIP
  732.            caused problem.)  This switch can only be used with
  733.            PKZIP v2.04g.
  734.  
  735.          . Added preliminary support for compression program version
  736.            number tracking.  Future versions of ZIP'R Professional
  737.            may support compression program features that might not
  738.            be available in previous versions of the compression
  739.            program.
  740.  
  741.          . Corrected an alignment problem on the FileCount indicator.
  742.  
  743.          . Added a FileCount / Twirling Bar indicator to the AFSC
  744.            Level 4 screen to display the progress of the file size
  745.            scanning.  (Due to the high scanning speed, this feature
  746.            will be useful only on compressed files with an extremely
  747.            high number of files.)
  748.  
  749.  
  750. 01-01-94 ■ Version 1.17
  751.  
  752.          . Corrected a problem where .SXT signal files were not
  753.            being deleted when the /CLEANUP switch was used.
  754.  
  755.          . Corrected a possible ambiguity in the ExecDOS error
  756.            messages.  (#-5 changed to # -5.)
  757.  
  758.          . Updated the AFSC routines to use integer division, which
  759.            eliminates the extra rounding step needed for reals.
  760.  
  761.          . Corrected a problem in the AFSC Level 4 (ZIP) calculation
  762.            procedure that would cause erroneous calculations.  (The
  763.            file size returned would always be 0.)
  764.  
  765.  
  766. 12-27-93 ■ Version 1.16
  767.  
  768.          . Fixed a problem where an extra hyphen was being prepended
  769.            to the compression command line.
  770.  
  771.          . Added CompressionOptions support to the ARJ and LHA
  772.            compression procedures.  (LHA does not currently support
  773.            this feature.)
  774.  
  775.          . Fixed a problem where the CompressionOptions field in the
  776.            .ZPD file was not being passed to PKZIP.
  777.  
  778.          . Fixed a minor problem where ".ZIP" was hard-coded onto the
  779.            Query For Compression screen.  If ARJ or LHA was being used,
  780.            the screen would still say that the resulting compressed file
  781.            would have a .ZIP extension.
  782.  
  783.          . Added an additional check for PKZIP.EXE before decompressing
  784.            a .ZIP file when using Selective Extraction or Selective
  785.            Exclusion.  This is important, because when these options are
  786.            enabled, the program MUST be re-compressed to preserve all
  787.            data files.
  788.  
  789.          . Fixed a potential problem where the existence of PKZIP.EXE
  790.            was not being verified before deleting files from the
  791.            original .ZIP file.
  792.  
  793.          . Fixed a potential problem where ZIP'R Professional was not
  794.            verifying the existence of PKUNZIP.EXE and PKZIP.EXE before
  795.            attempting to create the temporary file lists.
  796.  
  797.          . Added an additional check to attempt to locate the selected
  798.            compressor on the DOS PATH.  ZIP'R Professional will use the
  799.            path specified in the ZIPRPRO.INI file if the program exists.
  800.            If the program cannot be found, the ZIPRPRO directory is
  801.            searched.  If this search fails, the DOS PATH is searched.
  802.  
  803.  
  804. 12-25-93 ■ Version 1.15
  805.  
  806.          . Cleaned up some internal routines related to cleaning up
  807.            signal files before exiting ZIP'R Professional.
  808.  
  809.          . Changed the .ZPD and .INI file read routines to reduce
  810.            overhead and increase speed.
  811.  
  812.  
  813. 12-22-93 ■ Version 1.14
  814.  
  815.          . Added error reporting to the error trapping sections of
  816.            the IN Command, Program, and OUT Command routines.  If an
  817.            error is detected in any of these routines, ZIP'R Pro will
  818.            report the error and query the user whether to continue.
  819.            The error reporting routines will also report whether the
  820.            error was generated by the command processor (Error Code)
  821.            or by the IN Command, OUT Command, or Program (Exit Code).
  822.  
  823.          . Corrected a problem in the Accurate File Size Calculation
  824.            routines where the selective extraction and exclusion
  825.            entries were still being used, even if the file was being
  826.            decompressed from a floppy disk.
  827.  
  828.          . Fixed a major problem where data loss could occur if the
  829.            compressed file was stored on a floppy diskette, and
  830.            selective extraction or selective exclusion was enabled.
  831.            This is a rather rare combination of options, but since
  832.            data loss is likely, it is prudent to upgrade previous
  833.            versions of ZIP'R Professional For DOS.
  834.  
  835.          . Corrected a problem where the cursor would disappear
  836.            following some query screens.
  837.  
  838.          . Added /CLEANUP option to erase all signal files from the
  839.            ZIPRPRO sub-directory.  This option should be used with
  840.            care to ensure that no other processes are using ZIP'R
  841.            Professional.
  842.  
  843.  
  844. 12-20-93 ■ Version 1.13
  845.  
  846.          . Corrected a problem where a program that is executed
  847.            using a batch file, that also used a TSR container file
  848.            would not return control to ZIP'R Professional for
  849.            re-compression.  The solution was to "CALL" the batch
  850.            file from the TSR container file.
  851.  
  852.          . Corrected a problem where the Decompression Signal File
  853.            might not get deleted under some error situations.
  854.  
  855.          . Completed the transfer of code to common units to allow
  856.            code sharing between different components of the ZIP'R
  857.            Professional series of programs.
  858.  
  859.          . Added conditional defines to allow code sharing between
  860.            ZIP'R Professional For DOS and the ZProcessor component
  861.            of ZIP'R Professional For Windows.
  862.  
  863.          . Isolated a problem creating sub-directories under OS/2
  864.            to the use of "Global" network sessions.  The Novell
  865.            OS/2 requestor handles directory creation differently
  866.            under global or private network sessions.  ZIP'R Pro
  867.            should be used in a private session if sub-directories
  868.            must be re-created.
  869.  
  870.          . Checked into a potential problem with AFSC Level 4 if
  871.            the lines were too long, and wrapped on the screen.
  872.            The function used to handle the string to long integer
  873.            conversion correctly handles this situation, and ignores
  874.            any strings that it can't convert.  No action necessary.
  875.  
  876.  
  877. 12-05-93 ■ Version 1.12
  878.  
  879.          . Added error checking to make sure that compression
  880.            cannot occur to floppy drives unless the compression
  881.            program being used is PKZIP.  (Other compression
  882.            programs do not currently support spanning floppies.)
  883.  
  884.          . Changed the way ZIP'R Professional deals with the
  885.            attributes of a compressed file that resides on a
  886.            floppy diskette.  The attributes of these files
  887.            will not be changed, since we do not know which
  888.            diskette is in the drive, and multiple diskettes
  889.            may be required to store the compressed file.
  890.  
  891.          . Fixed a problem with floppy compression where the
  892.            query for compression floppy diskette was occurring
  893.            too late.  This caused programs to be compressed
  894.            to floppy diskettes properly, but they could not be
  895.            decompressed.  (After further checking, the programs
  896.            could be decompressed, but the prompt for the
  897.            decompression floppy disk was in the wrong position.
  898.            A work-around was to simply make sure that the disk
  899.            was in the drive.)
  900.  
  901.          . Added Compress/Decompress and TSR Entries indicators
  902.            to prelog screen.  Separated Net/Multi to be two
  903.            separate indicators, and added code to detect them
  904.            individually.
  905.  
  906.          . Added a program halt command following the error
  907.            message display if the ZIPRPRO.INI file cannot be
  908.            found.
  909.  
  910.          . Corrected a problem where the .ZIP file was not
  911.            being deleted if Update mode and Compress/Decompress
  912.            only mode were enabled.
  913.  
  914.          . Added code to force a total decompression if
  915.            "Compress/Decompress Only" is enabled.  This will
  916.            prevent problems if all files are not extracted.
  917.  
  918.          . Corrected a problem where the .DSF file was not
  919.            being deleted under various circumstances in the
  920.            decompression module.
  921.  
  922.          . Corrected a potential problem where logging to a
  923.            non-existent program or program parent directory
  924.            was not calling the "Done" procedure.
  925.  
  926.          . Removed unnecessary ZipName pointer variable, and
  927.            replaced with CompressedFileName pointer variable.
  928.  
  929.          . Corrected a problem where the .DSF (Decompression
  930.            Signal File) was not being deleted if an error
  931.            occurred during the CheckSpaceForDecompression
  932.            procedure.  (This problem could manifest itself
  933.            if the compressed file was corrupt.)
  934.  
  935.  
  936. 11-26-93 ■ Version 1.11
  937.  
  938.          . Added error message if Selective Exclusion is enabled,
  939.            but no file specifications have been entered.
  940.  
  941.          . Corrected problems where three delete routines were
  942.            not marking the compressed file with normal attributes,
  943.            generating a run-time error.  (Code 5, File Access
  944.            Denied)  This error would occur when query mode was
  945.            enabled, and the program was not re-compressed.
  946.  
  947.          . Updated random filename generator code in the DECOMP
  948.            procedure to use the new method for generating
  949.            random filename prefixes.
  950.  
  951.          . Added "Selective Exclusion" feature to complement
  952.            Selective Extraction.  Selective Exclusion allows
  953.            certain files or groups of files to be excluded
  954.            from extraction.
  955.  
  956.          . Changed the prelog screen to display the number of
  957.            Selective Extraction files (entries) and the number
  958.            of simultaneous ZIPRPRO licenses.
  959.  
  960.  
  961. 11-21-93 ■ Version 1.10
  962.  
  963.          . Changed the logic in the prelog screen to highlight
  964.            Query Option if Selective Extraction is enabled, but
  965.            the compression type is not ZIP.
  966.  
  967.          . Changed the countdown code on the prelog screen to
  968.            count to 0.
  969.  
  970.          . Added code to mark the compressed file as ReadOnly
  971.            during ZIPRPRO operations.  This should help to
  972.            reduce the chances of accidently deleting the original
  973.            compressed file during update mode (inconvenience) or
  974.            during selective extraction (potential disaster).
  975.  
  976.          . Added code to mark all signal and temporary files
  977.            ReadOnly, to prevent other processes from erasing them.
  978.            Also added code to mark files as normal before attempting
  979.            to delete them.
  980.  
  981.          . Corrected a problem where the atomic lock files were
  982.            not being closed properly after creation.
  983.  
  984.          . Re-worked the token and temporary file creation and
  985.            detection routines to use variable names and file
  986.            extensions that fit their function.
  987.  
  988.          . Moved the code to generate a random filename prefix
  989.            to a separate, common procedure, reducing the
  990.            complexity of the routines that require these names.
  991.  
  992.          . Added error message codes to trap the condition if
  993.            more than one users attempts to access a compressed
  994.            file when Selective Extraction is turned on.
  995.  
  996.          . Fixed a problem where the .TK1 file was being created
  997.            on programs that did not need to be decompressed, and
  998.            the .TK1 file was not being deleted.
  999.  
  1000.          . Moved .TK1 and .TK2 file detection and creation to a
  1001.            common area of the DecompressZipFile procedure.
  1002.  
  1003.          . Changed the signal file checking order to accomodate
  1004.            the new Selective Extraction .SXT file.
  1005.  
  1006.          . Fixed a problem where the Selective Extraction .SXT
  1007.            signal file was being created in error.  (A non-atomic
  1008.            file was being created.)
  1009.  
  1010.          . Added code to limit access to the compressed file if
  1011.            selective extraction is being used by any user.
  1012.  
  1013.          . Added error message code to trap the condition if
  1014.            Selective Extraction is turned on, but no files are
  1015.            entered for extraction.
  1016.  
  1017.          . Corrected a problem where the procedure to calculate
  1018.            the space required to decompress the compressed file
  1019.            was being executed when the compression type was NONE,
  1020.            and no compressed file existed.
  1021.  
  1022.          . Checked out a potential problem with PKUNZIP erroring
  1023.            out if files specified for extraction did not exist.
  1024.            It turns out that PKUNZIP simply ignores this type of
  1025.            error, eliminating the need to deal with it in ZIPRPRO.
  1026.  
  1027.          . Added code to disable Query mode if using Selective
  1028.            Extraction.  (This is necessary to insure the integrity
  1029.            of the original compressed file, and to prevent errors
  1030.            when attempting to decompress files a second time.)
  1031.  
  1032.          . Corrected problems in the CheckSpaceForDecompression
  1033.            procedure where an EXIT was being executed before the
  1034.            selective extraction container file was generated.
  1035.  
  1036.          . Revised the code in the CalculateExactFileSize routine
  1037.            to base its calculations on the list of files to be
  1038.            extracted, if Selective Extraction is enabled.
  1039.  
  1040.          . Added the more rigid compressed file type checking to
  1041.            the internal CalculateExactFileSize, DecompressZipFile,
  1042.            and CheckSpaceForDecompression procedures.
  1043.  
  1044.          . Eliminated the automatic detection of compressed file
  1045.            archive types.  Now, the type of compressed file must
  1046.            match the compression type specified in the .ZPD file.
  1047.            (If users wish to change compression types, they must
  1048.            use a compression type of "NONE" for one pass.  Then,
  1049.            the file may be re-compressed with the new compressor.)
  1050.  
  1051.          . Added fail-safe code to the prelog screen procedure
  1052.            that will show grayed-out check marks if any options
  1053.            have been disabled by ZIP'R Professional.
  1054.  
  1055.          . Updated prelog screen to show the status of the new
  1056.            "Selective Extraction" option.
  1057.  
  1058.          . Added support for "Selective Extraction" when using
  1059.            PKZIP/PKUNZIP.
  1060.  
  1061.  
  1062. 11-15-93 ■ Version 1.00
  1063.  
  1064.          . Initial release of ZIP'R Professional For DOS.
  1065.