144{
147 bool rc = false;
148
149 FILE *fp = NULL;
150
152 if (!c_external_search_command)
153 {
155 goto out;
156 }
157
158 char *pexpr = s->
dptr;
161 {
162 buf_printf(err,
_(
"Error in expression: %s"), pexpr);
163 goto out;
164 }
165 if (*tok_buf->
data ==
'\0')
166 {
168 goto out;
169 }
170
171 buf_addstr(cmd_buf, c_external_search_command);
173
174 if (m)
175 {
181 }
182 else
183 {
185 }
188
193 if (pid < 0)
194 {
196 goto out;
197 }
198
202
203 rc = true;
204
205out:
208 return rc;
209}
size_t buf_addch(struct Buffer *buf, char c)
Add a single character to a Buffer.
const char * cs_subset_string(const struct ConfigSubset *sub, const char *name)
Get a string config item by name.
static const char * mailbox_path(const struct Mailbox *m)
Get the Mailbox's path string.
bool mutt_file_map_lines(mutt_file_map_t func, void *user_data, FILE *fp, ReadLineFlags flags)
Process lines of text read from a file pointer.
#define mutt_file_fclose(FP)
#define MUTT_RL_NO_FLAGS
No flags are set.
#define mutt_message(...)
#define mutt_debug(LEVEL,...)
static bool add_query_msgid(char *line, int line_num, void *user_data)
Parse a Message-Id and add it to a list - Implements mutt_file_map_t -.
void mutt_list_clear(struct ListHead *h)
Free a list, but NOT its strings.
@ LL_DEBUG2
Log at debug level 2.
int filter_wait(pid_t pid)
Wait for the exit of a process and return its status.
pid_t filter_create(const char *cmd, FILE **fp_in, FILE **fp_out, FILE **fp_err, char **envlist)
Set up filter program.
char * mutt_path_escape(const char *src)
Escapes single quotes in a path for a command string.
Container for Accounts, Notifications.
char ** env
Private copy of the environment variables.
struct ConfigSubset * sub
Inherited config items.
struct ListHead multi_cases
Multiple strings for ~I pattern.
bool is_multi
Multiple case (only for ~I pattern now)