X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/f74ff5efa5604fcde3cc5ba9009cb015a6f388cf..a2615ebc22a402b1badb46475f94ab6aa3a64018:/wxPython/src/streams.i diff --git a/wxPython/src/streams.i b/wxPython/src/streams.i index 4122cf2fce..ee087b4f96 100644 --- a/wxPython/src/streams.i +++ b/wxPython/src/streams.i @@ -2,7 +2,7 @@ // Name: streams.i // Purpose: SWIG definitions of the wxFileSystem family of classes // -// Author: Joerg Baumann +// Author: Joerg Baumann and Robin Dunn // // Created: 25-Sept-2000 // RCS-ID: $Id$ @@ -14,6 +14,7 @@ %{ #include "helpers.h" +#include "pyistream.h" #include #include %} @@ -66,22 +67,26 @@ //---------------------------------------------------------------------- -// wxStringPtrList* to python list of strings typemap -%typemap(python, out) wxStringPtrList* { - if ($source) { - $target = PyList_New($source->GetCount()); - wxStringPtrList::Node *node = $source->GetFirst(); - for (int i=0; node; i++) { - wxString *s = node->GetData(); - PyList_SetItem($target, i, PyString_FromStringAndSize(s->c_str(), s->Len())); - node = node->GetNext(); - delete s; - } - delete $source; - } - else - $target=0; -} +// // wxStringPtrList* to python list of strings typemap +// %typemap(python, out) wxStringPtrList* { +// if ($source) { +// $target = PyList_New($source->GetCount()); +// wxStringPtrList::Node *node = $source->GetFirst(); +// for (int i=0; node; i++) { +// wxString *s = node->GetData(); +// #if wxUSE_UNICODE +// PyList_SetItem($target, i, PyUnicode_FromUnicode(s->c_str(), s->Len())); +// #else +// PyList_SetItem($target, i, PyString_FromStringAndSize(s->c_str(), s->Len())); +// #endif +// node = node->GetNext(); +// delete s; +// } +// delete $source; +// } +// else +// $target=0; +// } @@ -100,9 +105,9 @@ public: void close(); void flush(); bool eof(); - wxString* read(int size=-1); - wxString* readline(int size=-1); - wxStringPtrList* readlines(int sizehint=-1); + PyObject* read(int size=-1); + PyObject* readline(int size=-1); + PyObject* readlines(int sizehint=-1); void seek(int offset, int whence=0); int tell(); @@ -136,8 +141,16 @@ public: */ %addmethods { - void write(const wxString& str) { - self->Write(str.c_str(), str.Length()); + void write(PyObject* obj) { + // We use only strings for the streams, not unicode + PyObject* str = PyObject_Str(obj); + if (! str) { + PyErr_SetString(PyExc_TypeError, "Unable to convert to string"); + return; + } + self->Write(PyString_AS_STRING(str), + PyString_GET_SIZE(str)); + Py_DECREF(str); } } };