use the new flexcat's source description file
[AROS.git] / tools / flexcat / doc / FlexCat.history
blobd7851328a1088d78d48ff162185f18e04e499d8b
2                                F L E X C A T
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.
20       <Pavel>
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
85       .cd file,
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
92             <#basename>.catalog
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
115       (Amiga only).
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"
174       for details.
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
178       written to.
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/
185       exit functions.
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
192       the comment itself.
194     - Source descriptor for HSPascal by Artur Karpunin <woody8@kki.net.pl>
195       is now available.
197     - New archive "FlexCat_Demos", full ;-) of example source code for
198       various programming languages; C, HSPascal and ARexx examples are
199       recently available.
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>
237       for the suggestion.
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
243       ever...
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
251       Christian Hattemer).
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>.
260     - Updated catalogs:
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
284       by Magnus Holmgren).
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
296       should have...
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
310       long.
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
316       circumstances.
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
328       <wilkj@esiee.fr>.
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,
362            QUIET/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
383       <lear@algonet.se>.
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
391       want.
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
395       dumb now.
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
470             <gaddabbo@imar.net>
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
514       catalog strings.
516     - Added %e to source descriptions.
519   * FlexCat 1.2 (??.??.????)
521     - Fixed a bug in the E source generator: " was converted into \" and '
522       was not converted.
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)
542     Initial release.
544                          ------------------------