Commit Graph

6 Commits

Author SHA1 Message Date
Bertho Stultiens b37a889f2f - Implemented a bug-work-around for Berkeley yacc (byacc) which
does not generate proper default transition rules for non-terminals.
  See comments in parser.y how the fix works.
- Changed the error-line/char position to make emacs happy parsing
  the position of the error.
- Added comments in the documentation in which order the line-numer
  and character-position of the error is written.
2000-07-25 17:44:08 +00:00
Bertho Stultiens 24b5050a7f - Bugfix: Macro expansion of strings would assert an internal error
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.
2000-07-08 11:49:29 +00:00
Bertho Stultiens 661a94033e - Bugfix: Corrected "off by one" error in the linenumber while parsing
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).
2000-06-13 03:37:56 +00:00
Bertho Stultiens c107f714d0 - Implemented MESSAGETABLE resource type.
- 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.
2000-06-08 00:38:47 +00:00
Bertho Stultiens 997e0d782f - Implemented animated cursors and icons resource types.
- 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.
2000-05-23 01:18:38 +00:00
Bertho Stultiens 3d455c9b16 - Bugfix: Corrected a SEGV in the rawdata handling. Mistakingly took the
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.
2000-05-09 22:35:10 +00:00