
    Ŀ
                               UpLoadProcessor Revision History File
                     
             ķ    
                           The following is a list of the most
        Ľ  Ľ           recent changes made to the ULP system
                               by revision level, in reverse order.
     
      ͼ


* NOTE: I've gotten several questions regarding ARJ SFX archives and ULP's
        inability to detect them. This is not a limitation of ULP, but bugs in
        ARJ versions 2.21, 2.21a and 2.22. The ARJ SFX signature was not
        inserted into the ARJ SFX header, therefore no program relying on this
        signature (such as ULP) cannot detect ARJ SFXs created with these
        versions. Versions 2.20 and 2.30 correctly insert the signature.


0.97    - CONFIGURATION FILE CHANGE!!!  The ULP programs can now be forced to
(12/22/92) delete extracted files themselves, versus using DOS. In some cases,
           letting DOS do the work is faster, but some foreign language
           implementations of DOS may prevent this ability. Refer to the
           INTERNAL_DEL parameter in the documentation.

           CONFIGURATION FILE CHANGE!!!  ULP and ULPTEST now force archive
           screening. Hence, the SCREEN_ARC parameter is now obsolete; delete
           it from your text config file. This was done to improve system
           integrity from would-be hackers. The archive screening routine has
           been extended to ULPDB during database addition; defective archives
           are noted in the log file.

           CONFIGURATION FILE CHANGE!!!  Word-wrapping of the description is
           now configurable. If WORD_WRAP is set to YES, it will word-wrap the
           description as did pre-0.97 versions of ULPTEST.EXE. If set to NO,
           it will not word-wrap and copy straight from the file as did
           pre-0.97 ULP.EXE versions.

           CONFIGURATION FILE CHANGE!!!  ULP now supports the SQZ archiver by
           signature, for both SQZ and SQZ SFX archives. Note the additional
           archiver definition in the default configuration file.

           Enhanced the error detection ability of ULPCFG in an attempt to
           reduce the number of problems due to configuration errors.

           Changed the BBS ads database format, reducing the file size and
           run-time memory storage by 25%. Use the ADDBCVT.EXE utility supplied
           to convert your database to the new format. The command line is
           "ADDBCVT ulpads.db", executing the utility from the same directory
           as the database.

           Installed a single-file processing mode into ULP.EXE (without
           description processing), intended primarily as a hook for Tom
           Carroll's Tic-2-PCB, but it might be of some general use. Refer to
           the '-F' parameter. An additional provision for Tic-2-PCB is the
           preservation of its "Received by:" line in the description.

           ULPTEST no longer requires the PCBDRIVE environment variable to be
           specified. If the BBS drop files exist on the same drive that
           PCBTEST.BAT is executed from, you can save some environment space by
           eliminating the PCBDRIVE variable. If the files are on a different
           drive, continue specifying PCBDRIVE as before.

           ULPTEST fast and pre-verification modes now correctly calculate
           duplication using the dual duplication filter. This could cause
           ULPTEST to pass/fail a file, and then ULP fail/pass the same file
           during the event.

           ULPTEST now pays attention to the user's current state of the
           graphics mode. When graphics are on, high ASCII and ANSI colors
           (new) are used. When graphics are off, only keyboard ASCII
           characters are used. Remember that you will not see this display
           locally; you must call from remote if you want to see what ULPTEST
           outputs to the user. A future windowed version of ULPTEST will
           remedy this situation.

           Spent an extensive amount of time on optimization of the internals
           of the code, ultimately improving speed, reducing executable size
           and run-time memory requirements. Other changes to improve speed,
           especially on networked and multitasking systems, have been
           designed; these function best when a RAM disk is utilized for the
           WORK_DIR parameter.

           Reduced the program limits slightly for memory conservation: the
           maximum number of archivers is now 9 instead of 10, and the maximum
           number of file checkers and GIF file checkers is 3 instead of 5. If
           these are too restrictive, let me know and I'll increase them.

           ULP and ULPTEST now preserve the "Uploaded by:" description line
           when inserting an internal description file. It was always preserved
           when processing user-supplied descriptions.

           I strongly suggest that the full drive and path spec for your
           archivers, file checkers and GIF checkers be defined. Otherwise, the
           potential exists that a file may be executed that you do not wish.
           This has been done in the sample configuration file using the
           assumed path of 'C:\UTIL'.

           Under certain circumstances, the ULPDB segmented sorting algorithm
           would fail with a 'segment too large' error. Fixed.

           The self-extracting archive detection routine could intermittently
           fail depending on the location of the archive signature. Fixed.

           Broke the ability of the VERIFY.ULP checking to detect file
           duplication at all. Fixed.

           Had some lockups while beginning work on 0.97 code; recompiling one
           of the third-party function libraries with my compiler has corrected
           that. It is possible that sporadic lockups in 0.96 during swapping
           may be due to this same problem.

           SUPPRESS_HDR was misspelled in the default config file. This caused
           those who didn't notice it to think that the function didn't work.
           Oops...

           I apologize for the length of time required to get this update
           released. Between a promotion at work, development of ANTI-AD,
           motherboard problems on my development machine, new C libraries and
           the large number of improvements, it has been slow going. Things
           will move more quickly from now on...

0.96    - A fault in the duplication system appeared on my system recently,
(9/6/92)   forcing a change in the database file format. Unfortunately,
           existing databases cannot be converted, as one piece of information
           required is not maintained. Hence, it will be necessary to
           regenerate the duplication database. Also, you will note the
           database will be about 60% larger in size. There is good news: the
           scanning routine is greatly improved (3 to 5 times faster by one
           user's estimation), which should greatly reduce the time required to
           rebuild the database, especially systems running CD-ROMs and/or
           LANs. This change will also allow development of a purge function
           for removing old CRCs from the database. NOTE: The FWKCS import
           function still works if you would like to import old data into your
           database for improved integrity. The ZDCS import function has been
           disabled until I can work on deciphering the database (I need to see
           if the information required is available).

           CONFIGURATION FILE CHANGE!!!  ULP and ULPTEST can now be forced to
           pass, without testing, specific files defined by file extension.
           This is intended to be used for non-DOS files such as Unix Tar Z and
           Macintosh files that some boards accept. Refer to the NO_PROC_EXT
           for more information.

           ULP, ULPTEST and ULPDB now check the drive specified in WORK_DIR
           to insure there is enough space left for 4 times the size of the
           archive being processed. This will help prevent unpacking errors on
           RAM disks. If there is not sufficient space, it will unpack on the
           drive where the file is located (a warning for CD-ROM users). Note
           that you MUST include the drive spec in the WORK_DIR parameter, if
           used.

           CONFIGURATION FILE CHANGE!!!  ULP, ULPTEST and ULPDB are now capable
           of swapping themselves out of memory when executing external
           programs. While I have taken great pains to keep ULP's memory
           requirements low (128K typical), small DESQview windows can be
           difficult to work in, especially with programs like ARJ that have
           large memory requirements. Using the SWAP parameter in the
           configuration file, the ULP programs will swap to EMS, XMS and disk
           (in that order).

           ULP and ULPTEST now check the number of subdirectory levels
           contained in an ARJ archive that has embedded pathspecs. If all
           files contained within are at the same level, the file will be
           processed without regard to paths. If there are varying levels, then
           it will be rejected as before for embedded paths. The reasoning for
           this is that ARJ includes pathspecs by default, and many users who
           upload using ARJ don't realize it. If this seems like a good idea to
           incorporate on ZIP archives, let me know. I'm undecided since a
           person has to consciously force pathspecs to be kept in a ZIP file;
           logic would indicate that the person had a reason for doing so.

           The age checking has been changed to fail an archive for average
           age. This change was made because occasionally a user would upload
           an old archive, but after having tinkered with a file (e.g. a
           configuration file), resulting in it being incorrectly passed.
           Instead of the file being rejected based solely upon the newest file
           date, an average age is now calculated, and if the average is
           greater than AGE_LIMIT, the archive will be rejected.

           ULPDB can now merge two ULP CRC-32 databases together, using the -M
           command line switch. This will be used to develop pre-built CRC
           databases for CD-ROM disk that sysops can merge with their existing
           CRC databases for fast installation.

           ULP, ULPTEST and ULPDB now check the temporary subdirectory prior to
           unpacking for stray files and deleting if necessary. This is needed
           if one of these programs hangs or is aborted for some reason, since
           unpacked files may be left behind.

           ULPDB will now add unknown format files to the CRC database when
           discovered. Previously, these files would not be added, resulting in
           various .DOC, .TXT, .MAC, etc. files from being included in the
           database.

           ARJ SFX archives would always fail the screening process. Fixed.

           More recoding for improved speed and efficiency.

           Also, Salt Air (PCBoard Support BBS) has granted me an ULP support
           conference on their system. It is conference #42, and I will be
           monitoring it at least twice per week.

0.91 through 0.95 - Early beta test versions...

0.90/A through 0.90/I - Alpha test versions...
