iter.h
00001
#ifndef STR_ITER__H__
00002
#define STR_ITER__H__
00003
00004
struct str;
00005
00015 typedef struct
00016
{
00018 const struct str*
str;
00020 unsigned start;
00022 const char* startptr;
00024 unsigned len;
00026 char sep;
00027 }
striter;
00028
00029
void striter_start(
striter* iter,
const struct str* s,
char sep);
00030
int striter_valid(
striter*);
00031
int striter_advance(
striter*);
00032
00034 #define str_copyiter(STR,ITER) str_copyb(STR,(ITER)->startptr,(ITER)->len)
00035
00037 #define str_catiter(STR,ITER) str_catb(STR,(ITER)->startptr,(ITER)->len)
00038
00040 #define obuf_putiter(OBUF,ITER) obuf_write(OBUF,(ITER)->startptr,(ITER)->len)
00041
00043 #define striter_loop(ITER,STR,SEP) for(striter_start(ITER,STR,SEP);striter_valid(ITER);striter_advance(ITER))
00044
00045
00046
00047
#endif
Generated on Mon Nov 15 14:50:26 2004 for bglibs by
1.3.8