23#ifndef MUTT_PARSE_EXTRACT_H
24#define MUTT_PARSE_EXTRACT_H
30#define MoreArgs(buf) (*(buf)->dptr && (*(buf)->dptr != ';') && (*(buf)->dptr != '#'))
33#define MoreArgsF(buf, flags) (*(buf)->dptr && \
34 (!isspace(*(buf)->dptr) || ((flags) & TOKEN_SPACE)) && \
35 ((*(buf)->dptr != '#') || ((flags) & TOKEN_COMMENT)) && \
36 ((*(buf)->dptr != '+') || !((flags) & TOKEN_PLUS)) && \
37 ((*(buf)->dptr != '-') || !((flags) & TOKEN_MINUS)) && \
38 ((*(buf)->dptr != '=') || !((flags) & TOKEN_EQUAL)) && \
39 ((*(buf)->dptr != '?') || !((flags) & TOKEN_QUESTION)) && \
40 ((*(buf)->dptr != ';') || ((flags) & TOKEN_SEMICOLON)) && \
41 (!((flags) & TOKEN_PATTERN) || strchr("~%=!|", *(buf)->dptr)))
44#define TOKEN_NO_FLAGS 0
45#define TOKEN_EQUAL (1 << 0)
46#define TOKEN_CONDENSE (1 << 1)
47#define TOKEN_SPACE (1 << 2)
48#define TOKEN_QUOTE (1 << 3)
49#define TOKEN_PATTERN (1 << 4)
50#define TOKEN_COMMENT (1 << 5)
51#define TOKEN_SEMICOLON (1 << 6)
52#define TOKEN_BACKTICK_VARS (1 << 7)
53#define TOKEN_NOSHELL (1 << 8)
54#define TOKEN_QUESTION (1 << 9)
55#define TOKEN_PLUS (1 << 10)
56#define TOKEN_MINUS (1 << 11)
String manipulation buffer.