Subject: bug#19909: [PATCH] Error out if with-file-notification=w32 is specified on cygwin

From: Robert Pluim <[email-masked]>
Date: Fri, 20 Feb 2015 18:06:21 +0100

Ken Brown <[email-masked]> writes:

> On 2/20/2015 10:10 AM, Eli Zaretskii wrote:
>>> From: Robert Pluim <[email-masked]>
>>> Date: Fri, 20 Feb 2015 15:16:49 +0100
>>>
>>>> According to the comment in w32notify.c, w32.h is included only for
>>>> w32_strerror.  Could you try commenting out the w32.h inclusion, and
>>>> instead copy the w32_strerror prototype into w32notify.c?  Does Emacs
>>>> compile then as part of the Cygwin-w32 build, and do file
>>>> notifications work?  (I don't have Cygwin installed to try that,
>>>> sorry.)
>>>>
>>>
>>> No, that doesn't compile. w32notify.c needs (at least)
>>> w32_unicode_filenames, filename_to_utf16(), filename_to_ansi() and
>>> w32_valid_pointer_p() from w32.c.
>>
>> Right.  But those problems are quite simple to solve.
>>
>> Ken, would you like to try to solve them?  I could suggest a patch,
>> but it would be 100% untested.
>
> I'm busy with other things at the moment and can't get to it right
> away. If it's easy for you to suggest a patch, why don't you go ahead,
> and Robert can test it.  Or you can wait a couple weeks until I can
> look at it.
>
> BTW, file-notification=gfile works fine in the Cygwin-w32 build, so
> I'm not sure there's any need to put a lot of effort into this.

I didn't know that.  I'll give it a go.  Perhaps the following slight
modification to my original patch?

diff --git a/ChangeLog b/ChangeLog
index 4365668..dec9ce0 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2015-02-20  rpluim  <[email-masked]>
+
+	* configure.ac: Error out if with-file-notification=w32 is
+	specified on cygwin.
+
 2015-02-13  Jan Djärv  <[email-masked]>
 
 	* configure.ac: Set locallisppath to empty for NS self contained,
diff --git a/configure.ac b/configure.ac
index 0bcc55c..19d9c20 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2659,6 +2659,11 @@ fi
 
 dnl MS Windows native file monitor is available for mingw32 only.
 case $with_file_notification,$opsys in
+  w32,cygwin)
+    AC_MSG_ERROR([`--with-file-notification=w32' was specified, but
+    this is only supported on MS-Windows native and MinGW32 builds.
+    Consider using gfile instead.])
+    ;;
   w32,* | yes,mingw32)
     AC_CHECK_HEADER(windows.h)
     if test "$ac_cv_header_windows_h" = yes ; then