or a segfault due to a lacking '\0' in the expansion.
- Bugfix: Prevent buffer overflow in reallocation of macro expansion
buffers.
- Bugfix: Wrc's version information was not passed as numerical to the
preprocessor due to an error in the definition of the macro.
- Relaxed the newline constraint in global LANGUAGE statements, which
was introduced in version 1.1.3, so that some fancy preprocessor
constructs can work.
- Removed the gcc-style #line handling from the resource-parser to the
resource-scanner so that it is possible to include files at any stage
of the source, independent of the parser-state.
- Bugfix: Stringtables were not correctly searched for duplicates
because the language comparison disregarded the sublanguage.
- Eliminated a repetitive warning when writing stringtables with zero
length string entries. These are perfectly valid (but make no sense:-).
Warnings are now only generated during parse in pedantic mode.
resource.
- Bugfix: A segfault would occur if messagetables were parsed without
memory options attached. Also added buffer-overflow safeguard while
converting between byteorders.
- Finished remapping usertype resources onto standars types by tricking
the parser into accepting a different token. The remapping can be
disabled with a new commandline option '-m'.
- Resolved some warning about chars used as index on SGI O2 machine
(the ctype isXXX() routines are macros there).
- Usertype resources that cause a type-clash with defined resources
are now detected and a warning is generated. Some types should be
rerouted through other code so that they will be (re-)interpreted.
- Bugfix: Line-continuation in strings in resources include a newline.
This `feature' got deleted with the builtin preprocessor, but has been
put back into place (see last changes comment from version 1.1.0).
- Bugfix: The preprocessor now correctly will see "\\\r\n" as a line-
continuation.
- Bugfix: Assemblers on some platforms do not use 16bit quantities
for `.word'. This directive is now changed into `.short'.
- All types that accept inline data definitions (a la RCDATA) now
also accept a file specification. This unifies the structure a bit.
- Added partial support for font resources (user supplied fontdir is
required).
- All resources with inline data (a la RCDATA) now support language,
version and characteristics data.
- Implemented resource name duplicate checks. It is now an error if
two resources of the same type have the same name.
- Bugfix: Language propagation was not correct when .res files were
generated.
- Bugfix: VERSIONINFO now handles memory options.
- Bugfix: resource names and the resource type may be equal (e.g. MENU
MENU {...}). This support was mistakingly deleted in the upgrade to
the builtin preprocessor.
The standalone LANGUAGE setting became context sensitive as a consequence
of this. Now it *must* end with a newline *after* both expressions and
no newlines are allowed within the line (the statement must fit on one
line). This is no practical problem though.
address of a pointer instead of its value. This probably slipped in
during the merge of my tree into the winetree.
Lesson learned: always double check.
- Verified most resources so that win16 compile also generates correct
output for reversed endian.
- Implemented byte-ordering for resources. All resources can be forced
to be little-, big- or native endian with command-line option -B.
- Reading resources from .res-files are only accepted in native byte-
ordering so that no additional semantic analysis is required.
- Resource directory is still written in native-only format, including
the strings.
- Wrc is now installed through the makefile with 'make install' and also
uninstalled with 'make uninstall'.
- Wrote a man-page for better reference. The manpage also gets installed
and uninstalled.
- Cleaned up the namespace a bit by more agressive use of static.
old parser has been stripped from the old preprocessor-code which
cleaned up both resource-scanner and -parser.
- Standard defines have been introduced (see README.wrc)
- Both preprocessor- and resource-scanner have been optimized slightly
so that no backing up is required (one char lookahead is enough).
- Filename-scanning has been cleaned up, though not perfect yet.
- User-type resources are compatible now.
- Line-continuation in strings is corrected so that it does not
introduce a newline in the output.