mv_message_t *_message_build(mv_value_t value, char *s) { #if 0 mv_value_print(value); #endif mv_value_t tagkey = mv_value_string("tag"); mv_value_t tagval = mv_value_map_lookup(value, tagkey); if (mv_value_is_null(tagval)) { fprintf(stdout, "Message does not contain \"tag\" field:\n%s\n", s); return NULL; } mv_value_t argkey = mv_value_string("arg"); mv_value_t argval = mv_value_map_lookup(value, argkey); if (mv_value_is_null(argval)) { fprintf(stdout, "Message does not contain \"arg\" field:\n%s\n", s); return NULL; } mv_value_t srckey = mv_value_string("src"); mv_value_t srcval = mv_value_map_lookup(value, srckey); if (mv_value_is_null(srcval)) { fprintf(stdout, "Message does not contain \"src\" field:\n%s\n", s); return NULL; } mv_message_t *msg = _message_new(); msg->tag = _message_gettag(mv_value_string_get(tagval)); msg->arg = argval; msg->src = srcval; return msg; }
static AccountMessage * _folder_message_add(AccountFolder * folder, off_t offset) { AccountMessage ** p; AccountMessage * message; #ifdef DEBUG fprintf(stderr, "DEBUG: %s(\"%s\", %ld)\n", __func__, (char const *)folder->config->value, offset); #endif if((p = realloc(folder->messages, sizeof(*p) * (folder->messages_cnt + 1))) == NULL) { /* FIXME track error */ return NULL; } folder->messages = p; if((message = _message_new(folder->mbox->helper, folder->folder, offset)) == NULL) { /* FIXME track error */ return NULL; } folder->messages[folder->messages_cnt++] = message; return message; }
PyFilMessage *fil_message_alloc(void) { PyFilMessage *self; self = (PyFilMessage *)_message_new(&_message_type, NULL, NULL); if (self == NULL) return NULL; if (_message_init(self, NULL, NULL) < 0) { Py_DECREF(self); return NULL; } return self; }