From 6c62ab6df5eafa27cca56c6f15dbbe5926ac053b Mon Sep 17 00:00:00 2001 From: Carsten Haitzler Date: Wed, 1 Aug 2012 06:28:37 +0000 Subject: fix problem in dealing with debians multiarch on prefix finding. SVN revision: 74709 --- ChangeLog | 6 ++++++ src/lib/eina_prefix.c | 19 +++++++++++++++++++ 2 files changed, 25 insertions(+) diff --git a/ChangeLog b/ChangeLog index 2e73efb..7c75b01 100644 --- a/ChangeLog +++ b/ChangeLog @@ -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); -- cgit v1.2.1