--- hatari-1.4.0.orig/src/paths.c +++ hatari-1.4.0/src/paths.c @@ -109,71 +109,6 @@ free(pTmpName); } - -/** - * Locate the directory where the hatari executable resides - */ -static char *Paths_InitExecDir(const char *argv0) -{ - char *psExecDir; /* Path string where the hatari executable can be found */ - - /* Allocate memory for storing the path string of the executable */ - psExecDir = malloc(FILENAME_MAX); - if (!psExecDir) - { - fprintf(stderr, "Out of memory (Paths_Init)\n"); - exit(-1); - } - - /* Determine the bindir... - * Start with empty string, then try to use OS specific functions, - * and finally analyze the PATH variable if it has not been found yet. */ - psExecDir[0] = '\0'; - -#if defined(__linux__) - { - int i; - /* On Linux, we can analyze the symlink /proc/self/exe */ - i = readlink("/proc/self/exe", psExecDir, FILENAME_MAX); - if (i > 0) - { - char *p; - psExecDir[i] = '\0'; - p = strrchr(psExecDir, '/'); /* Search last slash */ - if (p) - *p = 0; /* Strip file name from path */ - } - } -//#elif defined(WIN32) || defined(__CEGCC__) -// /* On Windows we can use GetModuleFileName for getting the exe path */ -// GetModuleFileName(NULL, psExecDir, FILENAME_MAX); -#endif - - /* If we do not have the execdir yet, analyze argv[0] and the PATH: */ - if (psExecDir[0] == 0) - { - if (strchr(argv0, PATHSEP) == 0) - { - /* No separator in argv[0], we have to explore PATH... */ - Paths_GetExecDirFromPATH(argv0, psExecDir, FILENAME_MAX); - } - else - { - /* There was a path separator in argv[0], so let's assume a - * relative or absolute path to the current directory in argv[0] */ - char *p; - strncpy(psExecDir, argv0, FILENAME_MAX); - psExecDir[FILENAME_MAX-1] = 0; - p = strrchr(psExecDir, PATHSEP); /* Search last slash */ - if (p) - *p = 0; /* Strip file name from path */ - } - } - - return psExecDir; -} - - /** * Initialize the users home directory string * and Hatari's home directory (~/.hatari) @@ -226,8 +161,6 @@ */ void Paths_Init(const char *argv0) { - char *psExecDir; /* Path string where the hatari executable can be found */ - /* Init working directory string */ if (getcwd(sWorkingDir, FILENAME_MAX) == NULL) { @@ -238,27 +171,11 @@ /* Init the user's home directory string */ Paths_InitHomeDirs(); - /* Get the directory where the executable resides */ - psExecDir = Paths_InitExecDir(argv0); - - /* Now create the datadir path name from the bindir path name: */ - if (psExecDir && strlen(psExecDir) > 0) - { - snprintf(sDataDir, sizeof(sDataDir), "%s%c%s", - psExecDir, PATHSEP, BIN2DATADIR); - } - else - { - /* bindir could not be determined, let's assume datadir is relative - * to current working directory... */ - strcpy(sDataDir, BIN2DATADIR); - } + strcpy(sDataDir, BIN2DATADIR); /* And finally make a proper absolute path out of datadir: */ File_MakeAbsoluteName(sDataDir); - free(psExecDir); - /* fprintf(stderr, " WorkingDir = %s\n DataDir = %s\n UserHomeDir = %s\n HatariHomeDir = %s\n", sWorkingDir, sDataDir, sUserHomeDir, sHatariHomeDir); */ } --- hatari-1.6.2.orig/python-ui/hatariui 2012-06-24 12:29:26.000000000 +0200 +++ hatari-1.6.2/python-ui/hatariui 2012-10-06 08:44:23.000000000 +0200 @@ -8,14 +8,14 @@ if [ ! -e $path/$name.py ]; then # Assume package has been relocated, try relative data directory: - path=${0%/*}/../share/hatari/hatariui + path=/usr/share/games/hatari/hatariui fi # Assume hatari system configuration file dir is relative to hatariui dir # (usually system config file isn't installed, but if defaults need to be # configured differently from Hatari source code defaults, they're better # done with system config file than patching sources). -conf=${path%/*}/../etc +conf=/etc/games # checked by hatari UI export HATARI_SYSTEM_CONFDIR=$conf --- hatari-1.6.2.orig/python-ui/uihelpers.py.ori 2012-06-24 12:29:26.000000000 +0200 +++ hatari-1.6.2/python-ui/uihelpers.py 2012-10-06 09:16:46.000000000 +0200 @@ -98,8 +98,8 @@ # for this Hatari/UI version sep = os.sep path = self.get_binary_path("hatari") - path = sep.join(path.split(sep)[:-2]) # remove "bin/hatari" - path = path + sep + "share" + sep + "doc" + sep + "hatari" + sep + path = sep.join(path.split(sep)[:-3]) # remove "bin/hatari" + path = path + sep + "share" + sep + "doc" + sep + "hatari-1.6.2" + sep + "html" + sep if os.path.exists(path + "manual.html"): return path # if not, point to latest Hatari HG version docs