Version 2.2 includes numerous fixes and the following enahncements.
- All query results are presented through a page selection interface.
- Identical files in different locations are identified and presented
in the file information page and through the file metrics.
- Identifiers occuring at the same place in identical files are considered
to be the same.
- Facility to display the call path from one function to another.
- New option to display call graphs as GIF images avoiding the need for
an SVG plugin for medium-sized graphs.
- The SQL backend supports four additional tables: STRINGS, COMMENTS,
FILEPOS, FILECOPIES.
- Allow attribute declarations to follow labels (gcc extension).
- Support indirect goto labels (gcc extension).
- Support (ANSI-style) nested function definitions (gcc extension).
- The macro expansion algorithm follows more closely the C standard
specification.
- Allow braces around scalar initializers (common extension).
- Macro calls in function arguments now get recorded as calls from the
enclosing function, rather than the function being called.
- Significantly faster file post-processing for the web and the SQL
interface in large projects.
- Array designators can be denoted through a range (gcc extension).
- Support for symbolic operands in gcc asm constructs.
- Allow __typeof__ declarations to be preceded by type qualifiers.
- Correctly handle __typeof__ of objects with a storage class within
typedef declarations.
- The order of include file searching now matches more closely that of
other compilers: absolute file names are never searched in the include
file path, and non-system files are first searched relative to the
directory of the including file.
- Allow empty initializers and compound literals. (gcc extension)
- Support for the alignof operator (gcc extension)
- The equals sign following an initializer designator is optional
(gcc extension).
- A declaration expression can be used as the first expression of a for
statement. (C99)
- __typeof can also have as its argument a type name
- Support for designators in compound literals. (C99)
Reformat and update pkg-descr
Release 1.16 is associated with the following changes:
- Declarations can be intermixed with statements (C99).
- __typeof can have as its argument an expression
and not only an identifier.
- Support for C99 variable number of arguments preprocessor macros.
- Allow case expression ranges (gcc extension).
- Recognise __atribute__(__unused__) for determining which
identifiers should not be reported as unused (gcc extension).
- Command-line option to generate a wrongly scoped identifier and unused
include file and identifier warning report.
- Separate identifier attribute for enumeration constants.
This allows us stop incorrectly categorizing them as having global
(compilation unit) visibility.
- Error reporting format is now compatible with gcc.
- Dereferencing a function yields a function (common extension).
- Command-line option to process the file and exit.
- Document processing of the FreeBSD kernel.
- Correct typing of assembly-annotated declarators.
- Fixed assertion failure that could be caused when parts of concatenated
identifiers were no longer available (e.g. when processing files
with the -m T option.)
- Correct handling of macro parameters that match other macros and
are followed by a concatenation operator (they were erroneously replaced).
- Add workaround for gcc __builtin_va_copy in the provided
definition files.
- Corrected the handling of main() in the example definition
files.
Approved by: netchild
refactoring browser for collections of C programs.
I coordinated the creation of the port with him, he will maintain the
port himself in the future.
I think this is the first binary only program (at least in the ports
collection) which supports FreeBSD on alpha, amd64, i386, ia64 and
sparc64.
Reviewed by: dds