From 294119c497b04b5e824163af6e9115f61bc0bb84 Mon Sep 17 00:00:00 2001
From: Jonathan Wilkes <jon.w.wilkes@gmail.com>
Date: Fri, 3 Jun 2016 23:18:51 -0400
Subject: [PATCH] port a031e3b64f725c8cb3274b5ef3ff0e27a36222f5 from Pd-l2ork:
 fixed parsing of @pd_extra and @pd_help names in filenames

---
 pd/src/g_canvas.c | 7 +++++--
 pd/src/g_editor.c | 4 ++--
 2 files changed, 7 insertions(+), 4 deletions(-)

diff --git a/pd/src/g_canvas.c b/pd/src/g_canvas.c
index aab3cb18c..4599a7c35 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 af1cbbd16..02976bb14 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 */
-- 
GitLab