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