X-Git-Url: http://git.madism.org/?a=blobdiff_plain;f=lib-lib%2Fbuffer.h;h=0fc562d31542bfe3ac7c7aca269c039c28b2bc00;hb=3692b834c97c9933088d7082464fec5ae903920f;hp=da476ac7f6675c2bfa9f426d4402da472f1a072c;hpb=21595f98b7c8132f99abb9fee60ecdce31fc980f;p=apps%2Fmadmutt.git diff --git a/lib-lib/buffer.h b/lib-lib/buffer.h index da476ac..0fc562d 100644 --- a/lib-lib/buffer.h +++ b/lib-lib/buffer.h @@ -31,10 +31,20 @@ #include +/* flags for mutt_extract_token() */ +#define M_TOKEN_EQUAL 1 /* treat '=' as a special */ +#define M_TOKEN_CONDENSE (1<<1) /* ^(char) to control chars (macros) */ +#define M_TOKEN_SPACE (1<<2) /* don't treat whitespace as a term */ +#define M_TOKEN_QUOTE (1<<3) /* don't interpret quotes */ +#define M_TOKEN_PATTERN (1<<4) /* !)|~ are terms (for patterns) */ +#define M_TOKEN_COMMENT (1<<5) /* don't reap comments */ +#define M_TOKEN_SEMICOLON (1<<6) /* don't treat ; as special */ + + typedef struct { char *data; /* pointer to data */ char *dptr; /* current read/write position */ - size_t dsize; /* length of data */ + ssize_t dsize; /* length of data */ int destroy; /* destroy `data' when done? */ } BUFFER; @@ -44,7 +54,7 @@ void mutt_buffer_free(BUFFER **); BUFFER *mutt_buffer_from(BUFFER *, const char *); int mutt_extract_token(BUFFER *, BUFFER *, int); -void mutt_buffer_add(BUFFER *, const char *, size_t); +void mutt_buffer_add(BUFFER *, const char *, ssize_t); static inline void mutt_buffer_addstr(BUFFER *b, const char *s) { mutt_buffer_add(b, s, m_strlen(s)); } @@ -53,4 +63,8 @@ static inline void mutt_buffer_addch(BUFFER *b, char c) { mutt_buffer_add(b, &c, 1); } +static inline void mutt_buffer_reset(BUFFER *b) { + *(b->dptr = b->data) = '\0'; +} + #endif /* MUTT_LIB_LIB_BUFFER_H */