Back to the SSWF project home page


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 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

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:

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:

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:

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:

or

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:

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:

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

2. if the font is not used by a DefineEditText

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:

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

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

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





o Sept. 30, 2002

Publication of the lirarby & tools on the internet.

Back to the SSWF project home page