In the end it just wasn't worth it anymore and now we almost completely stripped all Win9x code (AnsiString API calls) from Lazarus and rely fully on WideString API.
This inevitably will fail in Win9x.
Some of that is mitigated by installing the Microsoft Layer for Unicode on Windows 95, 98, and Me (MSLU) library.
You miss the point.
It was just too much of a hassle to maintain the win9x code and it made developing new features difficult, because none of the developers would even notice that they had broken the win9x part.
E.g. some of the code that interfaces with the debugger only works on NT based OS. So you already need a define to build a partially crippled IDE for win9x.
Notice that I was (and still am) the only developer that has a win9x machine. I used to have a native WinME machine, but that one does not exist anymore, so I have a Win98SE virtual machine now, which will crash randomly. Even installing the compiler on that is a PITA since the fpc installer is NT based. Once we move to Lazarus 1.8 I will kill that VM, because at that time all support for win9x is dropped (see
"Phasing out support for Windows 98 and Windows ME").
If there would be a community that would actively contribute to a win9x widgetset, then it could be done, but the demand for this seems to be negligible.
We should however IMO not start mixing win9x code into the current win32 widgetset again.
Bart