This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

New windres tool part 1 of 2


Hello,

In the first part of the post is the patch itself. In the second one, the 
new files will come.

The major changes to windres tool are by category:

K&R function declaration:
- Replaced by ANSI one. It both types were used.

Structures and types:
- Any structure used in rc file parsing or for internal data holding is 
named rc_res_(xxx). These structures have not the layout of binary 
anymore. These structures are now declared by there name as typedef, too.
- Binary structures used for res / coff resource file I/O have the prefix 
bin_(xxx) and have a define BIN_(XXX)_SIZE specifying their size in bytes. 
Any field is specified by bfd_byte arrays and the structures are marked as 
packed.
- For I/O the new type windres_bfd is declared, which is capable to handle 
bfd, "binary" bfd, and target endianess stuff and I/O. The helper methods 
as sub for bfd_(put/get)_xx are windres_(put/get)_xx functions.

Lexer:
- It supports now the missing rc keywords
- It supports the scanning of unicode strings.
- It supports a C like tokenizer (e.g. underscores, etc.).
- It supports for digits the 'L' and 'l' post-fix for numbers.
- It supports the hex and octal number syntax of C.
- It supports for rcdata sized unicode strings.

Parser:
- RC syntax for TOOLBAR, ANICURSOR, ANIICON, DLGINIT, FONTDIR, 
MESSAGETABLE, MANIFEST, HTML, PLUGPLAY, VXD added.
- Identifiers can now be UNICODE.
- Strings can now be UNICODE.
- DIALOG CONTROL statement is corrected for class and text part.

I/O:
- using for res files I/O bfd.
- RC output of windres can be used as import again.
- target specific endianess check.
- support to probe res file endianess.
- using binary structures for I/O.
- separate rc structures from binary ones.

Testcases:
- for MESSAGETABLE
- for VERSIONINFO
- for HTML
- for STRINGTABLE using UNICODE.

Changes:

2007-05-11  Kai Tietz  <Kai.Tietz@onevision.com>

        * binutils/rclex.c: New file replacing rclex.l.
        * binutils/rclex.l: Removed.
        * binutils/windint.h: New file holding common
        structure and type definitions.
        * binutils/testsuite/binutils-all/windres/html.rc: New.
        * binutils/testsuite/binutils-all/windres/html.rsd: New.
        * binutils/testsuite/binutils-all/windres/html1.htm: New.
        * binutils/testsuite/binutils-all/windres/html2.htm: New.
        * binutils/testsuite/binutils-all/windres/messagetable.rc: New.
        * binutils/testsuite/binutils-all/windres/messagetable.rsd: New.
        * binutils/testsuite/binutils-all/windres/msg00001.bin: New.
        * binutils/testsuite/binutils-all/windres/strtab2.rc: New.
        * binutils/testsuite/binutils-all/windres/strtab2.rsd: New.
        * binutils/testsuite/binutils-all/windres/version.rc: New.
        * binutils/testsuite/binutils-all/windres/version.rsd: New.
        * binutils/Makefile.am: Added new header windint.h and
        exchanged rclex.l by rclex.c.
        * binutils/Makefile.in: Regenerate.
        * binutils/rcparse.y: Renamed some structures.
        Use in internal representation always bfd_vma instead of
        long or int.
        Removed from %union unused stringtable.
        Added to %union suni structure for unicode strings.
        Added new tokens for ANICURSOR, ANIICON, DLGINCLUDE,
        DLGINIT, FONTDIR, HTML, MANIFEST, PLUGPLAY, VXD,
        TOOLBAR, BUTTON, QUOTEDUNISTRING, and
        SIZEDUNISTRING.
        Added support for these new rc file tokens.
        * binutils/resbin.c: Rewrote using bfd and binary structures, and
        support new resource types.
        * binutils/rescoff.c: Likewise.
        * binutils/resres.c: Likewise.
        * binutils/resrc.c: Likewise. Dumps as RC are now recompilable.
        * binutils/windres.c: As above. Using bfd for res and provide
        target specific endianess support.
        * binutils/windres.h: Use windint.h as include. Additionally 
removed
        K&R syntax.
        * binutils/winduni.c: New printing and unichar support routines.
        * binutils/winduni.h: Prototypes for new unichar helpers.



Regards,
 i.A. Kai Tietz

Patch:



------------------------------------------------------------------------------------------
  OneVision Software Entwicklungs GmbH & Co. KG
  Dr.-Leo-Ritter-StraÃe 9 - 93049 Regensburg
  Tel: +49.(0)941.78004.0 - Fax: +49.(0)941.78004.489 - www.OneVision.com
  Commerzbank Regensburg - BLZ 750 400 62 - Konto 6011050
  Handelsregister: HRA 6744, Amtsgericht Regensburg
  KomplementÃrin: OneVision Software Entwicklungs Verwaltungs GmbH
  Dr.-Leo-Ritter-StraÃe 9 â 93049 Regensburg
  Handelsregister: HRB 8932, Amtsgericht Regensburg - GeschÃftsfÃhrer: 
Ulrike DÃhler, Manuela Kluger

Attachment: nwindres.txt
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]