X-Git-Url: http://research.m1stereo.tv/gitweb?a=blobdiff_plain;f=src%2Fmodules%2Fjackrack%2Fplugin_mgr.c;h=37d7510417c4fcac5b299e2cabed90e2ad02b15e;hb=3cafdc0fe6c5ee83012f3ae1c7bf4d7ec9dca5b1;hp=7d2440f2376cd5238e98cb1a38096d1fdf5c932b;hpb=8af2cb1f1ee8701eeb85c9316e1803f45787b153;p=melted diff --git a/src/modules/jackrack/plugin_mgr.c b/src/modules/jackrack/plugin_mgr.c index 7d2440f..37d7510 100644 --- a/src/modules/jackrack/plugin_mgr.c +++ b/src/modules/jackrack/plugin_mgr.c @@ -34,6 +34,8 @@ #include #include #include +#include +#include #include "plugin_mgr.h" #include "plugin_desc.h" @@ -170,6 +172,8 @@ plugin_mgr_get_dir_plugins (plugin_mgr_t * plugin_mgr, const char * dir) while ( (dir_entry = readdir (dir_stream)) ) { + struct stat info; + if (strcmp (dir_entry->d_name, ".") == 0 || strcmp (dir_entry->d_name, "..") == 0) continue; @@ -185,7 +189,11 @@ plugin_mgr_get_dir_plugins (plugin_mgr_t * plugin_mgr, const char * dir) strcpy (file_name + dirlen + 1, dir_entry->d_name); } - plugin_mgr_get_object_file_plugins (plugin_mgr, file_name); + stat (file_name, &info); + if (S_ISDIR (info.st_mode)) + plugin_mgr_get_dir_plugins (plugin_mgr, file_name); + else + plugin_mgr_get_object_file_plugins (plugin_mgr, file_name); g_free (file_name); }