static CamelSExpResult * message_location (struct _CamelSExp *f, gint argc, struct _CamelSExpResult **argv, FilterMessageSearch *fms) { CamelSExpResult *r; gboolean same = FALSE; if (argc != 1 || argv[0]->type != CAMEL_SEXP_RES_STRING) camel_sexp_fatal_error (f, _("Invalid arguments to (message-location)")); if (fms->folder && argv[0]->value.string) { CamelStore *store; const gchar *name; gchar *uri; store = camel_folder_get_parent_store (fms->folder); name = camel_folder_get_full_name (fms->folder); uri = mail_folder_uri_build (store, name); same = g_str_equal (uri, argv[0]->value.string); g_free (uri); } r = camel_sexp_result_new (f, CAMEL_SEXP_RES_BOOL); r->value.boolean = same; return r; }
static CamelMimeMessage * camel_filter_search_get_message (FilterMessageSearch *fms, struct _CamelSExp *sexp) { if (fms->message) return fms->message; fms->message = fms->get_message (fms->get_message_data, fms->error); if (fms->message == NULL) camel_sexp_fatal_error (sexp, _("Failed to retrieve message")); return fms->message; }
static CamelSExpResult * system_flag (struct _CamelSExp *f, gint argc, struct _CamelSExpResult **argv, FilterMessageSearch *fms) { CamelSExpResult *r; if (argc != 1 || argv[0]->type != CAMEL_SEXP_RES_STRING) camel_sexp_fatal_error (f, _("Invalid arguments to (system-flag)")); r = camel_sexp_result_new (f, CAMEL_SEXP_RES_BOOL); r->value.boolean = camel_system_flag_get (camel_message_info_flags (fms->info), argv[0]->value.string); return r; }
static CamelSExpResult * user_tag (struct _CamelSExp *f, gint argc, struct _CamelSExpResult **argv, FilterMessageSearch *fms) { CamelSExpResult *r; const gchar *tag; if (argc != 1 || argv[0]->type != CAMEL_SEXP_RES_STRING) camel_sexp_fatal_error (f, _("Invalid arguments to (user-tag)")); tag = camel_message_info_user_tag (fms->info, argv[0]->value.string); r = camel_sexp_result_new (f, CAMEL_SEXP_RES_STRING); r->value.string = g_strdup (tag ? tag : ""); return r; }