ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ ³ º 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. ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ º ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ 0.99á - Could it be? The last beta, after 1 1/2 years in development? (5/24/93) CONFIGURATION FILE CHANGE!!! The ARC_PACK command lines have been split into two lines: ARC_PACK and ARC_COMMENT. This was done for several reasons: to allow ULPTEST to comment archives during testing, to allow unaltered archives (e.g. -AV and SFX archives) to be commented, to prevent needless commenting of nested archives and other less-important reasons. Refer to the documentation for more information. CONFIGURATION FILE CHANGE!!! Added the WORD_WRAP parameter back by popular demand. The choices are NO (default) for no word-wrapping and YES for the smart word-wrapping, which checks for boxes, etc. before word-wrapping. In addition, the smart word-wrapping logic has been enhanced. ULPTEST now recognizes the ATTACH mode passed by PCBoard 15.0 for file attachments to messages, and tests the file for integrity, corruption and viruses only. Under no circumstances will the file be rejected, however, since this would prevent the file attachment. Any problems detected will be logged in the log file and displayed to the user online. Archives with imbedded paths are now supported by ULP and ULPTEST. ULPTEST will now automatically switch into FAST mode when an archive with paths is detected, eliminating the problem of unpacking, since there should not be any nested archives in a pathed archive. During the event, ULP.EXE will detect the imbedded paths, processing as usual (i.e. unpacking without respect to paths), but it will retain the original archive. Granted, ULP.EXE's handling is a kludge, but should suffice for now. In addition, ULP has been coded to repack pathed archives in which all files within have identical pathspecs, thus removing the paths (why were they there to begin with?). ULP and ULPTEST will now detect and reject archives containing encrypted files, and renaming or deleting in accordance with the ERR_DISP parameter. The extension will be .ENC if renamed. Also rewrote the ULP process logging system for improved clarity and additional information. ULP's retest (-R) and mass conversion (-M) modes now have verbose logging and follow the LOG_MODE parameter defined in the configuration file. Finally, due to some confusion over ULP refusing to reprocess a file that is in the PROCESS.DAT file, ULP now logs any file skipped due to previous processing into the log file. ULPTEST will now check the environment for a DSZPORT environment variable, and will use it if found versus reading the PCBOARD.DAT. Added a -G command line switch to ULPTEST, allowing the sysop to force ULPTEST to use or not use ANSI graphics at all times (options are YES or NO). Normally ULPTEST extracts the user's current graphics state from PCBOARD.SYS, but if a sysop was using the command-line exclusively to pass program parameters, he was forced to use non-graphics mode due to the lack of this switch. Switched compilers for all programs except ULPDB to Microsoft C 7.0 from Borland C++ 3.1 for reduced code size and improved speed. For the first time in awhile, I spent some time optimizing and re-writing code. For example, the duplication database compilation routines are now at least 3 times faster, especially on LANs and slow hard disks. Also removed redundant code from ULPTEST, resulting in smaller code size. Runtime memory requirements have been reduced slightly as well. Spent some time on the documentation as well, clarifying ULP system installation and operation. Also including instructions for using ZDCS with ULP instead of ULP's duplication system, for those wishing to use ZDCS. Made the ULP programs error messages less cryptic by using the configuration file parameter id in the error message. Changed the minimum acceptable database purge value for ULPDB from 12 to 6 months by user request. Be careful! The ULP programs could not identify PKZIP 2.04? SFX archives created with the -j option (SFX junior). Fixed. Learned that what CDC calls FOSSIL port 1 in PCBOARD.DAT is really FOSSIL port 0 (and so on). Fixed. Note that this does not affect the associated command line switch, however. If you want to specify FOSSIL port 2 on the command line, use '-X2'. Discovered that part of my third-party library was broken, including the swap code. Now that it's corrected with a library upgrade, the ULP programs should no longer hang when swapping out to EMS/XMS/etc. On occcasion, ULP would ignore the KEEP_AV and KEEP_ENV variable settings and always keep secured archives. Fixed. ULP now does not include FILE_ID.DIZ and DESC.SDI files in the archive statistics; they are used solely for descriptions. Since this is how ULPTEST has always operated, the file counts during upload test and event processing were different in the log files for files with internal description files. ULP could mangle a directory listing if two files with the same base name but different extensions (e.g. .SDN and .SDA files) were processed. Fixed. ULPTEST would fail with "Unknown format" errors if attempting to run ULPTEST from the same subdirectory where the file being tested was stored. An example of this is when files are uploaded through the RoseMail 2.00á door. ULPTEST's counting of EXE extensions and EXE duplicates when in FAST mode would always result in 0. Fixed. Corrected background color bleeding in ULPTEST's colorized header. If you tried to mass convert or retest the subdirectory pointed to by SOURCE_PATH using ULP.EXE, it wouldn't do anything since it was using PROCESS.DAT. Fixed. 0.98á - CONFIGURATION FILE CHANGE!!! ULP is now capable of processing a (2/27/93) single upload directory for those who want to make all uploads public and don't like the three-directory approach (although the three-directory approach is still supported). In order to achieve this, ULP now maintains a process data file, defined by the PROC_DAT_FILE parameter. This file is required for ULP operation. * NOTE: To initialize the data file, run your old version of ULP first to be sure everything has been processed, and then use the -I initialization command-line switch. If you do not process the files in the SOURCE_DIR prior to initialization, they will not be processed after initialization! CONFIGURATION FILE CHANGE!!! ULP and ULPTEST are now capable of partially decoding GIF files and rejecting files based upon width, height, colors and/or GIFLITE compression. By doing so, only 1 GIF tester can be defined in the configuration file (which shouldn't be a problem, since GIFTEST is the only one I'm aware of). This is the first step toward an integrated GIF tester, eliminating dependence on GIFTEST. Refer to the MIN_WIDTH, MIN_HEIGHT, MIN_COLORS and KEEP_GIFLITE parameters. Note that these limits are not applied to nested GIFs within archives. (NOTE: If you continue to use GIFTEST, the KEEP_GIFLITE parameter will not work). CONFIGURATION FILE CHANGE!!! In conjunction with the added GIF testing ability, ULP can add a single user-defined line to the GIF description describing the resolution and compression (refer to GIF_INFO_FMT parameter). Also note that the INFO_FORMAT config parameter has been renamed to ARC_INFO_FMT. CONFIGURATION FILE CHANGE!!! The upload directory configuration information is now external to the ULP binary configuration file, in a separate file defined by DIR_CFG_FILE parameter. This change reduces ULP.EXE's runtime memory requirements, while eliminating the 10-directory limit previously imposed. An unlimited number of upload directories can now be defined. CONFIGURATION FILE CHANGE!!! The WORD_WRAP parameter is now obsolete. ULP and ULPTEST will now check the description for box drawing characters prior to word-wrapping. If boxes are detected, they will not be word-wrapped, otherwise it will be word-wrapped. Two new variables are now available for the format definitions ARC_INFO_FMT and GIF_INFO_FMT: @DATE@ and @CR@. @DATE@ will insert today's date, while @CR@ will insert a line break in the definition to facilitate multi-line information line definitions. ULPTEST is now able to use a FOSSIL driver for it's comm I/O; it will automatically determine if you are running the PCBoard /M software when reading the PCBOARD.DAT. You can force ULPTEST to use a FOSSIL by using the -X command-line parameter to define the FOSSIL port number. Greatly enhanced the duplication database scanning speed of ULP, ULPTEST and ULPDB, especially for those users with very large duplication databases and/or processing across a LAN. Improved the archive scanning routines, speeding scanning for corruption, ULPTEST FAST mode and ULPDB database addition (when not forced to unpack via the command line). The speed increase is most noticable when scanning a file across a LAN. Enhanced -AV and secured archive detection, and added detection of PKZIP 2.x -AV stamps. ULP will now detect if an unsecured file has been added to an authentic archive and will not consider the archive authentic anymore. ULP and ULPTEST will now detect bomb archives and skip them (if in ARJ, ARC, PAK or ZIP formats). Bomb archives are archives with huge repeated text files inside that compress very tightly. I was given one that has a 30 meg file compressed down to 58K! If a single file contained inside any archive is greater than 3 megs in size (arbitrary limit), the archive will be rejected and renamed to a .BOM extension. Modified the manner in which ULPTEST uses the -I, -A, -B and -N parameters. They are now considered to be overrides of the defaults found in PCBOARD.DAT/PCBOARD.SYS. In addition, ULPTEST will now only open PCBOARD.DAT and/or PCBOARD.SYS only if information contained within is required. Lastly, added a last-ditch attempt to locate the PCBOARD.DAT/.SYS files by checking the current directory if all other attempts fail. Changed the 16550A UART FIFO trigger level in ULPTEST from 1 to 8 bytes. This will reduce CPU overhead slightly due to comm I/O when ULPTEST is running. (Note that this change is for direct I/O only, not FOSSIL driver I/O). Due to popular demand, ULP will now move files that have internal descriptions, regardless of whether a user-supplied description exists in the source DIRxx list. Added a purge function to ULPDB to remove old duplication database records. This purge function is based upon the date of the file represented by the record, NOT the date the record was entered into the database. Refer to the documentation for more information on the -P command line switch. Be careful! Improved the memory handling in ULPDB to improve its tolerance of variable available memory conditions. Changed the .VRS error extension to .CHK...seemed more descriptive since more than just virus-checkers are executed in this function. Removed single file processing mode from ULP. ULP and ULPTEST NORMAL modes would ignore FILE_ID.DIZ and DESC.SDI files when processing a file (in the statistics compilation), while ULPDB, ULPTEST FAST and VERIFY.ULP modes would not. All functions now completely ignore internal description files during processing. When ULPTEST NORMAL mode begins processing a nested archive, it will inform the user that it is processing a nested archive. Before, the output was somewhat confusing to the uploader. ULP, ULPTEST and ULPDB would not recognize a file of the format of the first archiver listed in the ULP.CFG file (usually ARC). Related to this was a bug that could cause a failure to move the files to the destination directory. ULP -O (override) mode was broken if you had ULP's internal BBS ad file checking disabled. Fixed. ULP and ULPTEST could muck up or duplicate description lines if boneheads didn't follow the standard format of the FILE_ID.DIZ file. The description lines are now truncated to 45 (count 'em, 45) characters. Also installed code to strip leading blanks and tabs and blank lines in incorrectly formatted description files. ULPTEST would insert a file size of 0 in the description file. This was purely cosmetic, since ULP would correct it in the event. Fixed. ULPCFG didn't allocate the same amount of space for the upload directory and directory lists as PCBoard does, so problems with long paths could arise. ULP now allocates the same amount of space as PCBoard allows in PCBSETUP. If your primary archiver was the first archiver defined in the config file, ULPCFG falsely reported that no primary archiver was defined. ULP would still operate correctly; the error message was a false alarm. Fixed. ULPCFG would report "WARNING: Unknown configuration file parameter '(null)'" if any blank lines were in the text configuration file. Fixed. When reading a list file to build a database, ULPDB may miss the first line in the file, resulting in those files not being entered in the database. Fixed. Spend a significant amount of time updating and improving the documentation. I suggest you read it, since there are so many changes and improvements in this version... 0.91á through 0.97á - Earlier beta test versions... 0.90à/A through 0.90à/I - Alpha test versions...