drop support for proprietary UNIX variants
Proprietary UNIX variants like AIX, HP-UX or SCO UNIX are nowadays rarely used and maintaining compatibility to non-standard operating systems interfaces is wasteful and practically useless. Projects like xterm suffer from backward compatibility to decades-old UNIX variants and terminal standards. This does not conform to st's design goals.master
parent
375efb8891
commit
e2ac1676b1
18
std.c
18
std.c
|
@ -107,45 +107,31 @@ getpty(void) {
|
||||||
ptm = getpt();
|
ptm = getpt();
|
||||||
#elif _POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600
|
#elif _POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600
|
||||||
ptm = posix_openpt(O_RDWR);
|
ptm = posix_openpt(O_RDWR);
|
||||||
#elif defined(__sgi)
|
|
||||||
ttydev = _getpty(&ptm, O_RDWR, 0622, 0);
|
|
||||||
#elif defined(_AIX)
|
|
||||||
ptm = open("/dev/ptc", O_RDWR);
|
|
||||||
#else
|
#else
|
||||||
ptm = open("/dev/ptmx", O_RDWR);
|
ptm = open("/dev/ptmx", O_RDWR);
|
||||||
#if defined(__hpux)
|
|
||||||
if(ptm == -1)
|
|
||||||
ptm = open("/dev/ptym/clone", O_RDWR);
|
|
||||||
#endif
|
|
||||||
if(ptm == -1) {
|
if(ptm == -1) {
|
||||||
if(openpty(&ptm, &pts, NULL, NULL, NULL) == -1)
|
if(openpty(&ptm, &pts, NULL, NULL, NULL) == -1)
|
||||||
eprintn("error, cannot open pty");
|
eprintn("error, cannot open pty");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
#if defined(_XOPEN_SOURCE)
|
||||||
if(ptm != -1) {
|
if(ptm != -1) {
|
||||||
#if defined(_XOPEN_SOURCE) || !defined(__sgi) || !defined(_AIX)
|
|
||||||
if(grantpt(ptm) == -1)
|
if(grantpt(ptm) == -1)
|
||||||
eprintn("error, cannot grant access to pty");
|
eprintn("error, cannot grant access to pty");
|
||||||
if(unlockpt(ptm) == -1)
|
if(unlockpt(ptm) == -1)
|
||||||
eprintn("error, cannot unlock pty");
|
eprintn("error, cannot unlock pty");
|
||||||
ptsdev = ptsname(ptm);
|
ptsdev = ptsname(ptm);
|
||||||
#elif defined(_AIX)
|
|
||||||
ptsdev = ttyname(ptm);
|
|
||||||
#endif
|
|
||||||
if(!ptsdev)
|
if(!ptsdev)
|
||||||
eprintn("error, slave pty name undefined");
|
eprintn("error, slave pty name undefined");
|
||||||
pts = open(ptsdev, O_RDWR);
|
pts = open(ptsdev, O_RDWR);
|
||||||
if(pts == -1)
|
if(pts == -1)
|
||||||
eprintn("error, cannot open slave pty");
|
eprintn("error, cannot open slave pty");
|
||||||
puts(ptsdev);
|
puts(ptsdev);
|
||||||
#if defined(__hpux) || defined(sun) || defined(__sun)
|
|
||||||
ioctl(pts, I_PUSH, "ptem");
|
|
||||||
ioctl(pts, I_PUSH, "ldterm");
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
eprintn("error, cannot open pty");
|
eprintn("error, cannot open pty");
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
Reference in New Issue