diff options
Diffstat (limited to 'gnustep-apps/terminal/files/terminal-0.9.5_pre20060324-solaris.patch')
-rw-r--r-- | gnustep-apps/terminal/files/terminal-0.9.5_pre20060324-solaris.patch | 120 |
1 files changed, 0 insertions, 120 deletions
diff --git a/gnustep-apps/terminal/files/terminal-0.9.5_pre20060324-solaris.patch b/gnustep-apps/terminal/files/terminal-0.9.5_pre20060324-solaris.patch deleted file mode 100644 index 678205859a96..000000000000 --- a/gnustep-apps/terminal/files/terminal-0.9.5_pre20060324-solaris.patch +++ /dev/null @@ -1,120 +0,0 @@ ---- GNUmakefile -+++ GNUmakefile -@@ -44,7 +44,10 @@ - \ - Label.m - --Terminal_LDFLAGS = -lutil -+ifeq ($(findstring gnu, $(GNUSTEP_TARGET_OS)), gnu) -+ # for forkpty on Linux -+ Terminal_LDFLAGS = -lutil -+endif - - Terminal_LOCALIZED_RESOURCE_FILES = Localizable.strings - Terminal_LANGUAGES = English Swedish German French Spanish Hungarian Turkish \ ---- TerminalView.m -+++ TerminalView.m -@@ -38,9 +38,11 @@ - #include <fcntl.h> - #ifndef freebsd - #ifndef __NetBSD__ -+#if !defined(solaris2) - # include <pty.h> - #endif - #endif -+#endif - - #include <Foundation/NSBundle.h> - #include <Foundation/NSDebug.h> -@@ -1692,6 +1692,91 @@ - master_fd=-1; - } - -+#if defined(solaris2) -+#include <stdlib.h> -+#include <unistd.h> -+#include <fcntl.h> -+#include <sys/ioctl.h> -+#include <sys/stream.h> -+#include <sys/stropts.h> -+#include <sys/syscall.h> -+#include <stdio.h> -+#include <errno.h> -+ -+#define forkpty my_forkpty -+ -+/** -+ * fork_pty() remplacement for Solaris, it ignores the last two -+ * arguments for the moment. -+ * http://bugs.mysql.com/bug.php?id=22429 -+ */ -+static int my_forkpty (int *amaster, -+ char *name, -+ void *unused1, -+ void *unused2) -+{ -+ int master, slave; -+ char *slave_name; -+ pid_t pid; -+ -+ master = open("/dev/ptmx", O_RDWR); -+ if (master < 0) -+ return -1; -+ -+ if (grantpt(master) < 0) { -+ close (master); -+ return -1; -+ } -+ -+ if (unlockpt(master) < 0) { -+ close (master); -+ return -1; -+ } -+ -+ slave_name = ptsname(master); -+ if (slave_name == NULL) { -+ close (master); -+ return -1; -+ } -+ -+ slave = open(slave_name, O_RDWR); -+ if (slave < 0) { -+ close (master); -+ return -1; -+ } -+ -+ if (ioctl(slave, I_PUSH, "ptem") < 0 || -+ ioctl(slave, I_PUSH, "ldterm") < 0) -+ { -+ close (slave); -+ close (master); -+ return -1; -+ } -+ -+ if (amaster) -+ *amaster = master; -+ -+ if (name) -+ strcpy (name, slave_name); -+ -+ pid = fork(); -+ switch (pid) { -+ case -1: /* Error */ -+ return -1; -+ case 0: /* Child */ -+ close(master); -+ dup2(slave, STDIN_FILENO); -+ dup2(slave, STDOUT_FILENO); -+ dup2(slave, STDERR_FILENO); -+ return 0; -+ default: /* Parent */ -+ close (slave); -+ return pid; -+ } -+ -+ return -1; -+} -+#endif - - -(void) runProgram: (NSString *)path - withArguments: (NSArray *)args |