git://scm.lunaixsky.com
/
lunaix-os.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Unifying External Interrupt System (#51)
[lunaix-os.git]
/
lunaix-os
/
kernel
/
ds
/
rbuffer.c
diff --git
a/lunaix-os/kernel/ds/rbuffer.c
b/lunaix-os/kernel/ds/rbuffer.c
index eea75d6e5b1d1f38df4098075a93200171b47301..82d1402b8d7d788fa2e48c82bbab010715b8b94a 100644
(file)
--- a/
lunaix-os/kernel/ds/rbuffer.c
+++ b/
lunaix-os/kernel/ds/rbuffer.c
@@
-61,7
+61,7
@@
rbuffer_puts(struct rbuffer* rb, char* buf, size_t len)
}
int
}
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;
{
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);
}
memcpy(&buf[-nlen], &rb->buffer[ptr_start], nlen);
}
- rb->len -= nlen;
+ if (consumed) {
+ rb->len -= nlen;
+ }
return nlen;
}
return nlen;
}