145{
148 bool rc = false;
149
150 FILE *fp = NULL;
151
153 if (!c_external_search_command)
154 {
156 goto out;
157 }
158
159 char *pexpr = s->
dptr;
162 {
163 buf_printf(err,
_(
"Error in expression: %s"), pexpr);
164 goto out;
165 }
166 if (*tok_buf->
data ==
'\0')
167 {
169 goto out;
170 }
171
172 buf_addstr(cmd_buf, c_external_search_command);
174
175 if (m)
176 {
182 }
183 else
184 {
186 }
189
194 if (pid < 0)
195 {
197 goto out;
198 }
199
203
204 rc = true;
205
206out:
209 return rc;
210}
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.
char ** EnvList
Private copy of the environment variables.
#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.
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)