1 ----------------------------------------------------------
2 codesets.library - Library for handling different codesets
3 ----------------------------------------------------------
8 2007-12-26 Ilkka Lehtoranta <ilkleht@isoveli.org>
10 * src/init.c: the system default charset is now identified by using
11 GetKeymapCodepage() function on MorphOS 2.0.
13 #### 6.5 RELEASE #########################################################
15 2007-12-18 Jens Langner <Jens.Langner@light-speed.de>
17 * misc: preparations for upcoming v6.5 release.
18 * docs: added the missing documentation about the CodesetsFreeVecPooled()
19 function and corrected the examples accordingly. This should fix
22 2007-11-25 Matthias Rustler <mrustler@gmx.de>
24 * misc: ported sources to AROS. The final build is currently only
25 available with the AROS project itself and this is still work in
28 2007-09-05 Thore Böckelmann <tboeckel@gmx.de>
30 * codesets.c: fixed a signedness warning.
31 * codesets.c: changed all CSA_SourceLen occurences to default to the string
32 length of the given CSA_Source. Additionally CSA_Source is checked to be a
33 valid pointer. A NULL pointer will result in a length of zero.
34 * codesets.doc: updated the docs to reflect the meaning of CSA_SourceLen.
36 2007-08-20 Jens Langner <Jens.Langner@light-speed.de>
38 * libinit.c: adapted library initialization interface to match the
39 changes done in e.g. TextEditor.mcc and which should mainly fix stack
40 related issues on MorphOS systems.
42 #### 6.4 RELEASE #########################################################
44 2007-07-17 Thore Böckelmann <tboeckel@gmx.de>
46 * libinit.c: we use inline assembler for defining a new generic
47 stackswap_call() function that will be used to surround the initBase()
48 call by StackSwap() uses. This inline assembler should guarantee that
49 the function will not be inlined by the compiler and work properly on
50 all different supported platforms.
52 2007-07-04 Thore Böckelmann <tboeckel@gmx.de>
54 * libinit.c: the StackSwapStruct is now placed on the stack instead of
55 allocating it in one block with the new stack itself, as that caused instant
58 2007-07-04 Jens Langner <Jens.Langner@light-speed.de>
60 * codesets.c: CSA_ErrPtr can now be specified in the CodesetsUTF8ToStrA()
61 function to get informed about the amount of not convertable characters
62 found during the conversion. This fullfils feature request #1724860.
63 * libinit.c: initBase() will now be called in LibInit() again as this is
64 the smoother variant. But a StackSwap() construct protects us from stack
65 overruns on OS3/MOS machines.
67 2007-07-01 Jens Langner <Jens.Langner@light-speed.de>
69 * libinit.c: reworked library manager interface to use inline asm-based obtain
70 and release functions according to the latest output of idltool 52.7
71 * codesets.doc: applied patch for CodesetsUTF8ToStrA() function kindly provided
74 2007-06-13 Thore Böckelmann <tboeckel@gmx.de>
76 * debug.c: unified the _DPRINTF() functions for all platforms.
78 2007-06-10 Jens Langner <Jens.Langner@light-speed.de>
80 * #?/Makefile: minor update/optimization on Makefiles.
81 * libinit.c: partly reintroduced the initialization of codesets.library in
82 LibOpen() via a seperate init locking variable due to occuring stack issues
84 * debug.c: removed <proto/intuition.h> as it isn't required at all.
86 2007-06-09 Jens Langner <Jens.Langner@light-speed.de>
88 * libinit.c, misc: reworked library init code to call the initBase/freeBase()
89 function in the respective LibInit/LibExpunge() function instead and just deal
90 with the open counter and the late expunge flag in the LibOpen/LibClose()
91 functions. This should make the library initialization more clear and
92 hopefully also less error prone.
94 2007-06-05 Thore Böckelmann <tboeckel@gmx.de>
96 * debug.c: fixed the variable parsing and the final output of the debug flags.
97 * developer/examples/makefile.os4: removed the -pipe option from the command
98 line as the OS4 native GCC does not support this yet.
100 2007-05-24 Thore Böckelmann <tboeckel@gmx.de>
102 * libinit.c: the open counter is now bump as first action in LibOpen(), right
103 before calling baseInit(). baseInit() may scan some directories which may
104 take an unpredictable amount of time. While this happens the system may
105 invoke LibExpunge() which will immediately remove the library again from the
106 system, becasue the open counter is still zero. This should fix the random
107 crashes that some people were experiencing. Maybe a semaphore protected
108 LibExpunge() could do the same...
110 #### 6.3 RELEASE #########################################################
112 2007-01-27 Jens Langner <Jens.Langner@light-speed.de>
114 * Makefile: replaced the single target makefiles with a general Makefile
115 that contains HOST and TARGET os identification code via 'uname'.
116 This way we can easily compile codesets.library with a single makefile
117 for all our platforms.
118 * misc: bumped the year to 2007
120 2007-01-11 Ilkka Lehtoranta <ilkleht@isoveli.org>
122 * base64.c: fixed bug #1608004 where b64 encoder never null terminated
123 the output string (when encoding to a string buffer).
125 2006-12-04 Jens Langner <Jens.Langner@light-speed.de>
127 * codesets.c: added alternative names to all ISO based codeset names as
128 some applications might want to query for these abbreviations instead.
129 * misc: fixed all still pending compiler warnings
131 2006-09-20 Jens Langner <Jens.Langner@light-speed.de>
133 * makefile.#?: added -Wwrite-string warning option to let the compiler
134 more easily find const/non-const issues.
135 * include/SDI_#?: update the sdi headers to latest versions.
136 * include/interfaces: fixed minor bug #1560515 where the interface
137 definition was slightly wrong.
139 2006-09-06 Jens Langner <Jens.Langner@light-speed.de>
141 * developer/include/inline: added a VBCC inline version of our current
144 #### 6.2 RELEASE #########################################################
146 2006-05-20 Jens Langner <Jens.Langner@light-speed.de>
148 * misc: reworked the whole API of the CodesetsFindBestA() function which
149 was more or less unused until today. The function now only accepts a
150 variable tagitem list. All former fixed arguments have to be set via
151 TagItems now. This should make the function more flexible for the
152 future. In addition, I added the cyrillic codeset autodetection code
153 kindly provided by Alexey Ivanov. codesets.library can now be used
154 together with the new CSA_CodesetsFamily attribute to specify the
155 family to which against the supplied text should be matched. This will
156 also allow to add more different codeset families in future to the
157 autodetection. Revised the autodocs and includes of CodesetsFindBest()
160 2006-04-11 Jens Langner <Jens.Langner@light-speed.de>
162 * Makefile.os4, libinit.c: reworked the OS4 library interface to
163 cleanly compile with newlib instead of clib2. Future OS4 version will
164 be built for newlib only as that is the standard runtime library for
167 2006-04-05 Jens Langner <Jens.Langner@light-speed.de>
169 * libinit.c: slightly reworked the library init/expunge code to act a
170 bit more robust and don't use any semaphore during the library expunge
171 phase which in fact should cure the crashing on MorphOS during
172 expunging of the library.
174 #### 6.1 RELEASE #########################################################
176 2006-03-27 Jens Langner <Jens.Langner@light-speed.de>
178 * codesets.c: replaced the underscore char '_' use for an unknown char
179 during an UTF-8 conversion by a questionmark '?' as this might be
180 a more proper replacement and it doesn't trigger YAM's text
181 highlighting routines.
182 * codesets.c: slightly reworked the ReadTable() function. Reworked
183 the CodesetsUTF8ToStrA() function to correctly take respect of the
184 CSA_SourceLen attribute as documented. Previously it always
185 converted until strlen(src). Now in case the SourceLen is specified
186 it will stop converting the UTF8 string.
187 * libinit.c, base.h: moved the internal charset table initialization
188 routine from the LibInit() function to the first call of the
189 LibOpen(). This in fact should fix the various strange crash bugs
190 reported since the release of 6.0.
191 * init.c: changed the library base definitions to use "extern" and
192 also define "__UtilityBase" to please constraints of clib2.
194 2006-03-14 Jens Langner <Jens.Langner@light-speed.de>
196 * misc: switched from CVS to the new SVN (subversion) services of
197 sf.net. Should should definitly increase our project's flexibility.
199 2006-02-28 Jens Langner <Jens.Langner@light-speed.de>
201 * utils.c: removed the unnecessary snprintf()/sprintf() stuff as it
202 is not required anymore.
203 * codesets.c: fixed some minor compiler warnings and added some more
205 * include/SDI_lib.h: updated to latest SDI_lib.h, which fixes some
206 compiler issues with GCC3+ under OS3.
208 #### 6.0 RELEASE #########################################################
210 2006-02-25 Jens Langner <Jens.Langner@light-speed.de>
212 * misc: final 6.0 release preparations.
213 * codesets.doc: updated the autodocs according to our latest changes
214 sind the open-source release of the library. Added some common
215 examples and also restructed it.
216 * codesets.c: changed all "struct MinList *" related functions to use
217 the newly defined "struct codesetList *" instead. This new type
218 instead of the public MinList type keeps those functions more
220 * codesets.c: changed CodesetsListDelete() to be a tagitem receiving
221 function. This should make it much more usable in future.
222 * codesets.c: modified all CodesetsListX() functions to return a
223 boolean value to signal if an operating succeeded or not.
224 * libraries/codesets.h: changed all tag items to carry the shortcut
225 CSA instead of the long CODESETSA_XXXX string. This should make the
226 use of codesets.library more intuitive.
228 2006-02-21 Jens Langner <Jens.Langner@light-speed.de>
230 * codesets.c: changed the scandir function to use ExAll() instead
231 of using the FileInfoBlock structures. This should be slightly
232 faster and more consistent.
233 * codesets.c: replaced the previously added internal private
234 codeset list management functions with a more transparent
235 approach using separate functions (CodesetsListCreateA(),
236 CodesetsListDelete(), etc.). Now a user may generate an
237 unlimited number of own private codesets lists allowing him
238 to load additional codesets on runtime from either a directory,
239 file or already existing codesets.
241 2006-02-15 Jens Langner <Jens.Langner@light-speed.de>
243 * codesets.c: added a new internal "findPrivateCodesetList()"
244 function and made CodesetsFindA()/CodesetsFindBestA() aware of
245 the newly added CODESETSA_RefTask attribute which will allow a
246 user to directly specify the referencing task for searching for
247 a private codesets list. This in fact may only be used in
248 multithreaded applications where functions like CodesetsFindA()
249 are used from a different task/thread than the OpenLibrary()
250 of codesets.library was done.
252 2006-02-14 Jens Langner <Jens.Langner@light-speed.de>
254 * misc: implemented a private codeset management facility. Now
255 codeset.library will automatically scan an eventually existing
256 PROGDIR:Charsets and if present will load those codesets in a
257 per-task private list of codesets which will be added to the
258 global list of supported codesets as well.
259 * misc: implemented new CodesetsConvertStrA() library function which
260 will allow to specify a source and destination codeset as well as
261 a source string. The source string is then automatically converted
262 to the supplied destination string. This in turn should give a
263 plenty transparent method to convert strings from one codeset
265 * added the UTF-8 codeset to the internal list of supported codesets.
266 However, as the UTF-8 codeset is a very central codeset it is
267 treated special in such case that if UTF8Create() is used with a
268 string that is already encoded in UTF8, false will be returned.
270 2005-12-16 Jens Langner <Jens.Langner@light-speed.de>
272 * init.c: changed the system default charset identification routines
273 to use the GetDiskFontCtrl() function on AmigaOS4 to find out
274 the currently active system charset. In addition, if this
275 identification fails it will try to find out the charset by falling
276 back to checking ENV:CHARSET, then using ENV:LANGUAGE to parse ther
277 internal language<>codeset list and if this also fails it will
278 directly use locale.library to find out the language to check
279 our own internal fallback tables for default charset<>language
281 * codesets.c: if running on AmigaOS4, codesets.library will now
282 automatically query diskfont.library for the existing codesets
283 and also load all existing mapping tables accordingly. It will
284 also check if all internally known codesets are already present
285 and if one of it was not loaded through diskfont.library, the
286 internal mapping tables will be used as well.
287 * debug.c,h: added a whole debugging output system adapted and
288 relicensed from the YAM project. Now an environment variable
289 can be usd (ENV:codesets.library.debug) to place debugging
290 tags and allow to differniate which output should be displayed
291 during runtime and which one not. This should hopefully make
292 the debugging of the library much more easier.
294 2005-12-14 Jens Langner <Jens.Langner@light-speed.de>
296 * codesets.c, codesets_table.h: updated internal codesets
297 implementations in accordance to the latest implementation in
298 SimpleMail. Now codesets.library also supports the Amiga-1251
300 * misc: did some general housekeeping code cleanups.
302 2005-12-11 Jens Langner <Jens.Langner@light-speed.de>
304 * developer/examples: ported the demo1.c application to all our
306 * include/SDI_*.h: update SDI headers to latest versions.
308 2005-12-08 Jens Langner <Jens.Langner@light-speed.de>
310 * bumped version to v6 as the GCC/OS4 porting may introduce some
311 oddities which we might eliminate during the v6 release cycle.
312 Please note that this first OS3/GCC and OS4 porting effort may
313 still contain some oddities here and there as large portions are
314 still untested. However, we may have some time to fix step by step
315 until we can prepare a v6.0 release.
316 * got rid of all common compiler warnings which should make bug
317 hunting much more easier.
318 * restructed sources to use othe latest SDI-headers for easily
319 maintaining the sources for all three platforms without
320 introducing heaps to #ifdef's.
321 * dropped all "register" attribute usages as modern compilers like
322 GCC normally know where to put variables on registers and where not
323 so these attributes are anyway not necessary.
324 * dropped smakefile and all 68k ASM parts as we are moving towards
325 building with GCC for all targets.
326 * restructed the build environment of codesets.library to use
327 GCC for all three major platforms (OS3/OS4/MOS). Also dropped
328 the SAS/C build process. Sorry, but SAS/C is really way too old
329 and too buggy to still be considered a sensible compiler and
330 maintaining codesets.library for the very same compiler should
331 eliminate some problems in future, too.
332 * partly applied OS4 porting patch supplied by Alexandre Balaban.
334 2005-11-23 Alfonso Ranieri <alforan@tin.it>
336 * initial checkin of LGPLed sources