From 4ade6a8e209a5fe09a78abcc9fdd016720982537 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Andriot?= Date: Sun, 5 Oct 2014 16:28:01 +0200 Subject: [PATCH] Add support for openbsd pty in kpty (cherry picked from commit e61585edf09d3136c92e255e26dc054d3e22cd7d) --- kdecore/kpty.cpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) 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 }