X-Git-Url: http://git.jankratochvil.net/?a=blobdiff_plain;f=src%2Finstall%2Facquire%2Fcabinet.c;fp=src%2Finstall%2Facquire%2Fcabinet.c;h=d9ba35c6565b162db02cd2977598bacd3ea9db09;hb=e93e84cb350ed495d755c7971d996bcd18ce4f7c;hp=f18695c47243f7a124ff275f0925e4aa1cb2b4ac;hpb=12dbdf39e0394c8939e9c2128478030b700cff25;p=captive.git diff --git a/src/install/acquire/cabinet.c b/src/install/acquire/cabinet.c index f18695c..d9ba35c 100644 --- a/src/install/acquire/cabinet.c +++ b/src/install/acquire/cabinet.c @@ -37,7 +37,10 @@ void acquire_cabinet_seek(struct acquire_cabinet *acquire_cabinet,GnomeVFSFileOf { g_return_if_fail(acquire_cabinet!=NULL); - (*ui_search_is_aborted)(); + /* Do not: (*ui_progress)(acquire_cabinet->uri); + * as we currently extract some specific file out of it. + */ + (*ui_progress)(NULL); acquire_cabinet->offset=offset; } @@ -46,7 +49,7 @@ void acquire_cabinet_seek_skip(struct acquire_cabinet *acquire_cabinet,GnomeVFSF { g_return_if_fail(acquire_cabinet!=NULL); - (*ui_search_is_aborted)(); + (*ui_progress)(NULL); acquire_cabinet->offset+=offset; } @@ -55,7 +58,7 @@ GnomeVFSFileOffset acquire_cabinet_tell(struct acquire_cabinet *acquire_cabinet) { g_return_val_if_fail(acquire_cabinet!=NULL,GNOME_VFS_ERROR_BAD_PARAMETERS); - (*ui_search_is_aborted)(); + (*ui_progress)(NULL); return acquire_cabinet->offset; } @@ -74,7 +77,7 @@ GnomeVFSFileSize bytes_read_now; g_return_val_if_fail(acquire_cabinet!=NULL,GNOME_VFS_ERROR_BAD_PARAMETERS); g_return_val_if_fail(buffer!=NULL || bytes==0,GNOME_VFS_ERROR_BAD_PARAMETERS); - if ((*ui_search_is_aborted)()) + if ((*ui_progress)(NULL)) return GNOME_VFS_ERROR_INTERRUPTED; bytes=MAX(0,MIN(bytes,acquire_cabinet->size-acquire_cabinet->offset)); @@ -209,7 +212,7 @@ int file_write(struct file *fi, UBYTE *buf, size_t length) g_return_val_if_fail(fi==file_write_fi_assertion,0); g_return_val_if_fail(file_write_bytearray!=NULL,0); - if ((*ui_search_is_aborted)()) + if ((*ui_progress)(NULL)) return 0; g_byte_array_append(file_write_bytearray,buf,length); @@ -224,7 +227,7 @@ struct file *filelist,*fi; g_return_if_fail(acquire_cabinet!=NULL); - if ((*ui_search_is_aborted)()) + if ((*ui_progress)(acquire_cabinet->uri)) return; basecab=find_cabs_in_file(acquire_cabinet); @@ -244,8 +247,11 @@ GnomeVFSURI *uri_fi; if (!captivemodid_module_length_is_valid(fi->length)) continue; - if ((*ui_search_is_aborted)()) + uri_fi=gnome_vfs_uri_append_file_name(acquire_cabinet->uri,fi->filename); + if ((*ui_progress)(uri_fi)) { + gnome_vfs_uri_unref(uri_fi); return; + } file_write_fi_assertion=fi; file_write_bytearray=g_byte_array_new(); @@ -256,11 +262,11 @@ GnomeVFSURI *uri_fi; if (fi->length!=file_write_bytearray->len) { g_byte_array_free(file_write_bytearray, TRUE); /* free_segment */ + gnome_vfs_uri_unref(uri_fi); continue; } file_buffer=g_byte_array_free(file_write_bytearray, FALSE); /* free_segment */ - uri_fi=gnome_vfs_uri_append_file_name(acquire_cabinet->uri,fi->filename); mod_uri_load_file_from_memory(file_buffer,fi->length,uri_fi); gnome_vfs_uri_unref(uri_fi); g_free(file_buffer);