add buffer_putsa, buffer_get_token_sa, buffer_getline_sa, stralloc_chomp
and stralloc_chop
This commit is contained in:
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;
|
||||
}
|
||||
Reference in New Issue
Block a user