This commit is way too big. Next time split it tool by tool.
All tool sources have been checked with cppcheck & gcc. All correctables
errors/warning have been removed:
* Now uses correct conversion specifiers in printf(), mostly 'u' instead
of 'd' for unsigneds.
* In scanf(), uses systematically a maximum field width, 11 for int,
22 for long int and the appropriate length for char*.
* In strcpy(), no longer uses same array for source & dest, but uses
an intermediate array.
* Remove (or comment) unused variables.
* In C++ files, correct constructors attribute initialisation and
disable copy constructors.
* When possible, correct memory leaks. Some corrections would need a
more intimate knowledge of the source than I do.
* Removed some "gets()" calls.
* In parsers, undeclare yyunput & yyinput when necessary.
* NOT correct variable scope as it may clutter the code (my opinion).
Specific tools remark:
* In <asimut>, comment beginning with "FRAGILE" signals a very ugly
trick: structs passed as losig_list but with only the two first
fields identical.
* In <graal> & <dreal> for char used as table index, uses a cast toward
int, but in <xfsm>, <xgra>, <xsch> & <xvpn> simply declares the
variables int.
* In <cells>, dp_nmux_x1.ap, shrink the ALU2 part of the ALU3 terminals
so they do not collide with neighboring track. Has do to it manually
as Graal refuse to shrink them. The same correction must be done on
other cells for nero/kite dual compliance.
* Cleanup: Remove long time unused tools <pcbs>, <grog>, <gcp>, <genview>,
<growstk>, <ocr> and <vst2xnf>. They may still be recovered by
reverting to the original 'v5.1' tag.
* Change: In <attila>, remove the CVS checkout part and adapt to the
slightly different source tree organisation (alliance/alliance/src).
* Setup: Added .gitignore to exclude the files generated "in source" by
automake (when tools are built).
* New: Small script to perform a complete cppcheck on the whole source
tree.