diff options
author | François Andriot <francois.andriot@free.fr> | 2014-10-05 16:28:01 +0200 |
---|---|---|
committer | Slávek Banko <slavek.banko@axis.cz> | 2014-10-05 16:28:01 +0200 |
commit | e61585edf09d3136c92e255e26dc054d3e22cd7d (patch) | |
tree | f453a21fa17497f40b3508fba36ae8a2f9d7f9cb /tdecore/kpty.cpp | |
parent | af2c2afb25ce2b62767cdc639cf6d0c4fb967eaa (diff) | |
download | tdelibs-e61585edf09d3136c92e255e26dc054d3e22cd7d.tar.gz tdelibs-e61585edf09d3136c92e255e26dc054d3e22cd7d.zip |
Add support for openbsd pty in kpty
Diffstat (limited to 'tdecore/kpty.cpp')
-rw-r--r-- | tdecore/kpty.cpp | 14 |
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 } |