Skip to content
Snippets Groups Projects
Commit ec970b8b authored by Ivica Bukvic's avatar Ivica Bukvic
Browse files

*Ported open_via_helppath from pd to fix inability to open help files when...

*Ported open_via_helppath from pd to fix inability to open help files when starting pd-l2ork from the doc/5.reference folder.
parent b7be4af5
No related branches found
No related tags found
No related merge requests found
...@@ -467,40 +467,35 @@ int open_via_path(const char *dir, const char *name, const char *ext, ...@@ -467,40 +467,35 @@ int open_via_path(const char *dir, const char *name, const char *ext,
search attempts. */ search attempts. */
void open_via_helppath(const char *name, const char *dir) void open_via_helppath(const char *name, const char *dir)
{ {
char realname[FILENAME_MAX], propername[FILENAME_MAX], dirbuf[FILENAME_MAX]; char realname[MAXPDSTRING], dirbuf[MAXPDSTRING], *basename;
char *basename;
/* make up a silly "dir" if none is supplied */ /* make up a silly "dir" if none is supplied */
const char *usedir = (*dir ? dir : "./"); const char *usedir = (*dir ? dir : "./");
int fd; int fd;
/* 1. "objectname-help.pd" */ /* 1. "objectname-help.pd" */
strncpy(realname, name, FILENAME_MAX-10); strncpy(realname, name, MAXPDSTRING-10);
realname[FILENAME_MAX-10] = 0; realname[MAXPDSTRING-10] = 0;
if (strlen(realname) > 3 && !strcmp(realname+strlen(realname)-3, ".pd")) if (strlen(realname) > 3 && !strcmp(realname+strlen(realname)-3, ".pd"))
realname[strlen(realname)-3] = 0; realname[strlen(realname)-3] = 0;
strcat(realname, "-help.pd"); strcat(realname, "-help.pd");
strncpy(propername, realname, FILENAME_MAX); if ((fd = do_open_via_path(usedir, realname, "", dirbuf, &basename,
if ((fd = do_open_via_path(dir, realname, "", dirbuf, &basename, MAXPDSTRING, 0, sys_helppath)) >= 0)
FILENAME_MAX, 0, sys_helppath)) >= 0)
goto gotone; goto gotone;
/* 2. "help-objectname.pd" */ /* 2. "help-objectname.pd" */
strcpy(realname, "help-"); strcpy(realname, "help-");
strncat(realname, name, FILENAME_MAX-10); strncat(realname, name, MAXPDSTRING-10);
realname[FILENAME_MAX-1] = 0; realname[MAXPDSTRING-1] = 0;
if ((fd = do_open_via_path(dir, realname, "", dirbuf, &basename, if ((fd = do_open_via_path(usedir, realname, "", dirbuf, &basename,
FILENAME_MAX, 0, sys_helppath)) >= 0) MAXPDSTRING, 0, sys_helppath)) >= 0)
goto gotone_deprecated; goto gotone;
/* 3. "objectname.pd" */ /* 3. "objectname.pd" */
if ((fd = do_open_via_path(dir, name, "", dirbuf, &basename, if ((fd = do_open_via_path(usedir, name, "", dirbuf, &basename,
FILENAME_MAX, 0, sys_helppath)) >= 0) MAXPDSTRING, 0, sys_helppath)) >= 0)
goto gotone_deprecated; goto gotone;
post("sorry, couldn't find help patch for \"%s\"", name); post("sorry, couldn't find help patch for \"%s\"", name);
return; return;
gotone_deprecated:
error("'%s' is a deprecated name format for a help patch.\n\tPlease rename to '%s'!",
basename, propername);
gotone: gotone:
close (fd); close (fd);
glob_evalfile(0, gensym((char*)basename), gensym(dirbuf)); glob_evalfile(0, gensym((char*)basename), gensym(dirbuf));
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment