summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog3
-rw-r--r--gio/gio.override10
2 files changed, 9 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index f979cdc..53c6f62 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
2008-01-19 Johan Dahlin <johan@gnome.org>
+ * gio/gio.override: Fix a silly bug so it possible to read files
+ larger than 8192 bytes.
+
* gio/gio.defs: Set null-ok for all cancelable as well.
* gio/__init__.py: set gio.unix to None if it's not available
diff --git a/gio/gio.override b/gio/gio.override
index 6cb6e5d..88b313a 100644
--- a/gio/gio.override
+++ b/gio/gio.override
@@ -5,6 +5,8 @@ headers
#include <pygobject.h>
#include <gio/gio.h>
+#DEFINE BUFSIZE
+
%%
modulename gio
%%
@@ -86,21 +88,20 @@ _wrap_g_input_stream_read(PyGObject *self, PyObject *args, PyObject *kwargs)
PyObject *v;
GCancellable *cancellable;
- gsize count = -1;
+ long count = -1;
GError *error = NULL;
size_t bytesread, buffersize, chunksize;
if (!PyArg_ParseTupleAndKeywords(args, kwargs,
- "|iO!:GInputStream.skip",
+ "|iO!:InputStream.read",
kwlist, &count,
&PyGCancellable_Type, &pycancellable))
return NULL;
- buffersize = 8192;
+ buffersize = BUFSIZE;
cancellable = pycancellable ? G_CANCELLABLE(pycancellable->obj) : NULL;
-
v = PyString_FromStringAndSize((char *)NULL, buffersize);
if (v == NULL)
return NULL;
@@ -134,6 +135,7 @@ _wrap_g_input_stream_read(PyGObject *self, PyObject *args, PyObject *kwargs)
if (count < 0)
{
+ buffersize += BUFSIZE;
if (_PyString_Resize(&v, buffersize) < 0)
return NULL;
}