diff options
Diffstat (limited to 'features')
-rw-r--r-- | features/org.eclipse.equinox.executable.feature/library/eclipseConfig.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/features/org.eclipse.equinox.executable.feature/library/eclipseConfig.c b/features/org.eclipse.equinox.executable.feature/library/eclipseConfig.c index bc7a5cdc0..40c024c23 100644 --- a/features/org.eclipse.equinox.executable.feature/library/eclipseConfig.c +++ b/features/org.eclipse.equinox.executable.feature/library/eclipseConfig.c @@ -13,6 +13,9 @@ #include "eclipseOS.h" #include "eclipseConfig.h" +#ifdef MACOSX +#include <libgen.h> +#endif #ifdef _WIN32 #include <stdio.h> @@ -76,6 +79,21 @@ _TCHAR* getIniFile(_TCHAR* program, int consoleLauncher){ } } } +#elif MACOSX + //On MacOSX, the eclipse.ini is not a sibling of the executable. + //It is in ../Eclipse/<launcherName>.ini relatively to the executable. + char *dirc, *basec, *bname, *dname; + dirc = strdup(program); + basec = strdup(program); + dname = dirname(dirname(dirc)); + bname = basename(basec); + config_file = realloc(config_file, strlen(dname) + strlen(bname) + 16 * sizeof(char)); + sprintf(config_file, "%s/Eclipse/%s.ini", dname, bname); + printf("ini location is %s", config_file); + free(dirc); + free(basec); + free(dname); + free(bname); #else /* Append the extension */ strcat(config_file, ".ini"); |