Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 424321 | Differences between
and this patch

Collapse All | Expand All

(-)file_not_specified_in_diff (-85 / +2 lines)
Line  Link Here
0
-- hatari-1.4.0.orig/src/paths.c
0
++ hatari-1.4.0/src/paths.c
Lines 109-179 Link Here
109
	free(pTmpName);
109
	free(pTmpName);
110
}
110
}
111
111
112
113
/**
114
 * Locate the directory where the hatari executable resides
115
 */
116
static char *Paths_InitExecDir(const char *argv0)
117
{
118
	char *psExecDir;  /* Path string where the hatari executable can be found */
119
120
	/* Allocate memory for storing the path string of the executable */
121
	psExecDir = malloc(FILENAME_MAX);
122
	if (!psExecDir)
123
	{
124
		fprintf(stderr, "Out of memory (Paths_Init)\n");
125
		exit(-1);
126
	}
127
128
	/* Determine the bindir...
129
	 * Start with empty string, then try to use OS specific functions,
130
	 * and finally analyze the PATH variable if it has not been found yet. */
131
	psExecDir[0] = '\0';
132
133
#if defined(__linux__)
134
	{
135
		int i;
136
		/* On Linux, we can analyze the symlink /proc/self/exe */
137
		i = readlink("/proc/self/exe", psExecDir, FILENAME_MAX);
138
		if (i > 0)
139
		{
140
			char *p;
141
			psExecDir[i] = '\0';
142
			p = strrchr(psExecDir, '/');    /* Search last slash */
143
			if (p)
144
				*p = 0;                     /* Strip file name from path */
145
		}
146
	}
147
//#elif defined(WIN32) || defined(__CEGCC__)
148
//	/* On Windows we can use GetModuleFileName for getting the exe path */
149
//	GetModuleFileName(NULL, psExecDir, FILENAME_MAX);
150
#endif
151
152
	/* If we do not have the execdir yet, analyze argv[0] and the PATH: */
153
	if (psExecDir[0] == 0)
154
	{
155
		if (strchr(argv0, PATHSEP) == 0)
156
		{
157
			/* No separator in argv[0], we have to explore PATH... */
158
			Paths_GetExecDirFromPATH(argv0, psExecDir, FILENAME_MAX);
159
		}
160
		else
161
		{
162
			/* There was a path separator in argv[0], so let's assume a
163
			 * relative or absolute path to the current directory in argv[0] */
164
			char *p;
165
			strncpy(psExecDir, argv0, FILENAME_MAX);
166
			psExecDir[FILENAME_MAX-1] = 0;
167
			p = strrchr(psExecDir, PATHSEP);  /* Search last slash */
168
			if (p)
169
				*p = 0;                       /* Strip file name from path */
170
		}
171
	}
172
173
	return psExecDir;
174
}
175
176
177
/**
112
/**
178
 * Initialize the users home directory string
113
 * Initialize the users home directory string
179
 * and Hatari's home directory (~/.hatari)
114
 * and Hatari's home directory (~/.hatari)
Lines 226-233 Link Here
226
 */
161
 */
227
void Paths_Init(const char *argv0)
162
void Paths_Init(const char *argv0)
228
{
163
{
229
	char *psExecDir;  /* Path string where the hatari executable can be found */
230
231
	/* Init working directory string */
164
	/* Init working directory string */
232
	if (getcwd(sWorkingDir, FILENAME_MAX) == NULL)
165
	if (getcwd(sWorkingDir, FILENAME_MAX) == NULL)
233
	{
166
	{
Lines 238-264 Link Here
238
	/* Init the user's home directory string */
171
	/* Init the user's home directory string */
239
	Paths_InitHomeDirs();
172
	Paths_InitHomeDirs();
240
173
241
	/* Get the directory where the executable resides */
174
	strcpy(sDataDir, BIN2DATADIR);
242
	psExecDir = Paths_InitExecDir(argv0);
243
244
	/* Now create the datadir path name from the bindir path name: */
245
	if (psExecDir && strlen(psExecDir) > 0)
246
	{
247
		snprintf(sDataDir, sizeof(sDataDir), "%s%c%s",
248
		         psExecDir, PATHSEP, BIN2DATADIR);
249
	}
250
	else
251
	{
252
		/* bindir could not be determined, let's assume datadir is relative
253
		 * to current working directory... */
254
		strcpy(sDataDir, BIN2DATADIR);
255
	}
256
175
257
	/* And finally make a proper absolute path out of datadir: */
176
	/* And finally make a proper absolute path out of datadir: */
258
	File_MakeAbsoluteName(sDataDir);
177
	File_MakeAbsoluteName(sDataDir);
259
178
260
	free(psExecDir);
261
262
	/* fprintf(stderr, " WorkingDir = %s\n DataDir = %s\n UserHomeDir = %s\n HatariHomeDir = %s\n",
179
	/* fprintf(stderr, " WorkingDir = %s\n DataDir = %s\n UserHomeDir = %s\n HatariHomeDir = %s\n",
263
	        sWorkingDir, sDataDir, sUserHomeDir, sHatariHomeDir); */
180
	        sWorkingDir, sDataDir, sUserHomeDir, sHatariHomeDir); */
264
}
181
}
(-)hatari-1.6.2.orig/python-ui/hatariui (-2 / +2 lines)
Lines 8-21 Link Here
8
8
9
if [ ! -e $path/$name.py ]; then
9
if [ ! -e $path/$name.py ]; then
10
	# Assume package has been relocated, try relative data directory:
10
	# Assume package has been relocated, try relative data directory:
11
	path=${0%/*}/../share/hatari/hatariui
11
	path=/usr/share/games/hatari/hatariui
12
fi
12
fi
13
13
14
# Assume hatari system configuration file dir is relative to hatariui dir
14
# Assume hatari system configuration file dir is relative to hatariui dir
15
# (usually system config file isn't installed, but if defaults need to be
15
# (usually system config file isn't installed, but if defaults need to be
16
# configured differently from Hatari source code defaults, they're better
16
# configured differently from Hatari source code defaults, they're better
17
# done with system config file than patching sources).
17
# done with system config file than patching sources).
18
conf=${path%/*}/../etc
18
conf=/etc/games
19
# checked by hatari UI
19
# checked by hatari UI
20
export HATARI_SYSTEM_CONFDIR=$conf
20
export HATARI_SYSTEM_CONFDIR=$conf
21
21
(-)hatari-1.6.2.orig/python-ui/uihelpers.py.ori (-2 / +2 lines)
Lines 98-105 Link Here
98
        # for this Hatari/UI version
98
        # for this Hatari/UI version
99
        sep = os.sep
99
        sep = os.sep
100
        path = self.get_binary_path("hatari")
100
        path = self.get_binary_path("hatari")
101
        path = sep.join(path.split(sep)[:-2]) # remove "bin/hatari"
101
        path = sep.join(path.split(sep)[:-3]) # remove "bin/hatari"
102
        path = path + sep + "share" + sep + "doc" + sep + "hatari" + sep
102
        path = path + sep + "share" + sep + "doc" + sep + "hatari-1.6.2" + sep + "html" + sep
103
        if os.path.exists(path + "manual.html"):
103
        if os.path.exists(path + "manual.html"):
104
            return path
104
            return path
105
        # if not, point to latest Hatari HG version docs
105
        # if not, point to latest Hatari HG version docs

Return to bug 424321