Full Description of File
GIFtest 4.0 beta, 11/07/91 release.
Utility for PCBoard 14.x and ProDoor sysops
to test uploaded GIF files for errors and
insert resolution into the file descriptions
where the sysop desires. Returns an error
level, so works with any BBS software.
Public Beta Version.
Contents of the GIFTEST.DOC file
CopyRight 1991 by Dave Navarro, Jr.
What is GIFtest?
GIFtest is a command line utility to test GIF files to make sure
they are valid. GIFtest scans the GIF header to make sure that
all the information stored is valid, and then scans the image
it self to make sure it's all there. If everything is found in
order, GIFtest exits without any error messages or error levels.
However, if there is a problem with the GIF, GIFtest exits with
an error message letting you know what's wrong, and exits with
an error level.
GIFtest is also capable of letting you know if a GIF has been
GIFLITE'd, has any extra bytes left by older transfer protocols,
modifying a BBS description to include the resolution of the GIF
(ProDooor and PCBoard), and rejecting GIFs that do not meet a
minimum definable resolution.
When GIFs are transfered from user to user, or user to BBS or BBS
to user, their protocol sends files in packet sizes ranging from
128 bytes to 4k, and when they reach the end of a file, if the
remaining bytes do not equal the packet size, the packet is "padded"
with extra charactors to make it equal to the pack size. Unfortunately,
these bytes are not trimmed off when recieved by older protocols. It
doesn't effect the file itself, but after several hundred file transfers,
you could end up with several hundred "K" of wasted space. GIFtest now
automatically trims these extra bytes from GIF files.
GIFtest also conforms 100% to the GIF87a and GIF89a standards, so
will also process GIFs that contain "extensions". These extensions
are also tested to make sure that all the "data blocks" have the
correct lengths and are valid.
NEW: Byte trimming is instantanious and no longer causes GIFtest to test
the GIF more than once.
To register GIFtest, please send a check or money order for $15
Dave Navarro, Jr.
64-38 Admiral Ave
Middle Village, NY 11379
Please used the enclosed ORDER.FRM file.
The Graphics Interchange Format(c) is the Copyright property of
Compuserve Incorporated. GIF(sm) is a Service Mark property of
Many thanks to the following individuals who have helped with the
testing of GIFtest and whose suggestions have helped GIFtest to
Gary Foreman, SysOp of Another Dimension BBS
Thomas Enstall, SysOp of Hard Times BBS
Howard Ross, SysOp of a private BBS
Jerry Claxton, SysOp of Woodcreek BBS
Allen Legatzke, SysOp of Sattelite BBS
Chuck Valiceck, SysOp Suburban Software BBS
Max Bernard, SysOp of Taste BBS
Steve Rimmer, Author of "Bit-Mapped Graphics"
James Davis, Programmer
The author can be reached through US Mail at the same address used
for registration, or through "electronic mail" left on The Bard's
Lair BBS at 718-381-3651. The author also monitors the SHAREWARE
conference in the Intelec International Network of BBSs, and the
SHAREWARE conference in the MetroLink/RelayNet International
Network of BBSs.
Because of the high cost of voice support, and the low cost of
GIFtest, voice support from the author is not available. If it's
absolutely important that you recieve voice support, leave an
electronic message to the author on The Bard's Lair BBS and you
will recieve a "collect" call as soon as humanly possible.
How to use GIFtest:
GIFtest 4.0 has the following options:
Usage: GIFTEST filename.gif [option1] [option2] etc..
/B:n - BBS type
0 - None [default]
1 - ProDoor
2 - PCBoard
/C:[filename] - Use options in configuration file
/D - Duplicate checking using 32 bit CRC's
/E - Erase Invalid GIF's
/L:[filename] - Keep a log of GIFs
/M:nnXnnXnn - Minimum resolution to accept
/N:n - Node Number (requires GIFTEST.CFG)
/P:n - COM port numer [1 - 4]
/R:n - Position of resolution in description
0 - First word on first line
1 - Last word on first line [default]
2 - Last word on last line
3 - Last line by itself
/S - Skip GIF testing
/T:n - Type of resolution used
1 - Enclosed with brackets [default]
2 - No brackets
/U - Convert description to uppercase
To use GIFtest, just type "GIFTEST filename.gif" at the DOS prompt
and GIFtest will tell you the size of the GIF and whether or not it
GIFtest will also exit with one of the following Errorlevels to
help you identify what happened in batch files, or programs that
use GIFtest (such as ZipLab).
GIF passed all tests 0
Invalid Header or Incomplete Image 1
File Not Found 5
Invalid Command Line Option 5
GIFLITE'd [passed all other tests] 10
Failed Minumum Resolution [passed other tests] 20
Duplicate CRC found [passed other tests] 25
HOLD directory not found [failed min resolution, or duplicate] 40
No Description Found [passed all other tests] 60
Unknown Error [programmer goofed] 255
Modifying Descriptions: /B:n
The only feature of the original GIFtest was to place the resolution
of the GIF into the description typed by users of ProDoor where I
wanted it. Since then, many sysops have contacted me, asking that
I allow the same time of feature for their BBS type as well.
Unfortunately, the only people to give me the necessary information
have been PCBoard SysOps, so starting with 4.0, GIFtest supports
descriptions for ProDoor and PCBoard.
However, GIFtest doesn't know which type of BBS is running,
so you'll need to tell it with the /B parameter.
/B:0 means ignore ProDoor and PCboard descriptions, just test
/B:1 means your running ProDoor and search for $DOOR.NAM to
modify the description
/B:2 means your running PCBoard and search for UPDESC[.N] to
modify the description
If you use the /B:n option and GIFtest does not find the description file
or does not find the description inside the description file for the GIF
and the GIF passes all tests, GIFtest will exit with ErrorLevel 40.
Configuration File: /C:[filename]
Some programs like ZipLab shell out to GIFtest in order to test GIF
files...however, they may not allow you to include the defaults you
want to test the GIF with. To deal with this dilemma, GIFtest searches
the current directory, the directory GIFtest is located in, and the DOS
PATH in that order for a configuration file (default name is GIFTEST.CFG
if not specified on the command line).
The top line of the configuration file is the DOS command line
you want to use for GIFtest. Each line after that is the
name and location for the description file for the BBS you run
for each node.
/E/L ;Erase bad GIFs, Keep a log file
C:\PRO\NODE1\$DOOR.NAM ;location of description file for node 1
C:\PRO\NODE2\$DOOR.NAM ;location of description file for node 2
To get the current node number, GIFtest either expects it on the command
line [see /N], or expects to find the environment variable "PCBNODE=n"
where "n" is the node number.
Any options found in the configuration file take precedence over command
line parameters. If you have /B:0 on the command line, but GIFtest finds
/B:1 in the configuration file, then GIFtest will use the /B:1 option.
Erasing bad GIFs: /E
While GIFtest does exit with an Errorlevel to indicate the failure of a
GIF to pass all tests, some users don't with to catch these errors in a
BATch file to see if the file needs to be deleted.
The /E option will erase any GIF not passing all of the tests.
If GIFtest is unable to erase the GIF, it will exit with errorlevel set
to 255 (programmer goof).