fill ()
function allows to fill a template string with
parameters (Section 18.7)
fileexists ()
function allows to check for file
existence (Section 21.8)
An unititialized variable could lead to empty Makefiles even in presence of source files.
verbatim () function couldn't handle absolute filenames.
random numbers generator: random ()
(Section 21.7);
Since 1.7 release Cows-mkgen can work in standard or 'fast' mode. In standard mode
Cows-mkgen follows the include ()
statements while in fast
mode it simply tracks dependencies.
This was a problem since including a non-existing file would lead to a wrong Makefile in fast mode (in standard mode Cows-mkgen would exit with an error when trying to open the file).
Now, Cows-mkgen checks for files existence in fast mode.
In fast mode a cows source file without <cows> tags can lead to wrong Makefiles: now in such cases a warning is raised.
Fixed build failure in systems without getopt_long ()
(e.g. FreeBSD 4.x).
Added an experimental fast scanning mode for Cows-mkgen. This lowers by an order of magnitude the time needed to create Makefiles. Only needed for very large sites consisting in thousand of pages.
Invalid parameters in substring ()
function could result
in segmentation fault in the Cows interpreter.
date ()
(Section 19.1) and fdate ()
(Section 19.2) functions
display time information (hours, minutes, seconds).
Deprecated C++ functions replaced with ANSI C++ ones.
This is mainly a transition release. G-Cows development has moved from Linux to FreeBSD and G-Cows manual now uses SGML. This is the last bug fix release with no extra features.
A memory leak leaded to memory wastes during the creation of syntax trees.
Wrong data type declaration in lib/file_utils.C created problems on some 64-bit systems (thank to Darius Hardy for pointing out the problem and suggesting the solution)
The tokenize ()
function returned an empty array when
the separator string wasn't found. Now, it correctly returns an array having the input
string as its only element.
When including a script having a single line comment as its last line, not followed by an end-of-line, both cows and cows-mkgen raised an error. Now an end-of-line is added to the input flow.
A memory leak leaded to big memory wastes during the creation of syntax trees.
Added three array functions: push ()
, delete ()
, join ()
.
Site prefix inside Makefile generated by cows-mkgen is now defined as a variable.
When using build-in support for multilingual sites and the '--prefix' option or corresponding 'prefix' directive inside Makefile.cm Cows-mkgen created wrong rules (e.g. /main/about/it/what.html instead of /it/main/about/what.html).
Added more string functions: string support was very poor until this version. Now, the most common operations for searching and modifying strings are supported.
Besides the description of new features, the second part of the tutorial has finally been written.
The 'Type Mode' (Chapter 22) now allows to write HTML code with additional expressions into a variable. This is very useful if you want to store large amounts of text in a variable, and use it later in you script. Until now, 'Type Mode' could only be used to write directly into output file.
The array returned by the tokenize ()
function (Section 18.4) couldn't be used directly since tokenize
("string", "token") [index] raised an error. The only way to work around this bug was to
store the array in a variable (e.g. tmp[ ] = tokenize ("String","token")) and extract the
needed element as tmp[3]. The bug is fixed in G-Cows 1.1.
The missing script used by the build system was outdated. This was not a critical issue since only resulted in a warning during compilation of source package.
Error messages occurring before a string spanning more lines reported the whole string and were very difficult to read. Now, only the first line of the string is displayed.
When a file was included without parameters, _argv (Section 17.2.1) was a string variable storing file name. Now, it is correctly an array consisting in a single string element storing file name.
Files with unwanted unclosed cows-tags created a lot of problems to Cows-mkgen: this program scans a whole directory tree and the error caused by the unclosed tag could be raised several files after. Now, Cows-mkgen raise a warning as it find an unclosed tag. Then, it's up to you see if you forgot to close the tag or - for some obscure reasons - you are splitting a single script within two files.
The first release in the 1.x series.
This manual can be downloaded from http://www.g-cows.org/.