diff options
-rw-r--r-- | packages/patches/hard-code_default_user-install_paths-0.42.4.patch | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/packages/patches/hard-code_default_user-install_paths-0.42.4.patch b/packages/patches/hard-code_default_user-install_paths-0.42.4.patch new file mode 100644 index 00000000..c9abc046 --- /dev/null +++ b/packages/patches/hard-code_default_user-install_paths-0.42.4.patch @@ -0,0 +1,51 @@ +--- branches/pd-extended/0.41/pd/src/s_path.c 2009/04/09 01:04:16 10990 ++++ branches/pd-extended/0.41/pd/src/s_path.c 2009/04/09 01:29:24 10991 +@@ -229,8 +229,29 @@ + + void sys_setextrapath(const char *p) + { ++ char pathbuf[FILENAME_MAX]; + namelist_free(pd_extrapath); +- pd_extrapath = namelist_append(0, p, 0); ++ /* add standard place for users to install stuff first */ ++#ifdef __gnu_linux__ ++ sys_expandpath("~/pd-externals", pathbuf); ++ pd_extrapath = namelist_append(0, pathbuf, 0); ++ pd_extrapath = namelist_append(pd_extrapath, "/usr/local/lib/pd-externals", 0); ++#endif ++ ++#ifdef __APPLE__ ++ sys_expandpath("~/Library/Pd", pathbuf); ++ pd_extrapath = namelist_append(0, pathbuf, 0); ++ pd_extrapath = namelist_append(pd_extrapath, "/Library/Pd", 0); ++#endif ++ ++#ifdef _WIN32 ++ sys_expandpath("%ProgramFiles%/Common Files/Pd", pathbuf); ++ pd_extrapath = namelist_append(0, pathbuf, 0); ++ sys_expandpath("%UserProfile%/Application Data/Pd", pathbuf); ++ pd_extrapath = namelist_append(pd_extrapath, pathbuf, 0); ++#endif ++ /* add built-in "extra" path last so its checked last */ ++ pd_extrapath = namelist_append(pd_extrapath, p, 0); + } + + #ifdef MSW +@@ -357,11 +378,12 @@ + dirresult, nameresult, size, bin)) >= 0) + return (fd); + +- /* next look in "extra" */ +- if (sys_usestdpath && +- (fd = sys_trytoopenone(pd_extrapath->nl_string, name, ext, +- dirresult, nameresult, size, bin)) >= 0) +- return (fd); ++ /* next look in built-in paths like "extra" */ ++ if (sys_usestdpath) ++ for (nl = pd_extrapath; nl; nl = nl->nl_next) ++ if ((fd = sys_trytoopenone(nl->nl_string, name, ext, ++ dirresult, nameresult, size, bin)) >= 0) ++ return (fd); + + *dirresult = 0; + *nameresult = dirresult; |