diff --git a/pd/src/g_canvas.c b/pd/src/g_canvas.c index aab3cb18c19e02ca0adf511696b9292c5e4cba62..4599a7c3528961a45978b1dd7257a43561b6c095 100644 --- a/pd/src/g_canvas.c +++ b/pd/src/g_canvas.c @@ -1943,14 +1943,17 @@ int canvas_open(t_canvas *x, const char *name, const char *ext, t_namelist *nl, thislist; int fd = -1; char listbuf[MAXPDSTRING]; + char final_name[FILENAME_MAX]; t_canvas *y; t_canvasopen co; + sys_expandpathelems(name, final_name); + /* first check if "name" is absolute (and if so, try to open) */ - if (sys_open_absolute(name, ext, dirresult, nameresult, size, bin, &fd)) + if (sys_open_absolute(final_name, ext, dirresult, nameresult, size, bin, &fd)) return (fd); /* otherwise "name" is relative; iterate over all the search-paths */ - co.name = name; + co.name = final_name; co.ext = ext; co.dirresult = dirresult; co.nameresult = nameresult; diff --git a/pd/src/g_editor.c b/pd/src/g_editor.c index af1cbbd16c7559909c029a7e0bf42652f5c88438..02976bb1438402168d24aaf24fde146639ff8521 100644 --- a/pd/src/g_editor.c +++ b/pd/src/g_editor.c @@ -5352,7 +5352,7 @@ void canvas_menuclose(t_canvas *x, t_floatarg fforce); void glob_closeall(void*dummy, t_floatarg fforce) { t_canvas*x, *y; - for (x = pd_this->canvaslist; x; ) + for (x = pd_this->pd_canvaslist; x; ) { y=x->gl_next; canvas_menuclose(x, fforce); /* forced closing of this root canvas */ @@ -5367,7 +5367,7 @@ void glob_verifyquit(void *dummy, t_floatarg f) //fprintf(stderr, "glob_verifyquit %f\n", f); t_glist *g, *g2; /* find all root canvases */ - for (g = pd_this->canvaslist; g; g = g->gl_next) + for (g = pd_this->pd_canvaslist; g; g = g->gl_next) if (g2 = glist_finddirty(g)) { /* first open window */