diff src/event-msw.c @ 259:11cf20601dec r20-5b28

Import from CVS: tag r20-5b28
author cvs
date Mon, 13 Aug 2007 10:23:02 +0200
parents 677f6a0ee643
children 727739f917cb
line wrap: on
line diff
--- a/src/event-msw.c	Mon Aug 13 10:22:10 2007 +0200
+++ b/src/event-msw.c	Mon Aug 13 10:23:02 2007 +0200
@@ -615,6 +615,9 @@
 	{
 	  DWORD len = DdeGetData (hdata, NULL, 0, 0);
 	  char *cmd = alloca (len+1);
+#ifdef __CYGWIN32__
+	  char *cmd_1;
+#endif
 	  char *end;
           Lisp_Object l_dndlist;
 	  Lisp_Object emacs_event = Fmake_event (Qnil, Qnil);
@@ -648,7 +651,10 @@
 	    end++;
 	  if (*end)
 	    return DDE_FNOTPROCESSED;
-
+#ifdef __CYGWIN32__
+	  CYGWIN_CONV_PATH(cmd,cmd_1);
+	  cmd = cmd_1;
+#endif
 	  l_dndlist = make_ext_string (cmd, strlen(cmd), FORMAT_FILENAME);
 
 	  event->channel = Qnil;
@@ -1151,6 +1157,9 @@
       UINT filecount, i, len;
       POINT point;
       char filename[MAX_PATH];
+#ifdef __CYGWIN32__
+      char* fname;
+#endif
       Lisp_Object l_type, l_dndlist = Qnil, l_item;
 
       emacs_event = Fmake_event (Qnil, Qnil);
@@ -1164,7 +1173,13 @@
 	{
       	  l_type = make_int (DndFile);
 	  len = DragQueryFile ((HANDLE) wParam, 0, filename, MAX_PATH);
+#ifdef __CYGWIN32__
+	  CYGWIN_CONV_PATH(filename, fname);
+	  len=strlen(fname);
+	  l_dndlist = make_ext_string (fname, len, FORMAT_FILENAME);
+#else
 	  l_dndlist = make_ext_string (filename, len, FORMAT_FILENAME);
+#endif
 	}
       else
 	{
@@ -1172,7 +1187,13 @@
 	  for (i=0; i<filecount; i++)
 	    {
   	      len = DragQueryFile ((HANDLE) wParam, i, filename, MAX_PATH);
+#ifdef __CYGWIN32__
+	      CYGWIN_CONV_PATH(filename, fname);
+	      len=strlen(fname);
+	      l_item = make_ext_string (fname, len, FORMAT_FILENAME);
+#else
 	      l_item = make_ext_string (filename, len, FORMAT_FILENAME);
+#endif
 	      l_dndlist = Fcons (l_item, l_dndlist);	/* reverse order */
 	    }
 	}