Main Page | Modules | Alphabetical List | Data Structures | File List | Data Fields | Related Pages

iter.h

00001 #ifndef STR_ITER__H__
00002 #define STR_ITER__H__
00003 
00004 #include "str.h"
00005 
00015 typedef struct
00016 {
00018   const 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 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 Tue Mar 23 21:58:09 2004 for bglibs by doxygen 1.3.5