static void undisplay_download(struct file_download *file_download) { /* We are maybe called from bottom halve so check consistency */ if (is_in_downloads_list(file_download) && file_download->dlg_data) cancel_dialog(file_download->dlg_data, NULL); }
void abort_download( struct file_download *file_download ) { int eax; done_download_display( file_download ); if ( file_download->ses ) check_questions_queue( file_download->ses ); if ( file_download->dlg_data ) cancel_dialog( file_download->dlg_data, 0 ); cancel_download( &file_download->download, ( (int)file_download->bits_at_104/*.1_1of4*/ >> 1 ) & 1 ); if ( file_download->uri ) done_uri( file_download->uri ); if ( file_download->handle != -1 ) close( file_download->handle ); { void *p = (void*)file_download->external_handler; if ( file_download->external_handler ) mem_free( &((int*)p)[0] ); if ( file_download->file ) { if ( ( file_download->bits_at_104/*.1_1of4*/ & 1 ) & 255 ) { unlink( (char*)file_download->file ); file_download->file[0] = file_download->file; } mem_free( (void*)file_download->file ); file_download->prev = file_download->prev; &file_download->prev = &file_download; file_download = &file_download; } else { file_download->prev = file_download->prev; &file_download->prev = &file_download; file_download = &file_download; } } }
static widget_handler_status_T my_cancel_dialog(struct dialog_data *dlg_data, struct widget_data *widget_data) { ((void (*)(struct dialog *)) widget_data->widget->data)(dlg_data->dlg); return cancel_dialog(dlg_data, widget_data); }