}
static void mod_uri_load_file_handle_remote_cabinet
- (GnomeVFSHandle *handle,GnomeVFSFileInfo *file_info,GnomeVFSURI *uri,gint cabinet_used)
+ (GnomeVFSHandle **handlep,GnomeVFSFileInfo *file_info,GnomeVFSURI *uri,gint cabinet_used)
{
struct acquire_cabinet *acquire_cabinet;
- g_return_if_fail(handle!=NULL);
+ g_return_if_fail(handlep!=NULL);
+ g_return_if_fail(*handlep!=NULL);
g_return_if_fail(file_info!=NULL);
g_return_if_fail(uri!=NULL);
- acquire_cabinet=acquire_cabinet_new_from_handle(handle,file_info,uri,cabinet_used);
+ acquire_cabinet=acquire_cabinet_new_from_handle(handlep,file_info,uri,cabinet_used);
/* acquire_cabinet_load() will call mod_uri_load_module_from_memory(): */
acquire_cabinet_load(acquire_cabinet);
acquire_cabinet_free(acquire_cabinet);
else {
gint cabinet_used=captivemodid_cabinet_length_to_used(file_info_local.size);
- mod_uri_load_file_handle_remote_cabinet(handle,&file_info_local,uri,cabinet_used);
+ mod_uri_load_file_handle_remote_cabinet(&handle,&file_info_local,uri,cabinet_used);
}
errvfsresult=GNOME_VFS_OK;
/* PASSTHRU */
}
}
-void mod_uri_load(GnomeVFSURI *uri)
+static void mod_uri_load_internal(GnomeVFSURI *uri,gboolean base_reporting)
{
GnomeVFSFileInfo file_info_local;
GnomeVFSResult errvfsresult;
}
file_info_local.type=GNOME_VFS_FILE_TYPE_UNKNOWN;
- if (GNOME_VFS_OK!=(errvfsresult=gnome_vfs_get_file_info_uri(uri,&file_info_local,GNOME_VFS_FILE_INFO_DEFAULT)))
- return /* errvfsresult */;
+ if (GNOME_VFS_OK!=(errvfsresult=gnome_vfs_get_file_info_uri(uri,&file_info_local,GNOME_VFS_FILE_INFO_DEFAULT))) {
+ if (base_reporting) {
+gchar *uri_text;
+
+ uri_text=gnome_vfs_uri_to_string(uri,GNOME_VFS_URI_HIDE_PASSWORD);
+ g_warning(_("Error loading \"%s\": %s"),uri_text,gnome_vfs_result_to_string(errvfsresult));
+ g_free(uri_text);
+ }
+ return;
+ }
switch (file_info_local.type) {
case GNOME_VFS_FILE_TYPE_REGULAR: return mod_uri_load_file(uri);
case GNOME_VFS_FILE_TYPE_DIRECTORY: return mod_uri_load_directory(uri);
}
/* NOTREACHED */
}
+
+void mod_uri_load(GnomeVFSURI *uri)
+{
+ g_return_if_fail(uri!=NULL);
+
+ mod_uri_load_internal(uri,
+ FALSE); /* base_reporting */
+}
+
+void mod_uri_load_base_reporting(GnomeVFSURI *uri)
+{
+ g_return_if_fail(uri!=NULL);
+
+ mod_uri_load_internal(uri,
+ TRUE); /* base_reporting */
+}