userspace fun: maze game and a new device to support it
[lunaix-os.git] / lunaix-os / kernel / ds / rbuffer.c
index eea75d6e5b1d1f38df4098075a93200171b47301..82d1402b8d7d788fa2e48c82bbab010715b8b94a 100644 (file)
@@ -61,7 +61,7 @@ rbuffer_puts(struct rbuffer* rb, char* buf, size_t len)
 }
 
 int
-rbuffer_gets(struct rbuffer* rb, char* buf, size_t len)
+rbuffer_gets_opt(struct rbuffer* rb, char* buf, size_t len, bool consumed)
 {
     if (!len || !rb->len)
         return 0;
@@ -79,7 +79,9 @@ rbuffer_gets(struct rbuffer* rb, char* buf, size_t len)
         memcpy(&buf[-nlen], &rb->buffer[ptr_start], nlen);
     }
 
-    rb->len -= nlen;
+    if (consumed) {
+        rb->len -= nlen;
+    }
 
     return nlen;
 }