summaryrefslogtreecommitdiffstats
path: root/tdecore/kpty.cpp
diff options
context:
space:
mode:
authorFrançois Andriot <francois.andriot@free.fr>2014-10-05 16:28:01 +0200
committerSlávek Banko <slavek.banko@axis.cz>2014-10-05 16:28:01 +0200
commite61585edf09d3136c92e255e26dc054d3e22cd7d (patch)
treef453a21fa17497f40b3508fba36ae8a2f9d7f9cb /tdecore/kpty.cpp
parentaf2c2afb25ce2b62767cdc639cf6d0c4fb967eaa (diff)
downloadtdelibs-e61585edf09d3136c92e255e26dc054d3e22cd7d.tar.gz
tdelibs-e61585edf09d3136c92e255e26dc054d3e22cd7d.zip
Add support for openbsd pty in kpty
Diffstat (limited to 'tdecore/kpty.cpp')
-rw-r--r--tdecore/kpty.cpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/tdecore/kpty.cpp b/tdecore/kpty.cpp
index a94204241..7f27f02f8 100644
--- a/tdecore/kpty.cpp
+++ b/tdecore/kpty.cpp
@@ -305,6 +305,17 @@ bool KPty::open()
if (d->masterFd >= 0)
return true;
+#if defined(__OpenBSD__)
+ char cpty[16];
+
+ if (openpty(&d->masterFd, &d->slaveFd, cpty, NULL, &d->winSize) == 0) {
+ d->ttyName = cpty;
+ } else {
+ kdWarning(175) << "Can't open slave pseudo teletype" << endl;
+ return false;
+ }
+#else
+
TQCString ptyName;
// Find a master pty that we can open ////////////////////////////////
@@ -379,6 +390,7 @@ bool KPty::open()
kdWarning(175) << "KPty::open(): " << "Can't open a pseudo teletype" << endl;
return false;
+#endif
gotpty:
return _attachPty(d->masterFd);
@@ -568,8 +580,10 @@ int KPty::slaveFd() const
// private
bool KPty::chownpty(bool grant)
{
+#if !defined(__OpenBSD__)
TDEProcess proc;
proc << locate("exe", BASE_CHOWN) << (grant?"--grant":"--revoke") << TQString::number(d->masterFd);
return proc.start(TDEProcess::Block) && proc.normalExit() && !proc.exitStatus();
+#endif
}