Subject: Fwd: xemacs winclient improvements
From: Reini Urban <[email-masked]>
To: [email-masked]
Cc: The Cygwin Mailing List <[email-masked]>
Date: Wed, 24 Jun 2009 11:11:55 +0200
List-Id: <cygwin.cygwin.com>

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 <[email-masked]>
Date: 2009/6/24
Subject: xemacs winclient improvements
To: The Cygwin Mailing List <[email-masked]>

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