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

Collapse All | Expand All

(-)configure.ac (-1 / +3 lines)
Lines 1-4 Link Here
1
AC_INIT([eselect-python], [20091230])
1
AC_INIT([eselect-python], [20100312])
2
2
3
CFLAGS="${CFLAGS--march=native -O3 -pipe -fno-ident}"
3
CFLAGS="${CFLAGS--march=native -O3 -pipe -fno-ident}"
4
LDFLAGS="${LDFLAGS--Wl,-O1,--as-needed,--gc-sections,--hash-style=gnu}"
4
LDFLAGS="${LDFLAGS--Wl,-O1,--as-needed,--gc-sections,--hash-style=gnu}"
Lines 28-33 Link Here
28
fi
28
fi
29
CFLAGS="${old_CFLAGS}"
29
CFLAGS="${old_CFLAGS}"
30
30
31
AC_CHECK_FUNCS(setenv)
32
31
AC_SUBST([MKDIR])
33
AC_SUBST([MKDIR])
32
34
33
# Create output files.
35
# Create output files.
(-)python-wrapper.c (-2 / +21 lines)
Lines 1-4 Link Here
1
/* Copyright 1999-2009 Gentoo Foundation
1
/* Copyright 1999-2010 Gentoo Foundation
2
 * Distributed under the terms of the GNU General Public License v2
2
 * Distributed under the terms of the GNU General Public License v2
3
 */
3
 */
4
#include <dirent.h>
4
#include <dirent.h>
Lines 165-173 Link Here
165
	return ret;
165
	return ret;
166
}
166
}
167
167
168
int main(__attribute__((unused)) int argc, char** argv)
168
int main(int argc, char** argv)
169
{
169
{
170
	const char* EPYTHON = getenv("EPYTHON");
170
	const char* EPYTHON = getenv("EPYTHON");
171
	int script_name_index = -1;
171
	if (! valid_interpreter(EPYTHON))
172
	if (! valid_interpreter(EPYTHON))
172
	{
173
	{
173
		FILE* f = fopen(ENVD_CONFIG, "r");
174
		FILE* f = fopen(ENVD_CONFIG, "r");
Lines 198-203 Link Here
198
		return EXIT_ERROR;
199
		return EXIT_ERROR;
199
	}
200
	}
200
201
202
	/* Set GENTOO_PYTHON_PROCESS_NAME environment variable, if a script with a Python shebang is probably being executed.
203
	 * argv[0] can be "python", when "#!/usr/bin/env python" shebang is used. */
204
	if (argc >= 2 && (argv[0][0] == '/' || strcmp(argv[0], "python") == 0) && (argv[1][0] == '/' || strncmp(argv[1], "./", 2) == 0))
205
		script_name_index = 1;
206
	else if (argc >= 3 && argv[0][0] == '/' && argv[1][0] == '-' && (argv[2][0] == '/' || strncmp(argv[2], "./", 2) == 0))
207
		script_name_index = 2;
208
	if (script_name_index > 0)
209
	{
210
		char* script_name = strrchr(argv[script_name_index], '/') + 1;
211
#ifdef HAVE_SETENV
212
		setenv("GENTOO_PYTHON_PROCESS_NAME", script_name, 1);
213
#else
214
		char* script_name_variable = malloc(sizeof(char) * (strlen("GENTOO_PYTHON_PROCESS_NAME=") + strlen(script_name)));
215
		sprintf(script_name_variable, "GENTOO_PYTHON_PROCESS_NAME=%s", script_name);
216
		putenv(script_name_variable);
217
#endif
218
	}
219
201
	const char* path = find_path(argv[0]);
220
	const char* path = find_path(argv[0]);
202
	if (path)
221
	if (path)
203
	{
222
	{

Return to bug 286191