Hi I'm back in business :) I switched from native Win32 to cygwin because of the non-matching Win32 permissions. Cygwin ACL's are sometimes fucked up by inheritance.
So I have several improvements. Patches inlined because gmail uploader fails on my proxy diff -u xemacs-21.5.28/lib-src/winclient.c.orig xemacs-21.5.28/lib-src/winclient.c --- xemacs-21.5.28/lib-src/winclient.c.orig 2009-06-24 09:30:22.234375000 +0200 +++ xemacs-21.5.28/lib-src/winclient.c 2009-06-24 10:59:52.437500000 +0200 @@ -209,8 +209,8 @@ CloseHandle (pi.hThread); CloseHandle (pi.hProcess); - /* Try to connect */ - for (n = 0; n < 5; n++) + /* Try to connect. Process startup and XEmacs init might be slow */ + for (n = 0; n < 10; n++) { Sleep (CONNECT_DELAY); @@ -408,6 +408,12 @@ /* Retrieve arguments */ while ((arg = getNextArg ((const char**)&lpszCommandLine, &len)) != NULL) { +#ifdef __CYGWIN__ + /* On cygwin args are already space delimited so pass these args + verbatim to XEmacs */ + fullpath = (char *) xmalloc (len); + ret = doFile (hConv, fullpath, arg); +#else /* First find the canonical path name */ fullpath = filepart = NULL; pathlen = GetFullPathName (arg, 0, fullpath, &filepart); @@ -451,7 +457,7 @@ FindClose (hFindFile); } - +#endif /* Release the path name buffers */ free (fullpath); free (arg); diff -u xemacs-21.5.28/lib-src/Makefile.in.in.orig xemacs-21.5.28/lib-src/Makefile.in.in --- xemacs-21.5.28/lib-src/Makefile.in.in.orig 2007-05-21 05:50:19.000000000 +0200 +++ xemacs-21.5.28/lib-src/Makefile.in.in 2009-06-24 09:40:30.250000000 +0200 @@ -375,7 +375,7 @@ $(CC) $(cflags) ${srcdir}/../nt/minitar.c $(ldflags) -lz -o $@ winclient: ${srcdir}/winclient.c - $(CC) $(cflags) ${srcdir}/winclient.c $(ldflags) -o $@ + $(CC) $(cflags) -mwindows ${srcdir}/winclient.c $(ldflags) -o $@ hexl: ${srcdir}/hexl.c $(CC) $(cflags) ${srcdir}/hexl.c $(ldflags) -o $@ ---------- Forwarded message ---------- From: Reini Urban <rur...@x-ray.at> Date: 2009/6/24 Subject: xemacs winclient improvements To: The Cygwin Mailing List <cygwin@cygwin.com> Several xemacs ideas: * I added -mwindows to the winclient linker step which results in a much improved winclient. I'll take this patch to xemacs-patches by myself. * parseCommandLine() does not work on cygwin this way. It uses the Win32 API to find files, and should be special cased to use the POSIX API. I'll discuss this at xemacs-beta * xemacs-21.5.28-3 uses slow defaults: Compiling in support for extra debugging code. Compiling in support for runtime error checking. WARNING: --------------------------------------------------------- WARNING: XEmacs will run noticeably more slowly as a result. WARNING: Error checking is on by default for XEmacs beta releases. WARNING: --------------------------------------------------------- hmm. 21.5.28 is stable for me and upstream. maybe remove this. * build failure on 1.7: In file included from /usr/src/xemacs-21.5.28-3/src/xemacs-21.5.28/src/console-msw.h:41, from /usr/src/xemacs-21.5.28-3/src/xemacs-21.5.28/src/cmdloop.c:43: /usr/src/xemacs-21.5.28-3/src/xemacs-21.5.28/src/syswindows.h:500: error: conflicting types for 'wcstok' /usr/include/wchar.h:92: error: previous declaration of 'wcstok' was here make[1]: *** [cmdloop.o] Error 1 This needs a patch upstream. Maybe I'll take it upstream. -- Reini Urban http://phpwiki.org/ http://murbreak.at/ -- Reini Urban http://phpwiki.org/ http://murbreak.at/ -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple