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