4 ========================================================================
6 The ultimate catalog processor and source generator
8 (C) 1993-1999 by Jochen Wiedmann and Marcin Orlowski
9 (C) 2002-2006 by the FlexCat Open Source Team
11 ========================================================================
15 * FlexCat 2.7 (DD.MM.2006)
17 - Improved source code portability. <Pavel>
19 - Makefile improved to work on every system, both Amiga and non-Amiga.
22 - Added MorphOS compatibility. <Pavel>
24 - Added Greek and Turkish localizations. <Pavel>
26 - Added Storm C compatibility. <Pavel>
28 - Localization files revised and brought up to date. <Pavel>
30 - Added "Hardcode_c.sd" template. <Pavel>
32 - Fixed bug: "Extra characters" was always reported at "#language"
33 line when using the NOLANGTOLOWER option. <Pavel>
35 - Fixed bug: missing preferences file led to incorrect settings due
36 to a bug in the preferences loading routine. <Pavel>
39 * FlexCat 2.6.6 (15.2.2003)
41 - Revised the compatibility for non-Amiga systems. <Ondrej>
43 - Cleaned up sources and made them sexier. <Ondrej>
45 - Removed some obsolete code. <Ondrej>
47 - If FlexCat is used to generate any source, the basename is needed
48 but sometimes is not defined. Now it is determined only for this
49 sort of operation. <Ondrej>
51 - More binaries: Amiga m68k, Amiga ppc, Linux i386, Linux m68k,
52 Linux ppc, Windows. <Ondrej>
54 - Changed behaviour of #version in catalog description. Only the
55 version number can be specified, no revision or other numbers are
56 allowed anymore. <Ondrej>
58 - Fixed compatibility with GCC on non-Amiga systems. Sources are
59 compilable now. <Ondrej>
61 - If language environment is not specified (like on Un*x systems),
62 the "nolanguage" string is taken as language. <Ondrej>
64 - Changed compare function (stricmp, strnicmp) to Stricmp and Strnicmp,
65 and implemented from GCC project libiberty. <Ondrej>
67 - Changed default localization to macro which is defined in flexcat.h.
69 - Fixed nasty bug for compatibility with CatComp when using the syntax
70 "FlexCat test.cd test.ct CATALOG test.catalog". <Ondrej>
73 * FlexCat 2.6.5 (23.1.2003)
75 - Static definition of string inside the function createct() totally
76 damaged some other strings. <Ondrej>
78 - Added support for #version and #basename directives. This means
79 that if the .cd file contains the #basename, both the .ct and .catalog
80 files can be generated automatically by just omitting any reference
81 to them at the command line. #basename is the base name of the
82 catalog; for example, if basename is defined as "MyProg1", the
83 translation "MyProg1.ct" can be easily created, with "MyProg1.catalog"
84 as resulting catalog. In other words, if #basename is defined in a
87 -> "FlexCat test.cd NEWCTFILE" will generate the file as
88 <#basename>_<$language>.ct, with the name of the catalog
89 inserted in the ## version tag ("$VER: <#basename>.ct")
91 -> "FlexCat test.cd test.ct CATALOG" will generate the file
94 #version is a string representing the version number which is
95 inserted in the .ct file. If #version is defined in a .ct file
96 and a new .ct file is created, the #version is inserted in the
97 ## version tag as version string.
99 - Added support for AmigaOS 4.0 codeset fetching from locale structure
100 of the default locale. It's triggered automatically when
101 locale.library > V47.
103 - Added #header in catalog description as not faulty directive.
105 - Added support for the #lengthbytes directive.
107 - Added support for hexadecimal numbering of string IDs.
109 - Added two new strings to catalog.
112 * FlexCat 2.6.4 (7.1.2003)
114 - All the generated files now have the execute ("e") bit cleared
117 - #ifdef/#endif directives found in the .cd files are now inserted
118 as comments in the .ct file.
120 - Added Magyar translation, thanks to Marton Dosa. <Ondrej>
123 * FlexCat 2.6.3 (28.11.2002)
125 - Now ignores all lines in .cd file that start with "#ifdef" or "#endif",
126 which are used for creating C headers and sources from .cd file.
129 * FlexCat 2.6.2 (20.11.2002)
131 - Added new parameter NOAUTODATE which prevents FlexCat from inserting
132 the current date in the $VER: string of the catalog; the date
133 specified in the .ct file will be used instead.
136 * FlexCat 2.6.1 (18.11.2002)
138 - FlexCat now recognizes the 'codeset' parameter in .ct files, which
139 is needed for the AmigaOS 4 translation process. <Ondrej>
142 * FlexCat 2.6 (6.8.2002)
144 - FlexCat now updates the date when creating the .catalog file from
145 the .ct, no need for $TODAY anymore.
147 - FlexCat now even corrects the filename in the version string:
148 '<file>.ct' becomes '<file>.catalog'.
150 - Some fixes to the English docs.
152 - Docs can now be compiled from the makefile.
154 - When creating a blank .ct from a .cd file, the version gets copied
155 from the .cd file and the wrong warning is removed. <Stefan>
158 * FlexCat 2.5b (19.3.2002)
160 - Added GG patchfile, thanks to Martin Blom <martin@blom.org>.
163 * FlexCat 2.5 (14.2.2002)
165 - When using $TODAY, the date was one day ahead (tomorrow ;).
166 Fixed by replacing gmtime() with localtime(). <DMX>
169 * FlexCat 2.4 (28.11.1999)
171 - FlexCat is now portable! Thanks to the Hardcode.sd{tm} unique
172 technology, you can now try to compile FlexCat under any OS
173 (both big and little endians are supported). Read "developer.readme"
176 - When $TODAY was used, sometimes garbage could be written instead of
177 the $VER: string due to a memory block being freed before being
180 - Added ##rem command to .sd file handling. As you have probably
181 guessed, it's just a remark. The goal (at least for me) is that
182 ##rem lines won't appear in source code created from the .sd file.
184 - Added manual catalog open/close for compilers that lack autoinit/
187 - Updated French translation, thanks to Hervé Dupont
188 <herve.dupont@nordnet.fr>.
190 - Added new NOSPACE switch to avoid the extra space char usually
191 inserted by FlexCat to separate the comment introducer ';' from
194 - Source descriptor for HSPascal by Artur Karpunin <woody8@kki.net.pl>
197 - New archive "FlexCat_Demos", full ;-) of example source code for
198 various programming languages; C, HSPascal and ARexx examples are
201 - Contents of "Contribution" drawer moved to "FlexCat_Demos" archive.
203 - Added detailed tutorial (in Polish for now) about the whole
204 localization process (incl. examples).
207 * FlexCat 2.3 (19.5.1999)
209 - The trailing ellipsis detector was broken (reported by Marco De Vitis
210 <marco.dvv@flashnet.it>).
212 - Seems that I updated the English manual for 2.2, but forgot to create
213 a .guide file out of the texinfo source.
215 - Fixed manual to say "1999" instead of "1998", and fixed .cd file to
216 show proper arguments when help ("FlexCat ?") is requested (thanks
217 to Hervé Dupont <herve.dupont@nordnet.fr>).
219 - Added Spanish translation by Sergio Martín Rodríguez <smartin@kaos.es>
220 and Tomás J. Cantó <tjcanto@redestb.es>.
223 * FlexCat 2.2 (14.4.1999)
225 - FlexCat can now copy the "***NEW***" markers (or whatever replacement
226 has been defined by the user) from the old .ct file to the new one
227 while upgrading an already existing translation ("FlexCat CD cd_file
228 CT old_translation NEWCTFILE new_translation"); upgrading an unfinished
229 translation should be now a much smoother process. To complement this
230 new feature, two new options have been added (and made available in
231 the preferences as well): COPYMSGNEW/S (not used by default to avoid
232 possible problems) and OLDMSGNEW/K, that sets the string that marked
233 new strings in the old .ct file (defaults to "***NEW***", so you
234 don't need to specify it unless you used a different marker than the
235 default). NOTE: FlexCat automatically appends "; " to the string!
236 Thanks to Christian Hattemer <Chris@heaven.riednet.wh.tu-darmstadt.de>
239 - The long awaited check for trailing ellipsis is now implemented.
241 - FlexCat now expands the above feature, and checks for trailing spaces,
242 as it appears to be the most commonly overlooked trailing character
245 - Added missing #endif in source code, that disallowed easy StormC or
246 non-Amiga compilations (reported by Christian Hattemer).
248 - Every line of original string that FlexCat puts in the created .ct
249 file is now prefixed by "; ". Previously, only the first line had
250 a space between the semicolon and the main text (reported by
253 - Source descriptors and other FlexCat related goodies for StormC
254 by Christian Hattemer are now available from any Aminet mirror
255 (dev/c/Storm_FlexCat.lha) or from his homepage:
256 http://www.riednet.wh.tu-darmstadt.de/~chris/
258 - New Slovenian translation, by Damir Arh <damir.arh@guest.arnes.si>.
262 -> Swedish, by Magnus Holmgren <lear@algonet.se>
263 -> Serbian, by Ljubomir Jankovic <lurch@beotel.yu>
264 -> Dutch, by Leon Woestenberg <leon@stack.nl>
265 -> German, by Christian Hattemer
266 <Chris@heaven.riednet.wh.tu-darmstadt.de>
268 - English manual updated to match the latest changes.
271 * FlexCat 2.1 (11.10.1998)
273 - New source descriptor for E programmers (E32e.sd) by Sven Steiniger
274 <ss37@irz301.inf.tu-dresden.de>.
276 - Fixed the problem that C:Version had with FlexCat (because of the many
277 internal $VERsion strings, the one that mattered to c:Version wasn't
278 the first one in the executable file).
280 - The SDDIR path defined in FlexCat.prefs was always ignored. Fixed.
281 (Reported by Magnus Holmgren).
283 - Improved FLUSH function, which now flushes catalogs only. (Suggested
286 - FlexCat now adds one space character while writing "old" strings in the
287 .ct file, as CatComp does.
289 - Source code released. See source readme file for more details.
292 * FlexCat 2.0 (25.2.1998)
294 - Unfortunately, 2.0 does not mean any new groundbreaking technology
295 has been implemented; it is just the next version number FlexCat
298 - Added a workaround for problems some people may encounter while
299 creating catalogs for languages with a corrupted conversion table
300 (which is part of the .language driver). FlexCat uses utility.library
301 to convert ##language names to lowercase, which leads to wrong strings
302 with e.g. the Czech language. Use NOLANGTOLOWER (either at the CLI
303 or the prefs) to tell FlexCat not to lowercase the name. But remember
304 to keep it lowercased manually!
306 - FlexCat now operates with buffered I/O. This may increase the overall
307 performance; however, it's not a must, so you can use the NOBUFFEREDIO
308 switch to fall back to the old polling mode. Please test the overall
309 performance and tell me the results! The I/O buffer is now 2048 bytes
312 - While creating a new .ct file, FlexCat takes the contents of the
313 $language system variable as the #language parameter, if possible.
315 - Fixed bug that caused writes to random memory under some very rare
318 - Added ARexx.sd source descriptor, thanks to Kai Norhausen
319 <kn@tribal.line.org>.
321 - Added stuff contributed by users. Look at the contents of the
322 "Contribution" drawer!
324 - Renumbered the version of catalog files. The most recent catalog
325 version is 2.0, 1.x is now outdated.
327 - Updated the French catalog, thanks to Julien `GiZmO' Wilk
330 - Finnish translation updated by Mika Lundell <c71829@uwasa.fi>.
332 - Dutch translation by Leon Woestenberg <leon@stack.nl>.
334 - Norwegian translation thanks to Eivind Olsen <eivindo@bgnett.no>.
336 - Italian catalog updated by Luca Nora <ln546991@silab.dsi.unimi.it>
337 and Giovanni Addabbo <gaddabbo@imar.it>.
339 - Portuguese translation updated by Frederico Borges
340 <famb@mail.telepac.pt> and Alexandre Gabriel <chryse@mail.telepac.pt>.
342 - New Spanish translation by Marcos Broc <amiga187@arrakis.es> and
343 Samuel Aguilera <slyguy@mx2.redestb.es>.
345 - Croatian translation by Mladen Ili¹inoviæ <milisino@jagor.srce.hr>.
348 * FlexCat 1.9 (1.8.1997)
350 - Now you can use special $TODAY attribute in your $VER string - when
351 the catalog is created, $TODAY will be replaced by the current date
352 (note, however, that only the first occurance will be replaced,
353 and the string is CASE SENSITIVE!). If you want your version
354 strings to always get a recent date, use something like
355 "$VER: test.catalog 3.0 ($TODAY)"
357 - Added FlexCat preferences. To define your own defaults, set the
358 environment variable "flexcat.prefs" with the contents matching
359 the following template:
361 SDDIR/K,MSG_NEW/K,WARNCTGAPS/S,NOOPTIM/S,FILL/S,FLUSH/S,NOBEEP/S,
364 Please note that FlexCat uses ReadArgs() to parse the preferences, so
365 you must place all the items in one line.
367 - If you use FlexCat to update old translations, you probably were
368 missing some sort of marker to let you easily spot the new strings.
369 This is now implemented - by default "***NEW***" is used, but you
370 can change it by using the FlexCat preferences.
372 - The QUIET switch used to suppress error messages. Fixed.
374 - New C source descriptor Cat2h_?.sd. Read the manual or
375 Lib/Cat2h.readme for more information.
377 - Version of updated catalogs bumped to 2.5.
379 - Portugese catalog, thanks to Frederico Borges <famb@mail.telepac.pt>
380 and Alexandre Gabriel <chryse@mail.telepac.pt>.
382 - Swedish translation of the FlexCat manual, thanks to Magnus Holmgren
385 - Spanish translation reworked by Marcos Broc <amiga187@arrakis.es> and
386 Samuel Aguilera <slyguy92@arrakis.es>.
388 - Now FlexCat calls DisplayBeep() when any error or warning happens
389 (but don't worry, it's smart enough, so you won't experience any
390 Beep() bombing ;). You can shut it up with the NOBEEP switch if you
393 - Previous releases had problems with comment lines ending with \'s,
394 which made FlexCat think it was a multiline string. It isn't that
397 - You can now use octal, decimal and hexadecimal (e.g. "0x20") numbers
398 for all the FlexCat numeric arguments (like ##version) as well as
399 for (ID/MIN/MAX), ##codeset and others.
401 - New FLUSH switch added. If enabled, all unused catalogs (but also
402 libraries, fonts, device drivers, etc.) will be flushed from memory
403 whenever a new catalog is written to disk. This means that FLUSH
404 only works when the CATALOG keyword is used as well.
406 - New C source descriptors. catcomp_h.sd creates sources (almost)
407 identical to CatComp's, but expanded for multi-catalog support.
408 With this descriptor you can easily handle more than one catalog
409 in your program. NOTE: for compatibility reasons, other descriptors
410 remain unchanged (however, additional multicatalog versions may appear
411 in the next release).
413 - FlexCat does not accept an empty ##language argument any more.
415 - New FILL switch. This feature is highly useful for translators,
416 and probably for them only. Normally, when you're working on a
417 new translation, some of the strings remain untranslated because of
418 the very nature of a "work in progress". Unfortunately all catalog
419 tools write all these empty strings into the catalog file, which will
420 cause empty buttons, menus or simmilar things to appear whenever you
421 check your unfinished translation with the program, which isn't very
422 nice and may even lead to crashes and other unexpected results.
423 Using FILL you can force FlexCat to fill all the empty slots
424 (strings from .ct file) with the original string taken from the
425 catalog description, avoiding empty GUIs, etc. NOTE: this option is
426 only for testing purposes. Final catalogs should of course always
427 be created without using this switch!
429 - English manual is now up to date.
431 - Added %a, %t and %z operands for source descriptors. See (probably
432 English and Swedish only, for now) the manual for detailed information.
435 * FlexCat 1.8 (17.2.1997)
437 - Fixed bug causing bad handling of octal numbers. Now FlexCat can
438 tell \0333 apart from \333 and treats it as [ESC][3]. It will also
439 correctly handle octal numbers shorter than 3 digits, e.g. \33
440 will be taken as \033. Be careful, as \333 will not be taken
441 as [ESC][3] as it's a valid single octal number!
443 - Added new NOOPTIM switch.
445 - Now FlexCat is able to handle and parse texts like "This is a test\\"
446 without any problems, which was previously taken as multiline
447 text due to the trailing '\'. Now FlexCat is smart enough
448 (CatComp isn't yet ;-) to cope with it.
450 - Added support for string ID incrementors, defined as (+VALUE//).
452 - Now allows you to create a translation file even if the .cd contains
453 neither ##version nor ##rcsid. In this case it will create a default
454 header as CatComp does (the "Missing catalog translation version... "
455 message should now be taken as a warning, not as an error).
457 - Added the new QUIET switch.
459 - Additional catalogs from members of the Amiga Translators' Organization
460 <http://ato.vapor.com/>:
462 -> Serbian translation by Ljubomir Jankovic
463 <lurch@afrodita.rcub.bg.ac.yu>
464 -> Czech translation by Vit Sindlar <xsindl00@stud.fee.vutbr.cz>
465 -> Svedish translation by Magnus Holmgren <lear@algonet.se> and
466 Hjalmar Wikholm <hjalle@canit.se>
467 -> Finnish translation updated by Mika Lundell <c71829@uwasa.fi>
468 -> Italian translation reworked by Luca Nora
469 <ln546991@silab.dsi.unimi.it> and Giovanni Addabbo
473 * FlexCat 1.7 (??.??.????)
475 - Added "#rcsid" and "#name".
477 - Fixed two Enforcer hits which appeared when the .ct file had gaps.
480 * FlexCat 1.6 (??.??.????)
482 - Removed GetString() calls due to the new C source descriptions.
485 * FlexCat 1.5 (??.??.????)
487 - Added new WARNCTGAPS option.
489 - Added #chunk to catalog translations.
492 * FlexCat 1.4 (??.??.????)
494 - Added the environment variable FLEXCAT_SDDIR. It uses AutoC_c.sd
495 and AutoC_h.sd now and is thus compilable with DICE and SAS/C only.
497 - Fixed a problem in stringtype Oberon: binary characters should be
498 like \000 and not \0.
500 - Fixed a problem in stringtype E: \e was written as \033.
502 - Added %f* (source description filename) and %o* (source filename)
503 to source descriptions.
506 * FlexCat 1.3 (??.??.????)
508 - Fixed a bug that caused FlexCat to hang if a catalog translation
509 was updated and a string was missing in the catalog description.
511 - Fixed a bug that caused FlexCat to create invalid catalogs,
512 probably. Looks like locale.library expects a completely different
513 behaviour when padding version and language strings and the real
516 - Added %e to source descriptions.
519 * FlexCat 1.2 (??.??.????)
521 - Fixed a bug in the E source generator: " was converted into \" and '
525 * FlexCat 1.1 (??.??.????)
527 - Fixed two bugs: FlexCat didn't notice if an ID was defined twice
528 (the C compiler did later...) and using language strings like
529 "français" did not work because of the cedilla.
531 - Introduced E support, thanks to Lionel Vintenat.
534 * FlexCat 1.01 (??.??.????)
536 - Fixed a bug: the length of the source string was used to check for
537 the stringlen instead of the real stringlen.
540 * FlexCat 1.0 (31.6.1993)
544 ------------------------