-------------------- AmigaOS 3.5/3.9 project -------------------------

DefIcons 45.0 (27.10.2000)

- just a version bump, no functional change.

DefIcons 45.1 (15.02.2001)

- implemented arexx function "Identify NAME/A", the
  arexxport name is DEFICONS. Requires arexx.class v44.

DefIcons 45.2 (26.02.2001)

- added NOREXX/S option for those who don't want
  the arexx interface (saves ~10kb of ram:)

- added a small cache that can hold upto 3 icons
  in memory. This gives a speed increase of about
  20% for drawers that contain a lot of files of the
  same type. For "mixed" drawers there will be
  probably no speed increase or even the speed
  will drop. Please test!

DefIcons 45.3 (17.04.2001)

- removed NOREXX option and the implementation
  of the arexx host through arexx.class. The
  program uses the SimpleRexx.c functions, now.
  The reason for doing this was that I got some
  strange enforcer hits from the interface
  although I can remember that the arexx stuff
  worked hit free the last time I've tested it.

- just for fun, the program can be terminated
  by sending "Quit" to the host, now.

------------------------ AmigaOS 4 project ---------------------------

DefIcons 50.9 (06.09.2003)

- first PPC release (should be 50.1 not 50.9,
  I forgot to reset the revision).

DefIcons 50.10 (15.02.2004) 

- The "Identify" ARexx function was receiving names
  with extra leading spaces; now fixed.

- The "Identify" ARexx function does now a slightly
  more accurate identification for disks: an actual
  device name is returned, if one can be found.

- The "Identify" ARexx function was using the wrong
  buffer size to analyze files, which could fail to
  identify files shorter than 480 bytes; now fixed.

DefIcons 50.11 (16.03.2004)

- moved deficons.prefs to "sys/" drawer. The program will still try
  to load it from env:, if it can't be found there.

- fixed obscure error message when no prefs file could be loaded.

DefIcons 50.12 (11.03.2005) 

- fixed an uninitialized variable.

DefIcons 51.1 (19.10.2005)

- Now builds with gcc 4.0.0 with -Wall -Werror.

- Removed empty sections.

DefIcons 51.2 (19.10.2005)

- No longer allocates MEMF_PUBLIC memory.

DefIcons 51.3 (27.2.2006)

- When no ENV:Sys/deficons.prefs file can be found, DefIcons no longer
  waits for Ctrl-C only while its ARexx port is public which prevented
  the user from opening the WB icon information window. Now it prints
  an error message as before but continues its normal work with a
  hardcoded builtin nearly empty prefs file.

DefIcons 51.4 (27.2.2006)

- After loading an empty ENV:Sys/deficons.prefs the program continues
  its normal work with a hardcoded builtin nearly empty prefs file
  to avoid preventing the user from opening the WB icon information window.

DefIcons 52.1 (11.12.2006)

- Bumped to V52.

DefIcons 52.2 (5.1.2008) 

- Added support for the new ICONGETA_IdentifyBuffer
  and ICONGETA_IdentifyOnly tags of icon.library.

DefIcons 53.1 (22.11.2008)

- Bumped to 53.

- Converted to newlib from clib2.

- Fixed up makefile.aos4.

- Added mkrelease script.

- Replaced memory pool with ASOT_MEMPOOL.

- Replaced strcpy()/strncpy() with safer strlcpy().

- Replaced strcat() with safer strlcat().

- Replaced custom SPrintf() with safer SNPrintf().

- Removed some dead code.

DefIcons 53.2 (2.12.2009) 

- Recompiled with latest catalog description.

DefIcons 53.3 (10.9.2011) 

- Split off DefIcons preferences and removed all associated files.

- Cleaned up makefile and mkrelease script.

- No functional changes.

DefIcons 53.4 (10.9.2011) 

- Recompiled with GCC 4.2.4.

- No functional changes.

DefIcons 53.5 (30.11.2013)

- Added DefIcons.doc file. Additional improvements are welcome.
  (bug #8581)

DefIcons 53.6 (2.12.2013) 

- Fixed AutoInstall script.
  (bug #8588)

- Added DefIcons.doc to AutoInstall script.

- Some code cleanup.

DefIcons 53.7 (27.11.2015) 

- Re-Fixed AutoInstall script. 
  (bug #8588)

- Replaced custom StrLen() function with strlen().

- Fixed array subscript is above array bounds errors in load_prefs().

- Fixed end of data checks in init_tree() and read_description().

- The IdentifyFunc() function now uses the interface fields in the
  IconIdentifyMsg (this will likely cause crashes with RAWBInfo versions
  older than 53.21 because they don't init these correctly).

DefIcons 54.1 (27.11.2015) 

- The IdentifyFunc() function now uses iim_ExData instead of iim_FIB which
  means that it will only work with icon.library V54.3 and newer.

- No longer accesses AbsExecBase to get the value for SysBase.

- Replaced some obsolete function calls with more current ones.

DefIcons 54.2 (28.11.2015) 

- Now compiles without -Wno-deprecated-declarations.

- Replaced custom GetDevName() function with DevNameFromLock().

DefIcons 54.3 (2.12.2015) 

- Now compares the whole file size with act_filesize and not just the 32 least
  significant bits.

- The CacheEntry name field is now moved to the end of the structure and is no
  longer fixed to 108 bytes.

DefIcons 54.4 (27.2.2018) 

- Updated the DefIcons.doc file as suggested in bz #9718. 

- Rebuilt with GCC 5.4, no code changes

------------------------- AmigaOS 3.2 project ------------------------

deficons 47.1 (01.10.2019):

- Backported to OS 3.2

deficons 47.2 (24.11.2019):

- Replaces compiler functions with
  utility.library functions to avoid
  linker problems.

deficons 47.3 (29.12.2019):

- Factored database functions out that are
  not required for the main part of DefIcons.

- DefIcons uses now rules along with accompanying
  icons in DEVS:DefIcons. Simply drag in rules with
  icons there.

- Streamlined the rule parser somewhat. This looked
  too complicated. It is just a tree parser.

- Worked on the icon reader. Now also accepts absolute
  file names to work from.

deficons 47.4 (3.1.2020):

- Added a parser for ASCII/Text description for match
  rules. There is no need to for an assembler anymore.

deficons 47.5 (5.4.2020):

- Reverted the code back to effectively version 47.2
    That is: revert the template based approach. We are lacking resources
    to finish it and the typewizard.

    The mix of brainfile and templates is sort of broken by design
    The mix of templates is also sort of broken by design.

	Say Developer A made an icon for a group of archivers
	And Developer B mad an icon for lha

	User downloaded both independent works but because of priorites
	the Developer B icon will never be shown. Developer A and B
	never know about each other.

	A similar example can happen with definitions in brain files vs
	templates, although here the templates will	almost always shadow
	the ones in the brainfile, but still it may not be a good combination

	In any case the current implementation has a bug where importing
	the brainfile destroys the integrety of the tree.

	And we don't have the manpower to fix it, so we revert, but don't
	rule out it returning in the future in a more sleek and polished form.

deficons 47.6 (2.5.2020):

- Change file location to ENV:DefIcons.prefs

- Fix bug that made it impossible to match binary strings with \x00 in them

deficons 47.7 (3.7.2020):

- Our ARexx port's name is once again "DEFICONS", rather than "DEFICONS.1".
  That port name change had broken existing scripts and applications (such
  as RAWBInfo) which access DefIcons functionality through ARexx.

deficons 47.8 (16.7.2020):

- Added support for the new ICONGETA_IdentifyBuffer / ICONGETA_IdentifyOnly
  tags of icon.library.
