{
FILE *f;
GVC_t *gvc;
+ Agraph_t *g = NULL;
gvlayout_engine_t *gvle;
gvc = job->gvc;
- if (gvc->g) {
- gvle = gvc->layout.engine;
- if (gvle && gvle->cleanup)
- gvle->cleanup(gvc->g);
- graph_cleanup(gvc->g);
- agclose(gvc->g);
- }
if (!filename) {
- gvc->g = agopen("G", AGDIGRAPH);
+ g = agopen("G", AGDIGRAPH);
job->output_filename = "new.dot";
}
else {
f = fopen(filename, "r");
if (!f)
- return; /* FIXME - need some error handling */
- gvc->g = agread(f);
+ return; /* FIXME - need some error handling */
+ g = agread(f);
fclose(f);
}
- GD_gvc(gvc->g) = gvc;
- gvLayout(gvc, gvc->g, layout);
+ if (!g)
+ return; /* FIXME - need some error handling */
+ if (gvc->g) {
+ gvle = gvc->layout.engine;
+ if (gvle && gvle->cleanup)
+ gvle->cleanup(gvc->g);
+ graph_cleanup(gvc->g);
+ agclose(gvc->g);
+ }
+ gvc->g = g;
+ GD_gvc(g) = gvc;
+ gvLayout(gvc, g, layout);
job->selected_obj = NULL;
job->current_obj = NULL;
job->needs_refresh = 1;