Hi John, Jedders: I got some time to try the last prerelease of jed on Windows, using the last slang2 prerelease. Note that I'm using visual studio 6. The first problem arises while trying to compile slang2. In the file 'makefile.all', while creating the 'response file', the overwriting redirection (>) is used for some object names instead of appending redirection (>>). This way the response doesn't contains all the needed files, and linking Jed against this library fails complaining about a lot of symbols undefined. The patch (slang-pre3-fix-win-makefile-redirection.diff) is attached. After this patch, both jed and wjed can be compiled without problems. But while redrawing lines with different colors (e.g. a syntax highlighted C or SLang code), wjed writes only the characters with the first color. After a bit of debugging, I found the problem: for redrawing wjed does a loop on VTerm_Display lines, and for every lines, scans characters until the color changes, and then uses 'tt_write', the same function used to write for the first time. tt_write calls vterm_write_nchars() to store the new chars in VTerm_Display, but before writing the new data, tt_write clears all the remaining line with a memset(). But this is the same line that msw_write_smgchars() is scanning! So after writing the first set of characters, the line is cleared and there's nothing more to write. A simple patch (in jed-clear-vterm-carefully.diff) is to be a bit more careful when clearing the VTerm_Display line. I have tested this lighty on Linux, and seems to work, but a bit more testing is needed. If we want to keep the full memset and change it only on wjed side, a lot of changes will be needed. Another annoing 'feature' of jed on windows is that it picks the startup file jed.rc from the current directory, if no HOME or JED_HOME environment variable is set. A more nicer way is to check for USERPROFILE variable (this is set at least on Win2K, WinXP and Win2003, I don't know for Win95 and Win98, let alone win 3.1), and to fallback to "C:\", instead of "". You can find this change in jed-set-home-for-windows.diff. Another problem is the windows style menu: we already talked about this, it is very nice, but is completely outdated, doesn't uses the standard menu functions, and some modes in the standard jed package fails if not (standard) menu is defined. So I ask to change the configuration to use by default the text-mode menus, like on every other supported platform. The change can be found in wjed-use-text-menus.diff. The last problem was already also reported but still in the last jed B0.17 prerelease: cua.sl binds Key_Del to "delete_cmd", a non existing function. I don't know if Guenter already patched this, anyway the patch jed-B0.99-17-cua-use-delete_char_cmd.diff changes it to use delete_char_cmd. Guenter, what do you think about this? I'm still have to try wjed with utf-8 files. One last note: One friend show me how easy was to create installer packages for windows using Inno Setup (http://www.jrsoftware.org/), so I did an installer for jed. I hope to put some packages (both for jed 0.9.16 and the prerelease) somewhere on the web next week. Thanks, Dino
Attachment:
slang-pre3-fix-win-makefile-redirection.diff
Description: Binary data
Attachment:
jed-clear-vterm-carefully.diff
Description: Binary data
Attachment:
jed-set-home-for-windows.diff
Description: Binary data