This file is part of the sswf library.

This file includes the changes I think of
writing down. Some bugs fixes may not appear if
(1) they are not that relevent or (2) I work too
fast and don't have the time to write down the
changes here. It will get fix anyway!


 o Feb 08, 2009 (1.8.4)

Added support for internal ASC files. Now the compiler can be
used with the libsswf_asc library that includes all the scripts
defined under include/sswf/scripts. This way, you do not have to
provide these text files to your users.

In order to compile the sswf tool to use this new feature, use
the --enable-internal-scripts flag on the configure script. By
default, all the pre-compiled sswf files that I offer will not
have that flag turned on.

Fixed a bug in the complex package. One of the operation was
wrong.


 o Jan 03, 2008 (1.8.3)

Fixed the compiler so enumeration names are taken as types.

Fixed the xml.asc so it compiles. Also updated the XMLNode to the
full Flash 8 definition.

Fixed the assembler that would not properly set the value in
an array. There were two swaps missing.
(i.e. "a[expr] = b;" now works)

Fixed the src/misc/Makefile.am so the libsswf_c is linked with
../lib (where the libsswf is found.) Somehow, it works fine
under Linux but not exaclty well in cross-compiling with mingw32

Fixed small mistakes in different documentations.




 o Jul 11, 2007 (1.8.2)

Fixed a really bad bug with the TEXT node in sswf. This one would
not save the string properly unless it was the very first but it
cannot since you need to specify the text setup. So... you could
not really use it anymore!

Added some static_cast<> to make double's int's before changing them
to enumerations to please g++ 3.3.5. (Problem reported by Robert)

Added support for the CSM Text Settings tag in SSWF.
Updated the corresponding documentation.

Fixed a bug in the button because if no actions are defined we would
not save the ActionEnd.

Fixed the saving of the TagShape when saving a morph shape. The
shape4 flag was not properly initialized.

Fixed several things in HTML documents (particularly, switched from
using IDs to CLASSes for much better correctness.) Fixed a few
gramatical errors.

Included a new sample: the clock by bi.

Moved the SSWF website to Made to Order Software Corporate website.

Fixed a bug with 64bit CPU running in big endian. The PUSH DATA
and IMAGE FORMAT were using an enum (32 bits) that was saved as
a long (64 bit) by the node code. This would make the enum value
look like zero instead of the correct value in the save code.

Fixed a bug with 64bit CPU running in big endian. The PUSH DATA
library implementation would save double's swapped as if always
in little endian. Now the endianness is taken in account.

Added support to assemble fscommand() as a geturl(). And made
the geturl() an internal function (though, it sounds like this
may not be a good idea.)

Updated the library VC project so it includes all the new files.
(Reported by Lise)

Got an SSWF RPM package for the Z-Series computers (for an s390x
processor, a big endian 64bit CPU!) The computer was running
Suse 10 SLES.




 o May 14, 2007 (1.8.1)

Added the TagProductInfo in the library and the sswf tool which
now saves its version information (this forces a version 3 movie...)

Added the TagBinaryData in the library. Not tested!

Added support in the swf_dump tool for the TagProductInfo.

Added the TagDefineShape4 and Enhanced Line style (LINE2) with the
Focal Gradient in sswf & swf_dump.

Added support for the DefineFont3 tag.

Added support for the AlignFontZones tag.

Added support for the CSMTextSettings tag.

Added much more documentation.

Added much more and better error handling in the library.

Added the Scene Frame Data tag.

Fixed cpp-to-c++ to support [u]int64_t which is required for V8+.

Fixed some of the import features so it does not crash for sound.
I still have to work on the font...

Fixed the export feature in regard to fonts so it exports the
entire font (by default) or the specified glyphs.



 o Oct 12, 2006 (1.8.0)

Fixed the different tags which require a long tag definition
(i.e. Lossless, JPEG and StreamBlock.) Small images & sound
blocks would otherwise not work (go figure!)

Fixed the documentation about the DefineScalingGrid since
there are many restrictions. I successfully tested with a
button. You can find the example in samples/grid-button/*.

Fixed the C library version so it has its own and does not
share the version from the C++ library. The C library will
be very much more stable than the C++ library. A change in
the C++ library will require a recompiling of the C library,
but the C library interface will certainly not change as
much (thought both changed in this version already!)

Fixed the C sample so it actually uses gcc and not g++.
This shown a bug with the amakefile which linked using
$(LD) instead of $(CXX)... and gcc does not like it.

Fixed all the sample HTML files so there is no align="left"
or align="center" parameter for the flash animation. That
causes problems on some browsers (notably, Mozilla under
Debian with Flash player 7, Firefox has been reported to
have that problem too.) I had fixed the website but it
looks like the samples had not been fixed yet.

Fixed the cpp-to-c tool to avoid emitting the many useless
casts it generated before. This makes the code much easier
to compile on newer versions of g++ (especially version 4.1)

Fixed the State class so it includes a set of well defined
flags and not just an unsigned char and good luck!

Fixed the loading of 32 bits targas according to what the
Gimp saves. That is the format is expected to be BGRA and
not ABGR (I'm not totally sure this is correct; if you have
an image which doesn't work anymore, let me know! it could
be that the flag 3 of the header indicates where the alpha
is found...)

Fixed the extraction of lossless images saved in XRGB. The
extraction to targa images works properly now (i.e. takes
the X component in account.) Also, the extraction of ARGB
was fixed too. It saves the components at the right place.

Fixed the extraction of lossless images with a colormap
and no alpha channel in swf_dump. The width was improperly
handled.

Fixed the TagProtect. Not like anyone was using it much,
but it seemed normal to fix it anyway... Two important bugs:
(1) it would let you save the protect tag of your choice, now
it uses the one you are supposed to use depending on the
version you're using and (2) I really save the password
supposed to be saved and not the wrong string (I suppose
the old version could have crashed.)

Fixed the TagBaseID::NoIdentification(). Now the f_id variable
member is set to SSWF_ID_NONE so it is not possible to find
that tag instead of another! Also, the SaveID() will fail
whenever the identification was released.

Added the TagScalingGrid object to save scaling grids in
version 8 movies. You cannot directly access this tag. Instead
you must create a TagButton or TagSprite and define the grid
on these objects. SSWF does the rest for you.

Added a fix to the FSCommand2 in the doc/html/SWFalexref.html
as described by Ammar Mardawi. He tested and could describe
how to use that action.

Ameliorated the Implements action documentation to include
an example of what you need to do to make it work. You can
always look inside the src/libasas/assembler.c++ for more
info about the other object actions.

Added the generation of manual pages (man3) for the SSWF
library. Many things are not so good, but it's a start.

More fixes to the Fink info file to try to enter fink.

Added the C samples to the amakefile sample test.

Fixed the dotar so the fink info file has a version.

Fixed the ActionTry by adding the GetMaxRegister() function.
It needed to check all the sub-actions for the largest
register number.

Fixed a bug in the ft2sswf tool where a string named mbs
could be used before being defined.

"Fixed" the code so it compiles at once with Visual Studio
version 8 (Express Version).

Added the projects and solution working with VC8. These
are under VC\sswf\* -- older versions of VC may not work
as is with this code. At this time, you can download VC8
for free, including the IDE, from here:

http://msdn.microsoft.com/vstudio/express/visualc/default.aspx

You still need to have MinGW for the JPEG, PNG, Z and IConv
libraries.

Changed a variable called mbs in ft2sswf.c to allocate the
buffer instead of using a buffer on the stack with MS-Windows.
The problem is that the size is defined in a variable in
Windows (instead of a simple #define number.) The Unix version
is unchanged.

Moved the blend_mode_t from the TagPlace to a separate class
named BlendMode so it can be reused by the State as well as
the TagPlace classes. There is a new file (libsswf_blendmode.c++)

Added support for a blend mode in a State.

Fixed a bug in the TagEnd which would increase the number of
frames by one even when that tag was preceeded by a TagShowFrame.
In this special case, the TagEnd does not count as an extra
frame!

Added the ErrorManager to generate errors from anywhere in
the library. Added error support to the different save functions.
Expect only a few changes to your code if you were using these
in your code. Mainly one class to catch the errors and check the
result of the Save() function against the different errors to
know what to do next.

Tweaked the configuration and libraries in an attempt to get DLLs
under MS-Windows (for the SSWF, ActionScript and Assembler libs.)

Fixed dotar so it does not delete the entire package directories
when building a new set of packages. This means it keeps the
repository directory (i.e. .svn in my case.)

Fixed 4 Makefile.am so the $(top_dir)/include does not end with
a slash. That was making the make fail under MSYS.

Added the missing .pc files for the libraries.

Changed the dotar to take additional changes in account. The
source package is now created after the destination receives
all the additions I want in that package (i.e. grammar C source
and header, authors, change log, etc.)

Removed the linking with gcc 3.4 from dotar. The Debian and
Slackware packages now include the gcc 4.1 binaries.

Enhanced the swap() function so it swaps using 64 bits values
on 64 bits processors. Also, fixed the different casts.
64 bits enhancements by Fabio A. Correa <facorread at gmail>

Fixed several static const variable members names from f_...
to g_... (important for my editor with colors.)

Fixed the TagButton so the set of condition flags which are
valid for a button are being checked. If flags for a TagPlace
are specified, the PreSave() function generates an error.

Fixed the AddEvent() functions of the TagButton and TagPlace to
check that none of the flags of the other is set. Thus you get
an error at that time and the offensive events are not added to
the object. (That is, you can modify the event after adding it
so this is not a 100% safe test!)

Fixed ColorTransform::IsSolidCompatible() so it first transforms
the color to an 8.8 fixed point value. Also, fixed the
ColorTransform::IsNull() function so it transform to an 8.8 fixed
point instead of a 16.16 fixed point value. That may help a very
little in optimizing some movies.

Fixed the Matrix::IsNull() and comparison operators to test the
matrix using 16.16 fixed points instead of testing the doubles
directly. This means many more matrices will appear as being
null, equal or inequal and thus more optimizations will happen.

Added a doxygen documentation of the library.







 o May 29, 2006 (1.7.5)

The license was transfered from Made to Order Software, Ltd
to Made to Order Software Corp.

Straighten the version controls from the SSWF main sequence.
Before you had a maximum_version variable you could use to
force a very specific version. Now you can define a range
within which you want your movie to be saved with the
minimum_version and maximum_version variables. And you can
also use the version variable to force a specific version
(what the maximum_version was doing before!)

Fixed the file names in many of the libsswf_tag_<name>.c++
files.

Added the tool src/misc/cpp-to-c.c++ used to generate a
C library to access the SSWF library directly from C.
This generates the include/sswf/libsswf-c.h header and
the lib/libsswf_c* libraries (one static and one shared.)
I'm glad I didn't type that by hand. It's a total of 3975
lines at time of writing and some lines are really long!
(175650 bytes in size.) It will certainly change by the
time I publish since I need to make everything compile
on all systems now! (It processes 54 classes, 436 functions,
4 structures, 18 enumerations)

I copied the simple news sample (samples/news-samples/simple*)
to a C directory (smaples/c-samples) and made it compile with
the new C library. This shown me that 5 functions declared
in the libsswf.h file were not implemented (and actually totally
unused and not necessary!) So I removed those and for C
programmers you have a working sample!

I added an option on the configure command line to enable
the building of the cpp-to-c tool (i.e. --enable-cpp-to-c)
By default this is off since the tarball comes with
pre-generated files which should be sufficient.

I made the notes-to-html (and cpp-to-c as I was at it)
non-installed tools since these are really only for the
package and not for general install.

Added the samples and misc directories to share/sswf
under MinGW (binary package).

Added proper support for the libraries to have a
system version. We'll be at 1:0:0 for version 1.7.5.

I moved a few more files around in the fink package.
You shouldn't have to worry about that on your end.
What has dramatically changed is the versioned name
of the dynamic library. Yet, if you just link with
"-lsswf" it will be totally transparent to you.

Fixed the .dmg file for Mac users by:

1. moved the documentation in

   /usr/share/doc/sswf-<version>/...

2. added the version/release to the libraries
(test with: otool -L <lib>)

3. added links for the libraries (that will be used
by other packages too!) so you can have different
versions installed

Updated the SWFalexref.html reference to include
version 8 and fix many things which had not been
reviewed in a while.

Updated the TagHeader to automatically save the
required TagFileAttributes (i.e. whenever you
save a movie version 8 or more that is.) Note that
you cannot directly create such a tag, the TagHeader
creates it automatically if you save a version 8 or
better movie.

Updated the TagHeader to catch unicity errors for
the JPEGTables and Metadata tags.

Fixed the TagImport so it properly saves a TagImport2
in a movie version 8. This is important according to
Macromedia. You cannot choose which tag to save. If
your movie version is 7 or less, TagImport is used.
When the version is 8 or more, TagImport2 is used.

Added support in sswf to turn ON or OFF the use of
the network in locally played movies. This is done
either on the command line (-n, --use-network or
--no-network) or in the main sequence
(use_network = true | false).

Since the addition of that use_network flag, I added
that flag in all the samples which all want to have
the flag set to true (none of my samples currently
include a version 8 movie and thus you'd otherwise get
a warning when compiling them.)



 o Nov 3, 2005 (1.7.4)

Added the __FILE__ and __LINE__ special keywords.
These are transformed in the Lexer and thus are
directly viewed as a String and an Integer for
the rest of the compiler and assembler functions.

Fixed the CheckFunctionWithParams() function which
would force you to have a parameter for the rest
(...) of a function.

Fixed the documentation saying "pragma ..." in
"use pragma ..." instead.

Added the fink .info file to the list of packages
so people can directly download it from SourceForge
and thus they won't have to try to find it in fink
(which can be a problem until the fink people put
it up).

Also, fixed the .info very much so it includes all
the necessary documentations in all packages, created
a -bin package, added the missing javascript libraries
in the -shlib, moved the actual HTML and image files
of the documentation in the right package.

Added the missing EVENT_CONSTRUCT in the PlaceObject2
event (V7 flag). Adjusted the code to test for that flag
and mark the event as a V7 flag.

Fixed an error in the error handling which wouldn't
increase the error counter.

Removed the "auto-import" feature for packages defined
in the same program as some other code.

Added a compile of the javascript packages which are
imported.

Fixed a Set() of the type of a function parameter so
it doesn't happen twice (and in debug make sure the
type doesn't change between calls.)

Fixed the global .asc files so operators don't reference
the same parameter name twice.

Updated the SEQUENCE and Grammar in the ScriptSWF.html
documentation.

Added the FSCOMMAND2 action in SSWF. (no action script
yet). It is described as a Flash Lite 1.1 action so
it certainly won't work with version 7, but it should
be included in version 8 of Flash. If you know anything
about the parameters, let me know. Thank you.

Fixed a bug in the PreSave() function of the PlaceObject
which would use the wrong version as the minimum (it
often would be equal to the largest version already).

Added some support for the PLACEOBJECT3 tag. It supports
blending mode and bitmap caching flag. Still missing are
filters and parenting.

Added extern "C" {} around the #include grammar.h which
is supposed to be C only and not C++. cl didn't like it.

Added the missing action script StrictMode in the library.

Added some code to better support the Javascript compiler
under Windows (i.e. it will use the path of the tool in
order to compute the path to the different header files)

Fixed the errors under Win32 since whether we compile
with VC or MinGW, the snprintf() functions do not work
like under Linux! (is this BSD behavior or just Win32?)

Fixed the NSIS installer so:

  . the source code and samples go at the right place;
  . the new tools are included (jpg2swf, asc);
  . the installation includes the version and thus you
    will be able to install multiple versions (1.7.4+)
    and uninstall the one you want;
  . install in a sub-directory named after the version
    so the installation directory between multiple
    versions doesn't affect the result.

Fixed the RPM so the HTML documentation goes in
/usr/share/doc/sswf-<version>/html instead of
/usr/share/sswf/doc/html (release 3)

The Linux On Power system I use to compile SSWF has
changed to 64 bits. I made small tweaks to the environment
to be able to compile. Namely, I added an LDFLAGS
environment variable as follow:

	export LDFLAGS=-L/usr/lib64

otherwise it couldn't link with the stdc++ and JPEG
libraries (libtool would generate the wrong command line.)

I also added a flag to the configure --enable-rpm-docs
to avoid installing the documentations in share/sswf/html
but instead I put them in share/doc/sswf-<VERSION>/html
and that's done with the %doc rather than the Makefile.

Fixed the RPM by adding the misc directory to the RPM and
the missing 'script/*/*.asc' files.

Fixed the IRIX tardist which did not include the scripts.
Also, I added the missing .so libraries.





 o May 11, 2005 (1.7.3)

Updated the NOTES.txt to reflect the new tools,
new distributions, etc.

Added the action script library (libas) and the
asc tool to test the parser, compiler and
optimizer. And of course, documented the whole lot.

Added a library which takes a tree parsed & compiled
with the libas library and transform it to a list of
actions as understood by the sswf library.

Made the actionscript keyword in sswf work. Note that
at this time, it can't be used along action objects.
(i.e. you either write your script with action objects
or an action script). For instance, you can do this:

	Do Action {
		Action Script "MyTest" {
			var a = "Hello World!";
			my_sprite.text = a;
		};
	};

Added a tool to create slideshows from JPEGs and
Targa images with a simple command line. You can
specify the background color, the rate of animation
whether to play just once or loop forever and a
few other things. This is mainly presented as a
sample on how to use the library from your C++
application. Includes a manual page.

Fixed several entries in the documentation about
Flash version 7 (Especially the DeclareFunction2
action).

Fixed the configuration files so the project
can really be created in a seperate directory
from where you extracted the tarballs.

Fixed the test of the identifier so we are sure
they only include uppercase letters or
underscores.

Fixed the TagEditText which wouldn't properly
transform your UTF-8 input string in Unicode.
This meant it would try to use your UTF-8
string as an ISO-8859-1. This fixes the use of
accentuated letters in the default (initial)
value in the TagEditText entry.

Updated the amakefile to support the two new libraries.
Note that for Mac OS/X, the dynamic versions are bound
to version 10.3+. The static libraries can be used with
version 10.1.

Similarly, the 'usedstring' and 'usedglyphs' entries
as defined in the 'edit text' construct in the SSWF
language can include Unicode characters.

Fixed a signed char bug in the ft2sswf tool. This
would transform characters 0x80 to 0xFF in a signed
value between 0xFF80 and 0xFFFF.

Fixed the dosamakefile.cl so I can really use it to
test whether the code compiles with cl (the Microsoft
C/C++ compiler). It will NOT build executables, only
object files. It is up to you to make the link work.
All I offer is a seemingly working compile.

As I was at it, I fixed a few problems with some code
in sswf which wasn't compatible with cl.

Fixed the \<value> in the ft2sswf tool which would
improperly accept the digits 8 and 9.

Fixed the <EMBED> tags: removed the ALIGN="LEFT"
attribute which causes problems in the FireFox
browser.

(Finally) Added links to the sourceforge.net download
area along the FTP links in the list of source and
binary files on the website.

Updated the configure script and different Makefile.am
to include the new ActionScript library and compiler.

Fixed the swf_dump tool so if there is garbage after
the END action, it is presented and it continues on
properly.

Fixed some error messages in the compiler.

Fixed the AddRegister() function of the PushData action
so we can add registers of any number (0 to 255) as
supported in version 7.

Fixed the swf_dump tool so it doesn't say that a
register number is invalid if larger than 4 and we
are within a function 2 body.

Added support for direct frame numbers in the ActionGoto
using the ACTION_GOTO_FRAME type. Use SetFrameName() with
a string of digits only (0-9) representing the frame number
you want to jump back to (anything else will make it fail
to find a frame number and it will be taken as a tag name
instead, as it was before.)

Fixed SUBTRACT in the swf_dump tool (was SUBSTRACT.)

Fixed the swf_dump tool so it can dump DefineButton2 tags
which have absolutly no conditions. Updated the documentation
in link with that special case.

Fixed the swf_dump tool so actions starting at an offset
other than zero in a tag reflect that specific offset.

Added support to keep around the dicrectory strings so
later references to the directory can be accompagnied by
the actual string being referenced. This helps a lot in
a dump session.

Added a statistics so I know how long the dotar script
takes to regenerate the packages. It takes quite some
time! (8 minutes for all the Linux modules)

Fixed a bug saving a second END actions at the end
if the user already put his own END action.

Fixed the wctomb() function in the sswf library. It
would take one too many bytes from the input for
characters using 3 or more bytes.

Removed the samples/trail directory since it only
contained a copy of the samples/new-anim code. The
day I actually program this movie, I will put it
back in the tree.

And all these other things I forgot to write down...




 o Jan 12, 2005 (1.7.2)

Fixed an endian bug which prevented our Mac OS/X
users from including wave files in their Flash
animations.

Added a few command lines in the dotar script to
create a Slackware package. Note that the very first
version was created by: William McCormick
(http://www.pimpinlinux.com), if you have any problem
with that package, please, contact him directly.
See the INSTALL-SLACKWARE.txt file for more info.

Removed the build dependency to flex in the Mac OS/X
info file. We are not using flex anymore.

Fixed the sprite so it can now include a sound info
(in sswf, the library was already working fine.) Thus
you can now start a sound effect from a sprite.

Added some support to load and incorporate an MP3 file
in your Flash animations. Note that the input MP3 file
needs to be valid for a Flash animation. This means you
need the correct mode and bitrate. MPEG 1.0 and 2.0
Layer 3 are supported. Mono or stereo with or without
CRC checks. Special thanks to Steve Crook who once
again help in this project.

Fixed several bugs with the loading of a Wave file.
Especially, the input file wasn't being closed if the
loading was successful.

Fixed several problems with 64bits systens. The use
of long can be a problem in some cases. Special thanks
to Adam Polkosnik for finding these problems and fixing
them.

Fixed the Makefile.am in src/lib and src/sswf so you
can run the configure script in a different directory
than the directory were you extracted the software.
This is useful so you can try multiple configuration
flags in different directories (but watch out in case
you want to install them all... you will need varying
prefixes)

Added a line of code to prevent creating a text without
a color. This seems to be a problem in some circonstances.

Added command line options to show where input files are
being searched. So one can now use --show-input-filenames
to know what files are loaded as input and --show-input-search
to see the different directories where the files are being
searched. You can still use the -I option to add search
paths to sswf. Updated the sswf manual pages accordingly.

Made some small changes to the dotar script so it is more
usable (At least for me 8-). The options can now be specified
in any order. The use of the words "packages" and "modules"
has been straighten out.

Split the huge libsswf_tags.c++ in a set of files such as
libsswf_tag_base.c++. This doesn't make much difference in
the library, just in the development, it will be a bit easier
to find things. Also, once I program the Load() function, it
will grow separate files instead of growing the libsswf_tags.c++
file alone.

Fixed the 'run' scripts for Unices so they (should) run from
where they are being installed. At first they were created to
run from withing the development environment using amake. Now,
these should work on your system (RedHat, Debian, Slackware...)
If you find out that it doesn't search in the right order or
missed a directory from your system, please, let me know!

Created a package for Linux on Power ppc64.

Fixed a bug in the font for big endian machines. This would
generate fonts which would crash the Macromedia player.




 o Oct 05, 2004 (1.7.1)

Fixed the Win32 link so it links with the static version
of iconv as intended.

Added a Win32 installer (a .exe file to run on your
Windows box to install SSWF on your computer)

Fixed the dotar so it can regenerate the Mac OS/X version
properly (note also that you can't have SSWF already
installed to re-gereneate the Mac OS/X modules).


 o Oct 05, 2004 (1.7.0)

Finally merged my work (since 2002!) so SSWF is fully
Unicode compliant. Internally, the strings are managed
as UTF-8. However, you now have the possibility to save
a movie prior version 6 in any specified encoding and
also the input files (the .sswf scripts) can be in
pretty much any text format.

Fixed the makefiles for the news-samples and the showfont
so they run the commands using ./ in front of them instead
of being as is.

I enhanced the INSTALL*.txt documentation files.

I fixed the rename_all script so it actually works (yeah...
well... you know...) It uses \ instead of / and doesn't
repeat the path in the 2nd part (it is a rename, not a
move). And the result actually works. Note that I tried to
compile the library with cl and it works also.

The search for scripts is slightly different in that only
ENOENT are accepted as an error to open a script. If any
other error occurs, the search stops and an error is
reported (thus files on an NFS network or read protected
generate an error instead of being ignored).

Changed the lexical to a C++ file (instead of flex) in order
to handle any source format (UTF-8, UCS-2, UCS-4, etc.)
Note that now an encoding must be specified in each .sswf
file as in:

	// encoding="utf-8"

or

	// encoding="iso_8859-9"

Internally, all the characters are kept in UTF-8 until
used by a font or some other such object and need to be
converted to UCS-4.

Changed the library to support UTF-8 when a V6.x movie is
created.

Added an output encoding (defaults to ISO_8859-1) which is
used to convert strings when saving movies in V5.x or
earlier. Note that if a string convertion fails, an error
is reported.

Enhanced the font support to include UCS-4 as the type for
glyphs. The 16 higher bits are ignored when the final
Flash movie is generated. At this time you should only us
the first 65535 characters (0 is not allowed). Note that
the use of 32 bits for characters ensures that the final
file(s) can use any character as long as the player doesn't
try to use an external font.

I updated the README.txt file according to the many changes
which occured in SSWF.

Fixed the font character names which can now be normally
specified with a single backslash as in "\x1ee" instead
of the "\\x1ee". The old syntax is still supported.

Fixed the font kerning information so two characters will
properly be used (we use UCS-4 chars now).

The TagFont accepts font names which starts with an
underscore (_) as a direct font name and thus requests
the final movie to be saved as a V6.x movie. Names
such as _sans and _serif are direct names. You have
several Western and Japanese names at this time.

Fixed some error messages so these handle UCS-4
characters on any system (at this time, we write ASCII
or only the U+XXXX form).

Added support for "\U+XXXX" in input strings. Note
that to be conform it should only accept uppercase
characters yet we do accept any case.

Fixed the "\0???" which would add the character instead
of the digit (forgot a <<... - '0'>>).

For those who already downloaded a V1.7.0, this newer
version includes a fix to the lexical. Commands such
as: DO ACTION had to be written with a space with
the first version. With this fix, like with the lex
version, it can be written DOACTION as well. Note that
there is one thing still unsupported: a keyword composed
of more than 2 words need to either be written without
any spaces or with all the necessary spaces. This means
the following is acceptable: SET BACKGROUND COLOR
and SETBACKGROUNDCOLOR; but the following won't work
SETBACKGROUND COLOR and SET BACKGROUNDCOLOR.

Made some fixes to the configure script (the JPEG
library variable was improperly named when initialized.)
Also added the required library iconv with the different
"flavors" (i.e. whether it is iconv_open, libiconv_open
and in -liconv or -lc).

Fixed the Makefile.am in the src/lib directory which
referenced the package version as is instead of as
the macro: $(PACKAGE_VERSION).

Added a Makefile.am in the doc directory so the HTML and
Manual pages are automatically installed. Added a
reference to the samples in the main Makefile.am so they
too are automatically installed.

Added the default include path to support Mac OS/X and
the configure script under Linux too. Now the SSWF scripts
will (by default) reside in /usr/local/share/sswf/script
(NOTE: this is only if you use the configure script,
the amakefile still installs in /usr/include/sswf/script)
For Mac OS/X, it's in /sw/local/share/sswf/script.

Renamed to darwin any reference to macosx and to ppc as
powerpc. This is better since the Mac OS/X system is
really called darwin and not macosx.

Patched the libsswf.h to avoid declaring wint_t
under Mac OS/X. I need to do something in the configure
script instead...

Made AMake work under Mac OS/X so as to allow a version
not using fink (statically link SSWF).

Added the auto-generation of a package on Mac OS/X
within the dotar script.

Added a distribution for IRIX (a .tardist file). This
includes everything you need to run the software on a
Silicon Graphics (binaries, man pages, documention
and the source tarball).

Added a doc/INSTALL-IRIX.txt file to explain quickly
how to install the new tardist file for IRIX.

Heavy changes to the dotar script to include all the
changes, new packages, additional automation... The
script is longer and has a command line now to avoid
re-doing everything everytime (especially useful when
debugging that script!).

The MinGW modules automated generation (using the dotar
script) now requires the pscp tool from putty:

  http://www.chiark.greenend.org.uk/~sgtatham/putty/

and of course you need to properly setup your keys.

Added the generation of the RPM binary package back in
the dotar script. Note that since I was at it, I create
a source RPM too. However, this doesn't include
everything you can find in the -dev package. The binary
package also includes all the documentation, samples and
scripts. Since it is automatically created, I include
the debuginfo package.

Added a file doc/INSTALL-RPM.txt to explain quickly how
to install an RPM package.

Added a version & last modification date in the
manual pages (sswf.1, swf_dump.1, ft2sswf.1).
For this reason, it moved from doc/man/man1/* to
dev/man/*. However, the dotar script will make a
copy in doc/man/man1/* as appropriate with the
current version of the package and the last
modification date of the source file.

Added HTML links in the HTML manual pages.

Fixed the showfont sample so the Blue Highway can be
diplayed and also the size of the fotinos is used
as is (instead of 40 times to small.)

Fixed a bug in the TagImport constructor found by
Tom M. (the filename pointer wasn't initialized.)

Fixed the sound effect resampling function (it however
still isn't perfect at this time.) Fixed the signed
and unsigned flag (i.e. WAVE files have unsigned
bytes but signed shorts!) Fixed the documentation
since we need to always save signed values in SWF
files (opposed to what I wrote in the doc.!).

Removed references to flex from the amakefile and
the Makefile.am accordingly. The dosamakefile
also doesn't use flex anymore and doesn't try to
pack the sswf_lexical.c file either.

Added the 'gray' colors (instead of just having 'grey')
to the colors.sswf script coming with SSWF.

Added the simple actions "THROW", "CAST OBJECT",
"IMPLEMENTS" and "EXTENDS".

Added the ScriptLimits and SetTabIndex tags.

Added the TAB_INDEX label for the PLACE OBJECT tag
so one can setup the tab index at the same time an
object is inserted (instead of two steps). That's
in SSWF only, not in the library and two tags will
be generated anyway.

Added the complex actions "TRY", "CATCH" and
"FINALLY". Also implemented the new "FUNCTION2".
In SSWF scripts, the FUNCTION accepts parameters with
a new syntax to tell what to ignore, pre-define and
whether to use registers or not.

Added documentation about all of the new tags and
actions (TagScriptLimits, TagSetTabIndex, THROW,
CAST OBJECT, IMPLEMENTS, EXTENDS, TRY, CATCH,
FINALLY and FUNCTION2).

Added support for the automatic maximum_version
check within the SSWF compiler. The main sequence
can include a variable named "maximum[_]version"
which you set to the maximum version the output
movie should be. If some tag(s) force the movie to
be of a higher version, then the creation of the
movie fails.

Added support for the minimum and maximum operators
as in g++ (<? and >? respectively).

Updated the sswf.vim file so all the new tags and
variables are recognized properly.

Fixed and enhanced different documents.

Fixed a memory leak in the ActionFunction::AddParameter()
which wouldn't record the parameters in the memory
manager.

Fixed a memory leak in the ActionDictionary::AddString()
function which wouldn't record the string_t in the
memory manager.

Fixed the ActionGoto::Duplicate() which wouldn't copy
the play flag.

Fixed the [dos]amakefile so the lexical and grammar are recompiled
whenever the header files they include change.



 o Oct 15, 2004 (1.6.3)

Ooops... This didn't make it in the package, but that's
on the website and part of the release notes.

The version 1.6.3 got the different fixes made to 1.7.0
in order to support many more sound effects. That means
if your sound effect is in 8 or 16 bits and in 8Khz or
some other sampling speed, SSWF will properly resample
without asserting.


 o Jul 16, 2004 (1.6.2)

Added a tutorial written by Ray Gardener. You can view
the tutorial at the time the SSWF package was created
in the doc/html/tutorial directory. You can also see
it online either on the SSWF website or at:

http://www.daylongraphics.com/other/sswf/

Added an index.html in the doc/html directory. This
allows you to browse all the documents from a common
place.

Fixed the dotar so the .pdf files are included in the
MinGW documentation packages.

Added control over the SKEW of the matrices. Skewing can
help in getting interesting effects such as italic text
from a regular font. Use with caution. I suggest you avoid
using the rotation at the same time. Note that a very small
amount is enough to get a strong effect (i.e. italic will
be already good using a skew: -0.3, 0.0;.)

Worked on the MorphShape. Fixed swf_dump so it prints out
a DefineMorphShape tag properly. Worked on sswf and the
library so it accepts a shape definition with a shape0
and a shape1 (i.e. morph mode 0, 1 or 2.) It works with
solid fills and lines. At this time, I didn't check
the gradients and bitmaps. It's likely that it will
work too.

Added the fill modes HARD-EDGE TILLED and HARD-EDGE CLIPPED
so you can draw images with a sharp edge (Flash V7).
This can be useful for well finished images.

Added the new info in the different documents.

Fixed a bug in swf_dump which would give the offset of
tags at -8 bytes.

Moved the generation of the HTML versions of the different
manuals in the dotar script since it is included in the
documentation and the web page is supposed to be sent
AFTER the dotar script runs.

Moved the generation of packages on the other systems
before the creation of the Linux packages because some
of the files are used in the dev/src tar balls (and
who knows where later!)

Created the USA flag in include/sswf/scripts/flags.sswf

Added the sun-flower sample. Added the sample to the
amakefile.

Many fixes to the dotar script.

Fix in the ActionBranch::Duplicate() function which
would not duplicate the type of action and thus you'd
always end up with a "branch always".

Changed the SWFalexref.html so the explainations about
how to transform the coordinates in SWF is explained
in Appendix A instead of a full chapter.

Fix in the sendweb so the <OBJECT> tag is now closed
(otherwise it doesn't work well in Internet Explorer.)

Fixed the table of file to download from the FTP site
so it creates one real row per file. This way it works
properly under Internet Explorer and also it will still
work if the user shrinks his browsers to insanely small
widths (like 640x440...).

Fixed the action script keyword substract into the
proper term: subtract.

Added the action script keyword "constant pool" as
an equivalent to "dictionary".

Fixed the node_link_parent() function so it accepts
a null pointer as a child (this would otherwise
prevent you from having a conditional without
an else { ... } part; so now if(condition) { ... }
by itself works). This was a problem only in the
debug version.


Thanks to Jacek Naglak for the following:

Fixed the order of compiling SSWF, the grammar & lexical
are now generated first.

Added two command line options (--enable-[yy]debug) to
the configure script so one can turn the debug flags off.

Fixed the sswf source files so it can be compiled without
the debug flags turned on.



 o Jul 09, 2004 (1.6.1)

Added the configure.ac and Makefile.am files (by Jacek Naglak).

Made many fixes to the amakefile script. Also fixed
the dosamakefile to re-compile under MS-Windows.

Added the dotar script and fixed it so it works
with the new setup (tree architecture & three
architectures auto-recompile!). It generates a
total of 36 modules, not including the 4
intermediate.

Added the sendall script.

Fixed many documents to reflect most of the changes. I'm
sure I'm still behind on many of them.



 o Feb 03, 2004 (1.6.0)

Restructured the package so it uses sub-directories
to sort all the sources, includes, docs, etc. better.

Fixed a few things in regard to empty glyphs in
the ft2sswf tool.

Fixed the layout in the ft2sswf tool. I didn't know
that the box had to be resized to 1024 (TrueType fonts
would be slightly too small and TrueFonts would be
misplaced).

Fixed the amakefile so it works with the new directory
structure. As you will see, there is just one makefile
script for AMake.

Fixed the -ll flag to -lfl so it works as is on Debian
distributions. It is the default rule to use Flex on
a Linux system.

Added the necessary code for SSWF to accept JPEG as
input files. So now SSWF supports Targa and JPEG.



 o Nov 10, 2003 (1.5.1)

I fixed two error messages in sswf_node.c so when
you use the wrong label for an object or the wrong
type for a label, you know what label & object.

I fixed a bug in saving an image. When using the
Best Lossless option, the 16 bits would be choosen
each time if the very first pixel was acceptable
in 16 bits. Now all the pixels are really tested.

I added an error in case a sound file can't be
loaded. I still need to add a good message so
we know why it failed (can't read file, unknown
format, etc.)

Fixed several crashing bugs (in link with the memory
leaks fixes).

Added a sound effect (my voice!) to the SSWF
animation sample. This shows a working example
of the sound support by SSWF.

Fixed several casting in the ft2sswf.c file. I
think I had casted the characters to (char) for
a good reason, but now these are casted to (wchar_t).
If you encounter problems with these, let me know
and I will try to understand what the problem was.
(it could be that some fonts I tried with were
broken too!)

In ft2sswf.c I also changed the %lc into a %s with
a wctomb() call before to transform the wchar_t
in a multibyte sequence. This should compile on
more systems.

Fixed the GNUmakefile so the sswf tool is linked
using g++ instead of gcc. This works better since
the sswf source is in C++ and also the library
is full of C++ objects.

Added the showfont sample (in 1.5.0 it wasn't
functional at all). This only works with the
fotinos font at this time. But it helped me
make the fotinos font ANSI (all chars from
the space to delete are now available, and
nearly all letters in the 2nd part of the
ISO-8859-1).

Fixed a few things for the MacOS/X version
which is included in this version. Note that
the ft2sswf tool will be available in the
Fink version. I didn't get the binary to
put here (at least not yet). However, if you
know how to compile, you should be able to
regenerate it without too much trouble.

I think that's about it in this version...

I hope MP3 will make it in the year 2004 as
will the internationalization.




 o Oct 16, 2003 (1.5.0)

Long time since I worked on the sswf project!

I have fixed a lot of problems with the allocation
of nodes so they will properly get released once
the application quits (well, in memory debug mode
that is, otherwise I don't waste any time). It
will even release the all_objects and the
include_paths nodes.

The result nodes in sswf.c++ are also properly
cleaned up. This will release the largest block
of memory allocated.

The data objects where allocated at different places
in the sswf_node.c++ file. I now have a single
function which will properly initialize the label
and node fields which wasn't done each time before.

SSWF supports two new tags: DefineSound and StartSound.
These are defined as the named block "sound" and the
block "sound info" referencing a "sound" block.
The only sound file format supported at this time is
uncompressed WAVE (usually a .wav extension). It can
be in 8 or 16 bits, stereo or mono. I don't support
any compression in this version, however, I support
the DefineSound v2.x and v4.x (specified endian).

The MinGW version will automatically generate the
scroller sample.

The MinGW/MS-Windows has what I'd rather call a hack
it will use LITTLE_ENDIAN whatever the system you're
using. This will eventually change later, in any
event, if you have a MS-Windows running under a
big endian processor, edit the libsswf-config.h
and change the endianess there.

The MinGW is properly tested and thus the cbrt()
was removed only on that system (yes! so far it
was mistakingly removed from all systems).
The fix may have some other (positive?) effects
on the entire software.




 o Dec 4, 2002 (1.4.4)

Fixed the Export tag so Fonts are saved as if used
by a "text edit". This is important since we can't
know how the font will be used before all the other
movies are created.

The Export tag now checks the validity of the identifier
and that the referenced objects are definitions (fonts,
shapes, texts, buttons, sprites, etc.)

The "import" object in sswf properly exposes the names
declared within. This means you can now have references
to imported objects. In order to strengthen the use of
imported objects, the type of the objects can be specified.
At this time, the only limit is a reference from a "text"
object to an imported "font". It won't work because the
"text" object needs to know the width of each character
in order to generate a correct text layout. I will do
that later. Note that the "edit text" is certainly likely
bugus. I will check that later to make sure it also works
properly.

The + and & operators where enhanced in order to accept
a string + integer entry in which case the integer is
transformed in a string before to be concatenated.
This is similar to: strf("%s%d", string, integer).
If you need to convert an integer in a string you can
use: "" + <integer>.

Error messages were enhanced in some places. The number
of error was also increased.

Dynamically named objects defined as the last part of
a field ('c' in a.b.c) can now be specified as part
of a field. The following shows an example:

	...
	list "test" {
		label { "my_sprite" + number };
		sprite {
			...
		};
	};
	...
	list "use_test" { number = 3; test };
	...
	place object {
		id: test.my_sprite3;
		depth: 1;
	};
	...

In earlier versions, the sprite was seen as an unamed
object. Note that only the very last level can be
dynamic in this way. Others will currently fail. This
will hopefully change in the future.

Each object now has to have a TypeFlags() which gives
a set of flags typing the tag. You can then test these
flags as required (DEFINE, CONTROL, UNIQUE, START,
SPRITE, SCRIPT, HEADER, HAS_ID).

The TagRemove has a PreSave() so it properly sets a
minimum version of 3 when it is used without an
object identifier (only a depth).

The TagHeader has a DefineMinimumVersion() function.
This can be used before to call the Save() function
in order to (1) determine the minimum version and
(2) ensures everything can be saved as defined.

swf_dump now knows how to dump a compressed v6.x
movie.

swf_dump can dump all the sound tags (DefineSound,
StartSound, StreamSoundHead[2], StreamBlock,
DefineButtonSound).

swf_dump had a new bug and couldn't properly dump
a DefineFont2. This was fixed.

The SWF Alex's Reference documentation includes the
different sound tags (DefineSound, StartSound,
StreamSoundHead[2] and StreamSoundBlock.)

The documentations include the DefineButton2
definitions.

The documentations include the DefineButtonSound
definitions.

The "remove" command wouldn't accept "edit text"
objects.






 o Nov 24, 2002 (1.4.3)

The sswf manual page was updated to include the
-c/--[un]compress and --[un]protect flags.

Ensured that the MinimumVersion() function was
never called but in PreSave() and PreSave2ndPass().
Thus we know what version we save as when we
reach the Save() function. This is very important
for v6.x movies which save all the strings in
Unicode UTF-8 (not fully done yet).

Added a PreSave2ndPass() in order to compute
the fonts (which can change the version in the
2nd pass).

If the version changes from before v6.x to
v6.x or more, all the PreSave() functions
are called again. At this time it can't happen.

Fixed the fonts very much so it will properly
save a DefineFont + DefineFontInfo[2] instead
of a DefineFont2 whenever possible.

The new algorithm to save a font was very much
simplified:

1. if the font is used by a DefineEditText
   or is too large to fit in a DefineFont
   (i.e. when 32bits offsets are required)
   then save a complete DefineFont2

2. if the font is not used by a DefineEditText
   and can use 16bits offsets

 2a. if the font doesn't include a name, only
     save a DefineFont

 2b. if the font includes a name

   2b1. if the font includes a language forces
	a v6.x movie

   2b2. if we are saving a v6.x movie, save
	a DefineFontInfo2, otherwise use a
	DefineFontInfo


You can specify the language for the font as
defined in v6.x (locale, latin, japanese,
korean and simplified or traditional chinese)

Ensures that the font glyphs are ordered.
(they have to be in maps!)

Added an rnd() function which returns a
random value from 0 to 1.0 included.

The TagFont had a Name() function which was
renamed FontName() so the TagBase::Name()
function wouldn't be hidden.

Added the v6.x compression in the library.
You simply set the compression flag with a
call to your TagHeader::SetCompress() function.
With SSWF you can either use the -c or --compress
option or define a 'compress = true' flag like
you would set the frame_rate value.
I put an example in the new-anim. Change the
'false' to 'true' if you wish to get a compressed
version of that animation (I will keep it
uncompressed so only Flash V5 is required to
look at the SSWF web page at this time...).

VERSION variable properly set in GNUmakefile.

Made many fixes and additions to the SWFalexref.html
file to reflect all the additions.

The ScriptSWF.html was heavilly modified to include
all the newest insertions so it looks closer to
what the tool really offers.

The grammar.c and lexical.c were overwritten in
the VC/sswf sub-directory with the Linux versions
(which thus made them uncompilable under
Visual C/C++). I now keep the MinGW versions which
will compile properly.

swf_dump understands the DefineFontInfo2 and the
language field in the DefineFont2. Also, something
which was in one of my versions, but didn't make
it in v1.4.2, it can dump the PlaceObjet2 and
DefineButton2 tags.



 o Oct 30, 2002 (1.4.2)

The .zip versions are now properly handled - i.e.
the files which are excluded from the .tar files
are also excluded from the .zip and the MinGW
versions won't have the extra sswf-<version>
in the path.

The IRIX version is greatly debugged. This version
won't crash as easilly as the previous once. I
fixed one endian problem as I was at it. There may
be a few more. The New, Dynamic Button and SSWF
animations (as seen on the web page) can all be
created with this version under IRIX.

All the data is now 8 bytes aligned (sizeof(double)
to be precise). It may be slightly faster, even on
Intel processors, since all the data will now be
properly aligned. This was a major change and it may
cause some other problems. Let me know if you have
new problems arising in this version which you
didn't have in the previous ones.




 o Oct 30, 2002 (1.4.1)

The sswf.vim had its minlines synchronization set
to 150 so most comments should appear blue (or
whatever color you selected).

Fixed the code in the sswf_save.c++ search for
action name as this one would eventually not
find the given action(s) (especially: "substring").
This is because a binary search was used but
because of the "." within names, the order is
not really 100% correct for all entries.

Added the String object definitions in the
Alexis' SWF reference of which each method
was tested so as to be able to give a full
description of each of them.

Changed the "can't execute expression" error so
that way it prints that as an ERROR instead of
an INTERNAL ERROR and prints the line # and
filename.

The button.sswf sample was ameliorated so the
background color of the button can be changed
to any color from within the HTML files (the
button and its source are already available on
SSWF web site: http://sswf.sourceforge.net).

Fixed the SHOWFRAME count label so it doesn't
need to be specified (that's back to normal
actually! sorry about that...)

Added SHELL:=/bin/sh in the amakefile.

Fixed the font horizontal offset so each character
advance value is properly taken in account.

A version of the source will be available for
people running IRIX 6.5. You will need bison
v1.25, gcc/g++ v3.0.4, freetype v2.1.x and
amake v2.10.11 or v2.10.12. Note that the
freetype library v2.1.x isn't currently
available as a distribution from SGI. You
will have to compile and install it properly
yourself! Now, that's a great library
everyone should have.

A Label() function was added to the TagBase object
so now you can get the name of the object (as
defined in sswf) from anywhere. Watch out, the
Name() function returns the actual type of the
object (name of the tag such as "edit" or
"button").

Fixed a (really bad) bug to do with arrays of
objects. Under Linux, You need to use the
delete [] ... on C++ objects which are derived
from multiple classes. It caused a lot of problems
with my memory manager. I fixed the handling of the
font_info_t and edge_t which both are now plain
structures. The font_info_t is allocated with
MemAlloc(). The edge_t arrays are defined in
a structure allowing the MemBuffer (derived in
the ItemBase) to be allocated once instead of
64! (even just for my well being, that's a
great improvement, think about it! 256 less
bytes per duplication of arrays and each Edges
object).

I discovered another bug in AMake. You will need
the v2.10.13 to test the samples/check_version.
Well, that's if you want to use amake to test
that sample... (or if you wish to create the
samples with 'make samples').

Added a 'samples' rule in the amakefile so samples
can be created with a simple: 'make samples'. This
is only for Unix systems and is primarily used to
ensure everything works before I ship it to
SourceForge.






 o Oct 30, 2002 (1.4.0)

Added the necessary directory tree and project
files to create the SSWF tools and library with
VC++ v6.x.

Added support for the PushData #9 - access to
directory entries larger than 255.

Added support for the PushData #4 - read register.

Added support for the DoInitAction tag for V6.x
compatible movies. You simply have to define a
sprite identifier in a regular "do action { ... }"
declaration.

Added support for the InstanceOf action.

Added support for the Import and Export tags.
However, at this time, the import doesn't work
(I still need to transform the names in the list
of imported entries in "real objects" which can
be re-used in later.)

Added the ProtectDebug[2] in swf_dump (called
EnableDebugger[2] by Macromedia) and the library
but not in the sswf tool (rather useless anyway!)

Added support for the frame label so you can create
anchors (V6.x).

Added support for the HTML and AUTOSIZE flags
in the EditText tag.

Fixed a bug where the backward branches in an
action script wouldn't work unless they were
at least -256 bytes.

Fixed a memory bug which could have deleted the
same objects multiple times.

Fixed the Duplicate() function for the PushData
action script.

Fixed the PushData ROOT into UNDEFINED.

Fixed the makefile so the -config/version.h
changes are taken in consideration. Also the
sswf.h includes the libsswf.h

Added a makefile.install in each of the lib,
bin and doc packages so you don't need to get
the source to install them.

Noticed that the sswf.vim file (to use with
gvim) wasn't included. It will now be part of
the binary and source tar balls (and the RPM).

Added .rpm packages for the library, binaries
and documentation for RedHat (and other
flavors) lovers. NOTE: this is my first
attempt. Just be careful! 8-)

Now buttons also accept an Edit Text object
(which is right!). Fixed the documents
accordingly.

Fixed the Alexis' SWF Reference to make sure
that I mentioned the fact that the button hit
areas must be shapes and nothing else.

The Edit Text document wrongly spelled out
OUTLINES (plurial) whereas the software
accepted only the singular. Now the software
accepts both and the document says: OUTLINE[S].

Added the Dynamic Button sample (also used on
the web page as the "Download Now" button).



 o Oct 24, 2002 (1.3.5)

Added an install target in the amakefile so the
targets, docs and manuals can automatically
installed on your system with '[a]make install'.
The root path can be changed in the makefiles.

The GNUmakefile was fixed a bit. The install target
was added and my management targets removed. You can
find these in the amakefile. If you wish to use them
you'll probably need to get amake or ensure they
work in the GNUmakefile. It just is too difficult
to maintain these in two places especially since I
should be the only one using them for a while.

Added a set of default include paths and also the
-I option on the command line. The scripts will
be installed in /usr/include/sswf/scripts by
default which is one of the include paths
automatically searched. The sswf manual page was
updated accordingly.

Fixed a char into unsigned char in two places to
handle strings of text properly.

Parsing errors (called YACC ERROR) now display
the filename where the error is found.

Added scripts drawing flags. (Belgium, England,
Italic, France...)

The ft2sswf tool now skips empty characters
altogether by default (use -n1 to revert to
getting all glyphs including empty ones).
Added the info in the corresponding man page.

The memory management of the SSWF library was
fixed in several places. Note that tags can't
be attached to anything or an error will
result. These objects are automatically managed
by their parent and thus don't require to be
attached to any memory manager.

The font is now automatically reduced to declare
as few glyphs as possible. This is particuliarly
useful if you use only of very few characters of
a very large font. Note that if you use an
EditText (also called a DefineFontField by
Macromedia) with the Outline flag set to true,
then the default is to include the entire font.
Use the Used_String: or Used_Glyphs: entries
to reduce the set to whatever characters you will
use. One of my movies went from about 24Kb to less
than 3Kb with this new feature!




 o Oct 23, 2002 (1.3.4)

Forgot to mention (I'm not sure since which version)
there is also a Blue Highway Condensed font available
by default in the archives. This is a complete font
with a very high and good definition you can use
to draw anything you'd like (it's defined as a Unicode
font and generates a 38Kb .swf file if you keep all
the glyphs - you may want to copy it and delete all
the glyphs you will never use!).

The lists get merged properly. Thus, you can link
multiple fonts in the same movie:

    sswf.fnt.fotinos.insert;
    sswf.fnt.blue.insert;

Releases prior v1.3.4 would get confused because
the lists would link the 2nd instance at sswf.<...>
instead of sswf.fnt.<...>. Obviously this works
with any number of lists named the same way.

Changed the modules so there are two binaries, one
including the tools and one the libraries.

When two different objects use the same name, then
their full names are now printed in the error
message.

The swf_dump and ft2sswf have manual pages too.
The sswf manual page was fixed a little.


 o Oct 22, 2002 (1.3.3)

Changed the code so it compiles under RedHat v7.1
and MinGW.

Changed the modularisation of the packages so one
can only download a binary or the docs instead of
the whole thing at once.


 o Oct 18, 2002 (1.3.2)

Reverted some code so it compiles properly the
sswf_node.c file.


 o Oct 18, 2002 (1.3.1)

Ameliorated the errors somewhat. It still has to
be enhance much though.

A GNUmakefile was created so people who don't
want amake can still work with SSWF.

The amakefile was changed slightly so the compile
would work first time instead of after two calls
to amake. Also the .MAIN were removed so the other
targets such as clobber, clean, rmtargets can
be used properly.

The ft2sswf missed the License info in v1.3.0
This was fixed.

The sswf was missing the full License and had only
a small Copyright. This was fixed.

The README.txt was made a bit more up to date so
all the files are included.

The script/test.sswf was removed as this isn't
anything useful at this time.





 o Oct 9, 2002 (1.3.0)

The default output changed from result.swf
to a.swf to be in accordance with the C
compiler (which generates a.out by default).

Created the ft_to_sswf tool which transform
fonts (.ttf, .pfa, .pfb and many more) in a
.sswf script file that you can directly reuse
with the sswf tool.

Added the missing code so the font TYPE label
in SSWF is taken in account.

Changed the code so fonts V3.x save an array
of offsets including a size.

Added \X?? support (only \x was accepted before).

Added unicode entries in fonts (with the use
of \\[xX]<value> in the strings.)

Started a set of man pages for the shell tools.
You can already type

   man -M doc/man sswf

to see the sswf manual pages.



 o Oct 9, 2002 (1.2.1)

Fixed a problem with labels (if more than one
SetLabel() was done on an object, the memory of
the previous strings would be lost until the
object was deleted).

Cleaned up the sswf_node.c from the out of memory
errors since these are all checked in the
sswf_memory.c file.

Added support for the GET URL2 action. This uses
the Action "URL" without any parameter or only
one: GET, POST or NOVAR[IABLE].

Fixed a bug with the f_min_version which could
be set to a negative value (thus a movie version
could be saved with as -4 instead of 4). This
was in link with actions.

Added support for the (useless?) STORE REGISTER
action (is this for debug purposes only?). This
was the last V5.x action not yet available.

Fixed a bug with the dumping of functions (the size
given to the end user was improperly computed).




 o Oct 8, 2002 (1.2.0)

Added support for the DECLARE DICTIONARY action
(Action "dictionary" { strings... };).

Added support for the CALL FRAME action. Note
that it is a special tag as it is necessary to
have a size though there isn't any data.

Added support for all the actions in the swf_dump
tool.

Added support for the DEFINE INFO tag (assumed
format from other .swf files...) in both the
swf_dump and sswf tools. Later removed from the
sswf tool since it otherwise makes it fail to
run the movie (I probably need more info about
this tag...).

Added some tests to ensure proper memory allocations
(i.e. some new calls weren't checked for possibly
returning zero).

Added a version within the files using a specific
version include: libsswf-version.h. This include
file is also used by other tools such as the
swf_dump tool. This enabled me to add a --version
on the sswf and swf_dump command lines. Also the
library has now an sswf_version() function call
which returns the version string also (useful to
use .so library though I still have many inlines
which should most probably disappear to have a
correct .so library!).



 o Oct 4, 2002 (1.1.1)

Added support so one can define variables on the
command line with -D<varname>=<value>



 o Oct 3, 2002 (1.1.0)

Completed the integration of the "edit text" tag
(DefineTextField).

Added the function fabs().

NOTE: at this time the library always forces the
      'outline' flag to zero since setting it to
      1 makes the macromedia plugins crash.



 o Sept. 30, 2002

Publication of the lirarby & tools on the internet.

