Pierre d'Herbemont : wineprefixcreate: Make path searching relative.

Alexandre Julliard julliard at wine.codeweavers.com
Tue Mar 14 12:04:35 CST 2006


Module: wine
Branch: refs/heads/master
Commit: b1be72451102e46f3e44c94a3565eb546aebb541
URL:    http://source.winehq.org/git/?p=wine.git;a=commit;h=b1be72451102e46f3e44c94a3565eb546aebb541

Author: Pierre d'Herbemont <stegefin at free.fr>
Date:   Sat Mar 11 21:12:11 2006 +0100

wineprefixcreate: Make path searching relative.

---

 tools/Makefile.in         |    2 +-
 tools/wineprefixcreate.in |   27 +++++++++++++++++++++++++--
 2 files changed, 26 insertions(+), 3 deletions(-)

diff --git a/tools/Makefile.in b/tools/Makefile.in
index c44525d..cb8337a 100644
--- a/tools/Makefile.in
+++ b/tools/Makefile.in
@@ -70,7 +70,7 @@ bin2res$(EXEEXT): bin2res.o
 	$(CC) $(CFLAGS) -o $@ bin2res.o $(LIBPORT)
 
 wineprefixcreate: wineprefixcreate.in
-	sed -e 's, at dlldir\@,$(dlldir),g' -e 's, at datadir\@,$(datadir),g' $(SRCDIR)/wineprefixcreate.in >$@ || ($(RM) $@ && false)
+	sed -e "s, at bintodlldir\@,`$(RELPATH) $(bindir) $(dlldir)`,g" -e "s, at bintodatadir\@,`$(RELPATH) $(bindir) $(datadir)`,g" $(SRCDIR)/wineprefixcreate.in >$@ || ($(RM) $@ && false)
 	chmod +x wineprefixcreate
 
 install install-lib:: wineprefixcreate
diff --git a/tools/wineprefixcreate.in b/tools/wineprefixcreate.in
index 876a533..3effdb5 100644
--- a/tools/wineprefixcreate.in
+++ b/tools/wineprefixcreate.in
@@ -36,8 +36,31 @@ usage()
 
 set -e
 
-dlldir="@dlldir@"
-datadir="@datadir@/wine"
+bindir=""
+case "$0" in
+  */*)
+    # $0 contains a path, use it
+    bindir=`dirname "$0"`
+    ;;
+  *)
+    # no directory in $0, search in PATH
+    saved_ifs=$IFS
+    IFS=:
+    for d in $PATH
+    do
+      IFS=$saved_ifs
+      if [ -x "$d/$0" ]
+      then
+        bindir="$d"
+        break
+      fi
+    done
+    ;;
+esac
+
+bindir=`cd "$bindir" && pwd`
+dlldir="$bindir/@bintodlldir@"
+datadir="$bindir/@bintodatadir@"
 
 do_wait=0
 quiet=0




More information about the wine-cvs mailing list