Line
Link Here
|
0 |
-- Modules/main.c |
0 |
++ Modules/main.c |
Lines 452-458
Link Here
|
452 |
filename = argv[_PyOS_optind]; |
452 |
filename = argv[_PyOS_optind]; |
453 |
|
453 |
|
454 |
#else |
454 |
#else |
455 |
filename = argv[_PyOS_optind]; |
455 |
filename = strdup(argv[_PyOS_optind]); |
|
|
456 |
char *new_script_name = getenv("PYTHON_SCRIPT_NAME"); |
457 |
if (new_script_name != NULL) { |
458 |
size_t old_script_name_length = strlen(argv[_PyOS_optind]); |
459 |
size_t new_script_name_length = strlen(new_script_name); |
460 |
size_t i; |
461 |
for (i = 0; i < old_script_name_length; i++) { |
462 |
if (i <= new_script_name_length) |
463 |
argv[_PyOS_optind][i] = new_script_name[i]; |
464 |
else |
465 |
argv[_PyOS_optind][i] = '\0'; |
466 |
} |
467 |
} |
456 |
#endif |
468 |
#endif |
457 |
} |
469 |
} |
458 |
|
470 |
|
459 |
-- Modules/python.c |
471 |
++ Modules/python.c |
Lines 6-11
Link Here
|
6 |
#include <floatingpoint.h> |
6 |
#include <floatingpoint.h> |
7 |
#endif |
7 |
#endif |
8 |
|
8 |
|
|
|
9 |
#ifdef __linux__ |
10 |
#include <linux/prctl.h> |
11 |
#include <sys/prctl.h> |
12 |
#endif |
13 |
|
9 |
int |
14 |
int |
10 |
main(int argc, char **argv) |
15 |
main(int argc, char **argv) |
11 |
{ |
16 |
{ |
Lines 20-24
Link Here
|
20 |
m = fpgetmask(); |
25 |
m = fpgetmask(); |
21 |
fpsetmask(m & ~FP_X_OFL); |
26 |
fpsetmask(m & ~FP_X_OFL); |
22 |
#endif |
27 |
#endif |
|
|
28 |
|
29 |
#ifdef __linux__ |
30 |
char *process_name = getenv("PYTHON_PROCESS_NAME"); |
31 |
if (process_name) |
32 |
prctl(PR_SET_NAME, process_name); |
33 |
#endif |
34 |
|
23 |
return Py_Main(argc, argv); |
35 |
return Py_Main(argc, argv); |
24 |
} |
36 |
} |
25 |
-- Python/sysmodule.c |
37 |
++ Python/sysmodule.c |
Lines 1490-1495
Link Here
|
1490 |
makeargvobject(int argc, char **argv) |
1490 |
makeargvobject(int argc, char **argv) |
1491 |
{ |
1491 |
{ |
1492 |
PyObject *av; |
1492 |
PyObject *av; |
|
|
1493 |
char *script_name = getenv("PYTHON_SCRIPT_NAME"); |
1493 |
if (argc <= 0 || argv == NULL) { |
1494 |
if (argc <= 0 || argv == NULL) { |
1494 |
/* Ensure at least one (empty) argument is seen */ |
1495 |
/* Ensure at least one (empty) argument is seen */ |
1495 |
static char *empty_argv[1] = {""}; |
1496 |
static char *empty_argv[1] = {""}; |
Lines 1514-1520
Link Here
|
1514 |
} else |
1515 |
} else |
1515 |
v = PyString_FromString(argv[i]); |
1516 |
v = PyString_FromString(argv[i]); |
1516 |
#else |
1517 |
#else |
1517 |
PyObject *v = PyString_FromString(argv[i]); |
1518 |
PyObject *v; |
|
|
1519 |
if (i == 0 && script_name != NULL) |
1520 |
v = PyString_FromString(script_name); |
1521 |
else |
1522 |
v = PyString_FromString(argv[i]); |
1518 |
#endif |
1523 |
#endif |
1519 |
if (v == NULL) { |
1524 |
if (v == NULL) { |
1520 |
Py_DECREF(av); |
1525 |
Py_DECREF(av); |