static void _dae_save (DiaObject *obj, ObjectNode obj_node, const char *filename) { DiagramAsElement *dae; /* filename normalization */ gchar *saved_path = NULL; dae = (DiagramAsElement*)obj; if (strlen(dae->filename) && g_path_is_absolute (dae->filename)) { gchar *dirname = g_path_get_dirname (filename); if (strstr (dae->filename, dirname) == dae->filename) { saved_path = dae->filename; dae->filename += (strlen (dirname) + 1); } g_free (dirname); } object_save_using_properties (obj, obj_node, filename); if (saved_path) { dae->filename = saved_path; } }
static void _dae_save (DiaObject *obj, ObjectNode obj_node, DiaContext *ctx) { DiagramAsElement *dae; /* filename normalization */ gchar *saved_path = NULL; dae = (DiagramAsElement*)obj; if (strlen(dae->filename) && g_path_is_absolute (dae->filename)) { gchar *dirname = g_path_get_dirname (dia_context_get_filename (ctx)); if (strstr (dae->filename, dirname) == dae->filename) { saved_path = dae->filename; dae->filename += (strlen (dirname) + g_str_has_suffix (dirname, G_DIR_SEPARATOR_S) ? 0 : 1); } g_free (dirname); } object_save_using_properties (obj, obj_node, ctx); if (saved_path) { dae->filename = saved_path; } }