summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'games-emulation/hatari/files/hatari-1.8.0-gentoo.patch')
-rw-r--r--games-emulation/hatari/files/hatari-1.8.0-gentoo.patch112
1 files changed, 112 insertions, 0 deletions
diff --git a/games-emulation/hatari/files/hatari-1.8.0-gentoo.patch b/games-emulation/hatari/files/hatari-1.8.0-gentoo.patch
new file mode 100644
index 000000000000..4f10d6d9e3ce
--- /dev/null
+++ b/games-emulation/hatari/files/hatari-1.8.0-gentoo.patch
@@ -0,0 +1,112 @@
+--- 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); */
+ }