
CatComp 39.3 - differences from earlier CatComp developer releases


IMPORTANT - IF YOU HAVE BEEN USING A 38.x VERSION OF CATCOMP,
READ THIS FIRST BEFORE SWITCHING TO 39.x CATCOMP !


The new CatComp has many additional features, including the ability
to create an object module for you to simply link with.

However, if you are using CatComp already and using your own code
based on early examples for localizing strings, you will need to make
some changes to your code if you wish to switch to the new 39.x CatComp.
Sorry about these changes, even though they are simple.  If you don't want
to make these changes, just keep using whatever old version of CatComp you
have.  But this is the version of CatComp that will be distributed outside
the developer program, so please do not distribute any source code using
localized string code/.h files generated with older versions of CatComp.


The output (.h file) generated by 39.x CatComp is now different.
If you want to switch to the new CatComp using your older localized
code, you will need to change any instances of the following items in
your code to match the new variable/define names used by CatComp 39.x:


	- the names of the conditional #defines have changed

		CATCOMP_ARRAY (not STRINGARRAY) must be defined to cause
			inclusion of the string defines, id numbers,
			and the string array
		CATCOMP_STRINGS may instead be defined to cause inclusion
			of just the string defines
		CATCOMP_NUMBERS may instead be defined to cause inclusion
			of just the string id numbers

	  The overall conditional #define at the top of the generated
	  include file used to default to  #ifndef TEXTTABLE_H, etc.
	  Now it defaults to <output name>_H but may be controlled
	  by embedding a ##header directive in your .cd file.

	- "struct AppString" is now "struct CatCompArrayType"
	  In addition, the names of the members of this structure have
	  changed from "as_ID" to "cca_ID" and "as_String" to "cca_String".

	- "struct AppString AppStrings[]" is now
	  "static const struct CatCompArrayType CatCompArray[]"

	   You can remove/change the "static const" part with the
	   ##arrayopts <opts> directive which can be embedded in your .cd
	   file.  You can also change the basename "CatCompArray" to
	   something else with the ##array directive.  See CatComp.doc.
	   Or you can change your code which accesses the array to
	   reference it as static const struct CatCompArrayType[]...


As mentioned before, this version of CatComp also has the ability to
directly create an Amiga object module (code and strings) for you
to link with.  In addition, there is new CATCOMP_BLOCK data and code
placed in the generated .h (#ifdef'd out).  See CatComp.doc for more
info.

