tsource getpty() out to pty.c - st - [fork] customized build of st, the simple … | |
git clone git://src.adamsgaard.dk/st | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
commit 47d8633f157156ef4701ce71ed7eff766206c107 | |
parent 0dedee5de8e35f4bab3d707d63be31943715264e | |
Author: Matthias-Christian Ott <[email protected]> | |
Date: Tue, 10 Jun 2008 17:30:15 +0200 | |
source getpty() out to pty.c | |
Diffstat: | |
A pty.c | 41 +++++++++++++++++++++++++++++… | |
M std.c | 35 -----------------------------… | |
2 files changed, 41 insertions(+), 35 deletions(-) | |
--- | |
diff --git a/pty.c b/pty.c | |
t@@ -0,0 +1,41 @@ | |
+#include <sys/types.h> | |
+#include <sys/stat.h> | |
+#include <fcntl.h> | |
+#include <stdlib.h> | |
+#if !(_POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600) | |
+#include <pty.h> | |
+#endif | |
+ | |
+extern int ptm, pts; | |
+ | |
+void | |
+getpty(void) { | |
+ char *ptsdev; | |
+ | |
+#if defined(_GNU_SOURCE) | |
+ ptm = getpt(); | |
+#elif _POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600 | |
+ ptm = posix_openpt(O_RDWR); | |
+#else | |
+ ptm = open("/dev/ptmx", O_RDWR); | |
+ if(ptm == -1) | |
+ if(openpty(&ptm, &pts, NULL, NULL, NULL) == -1) | |
+ eprintn("error, cannot open pty"); | |
+#endif | |
+#if defined(_XOPEN_SOURCE) | |
+ if(ptm != -1) { | |
+ if(grantpt(ptm) == -1) | |
+ eprintn("error, cannot grant access to pty"); | |
+ if(unlockpt(ptm) == -1) | |
+ eprintn("error, cannot unlock pty"); | |
+ ptsdev = ptsname(ptm); | |
+ if(!ptsdev) | |
+ eprintn("error, slave pty name undefined"); | |
+ pts = open(ptsdev, O_RDWR); | |
+ if(pts == -1) | |
+ eprintn("error, cannot open slave pty"); | |
+ } | |
+ else | |
+ eprintn("error, cannot open pty"); | |
+#endif | |
+} | |
diff --git a/std.c b/std.c | |
t@@ -6,9 +6,6 @@ | |
#include <ctype.h> | |
#include <errno.h> | |
#include <fcntl.h> | |
-#if !(_POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600) | |
-#include <pty.h> | |
-#endif | |
#include <signal.h> | |
#include <stdarg.h> | |
#include <stdio.h> | |
t@@ -101,38 +98,6 @@ eprintn(const char *errstr, ...) { | |
} | |
void | |
-getpty(void) { | |
- char *ptsdev; | |
- | |
-#if defined(_GNU_SOURCE) | |
- ptm = getpt(); | |
-#elif _POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600 | |
- ptm = posix_openpt(O_RDWR); | |
-#else | |
- ptm = open("/dev/ptmx", O_RDWR); | |
- if(ptm == -1) | |
- if(openpty(&ptm, &pts, NULL, NULL, NULL) == -1) | |
- eprintn("error, cannot open pty"); | |
-#endif | |
-#if defined(_XOPEN_SOURCE) | |
- if(ptm != -1) { | |
- if(grantpt(ptm) == -1) | |
- eprintn("error, cannot grant access to pty"); | |
- if(unlockpt(ptm) == -1) | |
- eprintn("error, cannot unlock pty"); | |
- ptsdev = ptsname(ptm); | |
- if(!ptsdev) | |
- eprintn("error, slave pty name undefined"); | |
- pts = open(ptsdev, O_RDWR); | |
- if(pts == -1) | |
- eprintn("error, cannot open slave pty"); | |
- } | |
- else | |
- eprintn("error, cannot open pty"); | |
-#endif | |
-} | |
- | |
-void | |
movea(int x, int y) { | |
x = MAX(x, cols); | |
y = MAX(y, lines); |