add buffer_putsa, buffer_get_token_sa, buffer_getline_sa, stralloc_chomp
and stralloc_chop
This commit is contained in:
23
buffer/buffer_get_token_sa.3
Normal file
23
buffer/buffer_get_token_sa.3
Normal file
@@ -0,0 +1,23 @@
|
||||
.TH buffer_get_token_sa 3
|
||||
.SH NAME
|
||||
buffer_get_token_sa \- read token from buffer
|
||||
.SH SYNTAX
|
||||
.nf
|
||||
.B #include <stralloc.h>
|
||||
.B #include <buffer.h>
|
||||
|
||||
int \fBbuffer_get_token_sa\fP(buffer* \fIb\fR,stralloc* \fIsa\fR,
|
||||
const char* \fIcharset\fR,unsigned int \fIsetlen\fR);
|
||||
.SH DESCRIPTION
|
||||
buffer_get_token_sa copies data from the \fIb\fR to \fIsa\fR until one
|
||||
of the delimiters in \fIcharset\fR is found, overwriting the previous
|
||||
content of \fIsa\fR. That delimiter is also appended to \fIsa\fR.
|
||||
|
||||
If reading from the buffer or allocating memory fails,
|
||||
buffer_get_token_sa returns -1 and sets \fIerrno\fR appropriately. At
|
||||
that point \fIsa\fR may be empty or it may already contain a partial
|
||||
token.
|
||||
|
||||
On success, buffer_get_token_sa returns 0.
|
||||
.SH "SEE ALSO"
|
||||
buffer_getline_sa(3), buffer_get_token(3), buffer(3)
|
||||
22
buffer/buffer_get_token_sa.c
Normal file
22
buffer/buffer_get_token_sa.c
Normal file
@@ -0,0 +1,22 @@
|
||||
#include "byte.h"
|
||||
#include "stralloc.h"
|
||||
#include "buffer.h"
|
||||
#include <errno.h>
|
||||
|
||||
int buffer_get_token_sa(buffer* b,stralloc* sa,const char* charset,unsigned int setlen) {
|
||||
sa->len=0;
|
||||
for (;;) {
|
||||
char x;
|
||||
if (!stralloc_readyplus(sa,1)) goto nomem;
|
||||
switch (buffer_getc(b,&x)) {
|
||||
case -1: return -1;
|
||||
case 0: return 0;
|
||||
}
|
||||
stralloc_append(sa,&x);
|
||||
if (byte_chr(charset,setlen,x)<setlen) break;
|
||||
}
|
||||
return 0;
|
||||
nomem:
|
||||
errno=ENOMEM;
|
||||
return -1;
|
||||
}
|
||||
22
buffer/buffer_getline_sa.3
Normal file
22
buffer/buffer_getline_sa.3
Normal file
@@ -0,0 +1,22 @@
|
||||
.TH buffer_getline_sa 3
|
||||
.SH NAME
|
||||
buffer_getline_sa \- read line from buffer
|
||||
.SH SYNTAX
|
||||
.nf
|
||||
.B #include <stralloc.h>
|
||||
.B #include <buffer.h>
|
||||
|
||||
int \fBbuffer_getline_sa\fP(buffer* \fIb\fR,stralloc* \fIsa\fR);
|
||||
.SH DESCRIPTION
|
||||
buffer_getline_sa copies data from the \fIb\fR to \fIsa\fR until a '\\n'
|
||||
is found, overwriting the previous content of \fIsa\fR. The new-line
|
||||
is also appended to \fIsa\fR.
|
||||
|
||||
If reading from the buffer or allocating memory fails,
|
||||
buffer_getline_sa returns -1 and sets \fIerrno\fR appropriately. At
|
||||
that point \fIsa\fR may be empty or it may already contain a partial
|
||||
token.
|
||||
|
||||
On success, buffer_getline_sa returns 0.
|
||||
.SH "SEE ALSO"
|
||||
buffer_get_token_sa(3), buffer(3)
|
||||
6
buffer/buffer_getline_sa.c
Normal file
6
buffer/buffer_getline_sa.c
Normal file
@@ -0,0 +1,6 @@
|
||||
#include "stralloc.h"
|
||||
#include "buffer.h"
|
||||
|
||||
int buffer_getline_sa(buffer* b,stralloc* sa) {
|
||||
return buffer_get_token_sa(b,sa,"\n",1);
|
||||
}
|
||||
14
buffer/buffer_putsa.3
Normal file
14
buffer/buffer_putsa.3
Normal file
@@ -0,0 +1,14 @@
|
||||
.TH buffer_putsa 3
|
||||
.SH NAME
|
||||
buffer_putsa \- write stralloc to buffer
|
||||
.SH SYNTAX
|
||||
.nf
|
||||
.B #include <stralloc.h>
|
||||
.B #include <buffer.h>
|
||||
|
||||
int \fBbuffer_putsa\fP(buffer* \fIb\fR,const char* \fIx\fR);
|
||||
.SH DESCRIPTION
|
||||
buffer_putsa is equivalent to buffer_put(b,x.sa,x.len).
|
||||
|
||||
.SH "SEE ALSO"
|
||||
buffer_puts(3), buffer_flush(3), buffer(3)
|
||||
6
buffer/buffer_putsa.c
Normal file
6
buffer/buffer_putsa.c
Normal file
@@ -0,0 +1,6 @@
|
||||
#include "stralloc.h"
|
||||
#include "buffer.h"
|
||||
|
||||
int buffer_putsa(buffer* b,stralloc* sa) {
|
||||
return buffer_put(b,sa->s,sa->len);
|
||||
}
|
||||
Reference in New Issue
Block a user