add buffer_peekc
parent
32cafc2b80
commit
50ceb217ab
@ -0,0 +1,17 @@
|
|||||||
|
.TH buffer_peekc 3
|
||||||
|
.SH NAME
|
||||||
|
buffer_peekc \- read one char from buffer
|
||||||
|
.SH SYNTAX
|
||||||
|
.B #include <libowfat/buffer.h>
|
||||||
|
|
||||||
|
int \fBbuffer_peekc\fP(buffer* \fIb\fR,char* \fIx\fR);
|
||||||
|
.SH DESCRIPTION
|
||||||
|
buffer_peekc(b,x) is like buffer_get(b,x,1) but without
|
||||||
|
advancing the buffer pointer. If you call it again, or call
|
||||||
|
\fIbuffer_getc\fR after it, you will get the same data again.
|
||||||
|
|
||||||
|
.SH "RETURN VALUE"
|
||||||
|
\fIbuffer_peekc\fR returns 1 on success, 0 when at the end of the file,
|
||||||
|
or -1 if there was an I/O error (setting \fIerrno\fR appropriately).
|
||||||
|
.SH "SEE ALSO"
|
||||||
|
buffer_init(3), buffer_get(3), buffer_getc(3), buffer(3)
|
@ -0,0 +1,11 @@
|
|||||||
|
#include "byte.h"
|
||||||
|
#include "buffer.h"
|
||||||
|
|
||||||
|
ssize_t buffer_peekc(buffer* b,char* x) {
|
||||||
|
if (b->p==b->n) {
|
||||||
|
register ssize_t blen;
|
||||||
|
if ((blen=buffer_feed(b))<=0) return blen;
|
||||||
|
}
|
||||||
|
*x=b->x[b->p];
|
||||||
|
return 1;
|
||||||
|
}
|
Loading…
Reference in New Issue