Mercurial > hg > xemacs-beta
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 |