#ifndef _LINEREADER_H_a6d46192_ #define _LINEREADER_H_a6d46192_ typedef void (*LINEREADER_GOTFN)(char *, int, void *); struct linereader; typedef struct linereader LINEREADER; extern LINEREADER *linereader_open(LINEREADER_GOTFN, void *); extern int linereader_input(LINEREADER *, const void *, int); extern void linereader_close(LINEREADER *); extern int recv_line(const void *, int, ...); #define RL_END RL__END #define RL__END 1 #define RL_ONEOF() RL__ONEOF #define RL__ONEOF 2 #define RL_ENDOF() RL__ENDOF #define RL__ENDOF 3 #define RL_OPTION(o) RL__OPTION, rl__const_char_p((o)) #define RL__OPTION 4 #define RL_STRING(dp,lp) RL__STRING, rl__unsigned_char_pp((dp)), rl__int_p((lp)) #define RL__STRING 5 #define RL_OCTET(op) RL__OCTET, rl__unsigned_char_p((op)) #define RL__OCTET 6 #define RL_NUMBER(vp) RL__NUMBER, rl__unsigned_int_p((vp)) #define RL__NUMBER 7 #define RL_SET_FN(fp,fv) RL__SET_FN, rl__void__pp__void((fp)), rl__void__p__void((fv)) #define RL__SET_FN 8 #define RL_REST(dp,lp) RL__REST, rl__const_unsigned_char_pp((dp)), rl__int_p((lp)) #define RL__REST 9 #define RL_IF(fn) RL__IF, rl__int__p__void((fn)) #define RL__IF 10 #define RL_ENDIF() RL__ENDIF #define RL__ENDIF 11 extern int rl__int(int); extern const char *rl__const_char_p(const char *); extern unsigned char *rl__unsigned_char_p(unsigned char *); extern unsigned char **rl__unsigned_char_pp(unsigned char **); extern const unsigned char **rl__const_unsigned_char_pp(const unsigned char **); extern int *rl__int_p(int *); extern unsigned int *rl__unsigned_int_p(unsigned int *); extern void (**rl__void__pp__void(void (**)(void)))(void); extern void (*rl__void__p__void(void (*)(void)))(void); extern int (*rl__int__p__void(int (*)(void)))(void); #endif