Corrections to SVN properties.
[AROS.git] / workbench / libs / codesets / ChangeLog
blob0daa2de2a9bc077413c99e0d1c90290cf98af803
1 ----------------------------------------------------------
2 codesets.library - Library for handling different codesets
3 ----------------------------------------------------------
5 $Id$
6 $URL$
8 #### 6.15 RELEASE ########################################################
10 2013-04-25 Jens Langner <Jens.Langner@light-speed.de>
12   * misc: final 6.15 release preparations.
14 2013-03-06 Thore Böckelmann <tboeckel@gmx.de>
16   * src/libinit.c: rearranged the code to ensure that trying to start the final
17     library from a shell does not crash.
19 #### 6.14 RELEASE ########################################################
21 2012-08-05 Jens Langner <Jens.Langner@light-speed.de>
23   * misc: final 6.14 release preparations.
25 2012-06-19 Thore Böckelmann <tboeckel@gmx.de>
27   * src/init.c: don't allocate locked memory.
29 2012-04-07 Jens Langner <Jens.Langner@light-speed.de>
31   * Makefile: removed -funroll-loops as this is potentially dangerous.
33 2012-03-04 Thore Böckelmann <tboeckel@gmx.de>
35   * src/libinit.c: fixed the broken build for all non-AROS platforms.
37 2012-01-29  Matthias Rustler <mrustler@gmx.de>
39   * Backport of some AROS fixes.
40     SDI headers updated.
42 #### 6.13 RELEASE ########################################################
44 2011-11-26 Jens Langner <Jens.Langner@light-speed.de>
46   * misc: final 6.13 release preparations.
48 2011-01-04 Thore Böckelmann <tboeckel@gmx.de>
50   * all/Makefile: fixed the dependency generation to respect the system specific
51     object file path.
53 2010-12-06 Thore Böckelmann <tboeckel@gmx.de>
55   * codesets.c: added some "const" keywords to avoid type casts.
57 2010-10-06 Thore Böckelmann <tboeckel@gmx.de>
59   * dist/Install: adapted the Installer script to respect MorphOS' default
60     location for 3rd party libraries.
62 2010-10-05 Thore Böckelmann <tboeckel@gmx.de>
64   * libinit.c: make sure that removing the library during LibClose() really
65     operates on the correct base. Calling LibExpunge() on MorphOS is wrong,
66     since that takes no parameter but expects the base to be in A6. We work
67     around this by using an additional function which gets called from
68     LibClose() and LibExpunge() with the correct base pointer.
70 2010-09-28 Thore Böckelmann <tboeckel@gmx.de>
72   * tools/mkrelease.sh: remove the mmakefile.src file from the distribution.
74 #### 6.12 RELEASE ########################################################
76 2010-09-23 Jens Langner <Jens.Langner@light-speed.de>
78   * misc: final 6.12 release preparations.
80 2010-09-20 Thore Böckelmann <tboeckel@gmx.de>
82   * codesets.c: fixed a possible length issue in case a UTF8 sequence had to be
83     replaced more than once by "lookalike" characters. Before the length of the
84     sequence to be replaced was not modified after the first replacement. Thanks
85     to Bernd Gollesch for the hint.
87 2010-09-10 Thore Böckelmann <tboeckel@gmx.de>
89   * codesets.c: CodesetsUTF8ToStr() did not return the correct length of the
90     converted string in case mapping of foreign characters was requested and
91     the string really contained mappable characters which might be replaced
92     by longer ASCII strings of than one single character.
94 2010-09-03 Thore Böckelmann <tboeckel@gmx.de>
96   * libinit.c, debug.c: clear all semaphore structures before calling
97     InitSemaphore().
99 #### 6.11 RELEASE ########################################################
101 2010-09-01 Jens Langner <Jens.Langner@light-speed.de>
103   * misc: final 6.11 release preparations.
105 2010-08-16 Thore Böckelmann <tboeckel@gmx.de>
107   * libinit.c: the library init code now ensures that the entry code is really
108     the first code to be executed in case the .library is executed like a
109     regular command by accident.
110   * include/SDI_compiler.h: updated to latest version.
112 2010-08-12 Pavel Fedin <pavel_fedin@mail.ru>
114   * src/codesets.c: fixed pointer to integer conversion for 64-bit systems
115   * developer/examples/demo1.c: likewise
116   * include/SDI_hook.h: added missing include for AROS
118 2010-07-01 Thore Böckelmann <tboeckel@gmx.de>
120   * src/init.c: enabled querying of ENV:CODEPAGES to obtain the default codeset
121     for all systems.
122   * src/init.c: added car plate codes and ISO3166 Alpha 3 country code detection
123     when obtaining the system default codeset. Thus a user can use a system
124     default language/codeset which doesn't match the country's language/codeset.
125     This fulfils feature request #2971890.
127 2010-06-15 Thore Böckelmann <tboeckel@gmx.de>
129   * src/codesets.c: added a union of several pointer types to avoid the tons of
130     warnings of GCC4+ about type punned pointer accesses.
132 2010-06-11 Thore Böckelmann <tboeckel@gmx.de>
134   * Install: extended the final message that a reboot might be necessary to be
135     able to use the just installed version.
137 2010-06-10 Thore Böckelmann <tboeckel@gmx.de>
139   * src/libinit.c: fixed a warning for the OS3 build.
140   * misc: added all necessary stuff for an automated build for all supported
141     platforms. This also includes an Installer script for an easy installation.
143 2010-06-07 Thore Böckelmann <tboeckel@gmx.de>
145   * include/SDI_compiler.h: updated to latest version.
147 2010-06-03 Thore Böckelmann <tboeckel@gmx.de>
149   * developer/examples/DetectCodeset.c: fixed some warnings about wrong types
150     in the printf() calls.
151   * developer/examples/b64[ed].c: fixed some warnings about wrong types in the
152     printf() calls.
154 2010-06-03  Matthias Rustler <mrustler@gmx.de>
156   * fixes for 64-bit AROS. Changed some ULONG to IPTR to get rid of warnings
157     like "conversion from/to integer to/from pointer with different size".
159 2010-04-23 Pavel Fedin <pavel_fedin@mail.ru>
161   * src/libinit.c: use NewStackSwap() under AROS, re-enabled stack swapping under MorphOS
162   * src/debug.c: use VNewRawDoFmt() for debugging output under AROS, the same as in MorphOS
164 2010-04-23 Thore Böckelmann <tboeckel@gmx.de>
166   * src/libinit.c: replaced some #ifdef's by macros.
168 2010-01-22 Thore Böckelmann <tboeckel@gmx.de>
170   * charsets/windows-1253.txt: added greek Windows-1253 codepage as this one is
171     documented to be incompatible to ISO8859-7 (see http://de.wikipedia.org/wiki/
172     Windows-1253).
174 #### 6.10 RELEASE ########################################################
176 2009-12-21  Jens Langner <Jens.Langner@light-speed.de>
178   * misc: final 6.10 release preparations.
180 2009-12-10 Thore Böckelmann <tboeckel@gmx.de>
182   * init.c: removed some unnecessary type casts.
183   * codesets.c: adding the fake UTF8, UTF16 and UTF32 codesets now makes sure
184     that the code tables of these codesets only contain zero values. Otherwise
185     CodesetsFindBestCodeset() might choose one of these by accident, even if
186     they are just fake entries.
187   * codesets.c: excluded the UTF16 and UTF32 codesets from the "find best" check
188     completely, like the UTF8 codeset was excluded before already.
190 2009-12-09 Thore Böckelmann <tboeckel@gmx.de>
192   * codesets.c: added some debug output when adding the individual internal and
193     external codesets.
194   * codesets.c: broke down the text check against a single codeset into smaller
195     functions to make things easier to understand and maintain.
196   * codesets.c: asking MorphOS for system codesets could fail if there is either
197     no default keymap or the keymap has no codepage. This let the complete
198     initial codeset scanning fail. Now only failed memory allocations will be
199     treated as errors. This conforms with treatment of all other codesets. I
200     guess this caused much of the recent trouble with MorphOS and codesets.lib
201     V6.9.
203 2009-12-08 Thore Böckelmann <tboeckel@gmx.de>
205   * misc: cleaned up several parts of the source code for better readability and
206     maintainability. The pool semaphore was often used to protect some code
207     parts against concurrent execution where it was not needed at all. The pool
208     semaphore is for meant to protect the memory pool and nothing else!
209     Added the GetHead/Tail/Succ/Pred functions to navigate within the codeset
210     lists to make things more safe.
212 2009-11-02 Thore Böckelmann <tboeckel@gmx.de>
214   * debug.c, libinit.c: reworked the debug system to use the same stuff as YAM
215     does. Furthermore we now have a semaphore to prevent several concurring
216     applications from screwing up the log by writing out debug messages at the
217     same time.
219 2009-10-29 Thore Böckelmann <tboeckel@gmx.de>
221   * codesets.c: removed a superflous LF from a debug message.
223 #### 6.9 RELEASE #########################################################
225 2009-10-24  Jens Langner <Jens.Langner@light-speed.de>
227   * misc: final 6.9 release preparations.
229 2009-09-19 Thore Böckelmann <tboeckel@gmx.de>
231   * misc: added a name to all memory pools for OS4.
233 2009-08-14 Thore Böckelmann <tboeckel@gmx.de>
235   * Makefiles: added "-g" to the debug flags. It seems the OS3 GCC 2.95.3 cross
236     compiler needs this to generate debug infos at all.
238 2009-07-21 Thore Böckelmann <tboeckel@gmx.de>
240   * libinit.c: in case something in the LibInit() call fails everything set up
241     before will now correctly be freed again to avoid memory leaks.
243 2009-07-10 Thore Böckelmann <tboeckel@gmx.de>
245   * codesets.c: a conversion with identical source and destination codesets no
246     longer fails, although such a conversion doesn't make much sense. Instead
247     a copy of the source string is created which must be freed by a call to
248     CodesetsFree() as usual.
250 2009-07-02  Ilkka Lehtoranta <ilkleht@isoveli.org>
252   * libraries/codesets.h: Added standard UTF#?_TYPEDEF around UTF8, UTF16 and
253     UTF32 typedefs to make sure they dont clash with system types in the future.
255 2009-06-15  Ilkka Lehtoranta <ilkleht@isoveli.org>
257   * codesets.c: workaround for locale.library bug in MorphOS 2.2.
258     Fixes bug #2496990.
260 2009-06-08  Staf Verhaegen <staf.verhaegen@skynet.be>
262   * libinit.c: On AROS library base is not necessarily passed on the stack
263     to the lib (de)init functions. Use AROS macros for the definition of those
264     functions so that the passing is always done in the right way.
266 2009-06-07  Matthias Rustler <mrustler@gmx.de>
268   * Makefiles for examples and linkerlib fixed.
269   * Bugfix in demo1.c. (variable codesets defined outside application
270     to ensure that it exists when it's used)
272 2009-06-02  Matthias Rustler <mrustler@gmx.de>
274   * Some warnings removed
275   * Use standard MUIM_Application_AboutMUI because custom method
276     crashes under AROS
278 2009-06-02  Jens Langner <Jens.Langner@light-speed.de>
280   * lib_protos.h: fixed the compilation for OS3, MOS and AROS because of
281     incompatible function prototypes for the library functions with a variable
282     argument list.
284 2009-05-04 Thore Böckelmann <tboeckel@gmx.de>
286   * include/SDI_lib.h: updated to the latest version.
288 2009-05-02 Ilkka Lehtoranta <ilkleht@isoveli.org>
290   * libinit.c: RTF_EXTENDED was not set for the MorphOS build making revision
291     number ineffective.
293 2009-04-30 Thore Böckelmann <tboeckel@gmx.de>
295   * include/SDI_lib.h: updated to the latest version.
297 2009-04-17  Jens Langner <Jens.Langner@light-speed.de>
299   * include/defines/codesets.h: regenerated the AROS codesets.h includes by
300     using the very latest sfdc 1.4 tool. That should hopefully fix all existing
301     issues with using codesets.lib for an AROS project.
303 2009-04-06  Jens Langner <Jens.Langner@light-speed.de>
305   * include/defines/codesets.h: fixed the codesets AROS defines.h include by
306     shifting the function offsets by one to match the offsets using in the 68k
307     build.
309 2009-04-01  Thore Böckelmann <tboeckel@gmx.de>
311   * libinit.c: fixed broken stackswap_call() prototype for the assembler
312     version.
314 2009-04-01  Jens Langner <Jens.Langner@light-speed.de>
316   * include/defines/codesets.h: updated the AROS codesets.h file to the one
317     that is distributed with AROS.
319 2009-03-30  Thore Böckelmann <tboeckel@gmx.de>
321   * codesets.c: the UTF8 compare function now uses a proper prototype to be used
322     with qsort().
323   * codesets.c: in case the default codeset could not be created two libraries
324     were left open in the MOS build.
326 2009-03-27  Thore Böckelmann <tboeckel@gmx.de>
328   * libinit.c: reenabled the prototype for the stackswap_call() function to
329     avoid warnings about implicitly declared functions.
330   * codesets.c: fixed some warnings about uninitialized variables.
332 2009-03-26  Jens Langner <Jens.Langner@light-speed.de>
334   * include: updated SDI headers to very latest versions.
336 2009-03-25  Jens Langner <Jens.Langner@light-speed.de>
338   * libinit.c: introduced a small fix to get the file compiled with the fixed
339     SDI headers again.
340   * include: fixed the SDI headers.
341   * Makefile: adapted makefile to directly specify the target CPU for the AROS
342     build. If you now want to compile AROS you have to explicitly set
343     "OS=aros-i386" or "OS=aros-ppc", for example.
344   * version.h: added x86_64 CPU type to allow compilation of codesets.library
345     for x86_64 AROS target.
346   * libinit.c: added RTF_EXTENDED and library revision number for the AROS
347     build.
349 2009-03-24  Pavel Fedin <sonic.amiga@gmail.com>
351   * codesets.c, convertUTF.c, util.c, lib_protos.h : implemented complete UTF32
352     support
353   * libcodesets: added portable autoinit code
354   * developer/examples/autoopen.c: added autoopen test
356 2009-03-23  Thore Böckelmann <tboeckel@gmx.de>
358   * developer/examples/Convert.c: added the usual information header.
359   * developer/examples/Convert.c: made the demo program compilable for OS4.
360   * codesets.c: fixed various warnings about wrong types. Also removed all TAB
361     characters I have spotted. Please note that we are using space characters
362     only for indentation.
364 2009-03-21  Jens Langner <Jens.Langner@light-speed.de>
366   * misc: minor adaptions
367   * include: updated the SDI headers to their latest versions and incorporated
368     the latest changes from Pavel.
370 2009-03-20  Pavel Fedin <sonic.amiga@gmail.com>
372   * misc: many fixes in various places, code merge, got rid of many #ifdef's. AROS
373     version can be built or cross-built outside of AROS build system. Fixed "demo1"
374     program to work under MorphOS
376 2009-01-28  Thore Böckelmann <tboeckel@gmx.de>
378   * developer/examples/demo1.c: replaced use of the custom class Textinput.mcc
379     by a simple Text object, as this class is not installed on all systems and
380     may also have caused bug #2539755. However, the custom TextEditor.mcc class
381     is still required, but this one is correctly checked if it should be
382     missing.
384 2009-01-27  Thore Böckelmann <tboeckel@gmx.de>
386   * developer/examples/demo1.c: added some NULL checks to avoid stricmp() to be
387     called with NULL pointers. This should fix bug #2539755.
389 2009-01-10  Staf Verhaegen <staf.verhaegen@skynet.be>
391   * codesets.conf (AROS): Update version, date and copyright info
393 #### 6.8 RELEASE #########################################################
395 2009-01-04  Jens Langner <Jens.Langner@light-speed.de>
397   * misc: final 6.8 release preparations.
399 2009-01-02  Ilkka Lehtoranta <ilkleht@isoveli.org>
401   * codesets.c: MorphOS code was using LocaleBase before it was initialised
402     and using library under MorphOS 2.0 or newer would always crash. Locale
403     library is now opened locally to make sure we have correct version (V51).
404     This fixes bug #2459558.
405   * base64.c: avoid using now obsolete AllocDosObject() in MorphOS.
407 #### 6.7 RELEASE #########################################################
409 2008-12-20  Jens Langner <Jens.Langner@light-speed.de>
411   * misc: final 6.7 release preparations.
413 2008-12-19  Thore Böckelmann <tboeckel@gmx.de>
415   * codesets.c, codepages.c: separated the constant code pages from the actual
416     code to create smaller source files.
418 2008-12-19  Jens Langner <Jens.Langner@light-speed.de>
420   * codesets.c: minor cosmetic changes to make the new MorphOS functionality
421     fit better into our current environment.
423 2008-12-18  Ilkka Lehtoranta <ilkleht@isoveli.org>
425   * codesets.c: query and add currently active code page to codesets if
426     running on MorphOS 2.
428 2008-12-16  Thore Böckelmann <tboeckel@gmx.de>
430   * init.c: replaced the obsolete CreatePool() and DeletePool() calls with
431     AllocSysObject() and FreeSysObject() call for the OS4 build. Also restored
432     the old MEMF_ANY memory flags for the other platforms. For OS4 MEMF_SHARED
433     will be used as before.
435 2008-12-16  Jens Langner <Jens.Langner@light-speed.de>
437   * codesets.c: replaced the obsolete ExAll() usage with a proper ExamineDir()
438     usage for the OS4 build.
439   * base64.c: replaced the obsolete ExamineFH() use with ExamineObject() for
440     the OS4 build.
441   * codesets.c: added an internal list of well-known codeset aliases. This
442     alias list is used whenever CodesetsFind() is used. It allows applications
443     to supply an alias name of a codeset and see it directly matched to the
444     correct MIME name.
446 2008-12-14  Thore Böckelmann <tboeckel@gmx.de>
448  * codesets.c: when replacing UTF8 chars by ASCII look-alike replacements the
449    destination buffer size was never increased but the index for the new
450    characters was correctly increased. This caused random memory accesses after
451    a few replacements which usually went unnoticed when only very replacements
452    happened. On OS3 this went completely unnoticed.
454 2008-12-12  Thore Böckelmann <tboeckel@gmx.de>
456  * codesets.c: massive code cleanup. Replaced all TAB characters by spaces and
457    changed lots of implicit result checks to explicit ones.
458  * utils.c: added the usual ENTER/RETURN/LEAVE macro calls.
459  * utils.c: the custom implementations of AllocVecPooled() and FreeVecPooled()
460    can now be enabled and disabled by single #define's. By default OS4 and
461    MorphOS will use their own kernel supplied versions.
463 2008-12-08  Thore Böckelmann <tboeckel@gmx.de>
465  * utils.c: added a size check to reallocVecPooled() just in case the new
466    allocation is smaller than the old one.
467  * codesets.c: added missing RETURN() macro call.
468  * codesets.c: added more missing macro calls and cleaned up some code passages.
469  * init.c: replaced MEMF_ANY by MEMF_SHARED for OS4.
471 2008-08-16  Staf Verhaegen <staf.verhaegen@skynet.be>
473  * codesets.conf (AROS): Update version and copyright
474  * mmakefile.src (AROS): Don't let codesets.library depend on libcodesets.a
476 2008-07-29  Jens Langner <Jens.Langner@light-speed.de>
478   * developer/docs/codesets.doc: fixed the documentation on the Hook uses
479     as an incorrect hook prototype was used throughout the examples.
481 #### 6.6 RELEASE #########################################################
483 2008-07-06  Jens Langner <Jens.Langner@light-speed.de>
485   * misc: final release preparations
487 2008-07-05  Jens Langner <Jens.Langner@light-speed.de>
489   * developer/examples: replaced the multiple makefiles by a single
490     multiplatform makefile.
492 2008-07-04  Jens Langner <Jens.Langner@light-speed.de>
494   * codesets.c: renamed the new mapping functionality to the more untuitive
495     "CSA_MapForeignToASCII" term.
497 2008-07-03  Thore Böckelmann <tboeckel@gmx.de>
499   * codesets.c: fixed some copy'n'paste bugs in the lookup table.
500   * codesets.c: in case one of the replacement functions returned an UTF8
501     sequence the wrong string was used in the next loop, causing an endless
502     loop.
504 2008-07-03  Jens Langner <Jens.Langner@light-speed.de>
506   * codesets.c: added official ISO replacements for the currency symbols in
507     case the CSA_MapUnknownToASCII attribute is used.
508   * codesets.c: fixed a bug in the newly reworked replacement function which
509     didn't work as expected and always replace unknown chars with '?' instead
510     of replacing it with the looklike char sequence.
512 2008-07-02  Thore Böckelmann <tboeckel@gmx.de>
514   * codesets.c: calling the replacement hook will be skipped now if the
515     internal table yielded a suitable replacement.
516   * codesets.c: removed that silly restriction of 10 replacement tries again.
517     It is up to the developer to make sure that no endless loop happens and
518     that the replacement hook handles all data correctly and as documented.
519   * codesets.c, codesets.doc: the internal and the external replacement via
520     hooks are now handled completely independently, however, the hook will be
521     called after the internal replacement and thus can override the internal
522     replacement. Furthermore if either function returns an UTF8 sequence this
523     sequence will be passed again to these functions as long as no suitable
524     code is found in the active codeset. 10 retries will be done at most to
525     avoid endless loops.
526   * codesets.c, codesets.doc: renamed the attribute CSA_MapUnknownToAscii to
527     CSA_MapUnknownToASCII. Also implemented CSA_MapUnknownHook, which will call
528     the specified hook function in case no internal replacement for an unknown
529     UTF8 sequence could be found. This way an application can provide its own
530     additional "to ASCII" remapping.
532 2008-07-02  Jens Langner <Jens.Langner@light-speed.de>
534   * codesets.c, codesets.doc: added the new CSA_MapUnknownToAscii attribute to
535     our autodocs and added its use in the CodesetsConvertStrA() function
536     as well.
538 2008-07-01  Thore Böckelmann <tboeckel@gmx.de>
540   * codesets.c: added the Latin Extended-A section to the lookup table.
541   * codesets.c: implemented the binary search in the new replacement lookup
542     table.
544 2008-07-01  Jens Langner <Jens.Langner@light-speed.de>
546   * codesets.c: renamed replacement function to mapUTF8toAscii() which more
547     describes what this function does. In addition the new attribute is now
548     named CSA_MapUnknownToAscii. In addition the new function contains a first
549     experimental utf8map lookup table which we can use in future instead of
550     the long switch/case statements.
552 2008-06-30  Jens Langner <Jens.Langner@light-speed.de>
554   * codesets.c: fixed the PRIME character replacement.
556 2008-06-29  Jens Langner <Jens.Langner@light-speed.de>
558   * codesets.c: added more replacement UTF8 replaceent characters to the internal
559     list.
561 2008-06-28  Jens Langner <Jens.Langner@light-speed.de>
563   * codesets.c: slightly updated our char replacement list - still more to come.
565 2008-06-27  Thore Böckelmann <tboeckel@gmx.de>
567   * codesets.c: changed the source pointer type of getReplacementUTF8Char() from
568     "char *" to "unsigned char *". For OS4 this should make no difference, since
569     the char type defaults to unsigned with GCC 4. For OS3 this makes a huge
570     difference, because for GCC 2 char is still signed and some comparisons will
571     be "const false" or even outside the valid value range in switch() statements
572     in this case.
573   * libinit.c, codesets.c: removed some warnings about uninitialized variables
574     and "void *" pointer arithmetic.
576 2008-06-26  Jens Langner <Jens.Langner@light-speed.de>
578   * codesets.c, misc: started implemented feature request #1879875 by
579     introducing a new CSA_ReplaceUnknown attribute for CodesetsConvertStr()
580     and CodesetsUTF8ToStr(). When this attribute is set to TRUE, some
581     well-known UTF8 sequences which can't be directly mapped to a certain
582     destination codeset will be automatically replaced by common 7bit
583     character representations. This should make some UTF8 encoded
584     text passages a bit more readable in case they contain punctation
585     and similar generic characters which can't be directly mapped. Please
586     note, however, that this is still work in progress and that the
587     replacement list should be enhanced by having a look what chars can be
588     mapped.
589   * misc: updated the build environment to take a Makefile.dep dependency
590     file into account.
592 2008-06-24  Jens Langner <Jens.Langner@light-speed.de>
594   * misc: fixed broken build and renamed the gluecode lib directory name.
596 2008-06-24  Ilkka Lehtoranta <ilkleht@isoveli.org>
598   * libcodesets.a: added MorphOS glue lib to developers dir.
599   * init.c: we must use localised Strnicmp() string comparison routine to
600     support supplement characters properly.
601   * init.c: added localised chech written in local charset (MorphOS uses
602     localised language names).
604 2008-04-15  Thore Böckelmann <tboeckel@gmx.de>
606   * developer/examples/vastubs.c, developer/examples/makefile.os3: added
607     vararg stubs for OS3 to be able to link against clib2.
609 2007-12-26  Ilkka Lehtoranta <ilkleht@isoveli.org>
611   * src/init.c: the system default charset is now identified by using
612     GetKeymapCodepage() function on MorphOS 2.0.
614 #### 6.5 RELEASE #########################################################
616 2007-12-18  Jens Langner <Jens.Langner@light-speed.de>
618   * misc: preparations for upcoming v6.5 release.
619   * docs: added the missing documentation about the CodesetsFreeVecPooled()
620     function and corrected the examples accordingly. This should fix
621     fix bug #1823214.
623 2007-11-25  Matthias Rustler <mrustler@gmx.de>
625   * misc: ported sources to AROS. The final build is currently only
626     available with the AROS project itself and this is still work in
627     progress.
629 2007-09-05  Thore Böckelmann <tboeckel@gmx.de>
631   * codesets.c: fixed a signedness warning.
632   * codesets.c: changed all CSA_SourceLen occurences to default to the string
633     length of the given CSA_Source. Additionally CSA_Source is checked to be a
634     valid pointer. A NULL pointer will result in a length of zero.
635   * codesets.doc: updated the docs to reflect the meaning of CSA_SourceLen.
637 2007-08-20  Jens Langner <Jens.Langner@light-speed.de>
639   * libinit.c: adapted library initialization interface to match the
640     changes done in e.g. TextEditor.mcc and which should mainly fix stack
641     related issues on MorphOS systems.
643 #### 6.4 RELEASE #########################################################
645 2007-07-17  Thore Böckelmann <tboeckel@gmx.de>
647   * libinit.c: we use inline assembler for defining a new generic
648     stackswap_call() function that will be used to surround the initBase()
649     call by StackSwap() uses. This inline assembler should guarantee that
650     the function will not be inlined by the compiler and work properly on
651     all different supported platforms.
653 2007-07-04  Thore Böckelmann <tboeckel@gmx.de>
655   * libinit.c: the StackSwapStruct is now placed on the stack instead of
656     allocating it in one block with the new stack itself, as that caused instant
657     crashes.
659 2007-07-04  Jens Langner <Jens.Langner@light-speed.de>
661   * codesets.c: CSA_ErrPtr can now be specified in the CodesetsUTF8ToStrA()
662     function to get informed about the amount of not convertable characters
663     found during the conversion. This fullfils feature request #1724860.
664   * libinit.c: initBase() will now be called in LibInit() again as this is
665     the smoother variant. But a StackSwap() construct protects us from stack
666     overruns on OS3/MOS machines.
668 2007-07-01  Jens Langner <Jens.Langner@light-speed.de>
670   * libinit.c: reworked library manager interface to use inline asm-based obtain
671     and release functions according to the latest output of idltool 52.7
672   * codesets.doc: applied patch for CodesetsUTF8ToStrA() function kindly provided
673     by Steffen Gutmann.
675 2007-06-13  Thore Böckelmann <tboeckel@gmx.de>
677   * debug.c: unified the _DPRINTF() functions for all platforms.
679 2007-06-10  Jens Langner <Jens.Langner@light-speed.de>
681   * #?/Makefile: minor update/optimization on Makefiles.
682   * libinit.c: partly reintroduced the initialization of codesets.library in
683     LibOpen() via a seperate init locking variable due to occuring stack issues
684     on OS3.
685   * debug.c: removed <proto/intuition.h> as it isn't required at all.
687 2007-06-09  Jens Langner <Jens.Langner@light-speed.de>
689   * libinit.c, misc: reworked library init code to call the initBase/freeBase()
690     function in the respective LibInit/LibExpunge() function instead and just deal
691     with the open counter and the late expunge flag in the LibOpen/LibClose()
692     functions. This should make the library initialization more clear and
693     hopefully also less error prone.
695 2007-06-05  Thore Böckelmann <tboeckel@gmx.de>
697   * debug.c: fixed the variable parsing and the final output of the debug flags.
698   * developer/examples/makefile.os4: removed the -pipe option from the command
699     line as the OS4 native GCC does not support this yet.
701 2007-05-24  Thore Böckelmann <tboeckel@gmx.de>
703   * libinit.c: the open counter is now bump as first action in LibOpen(), right
704     before calling baseInit(). baseInit() may scan some directories which may
705     take an unpredictable amount of time. While this happens the system may
706     invoke LibExpunge() which will immediately remove the library again from the
707     system, becasue the open counter is still zero. This should fix the random
708     crashes that some people were experiencing. Maybe a semaphore protected
709     LibExpunge() could do the same...
711 #### 6.3 RELEASE #########################################################
713 2007-01-27  Jens Langner <Jens.Langner@light-speed.de>
715   * Makefile: replaced the single target makefiles with a general Makefile
716     that contains HOST and TARGET os identification code via 'uname'.
717     This way we can easily compile codesets.library with a single makefile
718     for all our platforms.
719   * misc: bumped the year to 2007
721 2007-01-11  Ilkka Lehtoranta <ilkleht@isoveli.org>
723   * base64.c: fixed bug #1608004 where b64 encoder never null terminated
724     the output string (when encoding to a string buffer).
726 2006-12-04  Jens Langner <Jens.Langner@light-speed.de>
728   * codesets.c: added alternative names to all ISO based codeset names as
729     some applications might want to query for these abbreviations instead.
730   * misc: fixed all still pending compiler warnings
732 2006-09-20  Jens Langner <Jens.Langner@light-speed.de>
734   * makefile.#?: added -Wwrite-string warning option to let the compiler
735     more easily find const/non-const issues.
736   * include/SDI_#?: update the sdi headers to latest versions.
737   * include/interfaces: fixed minor bug #1560515 where the interface
738     definition was slightly wrong.
740 2006-09-06  Jens Langner <Jens.Langner@light-speed.de>
742   * developer/include/inline: added a VBCC inline version of our current
743     codesets API.
745 #### 6.2 RELEASE #########################################################
747 2006-05-20  Jens Langner <Jens.Langner@light-speed.de>
749   * misc: reworked the whole API of the CodesetsFindBestA() function which
750     was more or less unused until today. The function now only accepts a
751     variable tagitem list. All former fixed arguments have to be set via
752     TagItems now. This should make the function more flexible for the
753     future. In addition, I added the cyrillic codeset autodetection code
754     kindly provided by Alexey Ivanov. codesets.library can now be used
755     together with the new CSA_CodesetsFamily attribute to specify the
756     family to which against the supplied text should be matched. This will
757     also allow to add more different codeset families in future to the
758     autodetection. Revised the autodocs and includes of CodesetsFindBest()
759     accordingly.
761 2006-04-11  Jens Langner <Jens.Langner@light-speed.de>
763   * Makefile.os4, libinit.c: reworked the OS4 library interface to
764     cleanly compile with newlib instead of clib2. Future OS4 version will
765     be built for newlib only as that is the standard runtime library for
766     AmigaOS4.
768 2006-04-05  Jens Langner <Jens.Langner@light-speed.de>
770   * libinit.c: slightly reworked the library init/expunge code to act a
771     bit more robust and don't use any semaphore during the library expunge
772     phase which in fact should cure the crashing on MorphOS during
773     expunging of the library.
775 #### 6.1 RELEASE #########################################################
777 2006-03-27  Jens Langner <Jens.Langner@light-speed.de>
779   * codesets.c: replaced the underscore char '_' use for an unknown char
780     during an UTF-8 conversion by a questionmark '?' as this might be
781     a more proper replacement and it doesn't trigger YAM's text
782     highlighting routines.
783   * codesets.c: slightly reworked the ReadTable() function. Reworked
784     the CodesetsUTF8ToStrA() function to correctly take respect of the
785     CSA_SourceLen attribute as documented. Previously it always
786     converted until strlen(src). Now in case the SourceLen is specified
787     it will stop converting the UTF8 string.
788   * libinit.c, base.h: moved the internal charset table initialization
789     routine from the LibInit() function to the first call of the
790     LibOpen(). This in fact should fix the various strange crash bugs
791     reported since the release of 6.0.
792   * init.c: changed the library base definitions to use "extern" and
793     also define "__UtilityBase" to please constraints of clib2.
795 2006-03-14  Jens Langner <Jens.Langner@light-speed.de>
797   * misc: switched from CVS to the new SVN (subversion) services of
798     sf.net. Should should definitly increase our project's flexibility.
800 2006-02-28  Jens Langner <Jens.Langner@light-speed.de>
802   * utils.c: removed the unnecessary snprintf()/sprintf() stuff as it
803     is not required anymore.
804   * codesets.c: fixed some minor compiler warnings and added some more
805     debug output.
806   * include/SDI_lib.h: updated to latest SDI_lib.h, which fixes some
807     compiler issues with GCC3+ under OS3.
809 #### 6.0 RELEASE #########################################################
811 2006-02-25  Jens Langner <Jens.Langner@light-speed.de>
813   * misc: final 6.0 release preparations.
814   * codesets.doc: updated the autodocs according to our latest changes
815     sind the open-source release of the library. Added some common
816     examples and also restructed it.
817   * codesets.c: changed all "struct MinList *" related functions to use
818     the newly defined "struct codesetList *" instead. This new type
819     instead of the public MinList type keeps those functions more
820     flexible in future.
821   * codesets.c: changed CodesetsListDelete() to be a tagitem receiving
822     function. This should make it much more usable in future.
823   * codesets.c: modified all CodesetsListX() functions to return a
824     boolean value to signal if an operating succeeded or not.
825   * libraries/codesets.h: changed all tag items to carry the shortcut
826     CSA instead of the long CODESETSA_XXXX string. This should make the
827     use of codesets.library more intuitive.
829 2006-02-21  Jens Langner <Jens.Langner@light-speed.de>
831   * codesets.c: changed the scandir function to use ExAll() instead
832     of using the FileInfoBlock structures. This should be slightly
833     faster and more consistent.
834   * codesets.c: replaced the previously added internal private
835     codeset list management functions with a more transparent
836     approach using separate functions (CodesetsListCreateA(),
837     CodesetsListDelete(), etc.). Now a user may generate an
838     unlimited number of own private codesets lists allowing him
839     to load additional codesets on runtime from either a directory,
840     file or already existing codesets.
842 2006-02-15  Jens Langner <Jens.Langner@light-speed.de>
844   * codesets.c: added a new internal "findPrivateCodesetList()"
845     function and made CodesetsFindA()/CodesetsFindBestA() aware of
846     the newly added CODESETSA_RefTask attribute which will allow a
847     user to directly specify the referencing task for searching for
848     a private codesets list. This in fact may only be used in
849     multithreaded applications where functions like CodesetsFindA()
850     are used from a different task/thread than the OpenLibrary()
851     of codesets.library was done.
853 2006-02-14  Jens Langner <Jens.Langner@light-speed.de>
855   * misc: implemented a private codeset management facility. Now
856     codeset.library will automatically scan an eventually existing
857     PROGDIR:Charsets and if present will load those codesets in a
858     per-task private list of codesets which will be added to the
859     global list of supported codesets as well.
860   * misc: implemented new CodesetsConvertStrA() library function which
861     will allow to specify a source and destination codeset as well as
862     a source string. The source string is then automatically converted
863     to the supplied destination string. This in turn should give a
864     plenty transparent method to convert strings from one codeset
865     to another.
866   * added the UTF-8 codeset to the internal list of supported codesets.
867     However, as the UTF-8 codeset is a very central codeset it is
868     treated special in such case that if UTF8Create() is used with a
869     string that is already encoded in UTF8, false will be returned.
871 2005-12-16  Jens Langner <Jens.Langner@light-speed.de>
873   * init.c: changed the system default charset identification routines
874     to use the GetDiskFontCtrl() function on AmigaOS4 to find out
875     the currently active system charset. In addition, if this
876     identification fails it will try to find out the charset by falling
877     back to checking ENV:CHARSET, then using ENV:LANGUAGE to parse ther
878     internal language<>codeset list and if this also fails it will
879     directly use locale.library to find out the language to check
880     our own internal fallback tables for default charset<>language
881     mapping.
882   * codesets.c: if running on AmigaOS4, codesets.library will now
883     automatically query diskfont.library for the existing codesets
884     and also load all existing mapping tables accordingly. It will
885     also check if all internally known codesets are already present
886     and if one of it was not loaded through diskfont.library, the
887     internal mapping tables will be used as well.
888   * debug.c,h: added a whole debugging output system adapted and
889     relicensed from the YAM project. Now an environment variable
890     can be usd (ENV:codesets.library.debug) to place debugging
891     tags and allow to differniate which output should be displayed
892     during runtime and which one not. This should hopefully make
893     the debugging of the library much more easier.
895 2005-12-14  Jens Langner <Jens.Langner@light-speed.de>
897   * codesets.c, codesets_table.h: updated internal codesets
898     implementations in accordance to the latest implementation in
899     SimpleMail. Now codesets.library also supports the Amiga-1251
900     and ISO-8859-16.
901   * misc: did some general housekeeping code cleanups.
903 2005-12-11  Jens Langner <Jens.Langner@light-speed.de>
905   * developer/examples: ported the demo1.c application to all our
906     supported platforms
907   * include/SDI_*.h: update SDI headers to latest versions.
909 2005-12-08  Jens Langner <Jens.Langner@light-speed.de>
911   * bumped version to v6 as the GCC/OS4 porting may introduce some
912     oddities which we might eliminate during the v6 release cycle.
913     Please note that this first OS3/GCC and OS4 porting effort may
914     still contain some oddities here and there as large portions are
915     still untested. However, we may have some time to fix step by step
916     until we can prepare a v6.0 release.
917   * got rid of all common compiler warnings which should make bug
918     hunting much more easier.
919   * restructed sources to use othe latest SDI-headers for easily
920     maintaining the sources for all three platforms without
921     introducing heaps to #ifdef's.
922   * dropped all "register" attribute usages as modern compilers like
923     GCC normally know where to put variables on registers and where not
924     so these attributes are anyway not necessary.
925   * dropped smakefile and all 68k ASM parts as we are moving towards
926     building with GCC for all targets.
927   * restructed the build environment of codesets.library to use
928     GCC for all three major platforms (OS3/OS4/MOS). Also dropped
929     the SAS/C build process. Sorry, but SAS/C is really way too old
930     and too buggy to still be considered a sensible compiler and
931     maintaining codesets.library for the very same compiler should
932     eliminate some problems in future, too.
933   * partly applied OS4 porting patch supplied by Alexandre Balaban.
935 2005-11-23  Alfonso Ranieri <alforan@tin.it>
937   * initial checkin of LGPLed sources