imap-envelope.c revision c0435c854a0e7246373b9752d163095cc4fbe985
/* Copyright (C) 2002 Timo Sirainen */
#include "lib.h"
#include "istream.h"
#include "str.h"
#include "message-address.h"
#include "imap-parser.h"
#include "imap-envelope.h"
#include "imap-quote.h"
struct message_part_envelope_data {
char *in_reply_to, *message_id;
};
struct message_part_envelope_data **data,
{
struct message_part_envelope_data *d;
}
d = *data;
t_push();
switch (name_len) {
case 2:
break;
case 3:
break;
case 4:
break;
case 6:
}
break;
case 7:
break;
case 8:
d->reply_to =
}
break;
case 10:
d->message_id == NULL) {
d->message_id =
}
break;
case 11:
d->in_reply_to == NULL) {
d->in_reply_to =
}
break;
}
t_pop();
}
{
return;
}
}
}
{
}
const char *
{
}
int *in_group)
{
struct imap_arg_list *list;
const char *args[4];
int i;
return FALSE;
/* we require 4 arguments, strings or NILs */
return FALSE;
for (i = 0; i < 4; i++) {
else
return FALSE;
}
if (*in_group) {
/* end of group */
return TRUE;
}
} else {
/* beginning of group */
return TRUE;
}
}
/* name <@route:mailbox@domain> */
}
}
}
return TRUE;
}
{
struct imap_arg_list *list;
size_t i;
int in_group;
return NULL;
return NULL;
}
}
{
struct imap_arg_list *list;
/* ((name route mailbox domain) ...) */
return NULL;
return "";
return NULL;
return NULL;
}
enum imap_envelope_field field,
const char *envelope,
const char **result)
{
return TRUE;
}
switch (result_type) {
else
break;
field <= IMAP_ENVELOPE_BCC);
break;
}
return TRUE;
else {
i_error("Invalid field %u in IMAP envelope: %s",
return FALSE;
}
}
const char **result)
{
struct imap_parser *parser;
int ret;
(void)i_stream_read(input);
} else {
}
return ret;
}