comparison 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
comparison
equal deleted inserted replaced
258:58424f6abf56 259:11cf20601dec
613 case XTYP_EXECUTE: 613 case XTYP_EXECUTE:
614 if (!DdeCmpStringHandles (hszTopic, mswindows_dde_topic_system)) 614 if (!DdeCmpStringHandles (hszTopic, mswindows_dde_topic_system))
615 { 615 {
616 DWORD len = DdeGetData (hdata, NULL, 0, 0); 616 DWORD len = DdeGetData (hdata, NULL, 0, 0);
617 char *cmd = alloca (len+1); 617 char *cmd = alloca (len+1);
618 #ifdef __CYGWIN32__
619 char *cmd_1;
620 #endif
618 char *end; 621 char *end;
619 Lisp_Object l_dndlist; 622 Lisp_Object l_dndlist;
620 Lisp_Object emacs_event = Fmake_event (Qnil, Qnil); 623 Lisp_Object emacs_event = Fmake_event (Qnil, Qnil);
621 struct Lisp_Event *event = XEVENT (emacs_event); 624 struct Lisp_Event *event = XEVENT (emacs_event);
622 625
646 return DDE_FNOTPROCESSED; 649 return DDE_FNOTPROCESSED;
647 if (*(++end)==']') 650 if (*(++end)==']')
648 end++; 651 end++;
649 if (*end) 652 if (*end)
650 return DDE_FNOTPROCESSED; 653 return DDE_FNOTPROCESSED;
651 654 #ifdef __CYGWIN32__
655 CYGWIN_CONV_PATH(cmd,cmd_1);
656 cmd = cmd_1;
657 #endif
652 l_dndlist = make_ext_string (cmd, strlen(cmd), FORMAT_FILENAME); 658 l_dndlist = make_ext_string (cmd, strlen(cmd), FORMAT_FILENAME);
653 659
654 event->channel = Qnil; 660 event->channel = Qnil;
655 event->timestamp = GetTickCount(); 661 event->timestamp = GetTickCount();
656 event->event_type = dnd_drop_event; 662 event->event_type = dnd_drop_event;
1149 case WM_DROPFILES: /* implementation ripped-off from event-Xt.c */ 1155 case WM_DROPFILES: /* implementation ripped-off from event-Xt.c */
1150 { 1156 {
1151 UINT filecount, i, len; 1157 UINT filecount, i, len;
1152 POINT point; 1158 POINT point;
1153 char filename[MAX_PATH]; 1159 char filename[MAX_PATH];
1160 #ifdef __CYGWIN32__
1161 char* fname;
1162 #endif
1154 Lisp_Object l_type, l_dndlist = Qnil, l_item; 1163 Lisp_Object l_type, l_dndlist = Qnil, l_item;
1155 1164
1156 emacs_event = Fmake_event (Qnil, Qnil); 1165 emacs_event = Fmake_event (Qnil, Qnil);
1157 event = XEVENT(emacs_event); 1166 event = XEVENT(emacs_event);
1158 1167
1162 filecount = DragQueryFile ((HANDLE) wParam, -1, NULL, 0); 1171 filecount = DragQueryFile ((HANDLE) wParam, -1, NULL, 0);
1163 if (filecount == 1) 1172 if (filecount == 1)
1164 { 1173 {
1165 l_type = make_int (DndFile); 1174 l_type = make_int (DndFile);
1166 len = DragQueryFile ((HANDLE) wParam, 0, filename, MAX_PATH); 1175 len = DragQueryFile ((HANDLE) wParam, 0, filename, MAX_PATH);
1176 #ifdef __CYGWIN32__
1177 CYGWIN_CONV_PATH(filename, fname);
1178 len=strlen(fname);
1179 l_dndlist = make_ext_string (fname, len, FORMAT_FILENAME);
1180 #else
1167 l_dndlist = make_ext_string (filename, len, FORMAT_FILENAME); 1181 l_dndlist = make_ext_string (filename, len, FORMAT_FILENAME);
1182 #endif
1168 } 1183 }
1169 else 1184 else
1170 { 1185 {
1171 l_type = make_int (DndFiles); 1186 l_type = make_int (DndFiles);
1172 for (i=0; i<filecount; i++) 1187 for (i=0; i<filecount; i++)
1173 { 1188 {
1174 len = DragQueryFile ((HANDLE) wParam, i, filename, MAX_PATH); 1189 len = DragQueryFile ((HANDLE) wParam, i, filename, MAX_PATH);
1190 #ifdef __CYGWIN32__
1191 CYGWIN_CONV_PATH(filename, fname);
1192 len=strlen(fname);
1193 l_item = make_ext_string (fname, len, FORMAT_FILENAME);
1194 #else
1175 l_item = make_ext_string (filename, len, FORMAT_FILENAME); 1195 l_item = make_ext_string (filename, len, FORMAT_FILENAME);
1196 #endif
1176 l_dndlist = Fcons (l_item, l_dndlist); /* reverse order */ 1197 l_dndlist = Fcons (l_item, l_dndlist); /* reverse order */
1177 } 1198 }
1178 } 1199 }
1179 DragFinish ((HANDLE) wParam); 1200 DragFinish ((HANDLE) wParam);
1180 1201