You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
113 lines
3.1 KiB
113 lines
3.1 KiB
11 years ago
|
--- 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); */
|
||
|
}
|