aboutsummaryrefslogtreecommitdiff
path: root/lib/base
diff options
context:
space:
mode:
authorFelix Domke <tmbinc@elitedvb.net>2008-04-13 22:40:38 +0000
committerFelix Domke <tmbinc@elitedvb.net>2008-04-13 22:40:38 +0000
commit1c4d458b5df83facce7cf71b39ab247eb1447491 (patch)
tree584a44a8398d97396ff42f1c0ed97c82ec9a611d /lib/base
parent46b16b46aa3c50fdc848f3c228d06871450653f2 (diff)
downloadenigma2-1c4d458b5df83facce7cf71b39ab247eb1447491.tar.gz
enigma2-1c4d458b5df83facce7cf71b39ab247eb1447491.zip
add support for writing python strings directly
Diffstat (limited to 'lib/base')
-rw-r--r--lib/base/console.cpp13
-rw-r--r--lib/base/console.h1
2 files changed, 13 insertions, 1 deletions
diff --git a/lib/base/console.cpp b/lib/base/console.cpp
index cc994ea9..a29772d8 100644
--- a/lib/base/console.cpp
+++ b/lib/base/console.cpp
@@ -333,7 +333,18 @@ void eConsoleAppContainer::write( const char *data, int len )
char *tmp = new char[len];
memcpy(tmp, data, len);
outbuf.push(queue_data(tmp,len));
- out->start();
+ if (out)
+ out->start();
+}
+
+void eConsoleAppContainer::write( PyObject *data )
+{
+ char *buffer;
+ int length;
+ if (PyString_AsStringAndSize(data, &buffer, &length))
+ return;
+ if (buffer && length)
+ write(buffer, length);
}
void eConsoleAppContainer::readyWrite(int what)
diff --git a/lib/base/console.h b/lib/base/console.h
index cf8e5397..07ad6a90 100644
--- a/lib/base/console.h
+++ b/lib/base/console.h
@@ -42,6 +42,7 @@ public:
void kill();
void sendCtrlC();
void write( const char *data, int len );
+ void write( PyObject *data );
bool running() { return (fd[0]!=-1) && (fd[1]!=-1) && (fd[2]!=-1); }
PSignal1<void, const char*> dataAvail;
PSignal1<void,int> dataSent;