static gint32 load_image (const gchar *uri, GimpRunMode run_mode, GError **error) { gchar *tmpname = NULL; gint32 image_ID = -1; gboolean name_image = FALSE; tmpname = get_temp_name (uri, &name_image); if (uri_backend_load_image (uri, tmpname, run_mode, error)) { image_ID = gimp_file_load (run_mode, tmpname, tmpname); if (image_ID != -1) { if (name_image) gimp_image_set_filename (image_ID, uri); else gimp_image_set_filename (image_ID, ""); } else { g_set_error (error, G_FILE_ERROR, G_FILE_ERROR_FAILED, "%s", gimp_get_pdb_error ()); } } g_unlink (tmpname); g_free (tmpname); return image_ID; }
static gint32 load_image (const gchar *uri, GimpRunMode run_mode, GError **error) { gint32 image_ID = -1; gboolean name_image = FALSE; gchar *tmpname; gboolean mapped = FALSE; tmpname = uri_backend_map_image (uri, run_mode); if (tmpname) { mapped = TRUE; } else { tmpname = get_temp_name (uri, &name_image); if (! uri_backend_load_image (uri, tmpname, run_mode, error)) return -1; } image_ID = gimp_file_load (run_mode, tmpname, tmpname); if (image_ID != -1) { if (mapped || name_image) gimp_image_set_filename (image_ID, uri); else gimp_image_set_filename (image_ID, ""); } else { g_set_error (error, G_FILE_ERROR, G_FILE_ERROR_FAILED, "%s", gimp_get_pdb_error ()); } if (! mapped) g_unlink (tmpname); g_free (tmpname); return image_ID; }