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;
  }
}
Exemple #2
0
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;
  }
}