diff options
Diffstat (limited to 'src/viewplugger.cpp')
-rw-r--r-- | src/viewplugger.cpp | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/src/viewplugger.cpp b/src/viewplugger.cpp index 6046f82..58f3605 100644 --- a/src/viewplugger.cpp +++ b/src/viewplugger.cpp | |||
@@ -1,11 +1,35 @@ | |||
1 | #include "viewplugger.h" | 1 | #include "viewplugger.h" |
2 | 2 | ||
3 | #include <sys/types.h> | ||
4 | #include <dirent.h> | ||
5 | |||
3 | extern Bu::PluginInfo pluginViewDefault; | 6 | extern Bu::PluginInfo pluginViewDefault; |
4 | extern Bu::PluginInfo pluginViewMake; | 7 | extern Bu::PluginInfo pluginViewMake; |
5 | ViewPlugger::ViewPlugger() | 8 | ViewPlugger::ViewPlugger() |
6 | { | 9 | { |
7 | registerBuiltinPlugin( &pluginViewDefault ); | 10 | registerBuiltinPlugin( &pluginViewDefault ); |
8 | registerBuiltinPlugin( &pluginViewMake ); | 11 | registerBuiltinPlugin( &pluginViewMake ); |
12 | |||
13 | DIR *dir = opendir("/usr/lib/build"); | ||
14 | if( !dir ) | ||
15 | return; | ||
16 | struct dirent *de; | ||
17 | while( (de = readdir( dir )) ) | ||
18 | { | ||
19 | if( strncmp("pluginView", de->d_name, 15 ) ) | ||
20 | continue; | ||
21 | |||
22 | Bu::FString sFile("/usr/lib/build/"); | ||
23 | sFile += de->d_name; | ||
24 | char *s = de->d_name; | ||
25 | for(; *s && *s != '.'; s++ ) { } | ||
26 | registerExternalPlugin( | ||
27 | sFile, | ||
28 | Bu::FString( de->d_name, (ptrdiff_t)s-(ptrdiff_t)de->d_name ) | ||
29 | ); | ||
30 | } | ||
31 | |||
32 | closedir( dir ); | ||
9 | } | 33 | } |
10 | 34 | ||
11 | ViewPlugger::~ViewPlugger() | 35 | ViewPlugger::~ViewPlugger() |