HEX
Server: LiteSpeed
System: Linux server.searchcove.com 4.18.0-513.24.1.lve.2.el8.x86_64 #1 SMP Fri May 24 12:42:50 UTC 2024 x86_64
User: lurax (1083)
PHP: 8.3.30
Disabled: exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Upload Files
File: //usr/include/dovecot/mail-search-parser.h
#ifndef MAIL_SEARCH_PARSER_H
#define MAIL_SEARCH_PARSER_H

#define MAIL_SEARCH_PARSER_KEY_LIST "("

struct imap_arg;

/* Build a parser parsing the given imap args. NOTE: args must not be freed
   until this parser is destroyed. */
struct mail_search_parser *
mail_search_parser_init_imap(const struct imap_arg *args);
/* Build a parser parsing the given command line args. */
struct mail_search_parser *
mail_search_parser_init_cmdline(const char *const args[]);

void mail_search_parser_deinit(struct mail_search_parser **parser);

/* Key is set to the next search key, or MAIL_SEARCH_PARSER_KEY_LIST for
   beginning of a list. Returns 1 if ok, 0 if no more keys in this
   list/query, -1 if parsing error. */
int mail_search_parse_key(struct mail_search_parser *parser,
			  const char **key_r);
/* Get the next string. Returns 0 if ok, -1 if parsing error. */
int mail_search_parse_string(struct mail_search_parser *parser,
			     const char **value_r);
/* If next parameter equals the given string case-insensitively, skip over
   it and return TRUE. Otherwise do nothing and return FALSE. */
bool mail_search_parse_skip_next(struct mail_search_parser *parser,
				 const char *str);

/* Returns the reason string for parsing error. */
const char *mail_search_parser_get_error(struct mail_search_parser *parser);

#endif