packages icon
This README file serves as a history of changes.  You will want to read
everything I've added to the file since the last release you got.  The in-
formation at the beginning of this file is more up-to-date than the info
at the end, so if you see a contradiction, trust the first thing you read.

July 10, 1991 (V1.1 final release)

The only changes in this release are that I conditionalized out some code on
VMS as mentioned below, fixed the VMS link command, and changed some variables
from int to unsigned.  If you're not running on VMS, you probably won't
need to update from sanity kit 2 if that's what you're running.

June 12, 1991 (V1.1 sanity kit 2)

I fixed a bunch of problems that got missed in the previous sanity kit,
and added ppmtopic.c.  It is modified from ppmtopict.c, and you will need
PBMPLUS to build it.  Don't ask me any questions about it.  The usage is
fairly well documented in the leading comment, and it builds like any other
ppm utility in the PBMPLUS library.  I also reworked the colormap code,
so maybe HP/Apollo users will have better luck this time.  I can only
hope, since I have no way to test it here.

This kit really should be the same as the final release unless I've yet
again missed some major bugs.

I have been told that some of the fade effects will kill DECwindows under
some versions of VMS.  I don't have a complete list, though, so I haven't
implemented a work-around.  The ones that do it seem to be the ones which
use a complex clipping mask.  Since transparent mode doesn't kill the ser-
ver, though, I'm not sure of the precise cause.  I conditionalized out the
FINGER fades (fades 17 & 18) on VMS, since they seem to be the only culprits.

April 22, 1991 (t1.1-2)

I hope that this will be the final field test release of xviewgl V1.1.
I have fixed several bugs, added support for .PCX files, fixed the default
font, and added a speeded-up (but nowhere near as pretty) version of
the sparkle fade as a customization option.  That last item was inspired
by Patrick Naughton's xgrasp.

April 5, 1991 (t1.1-1)

This field test inludes:  Support for EGA mode, fixed support of POSITION,
"special effects" (fades), improved timing code, support of SPREAD, the
ability to pause by pressing the space bar, and support for a variety of
new commands...

March 11, 1991 (v1.0)

This is the first full test release of xviewgl, a full interpreter for GRASP
animation files.  Just type "make" and you will be asked a few questions.
Answer them or accept the defaults, and you should get an executable called
"xviewgl".  On some systems, the first attempt to make may fail.  If so, do a
"make noansi" followed by "make".  These instructions supercede any other
instructions later in this file.  Note that on systems with older compilers,
(e.g. many Sun systems), you will get a lot of incompatible pointer type
warnings.  These may safely be ignored.

During field test, the program was called "xgl".  The name was changed to
avoid confusion with a Sun product of the same name.

You may notice an Imakefile.  It is included for those who want it.  You will
need to run "customize" when you first install the program if you choose
to use the Imakefile, since customize sets up a number of conditional
compilation sections.  the default "make" automatically runs customize.
Note also that the imakefile doesn't provide for some of the special targets,
including "noansi"...  Since you only need to make noansi once, and "customize"
does a "make noansi", though, that should not be a problem.

There are a number of commands which have not been implemented.  If a GL
file fails with an "unrecognized video mode", or "unrecognized command",
or says it is ignoring a command, then you have run across something that
is not implemented.  There are three ways to get it implemented:

1.  Figure it out, imnplement it yourself, and send me the code so I can
    include it in the next release.
2.  Figure out what the command does and send me a description.
3.  Send me an original of the documentation for the command or format.  (A
    copy is acceptable only if the copyright permits duplication.)
4.  Send money to the "Let's Get Brad Daniels Better Documentation" fund,
    so I can figure out all the commands and get them implemented. Proceeds
    will be used to buy a copy of GRASP. :-)

Send me e-mail for my Snail Mail address for the last two options.

- Brad Daniels (

Changes in V1.0:

Added "ifvideo", "ifmem", and "edge".  I'm unsure if "edge" is correct.  Let
me know if you see a problem.

Fixed some memory allocation bugs, and parsing of negative numbers.  Also
allow for commands on same line as a label.

Changes with FT5

More portability enhancements.  Improved behavior of customize on Sys V

Added "position" command.

Added "tile" command.

Improved performance of "cycle" command.

Added (untested) monochrome support.

Changes with FT4

Added a "customize" script.  Just say "customize", and it should take care
of selecting the appropriate -D options for your system.

Added GIF support.

Numerous bug fixes and portability enhancements.

Now handles proportional fonts correctly (down to the pixel identical w/
the PC.)

Added "cycle" command to cycle through colors.  This may still be buggy.

I think I have transparent mode working.  Let me know if it doesn't look

Still doesn't handle default colors correctly in all cases.

Changes with FT2:

This release is really what the first release should have been.  It
fixes a number of stupid mistakes, and adds the de-ansify program to
change ANSI style function prototypes and declarations to old style.

In order to "de-ansify" your code, make the "noansi"object.

Notes for FT1:

I have not had a chance to test portability, so I will want feedback on how
it works.  If there is heavy response, I may not get back to everyone, but I
will endeavor to maintain a mailing list to send out info on updates.
The code uses some ANSI features which may not be portable to some
compilers.  Most notably, it makes extensive use of function prototypes
and void pointers.  The void pointer concern can be fixed by adding
"#define void int" to my_types.h.  Prototypes are a bit more difficult,
but I am working on a short hack program called "unprotoize" which will
convert prototype-style declarations to old style.  If you need it, send
me mail and I will get it to you.  If you know of an existing program
to do the same thing, let me know and save me some hassle.  The next
release will include whatever utility I settle on.  I have made some
minor efforts to provide VMS portability, but I suspect it will still
have problems.  Most notably, I need to write a specialized "read"
routine which will span record boundaries.  Also, name parsing is
oriented toward Unix-style names, but since VAX C supports such names,
that should not be a problem.

You may notice that there are no copyright notices in the code.  I make
no claims on the code, and to the best of my knowledge, neither does anyone
else.  It is all public domain to the best of my knowledge, but I request
that my name and the others mentioned here be left in the code and supporting
documentation.  I am indebted to Phillip Gladstone who, wrote a monochrome
program called xgrasp and let me see his work, and also to George Phillips
who did some early work hacking out the formats of the files.  Also, I would
like to publicly thank Jonathan Ma for his help in my early testing.

You will also find pictoppm.c and glcomp.c in this kit.  Pictoppm converts
.pic files to PPM format, and glcomp will assemble/disassemble .GL libraries.
I didn't write either of them, but include them for convenience.
*** Note:  GLCOMP is called GLUNPACK, because that's what I usually use it
***	   for...

- Brad Daniels (