summaryrefslogtreecommitdiff
path: root/src/iobuf.c
diff options
context:
space:
mode:
authorChase Douglas <chase.douglas@canonical.com>2010-06-21 09:57:56 -0400
committerHenrik Rydberg <rydberg@euromail.se>2010-06-22 00:44:33 +0200
commitdbbf15a7fad8b76122061344aeddb652bd4fe442 (patch)
tree0d12fe50a84d40e11c1afa5d0d8b298fac3dec7a /src/iobuf.c
parent922332131c329b9d444c434d68a2f21e3076ae0c (diff)
mtdev_get: return number of retrieved events if error occurs
Otherwise, we pull events, but return -1. We should send the events we were able to retrieve for now. Signed-off-by: Chase Douglas <chase.douglas@canonical.com> Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
Diffstat (limited to 'src/iobuf.c')
-rw-r--r--src/iobuf.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/src/iobuf.c b/src/iobuf.c
index 85a9f19..b58fdf6 100644
--- a/src/iobuf.c
+++ b/src/iobuf.c
@@ -76,10 +76,8 @@ int mtdev_get(struct mtdev *dev, int fd, struct input_event* ev, int ev_max)
76 while (count < ev_max) { 76 while (count < ev_max) {
77 while (mtdev_empty(dev)) { 77 while (mtdev_empty(dev)) {
78 ret = mtdev_fetch_event(dev, fd, &kev); 78 ret = mtdev_fetch_event(dev, fd, &kev);
79 if (ret < 0) 79 if (ret <= 0)
80 return ret; 80 return count > 0 ? count : ret;
81 if (ret == 0)
82 return count;
83 mtdev_put_event(dev, &kev); 81 mtdev_put_event(dev, &kev);
84 } 82 }
85 mtdev_get_event(dev, &ev[count++]); 83 mtdev_get_event(dev, &ev[count++]);