[I tried to send this mail some days ago, but it didn't reach the mailing list... Maybe it was a bit too big? I'm resending with a smaller attachment, and John in CC. Icons on a separate mail] Hi, I have tried jed B0.99-17.82 and slang-pre2-r7 on Windows. A lot of patches follow: I'm trying to push all I have before slang 2 final. You can find a windows installer with all these patches applied, plus new icons from Marko Mahnic, from tonight (Europe time) on my jed page (http://www.paneura.com/~dino/wjed.html). [UPDATE: this is already there]. - slang-pre2-r7-fix-win-compile.diff - makefile.all: no more 'dll' target. If Makefile is generated without passing DLL to mkmake, a static library is created, and passing DLL the Makefile will build a dynamic library. This simplifies makefile.all, and works in a way more consistent to me. If john chooses not to apply this one, all the references to startup.c and startup.o shuld be removed, as the file doesn't exists. (my original patch has it, but John put it contents in slcommon.c). - slcommon.c: an #include <windows.h> was lost in the merge between slcommon.c and my old startup.c. - I changed things to use native vsnprintf() for visual studio, but that symbol doesn't exists, is called _vsnprintf()... - slang.h: add a missing SL_EXTERN to SLang_find_key_function(). To be able to build modules, SL_EXTERN is not enough in SLANG_MODULE() macro: we need a __declspec(dllexport), but we don't want to define SLANG_SOURCE_. So define SL_EXPORT, SL_IMPORT, use these to define SL_EXTERN, and use SL_EXPORT in SLANG_MODULE(). To succesfully compile and run slsh with a slang dll, I need slang-slsh-win-makefile-fix-dll.diff: - makefile.all: Add DLL option, to tell if we are compiling against a dll slang (sadly we need to define SLANG_DLL=1 because variables imported from a dll MUST be declared __declspec(dllimport)). - slsh.c: build a default path for modules. This is a bit hackish. See next patch on why. I have some fixes for small glitches in slang (slang-fix-glitches.diff) - slarith.c: Two variables (obj_a, obj_b), are declared on a block scope, their address is assigned to a wider scope pointer, and then dereferenced outside the declaration scope. - slarrfun.c: remove an unused variable. - slclass.c: visual studio compiler complains if taking the address of a function without & (I don't know why...). - slconfig.c: for visual studio, don't #define pid_t et al. as those are typedef'ed in system includes. - slposdir.c: add #include <direct.h> for windows, to avoid warnings (should be only for visual studio?) To be able to build modules on windows, there is (slang-win-modules-support.diff) - slimport.c: define dlopen() etc to their Windows equivalents. And to actually build modules we need (slang-modules-win32-compile.diff): - makefile.all: add. - slsmg-module.c (the only module I have compiled so far): fixes to compile on windows. Needing to prepare makefiles from makefile.all in 3 different directories, I prepared a simple .bat file to do this for me (slang-dos-build-helper.diff): - add build.bat (usage: e.g. build.bat WIN32 VC). And finally (on slang side), to add a bit of color to slsh, there's a patch to use icons from Marko Mahnic (slang-slsh-win-makefile-add-resource.diff). This needs also slsh.ico and sldoc.ico in slsh directory. - slsh.rc: Add. - makefile.all: build .res from slsh.rc and link to slsh.exe. Now the Jed side (is far shorter, I promise): First the needed pieces: jed-B0.99-17.82-fix-win32.diff: - makefile.all: add DLL parameter, to use when linking with wslang32.dll. - wterm.c: Fix the same Batch typo already fixed in other places. Now some glitches (jed-fix-glitches.diff): - buffer.c: add a missing SLfree(). - file.c: fix a leak while reading a non existing (or empty?) file. (the patch seems big because reintendation, but is very simple). And now the goodies (jed-add-icons.diff) add Marko's icons to jed and wjed: - jed.rc, wjed.rc, resource.h: Add. - makefile.all: build .res and link in wjed and jed. - wterm.c: set application icon. Thanks, Dino
Attachment:
jed-patches.zip
Description: Binary data