diff options
author | Will Andrews <will@FreeBSD.org> | 2002-01-21 04:26:32 +0000 |
---|---|---|
committer | Will Andrews <will@FreeBSD.org> | 2002-01-21 04:26:32 +0000 |
commit | 56067c5970794bf416c04b70c1cbc3c3e8c29278 (patch) | |
tree | bbcc9982377031b332ad43fb80033dbaf869c2ac /x11/kdelibs4/files | |
parent | d8bd7d71ea01cb5f7640ebd272351680d45253d3 (diff) | |
download | ports-56067c5970794bf416c04b70c1cbc3c3e8c29278.tar.gz ports-56067c5970794bf416c04b70c1cbc3c3e8c29278.zip |
Bring in a -real- fix for kdesu. Many thanks to Alan Eldridge and
Waldo Bastian for their work towards fixing this both in 2.2.2/ports
and KDE3 CVS. Bump PORTREVISION to make sure people get *this* fix and
not the previous broken one.
PR: 32549 (for real this time)
Submitted by: Alan Eldridge <alane@geeksrus.net>,
Waldo Bastian <bastian@kde.org>
Notes
Notes:
svn path=/head/; revision=53433
Diffstat (limited to 'x11/kdelibs4/files')
-rw-r--r-- | x11/kdelibs4/files/patch-kdesu::kdesu_pty.cpp | 18 | ||||
-rw-r--r-- | x11/kdelibs4/files/patch-kdesu::process.cpp | 39 |
2 files changed, 57 insertions, 0 deletions
diff --git a/x11/kdelibs4/files/patch-kdesu::kdesu_pty.cpp b/x11/kdelibs4/files/patch-kdesu::kdesu_pty.cpp new file mode 100644 index 000000000000..74be807e3786 --- /dev/null +++ b/x11/kdelibs4/files/patch-kdesu::kdesu_pty.cpp @@ -0,0 +1,18 @@ +--- kdesu/kdesu_pty.cpp.orig Wed Apr 11 12:48:56 2001 ++++ kdesu/kdesu_pty.cpp Thu Jan 10 18:35:17 2002 +@@ -101,13 +101,13 @@ + #elif defined(HAVE_OPENPTY) + // 2: BSD interface + // More prefered than the linux hacks +- char name[10]; ++ char name[30]; + int master_fd, slave_fd; + if (openpty(&master_fd, &slave_fd, name, 0L, 0L) != -1) { + ttyname = name; + name[5]='p'; + ptyname = name; +- //close(slave_fd); // We don't need this yet // Yes, we do. ++ close(slave_fd); // We don't need this yet // Yes, we do. + ptyfd = master_fd; + return ptyfd; + } diff --git a/x11/kdelibs4/files/patch-kdesu::process.cpp b/x11/kdelibs4/files/patch-kdesu::process.cpp new file mode 100644 index 000000000000..610789408085 --- /dev/null +++ b/x11/kdelibs4/files/patch-kdesu::process.cpp @@ -0,0 +1,39 @@ +--- kdesu/process.cpp.orig Sat Feb 17 21:03:18 2001 ++++ kdesu/process.cpp Fri Jan 11 21:23:41 2002 +@@ -120,13 +120,16 @@ + kdError(900) << k_lineinfo << "fcntl(F_GETFL): " << perror << "\n"; + return ret; + } ++ int oflags = flags; + if (block) + flags &= ~O_NONBLOCK; + else + flags |= O_NONBLOCK; +- if (fcntl(m_Fd, F_SETFL, flags) < 0) ++ ++ if ((flags != oflags) && (fcntl(m_Fd, F_SETFL, flags) < 0)) + { +- kdError(900) << k_lineinfo << "fcntl(F_SETFL): " << perror << "\n"; ++ // We get an error here when the child process has closed ++ // the file descriptor already. + return ret; + } + +@@ -231,12 +234,12 @@ + path = QFile::encodeName(file); + } + +- int i; +- const char * argp[32]; +- argp[0] = path; +- QCStringList::Iterator it; +- for (i=1, it=args.begin(); it!=args.end() && i<31; it++) ++ const char **argp = (const char **)malloc((args.count()+2)*sizeof(char *)); ++ int i = 0; ++ argp[i++] = path; ++ for (QCStringList::ConstIterator it=args.begin(); it!=args.end(); it++) + argp[i++] = *it; ++ + argp[i] = 0L; + + execv(path, (char * const *)argp); |