141{
144 bool rc = false;
145
146 FILE *fp = NULL;
147
149 if (!c_external_search_command)
150 {
152 goto out;
153 }
154
155 char *pexpr = s->
dptr;
158 {
159 buf_printf(err,
_(
"Error in expression: %s"), pexpr);
160 goto out;
161 }
162 if (*tok_buf->
data ==
'\0')
163 {
165 goto out;
166 }
167
168 buf_addstr(cmd_buf, c_external_search_command);
170
171 if (m)
172 {
178 }
179 else
180 {
182 }
185
190 if (pid < 0)
191 {
193 goto out;
194 }
195
199
200 rc = true;
201
202out:
205 return rc;
206}
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)