bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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


From: Ken Brown
Subject: bug#19909: [PATCH] Error out if with-file-notification=w32 is specified on cygwin
Date: Sat, 28 Feb 2015 11:32:29 -0500
User-agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko/20100101 Thunderbird/31.5.0

On 2/28/2015 2:59 AM, Eli Zaretskii wrote:
Date: Fri, 27 Feb 2015 17:25:54 -0500
From: Ken Brown <kbrown@cornell.edu>
CC: bug-gnu-emacs@gnu.org, rpluim@gmail.com

It looks like it might not take much effort.  What I did for now, just
for testing purposes, is to copy into w32notify.c whatever was necessary
to make the Cygwin-w32 build compile with w32 file notification.  I
tested it briefly and it seems to work.  Obviously it needs much more
testing to make sure this doesn't break anything else, and then we can
worry about how to do this right.

Thanks.  A few comments:

   . Cygwin doesn't need to call MultiByteToWideChar and
     WideCharToMultiByte via function pointers, it can call them
     directly.

   . I think there shouldn't be a need to call filename_to_utf16 and
     its ilk, but instead use the to_unicode etc., like the rest of
     Cygwin-w32 code does.  E.g., just use GUI_ENCODE_FILE defined on
     w32term.h.

It turns out that filename_to_utf16 wasn't even being called in the Cygwin-w32 build, because w32_unicode_filenames == 0.

It also turns out that when I "tested" the build, which I did via M-x auto-revert-tail-mode, I wasn't actually testing w32notify, because I forgot to do this:

diff --git a/src/emacs.c b/src/emacs.c
index ca5633d..342d0fe 100644
--- a/src/emacs.c
+++ b/src/emacs.c
@@ -1334,11 +1334,12 @@ Using an Emacs configured with --with-x-toolkit=lucid does not have this problem
   globals_of_gfilenotify ();
 #endif

-#ifdef WINDOWSNT
-  globals_of_w32 ();
 #ifdef HAVE_W32NOTIFY
   globals_of_w32notify ();
 #endif
+
+#ifdef WINDOWSNT
+  globals_of_w32 ();
   /* Initialize environment from registry settings.  */
   init_environment (argv);
   init_ntproc (dumping); /* must precede init_editfns.  */
@@ -1512,11 +1513,12 @@ Using an Emacs configured with --with-x-toolkit=lucid does not have this problem
       syms_of_dbusbind ();
 #endif /* HAVE_DBUS */

-#ifdef WINDOWSNT
-      syms_of_ntterm ();
 #ifdef HAVE_W32NOTIFY
       syms_of_w32notify ();
-#endif /* HAVE_W32NOTIFY */
+#endif
+
+#ifdef WINDOWSNT
+      syms_of_ntterm ();
 #endif /* WINDOWSNT */

       syms_of_profiler ();


When I add that patch, auto-revert-tail-mode no longer works; there's no error message, but the buffer doesn't get auto-reverted when something is appended.

I think I have again lost motivation to pursue this further, since gfile works fine. And glib is required for the default Cygwin-w32 build anyway, because ImageMagick brings it in, so why not just use it?

Ken





reply via email to

[Prev in Thread] Current Thread [Next in Thread]