Remove old python/ subdir and add README containing the plan.
[fedora-mingw.git] / python / python-2.4.1-canonicalize.patch
diff --git a/python/python-2.4.1-canonicalize.patch b/python/python-2.4.1-canonicalize.patch
deleted file mode 100644 (file)
index 4127359..0000000
+++ /dev/null
@@ -1,121 +0,0 @@
---- Python-2.4.1/pyconfig.h.in.canonicalize    2004-10-13 11:30:55.000000000 -0400
-+++ Python-2.4.1/pyconfig.h.in 2005-10-06 14:04:06.000000000 -0400
-@@ -58,6 +58,9 @@
- /* Define if pthread_sigmask() does not work on your system. */
- #undef HAVE_BROKEN_PTHREAD_SIGMASK
-+/* Define to 1 if you have the `canonicalize_file_name' function. */
-+#undef HAVE_CANONICALIZE_FILE_NAME
-+
- /* Define to 1 if you have the `chown' function. */
- #undef HAVE_CHOWN
---- Python-2.4.1/Python/sysmodule.c.canonicalize       2005-01-27 13:58:30.000000000 -0500
-+++ Python-2.4.1/Python/sysmodule.c    2005-10-06 14:56:37.000000000 -0400
-@@ -1168,11 +1168,13 @@
- void
- PySys_SetArgv(int argc, char **argv)
- {
-+#ifndef HAVE_CANONICALIZE_FILE_NAME
- #if defined(HAVE_REALPATH)
-       char fullpath[MAXPATHLEN];
- #elif defined(MS_WINDOWS)
-       char fullpath[MAX_PATH];
- #endif
-+#endif
-       PyObject *av = makeargvobject(argc, argv);
-       PyObject *path = PySys_GetObject("path");
-       if (av == NULL)
-@@ -1184,6 +1186,64 @@
-               char *p = NULL;
-               int n = 0;
-               PyObject *a;
-+#ifdef HAVE_CANONICALIZE_FILE_NAME
-+              char *link = NULL, *argv0copy = NULL;
-+                
-+                if (argc > 0 && argv0 != NULL) {
-+                      
-+                      link = canonicalize_file_name(argv0);
-+                      if (link == NULL) {
-+                              link = strdup(argv0);
-+                              if (!link)
-+                                      Py_FatalError("no mem for sys.argv");
-+                      }
-+              }
-+              if (link) {
-+                      if (link[0] == SEP) /* Link to absolute path */
-+                              argv0 = link;
-+                      else if (strchr(link, SEP) == NULL) {
-+                              /* Link without path */
-+                              /* strdup argv0 so we can free it 
-+                                 unconditionally */
-+                              argv0 = strdup(argv0);
-+                              if (!argv0)
-+                                      Py_FatalError("no mem for sys.argv");
-+                              free(link);
-+                      } else {
-+                              /* Must join(dirname(argv0), link) */
-+                              char *q = strrchr(argv0, SEP);
-+                              if (q == NULL) /* argv0 without path */
-+                                      argv0 = link;
-+                              else {
-+                                      /* Must make a copy */
-+                                      argv0copy = calloc(
-+                                                strlen(link) + strlen(q) +1,
-+                                                sizeof (char));
-+                                      if (!argv0copy)
-+                                              Py_FatalError("no mem for sys.argv");
-+                                      strcpy(argv0copy, argv0);
-+                                      q = strrchr(argv0copy, SEP);
-+                                      strcpy(argv0copy+1, link);
-+                                      argv0 = argv0copy;
-+                                      p = NULL;
-+                                      free(link);
-+                              }
-+                      }
-+              }
-+              if (argc > 0 && argv0 != NULL) {
-+                      char *q;
-+                      p = strrchr(argv0, SEP);
-+                      /* Test for alternate separator */
-+                      q = strrchr(p ? p : argv0, '/');
-+                      if (q != NULL)
-+                              p = q;
-+                      if (p != NULL) {
-+                              n = p + 1 - argv0;
-+                              if (n > 1 && p[-1] != ':')
-+                                      n--; /* Drop trailing separator */
-+                      }
-+              }
-+#else /* ! HAVE_CANONICALIZE_FILE_NAME */
- #ifdef HAVE_READLINK
-               char link[MAXPATHLEN+1];
-               char argv0copy[2*MAXPATHLEN+1];
-@@ -1256,9 +1316,14 @@
- #endif /* Unix */
-               }
- #endif /* All others */
-+#endif /* ! HAVE_CANONICALIZE_FILE_NAME */
-               a = PyString_FromStringAndSize(argv0, n);
-               if (a == NULL)
-                       Py_FatalError("no mem for sys.path insertion");
-+#ifdef HAVE_CANONICALIZE_FILE_NAME
-+              if (argc > 0 && argv0 != NULL)
-+                      free(argv0);
-+#endif /* HAVE_CANONICALIZE_FILE_NAME */
-               if (PyList_Insert(path, 0, a) < 0)
-                       Py_FatalError("sys.path.insert(0) failed");
-               Py_DECREF(a);
---- Python-2.4.1/configure.in.canonicalize     2005-03-28 18:23:34.000000000 -0500
-+++ Python-2.4.1/configure.in  2005-10-06 14:04:06.000000000 -0400
-@@ -2096,8 +2096,8 @@
- AC_MSG_RESULT(MACHDEP_OBJS)
- # checks for library functions
--AC_CHECK_FUNCS(alarm bind_textdomain_codeset chown clock confstr ctermid \
-- execv fork fpathconf ftime ftruncate \
-+AC_CHECK_FUNCS(alarm bind_textdomain_codeset canonicalize_file_name chown \
-+ clock confstr ctermid execv fork fpathconf ftime ftruncate \
-  gai_strerror getgroups getlogin getloadavg getpeername getpgid getpid \
-  getpriority getpwent getsid getwd \
-  kill killpg lchown lstat mkfifo mknod mktime \