1 Index: Python/sysmodule.c
2 ===================================================================
3 --- Python/sysmodule.c.orig 2012-03-28 20:13:00.000000000 +0200
4 +++ Python/sysmodule.c 2012-03-28 20:13:00.000000000 +0200
10 +#ifdef HAVE_CANONICALIZE_FILE_NAME
13 + if (argc > 0 && argv0 != NULL && strcmp(argv0, "-c") != 0) {
14 + argv0 = canonicalize_file_name(argv0);
15 + if (argv0 == NULL) argv0 = strdup(argv[0]);
17 +#elif defined(HAVE_REALPATH)
18 + if (argc > 0 && argv0 != NULL && strcmp(argv0, "-c") != 0) {
19 + if (realpath(argv0, fullpath)) {
23 +#elif defined(HAVE_READLINK)
24 char link[MAXPATHLEN+1];
25 char argv0copy[2*MAXPATHLEN+1];
31 -#endif /* HAVE_READLINK */
32 +#endif /* resolve method selection */
34 #if SEP == '\\' /* Special case for MS filename syntax */
35 if (argc > 0 && argv0 != NULL && strcmp(argv0, "-c") != 0) {
37 @@ -1676,11 +1690,6 @@
39 #else /* All other filename syntaxes */
40 if (argc > 0 && argv0 != NULL && strcmp(argv0, "-c") != 0) {
41 -#if defined(HAVE_REALPATH)
42 - if (realpath(argv0, fullpath)) {
46 p = strrchr(argv0, SEP);
50 a = PyString_FromStringAndSize(argv0, n);
52 Py_FatalError("no mem for sys.path insertion");
53 +#ifdef HAVE_CANONICALIZE_FILE_NAME
54 + if (argc > 0 && argv0 != NULL && strcmp(argv0, "-c") != 0) free(argv0);
55 +#endif /* HAVE_CANONICALIZE_FILE_NAME */
56 if (PyList_Insert(path, 0, a) < 0)
57 Py_FatalError("sys.path.insert(0) failed");
60 ===================================================================
61 --- configure.in.orig 2012-03-28 20:13:00.000000000 +0200
62 +++ configure.in 2012-03-28 20:13:00.000000000 +0200
64 getpriority getresuid getresgid getpwent getspnam getspent getsid getwd \
65 initgroups kill killpg lchmod lchown lstat mkfifo mknod mktime \
66 mremap nice pathconf pause plock poll pthread_init \
67 - putenv readlink realpath \
68 + putenv readlink realpath canonicalize_file_name \
69 select sem_open sem_timedwait sem_getvalue sem_unlink setegid seteuid \
71 setlocale setregid setreuid setsid setpgid setpgrp setuid setvbuf snprintf \
73 ===================================================================
74 --- pyconfig.h.in.orig 2012-03-16 02:26:39.000000000 +0100
75 +++ pyconfig.h.in 2012-03-28 20:13:00.000000000 +0200
77 /* Define to 1 if you have the 'chflags' function. */
80 +/* Define to 1 if you have the `canonicalize_file_name' function. */
81 +#undef HAVE_CANONICALIZE_FILE_NAME
83 /* Define to 1 if you have the `chown' function. */