1 ----------------------------------------------------------
2 codesets.library - Library for handling different codesets
3 ----------------------------------------------------------
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
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.
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
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
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
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
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/
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
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
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
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.
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
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
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
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
348 2009-04-01 Thore Böckelmann <tboeckel@gmx.de>
350 * libinit.c: fixed broken stackswap_call() prototype for the assembler
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
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
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
388 2009-03-24 Pavel Fedin <sonic.amiga@gmail.com>
390 * codesets.c, convertUTF.c, util.c, lib_protos.h : implemented complete UTF32
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
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
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
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
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
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
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
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
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
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
628 * misc: updated the build environment to take a Makefile.dep dependency
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
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
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
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
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
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
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()
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
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
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
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
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
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
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
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