aded buffer_getc, buffer_getn get n bytes less only if EOF and
buffer_get_token for getting n bytes till finding a termination char or EOF/error.master
parent
faf7c925fe
commit
6838f0f0bb
@ -0,0 +1,15 @@
|
||||
#include "byte.h"
|
||||
#include "buffer.h"
|
||||
#include "scan.h"
|
||||
|
||||
int buffer_get_token(buffer* b,char* x,unsigned int len,const char* charset,unsigned int setlen) {
|
||||
int blen;
|
||||
|
||||
for (blen=0;blen<len;++blen) {
|
||||
if ((r=buffer_getc(b,*x))<0) return r;
|
||||
if (r==0) return blen;
|
||||
if (byte_chr(charset,clen,*x)<clen) return blen;
|
||||
++x;
|
||||
}
|
||||
return blen;
|
||||
}
|
@ -0,0 +1,12 @@
|
||||
#include "byte.h"
|
||||
#include "buffer.h"
|
||||
|
||||
int buffer_getc(buffer* b,char* x) {
|
||||
if (b->p==b->n) {
|
||||
register int blen;
|
||||
if ((blen=buffer_feed(b))<=0) return blen;
|
||||
}
|
||||
*x=b->x[b->p];
|
||||
++b->p;
|
||||
return 1;
|
||||
}
|
@ -0,0 +1,13 @@
|
||||
#include "byte.h"
|
||||
#include "buffer.h"
|
||||
|
||||
int buffer_getn(buffer* b,char* x,unsigned int len) {
|
||||
int blen;
|
||||
|
||||
for(blen=0;blen<len;++blen) {
|
||||
if ((r=buffer_getc(b,x))<0) return r;
|
||||
if (r==0) return blen;
|
||||
++x;
|
||||
}
|
||||
return blen;
|
||||
}
|
Loading…
Reference in New Issue