143{
146 bool rc = false;
147
148 FILE *fp = NULL;
149
151 if (!c_external_search_command)
152 {
154 goto out;
155 }
156
157 char *pexpr = s->
dptr;
160 {
161 buf_printf(err,
_(
"Error in expression: %s"), pexpr);
162 goto out;
163 }
164 if (*tok_buf->
data ==
'\0')
165 {
167 goto out;
168 }
169
170 buf_addstr(cmd_buf, c_external_search_command);
172
173 if (m)
174 {
180 }
181 else
182 {
184 }
187
192 if (pid < 0)
193 {
195 goto out;
196 }
197
201
202 rc = true;
203
204out:
207 return rc;
208}
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)