|  | 1. User interface | 
|  | - use GNU's long_getopt | 
|  | - allow to pass input and output files via command line | 
|  | - add options for various not-yet-implemented features (Unicode, Win32 | 
|  | format, non-native/native alignment and endianness, compact output | 
|  | format) | 
|  |  | 
|  | 2. Input format | 
|  | - improve input file processing | 
|  | Currently, certain pre- and postprocessing is required.  winerc | 
|  | should accept an arbitrary resource script and generate the C file | 
|  | with as little intermediate files as possible. I'm not sure how to | 
|  | handle the symbols from windows.h. There are certain options: | 
|  | * winerc predefines the symbols via the cpp command line | 
|  | * windows.h is #include'd, and the resulting C code is dropped | 
|  | (Should winerc do C parsing here?) | 
|  | * a stripped-down version of windows.h is included, | 
|  | generated by "grep '^#' windows.h" | 
|  | * windows.h #ifdef's every C code with _RC_INVOKED | 
|  | (commercial solution) | 
|  | - complete input syntax | 
|  | The goal here is to support every existing resource file which is | 
|  | accepted by another resource compiler, not to put as much fancy | 
|  | features into the compiler as possible.  Every correct resource file | 
|  | which generates a parse error can be reported as a bug, a problem | 
|  | analysis and a fix would be appreciated. | 
|  |  | 
|  | 3. Output file format | 
|  | - add missing resources (fonts, versioninfo, stringtables,rcdata) | 
|  | - check style handling | 
|  | The semantics of control and dialog styles is somewhat poorly | 
|  | documented. For example, I couldn't find a reference that every | 
|  | control has the WS_VISIBLE and WS_CHILD style, even if they are | 
|  | not specified. What other styles are considered default? | 
|  | The existance of default styles implies support for disabling these, | 
|  | unlike any other proper programming language, | 
|  | NOT WS_VISIBLE | WS_GROUP | 
|  | does *not* mean ~WS_VISIBLE, but WS_CHILD|WS_GROUP (in C semantics). | 
|  | What other strange semantics are there? | 
|  | - check cursor and icon handling | 
|  | At the moment, the .CUR and .ICO files are copied byte-by-byte into | 
|  | the C array. This is probably wrong, as there are things like cursor | 
|  | and icon groups. In which way should they be present in a Wine image? | 
|  | Should we have arrays for every cursor, as well as the cursor group? | 
|  | Is one cursor per group enough, in the context of X? If so, do we | 
|  | still need the group? | 
|  | - create a more compact output file | 
|  | The current format is well-suited for debugging, as one can easily | 
|  | match it with a resource' hex dump. A more compact format would use | 
|  | strings instead of integer lists. A clever algorithm for embedding | 
|  | values <32 and >127 is required. | 
|  | - platform independence | 
|  | Currently, the lay-out of the resources is just as it is in Win3.1 - | 
|  | packed structures, little endian. Although this format can be used | 
|  | on any architecture, aligned data and native endianness would speed-up | 
|  | the resource manipulation and simplify the code. OTOH, this would | 
|  | break applications that rely on the lay-out. All this is of interest | 
|  | for the library version only. | 
|  | - Win32 support | 
|  |  | 
|  | 4. Programming Style | 
|  | - memory management | 
|  | No memory is freed in the current implementation. |