summary refs log tree commit diff
path: root/pkgs/development/interpreters/python/2.7/2.7.3-getpath-exe-extension.patch
diff options
context:
space:
mode:
authorFlorian Friesdorf <flo@chaoflow.net>2014-10-23 21:25:57 +0200
committerRok Garbas <rok@garbas.si>2015-05-28 10:53:36 +0200
commit5f4a9c3391bad23ffbb3e0a3b740115b7ebee11e (patch)
tree24d39a5b8778bebaccba798c4eee9782b2df3852 /pkgs/development/interpreters/python/2.7/2.7.3-getpath-exe-extension.patch
parentd2da94cc0bd8555b99bc54e2654208b5eeb54d94 (diff)
downloadnixlib-5f4a9c3391bad23ffbb3e0a3b740115b7ebee11e.tar
nixlib-5f4a9c3391bad23ffbb3e0a3b740115b7ebee11e.tar.gz
nixlib-5f4a9c3391bad23ffbb3e0a3b740115b7ebee11e.tar.bz2
nixlib-5f4a9c3391bad23ffbb3e0a3b740115b7ebee11e.tar.lz
nixlib-5f4a9c3391bad23ffbb3e0a3b740115b7ebee11e.tar.xz
nixlib-5f4a9c3391bad23ffbb3e0a3b740115b7ebee11e.tar.zst
nixlib-5f4a9c3391bad23ffbb3e0a3b740115b7ebee11e.zip
cygwin: python-2.7
Diffstat (limited to 'pkgs/development/interpreters/python/2.7/2.7.3-getpath-exe-extension.patch')
-rw-r--r--pkgs/development/interpreters/python/2.7/2.7.3-getpath-exe-extension.patch31
1 files changed, 31 insertions, 0 deletions
diff --git a/pkgs/development/interpreters/python/2.7/2.7.3-getpath-exe-extension.patch b/pkgs/development/interpreters/python/2.7/2.7.3-getpath-exe-extension.patch
new file mode 100644
index 000000000000..68f6921ba6aa
--- /dev/null
+++ b/pkgs/development/interpreters/python/2.7/2.7.3-getpath-exe-extension.patch
@@ -0,0 +1,31 @@
+--- origsrc/Modules/getpath.c.orig	2012-11-27 12:07:56.098645900 -0500
++++ src/Modules/getpath.c	2012-11-27 12:10:11.254895900 -0500
+@@ -436,6 +436,28 @@
+                         if (isxfile(progpath))
+                                 break;
+ 
++#ifdef __CYGWIN__
++                        /*
++                         * Cygwin automatically removes the ".exe" extension from argv[0]
++                         * to make programs feel like they are in a more Unix-like
++                         * environment.  Unfortunately, this can make it problemmatic for
++                         * Cygwin to distinguish between a directory and an executable with
++                         * the same name excluding the ".exe" extension.  For example, the
++                         * Cygwin Python build directory has a "Python" directory and a
++                         * "python.exe" executable.  This causes isxfile() to erroneously
++                         * return false.  If isdir() returns true and there is enough space
++                         * to append the ".exe" extension, then we try again with the
++                         * extension appended.
++                         */
++#define EXE ".exe"
++                        if (isdir(progpath) && strlen(progpath) + strlen(EXE) <= MAXPATHLEN)
++                        {
++                            strcat(progpath, EXE);
++                            if (isxfile(progpath))
++                                break;
++                        }
++#endif /* __CYGWIN__ */
++
+                         if (!delim) {
+                                 progpath[0] = '\0';
+                                 break;