diff options
Diffstat (limited to 'plugins/ao/eng_ssf/eng_ssf.c')
-rw-r--r-- | plugins/ao/eng_ssf/eng_ssf.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/plugins/ao/eng_ssf/eng_ssf.c b/plugins/ao/eng_ssf/eng_ssf.c index 0d81a665..18ba0e42 100644 --- a/plugins/ao/eng_ssf/eng_ssf.c +++ b/plugins/ao/eng_ssf/eng_ssf.c @@ -120,6 +120,20 @@ void *ssf_start(const char *path, uint8 *buffer, uint32 length) { uint64 tmp_length; + char libpath[PATH_MAX]; + const char *e = path + strlen(path); + while (e > path && *e != '/') { + e--; + } + if (*e == '/') { + e++; + memcpy (libpath, path, e-path); + libpath[e-path] = 0; + strcat (libpath, libfile); + } + else { + strcpy (libpath, libfile); + } #if DEBUG_LOADER printf("Loading library: %s\n", c->lib); #endif |