summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--kdecore/kpty.cpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/kdecore/kpty.cpp b/kdecore/kpty.cpp
index 6367357c3..bfa5659c1 100644
--- a/kdecore/kpty.cpp
+++ b/kdecore/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__)
KProcess proc;
proc << locate("exe", BASE_CHOWN) << (grant?"--grant":"--revoke") << TQString::number(d->masterFd);
return proc.start(KProcess::Block) && proc.normalExit() && !proc.exitStatus();
+#endif
}