aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKris Moore <kris@pcbsd.org>2016-03-10 07:43:07 -0500
committerKris Moore <kris@pcbsd.org>2016-03-10 07:43:07 -0500
commite9b51aab0100ba3d916a3fffaf650317f99657fd (patch)
tree6aa80cd321fcebb435589f09b9d8c25bb2e7eb22
parentNow we can successfully read from the pty, needs cleanup on how we display (diff)
downloadlumina-e9b51aab0100ba3d916a3fffaf650317f99657fd.tar.gz
lumina-e9b51aab0100ba3d916a3fffaf650317f99657fd.tar.bz2
lumina-e9b51aab0100ba3d916a3fffaf650317f99657fd.zip
Now we can send input back to the TTY
-rw-r--r--desktop-utilities/lumina-terminal/TerminalWidget.cpp3
-rw-r--r--desktop-utilities/lumina-terminal/TtyProcess.cpp6
-rw-r--r--desktop-utilities/lumina-terminal/TtyProcess.h2
3 files changed, 9 insertions, 2 deletions
diff --git a/desktop-utilities/lumina-terminal/TerminalWidget.cpp b/desktop-utilities/lumina-terminal/TerminalWidget.cpp
index d9e6c3f7..939b9711 100644
--- a/desktop-utilities/lumina-terminal/TerminalWidget.cpp
+++ b/desktop-utilities/lumina-terminal/TerminalWidget.cpp
@@ -61,7 +61,6 @@ void TerminalWidget::UpdateText(){
qDebug() << "Reading all data";
char buffer[64];
ssize_t rtot = read(sn->socket(),&buffer,64);
- qDebug()<<(quint8)buffer[0]<<(quint8)buffer[1]<<(quint8)buffer[2]<<(quint8)buffer[3];
buffer[rtot]='\0';
qDebug() << "Process Data:" << QString(buffer);
this->insertPlainText(QString(buffer));
@@ -96,7 +95,7 @@ void TerminalWidget::keyPressEvent(QKeyEvent *ev){
}
QByteArray ba; ba.append(txt); //avoid any byte conversions
qDebug() << "Forward Input:" << txt << ev->key();
- PROC->write(ba);
+ PROC->writeTTY(ba);
}
void TerminalWidget::mousePressEvent(QMouseEvent *ev){
diff --git a/desktop-utilities/lumina-terminal/TtyProcess.cpp b/desktop-utilities/lumina-terminal/TtyProcess.cpp
index bafdb0ef..e0375410 100644
--- a/desktop-utilities/lumina-terminal/TtyProcess.cpp
+++ b/desktop-utilities/lumina-terminal/TtyProcess.cpp
@@ -46,12 +46,18 @@ bool TTYProcess::startTTY(int &retfd, QString prog, QStringList args){
childProc = tmp;
this->setFileName( ptsname(FD) );
retfd = FD;
+ ttyfd = FD;
qDebug() << " - PTY:" << ptsname(FD);
return this->open(QIODevice::ReadWrite | QIODevice::Unbuffered);
//return true;
}
}
+void TTYProcess::writeTTY(QByteArray output){
+ int written = ::write(ttyfd, output.data(), output.size());
+ qDebug() << "Wrote:" << written;
+}
+
// === PRIVATE ===
pid_t TTYProcess::LaunchProcess(int& fd, char *prog, char **child_args){
//Returns: -1 for errors, positive value (file descriptor) for the master side of the TTY to watch
diff --git a/desktop-utilities/lumina-terminal/TtyProcess.h b/desktop-utilities/lumina-terminal/TtyProcess.h
index 4631b922..38cca5a4 100644
--- a/desktop-utilities/lumina-terminal/TtyProcess.h
+++ b/desktop-utilities/lumina-terminal/TtyProcess.h
@@ -32,9 +32,11 @@ public:
~TTYProcess();
bool startTTY(int &retfd, QString prog, QStringList args = QStringList());
+ void writeTTY(QByteArray output);
private:
pid_t childProc;
+ int ttyfd;
//====================================
// C Library function for setting up the PTY
bgstack15