Update time! <https://github.com/martok/freepascal/compare/master...fpcres-rc>
> - UnicodeString Strings (L"foo")Done > - various forms of escape sequences for strings Done > - Concatenated adjacent strings ("ABC" "DEF") This is weird: windres, brcc and rc all do something different when concatenating mixed Unicode and CP strings, as in `L"a" "b"`, `"a" L"b"`. I have no idea what the correct action would be. > - complex resources: ACCELERATORS DIALOG/EX MENU/EX STRINGTABLE VERSIONINFO Probably going to leave out the Dialog-Related stuff, since it's not super relevant for us anyway. Windows users can just use RC ;-) > It's also leaking memory like a rusty bucket, I have so far completely ignored > what transfers object ownership in fcl-res classes. Heaptrc will hopefully > help > here. Fixed All of windres's tests pass now, except for the Dialog related ones. I would consider it more or less finished. Any more things to do? Otherwise, I'll stack it into some patches. A few lessons learned: Using TStringList as a key-value-store (#define) is SLOW. Replacing it with a TFPStringHashTable brought processing time for windows.h down from 4 seconds to some 10ms. That's just insert operations. Codepage Strings are weird if more than one CP is involved. There is almost no way to carry a specific codepage anywhere: AnsiString[850] + Char = AnsiString[CP_UTF8]... Also, ShortStrings are often converted to AnsiStrings, so that doesn't reliably work either. Same for array of char. That made working with plex awfully complicated, and I still think it's wrong in some cases. But at least it works for most now. Having a reentrant version of plex&pyacc would be nice. Flex and Bison can do it these days. To a lesser degree: something like Python's argparse would be nice. Everyone builds their own argument parser, usually with very different concepts and varying amounts of code duplication. -- Regards, Martok _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal