diff options
author | Carsten Haitzler <raster@rasterman.com> | 2012-08-01 06:28:37 +0000 |
---|---|---|
committer | Carsten Haitzler <raster@rasterman.com> | 2012-08-01 06:28:37 +0000 |
commit | 6c62ab6df5eafa27cca56c6f15dbbe5926ac053b (patch) | |
tree | 30bb232c000582fbf23609b86f91df968ef98f8d | |
parent | 5a4538e135c3e3f0130c0c1fadfc3fb2cd12726c (diff) | |
download | eina-6c62ab6df5eafa27cca56c6f15dbbe5926ac053b.tar.gz |
fix problem in dealing with debians multiarch on prefix finding.
SVN revision: 74709
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | src/lib/eina_prefix.c | 19 |
2 files changed, 25 insertions, 0 deletions
@@ -314,3 +314,9 @@ 2012-07-05 Raphael Kubo da Costa * Handle NULL in all eina_*_free function. + +2012-08-01 Carsten Haitzler (The Rasterman) + + * Modify eina_prefix to deal with debian's fun new + multiarch... if you are a shared library. + diff --git a/src/lib/eina_prefix.c b/src/lib/eina_prefix.c index 2322311..79fecac 100644 --- a/src/lib/eina_prefix.c +++ b/src/lib/eina_prefix.c @@ -578,6 +578,9 @@ eina_prefix_new(const char *argv0, void *symbol, const char *envprefix, * bin_dir = /blah/whatever/bin * data_dir = /blah/whatever/share/enlightenment * lib_dir = /blah/whatever/lib + * + * new case - debian multiarch goop. + * exe = /blah/whatever/lib/arch/libexe.so */ DBG("From exe %s figure out the rest", pfx->exe_path); p = strrchr(pfx->exe_path, DSEP_C); @@ -633,6 +636,22 @@ eina_prefix_new(const char *argv0, void *symbol, const char *envprefix, /* magic file not there. time to start hunting! */ else { + if (buf[0]) + { + for (;p > pfx->exe_path; p--) + { + if (*p == DSEP_C) + { + p--; + break; + } + } + if (p > pfx->exe_path) + { + continue; + DBG("Go back one directory"); + } + } WRN("Magic failed"); _fallback(pfx, pkg_bin, pkg_lib, pkg_data, pkg_locale, envprefix); |