summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com>2023-12-21 17:12:13 +0100
committerManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com>2023-12-21 17:12:13 +0100
commitfcf91e51c008681f26c48b9a51a0475b509abe2c (patch)
treee26496d017a3093f2a77a04116b32ca6e8d333f6 /src
parente466fe20c84ae17facd62c71de767603705be424 (diff)
Fix "Fl_Plugin_Manager::loadAll doesn't work correct" (#876)
Diffstat (limited to 'src')
-rw-r--r--src/Fl_Preferences.cxx4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/Fl_Preferences.cxx b/src/Fl_Preferences.cxx
index f4a769d69..43ffa57fc 100644
--- a/src/Fl_Preferences.cxx
+++ b/src/Fl_Preferences.cxx
@@ -1981,12 +1981,14 @@ int Fl_Plugin_Manager::load(const char *filename) {
\brief Use this function to load a whole directory full of modules.
*/
int Fl_Plugin_Manager::loadAll(const char *filepath, const char *pattern) {
+ if (!filepath || strlen(filepath) < 1) return -1;
+ const char *format = (filepath[strlen(filepath) - 1] == '/' ? "%s%s" : "%s/%s");
struct dirent **dir;
int i, n = fl_filename_list(filepath, &dir);
for (i=0; i<n; i++) {
struct dirent *e = dir[i];
if (pattern==0 || fl_filename_match(e->d_name, pattern)) {
- load(Fl_Preferences::Name("%s%s", filepath, e->d_name));
+ load(Fl_Preferences::Name(format, filepath, e->d_name));
}
free(e);
}