From 2b1fa3639290223b16a160827d65637ed44b9e38 Mon Sep 17 00:00:00 2001 From: "Nikolaos S. Papaspyrou" Date: Sat, 23 Apr 2016 11:15:09 +0200 Subject: [PATCH] Bug fix to make paths relative to PWD in MacOS app --- osx/Meld | 28 +++++++++++++++++++--------- 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/osx/Meld b/osx/Meld index 1fac17b4a..0ac801285 100644 --- a/osx/Meld +++ b/osx/Meld @@ -1,4 +1,4 @@ -#!/usr/bin/python +#!/usr/bin/env python import sys import os @@ -7,23 +7,33 @@ import subprocess def getScriptPath(): return os.path.dirname(os.path.realpath(sys.argv[0])) +def fix_abspath(path): + if not os.path.isabs(path): + cwd = os.environ['PWD'] + path = os.path.join(cwd, path) + return os.path.normpath(path) arglist = [] for arg in sys.argv[1:]: if arg.startswith('--output'): filename = arg.split('=')[1] - newArg = '--output=' + os.path.abspath(filename) + newArg = '--output=' + fix_abspath(filename) elif arg.startswith('-'): newArg = arg else: - newArg = os.path.abspath(arg) + newArg = fix_abspath(arg) arglist.append(newArg) -MELDPATH = getScriptPath() + "/Meld-bin" -APPPATH = os.path.abspath(os.path.join(getScriptPath(), '..')) +MELDPATH = os.path.join(getScriptPath(), "Meld-bin") +APPPATH = fix_abspath(os.path.join(getScriptPath(), '..')) -environment = dict(os.environ, - **{ "DYLD_LIBRARY_PATH" : APPPATH+"/Resources/lib:"+ APPPATH+"/Frameworks", - "LANG": "C"}) +environment = dict(os.environ, **{ + "DYLD_LIBRARY_PATH": ":".join([ + os.path.join(APPPATH, "Resources", "lib"), + os.path.join(APPPATH, "Frameworks") + ]), + "LANG": "C" +}) -p = subprocess.call([MELDPATH] + arglist, env= environment) +status = subprocess.call([MELDPATH] + arglist, env=environment) +exit(status)