本文整理汇总了C++中clist_begin函数的典型用法代码示例。如果您正苦于以下问题:C++ clist_begin函数的具体用法?C++ clist_begin怎么用?C++ clist_begin使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了clist_begin函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: mail_flags_compare
int mail_flags_compare(struct mail_flags * flags1, struct mail_flags * flags2)
{
clistiter * cur1;
if (clist_count(flags1->fl_extension) != clist_count(flags2->fl_extension))
return -1;
for(cur1 = clist_begin(flags1->fl_extension) ; cur1 != NULL ;
cur1 = clist_next(cur1)) {
char * flag1;
clistiter * cur2;
int found;
flag1 = clist_content(cur1);
found = 0;
for(cur2 = clist_begin(flags2->fl_extension) ; cur2 != NULL ;
cur2 = clist_next(cur2)) {
char * flag2;
flag2 = clist_content(cur2);
if (strcasecmp(flag1, flag2) == 0) {
found = 1;
break;
}
}
if (!found)
return -1;
}
return flags1->fl_flags - flags2->fl_flags;
}
开发者ID:mralexgray,项目名称:etPanKit,代码行数:34,代码来源:generic_cache.c
示例2: mailimap_fetch_rfc822
int mailimap_fetch_rfc822(mailimap * session,
uint32_t msgid, char ** result)
{
int r;
clist * fetch_list;
struct mailimap_fetch_att * fetch_att;
struct mailimap_fetch_type * fetch_type;
struct mailimap_set * set;
struct mailimap_msg_att * msg_att;
struct mailimap_msg_att_item * item;
int res;
fetch_att = mailimap_fetch_att_new_rfc822();
fetch_type = mailimap_fetch_type_new_fetch_att(fetch_att);
set = mailimap_set_new_single(msgid);
r = mailimap_fetch(session, set, fetch_type, &fetch_list);
mailimap_set_free(set);
mailimap_fetch_type_free(fetch_type);
if (r != MAILIMAP_NO_ERROR) {
res = r;
goto err;
}
if (clist_isempty(fetch_list)) {
res = MAILIMAP_ERROR_FETCH;
goto free;
}
msg_att = (struct mailimap_msg_att *) clist_begin(fetch_list)->data;
if (clist_isempty(msg_att->att_list)) {
res = MAILIMAP_ERROR_FETCH;
goto free;
}
item = (struct mailimap_msg_att_item *) clist_begin(msg_att->att_list)->data;
if (item->att_type != MAILIMAP_MSG_ATT_ITEM_STATIC) {
res = MAILIMAP_ERROR_FETCH;
goto free;
}
if (item->att_data.att_static->att_type != MAILIMAP_MSG_ATT_RFC822) {
res = MAILIMAP_ERROR_FETCH;
goto free;
}
* result = item->att_data.att_static->att_data.att_rfc822.att_content;
item->att_data.att_static->att_data.att_rfc822.att_content = NULL;
mailimap_fetch_list_free(fetch_list);
return MAILIMAP_NO_ERROR;
free:
mailimap_fetch_list_free(fetch_list);
err:
return res;
}
开发者ID:mralexgray,项目名称:etPanKit,代码行数:60,代码来源:mailimap_helper.c
示例3: mailprivacy_recursive_unregister_mime
void mailprivacy_recursive_unregister_mime(struct mailprivacy * privacy,
struct mailmime * mime)
{
clistiter * cur;
unregister_mime(privacy, mime);
switch (mime->mm_type) {
case MAILMIME_SINGLE:
break;
case MAILMIME_MULTIPLE:
for(cur = clist_begin(mime->mm_data.mm_multipart.mm_mp_list) ;
cur != NULL ; cur = clist_next(cur)) {
struct mailmime * child;
child = clist_content(cur);
mailprivacy_recursive_unregister_mime(privacy, child);
}
break;
case MAILMIME_MESSAGE:
if (mime->mm_data.mm_message.mm_msg_mime)
mailprivacy_recursive_unregister_mime(privacy,
mime->mm_data.mm_message.mm_msg_mime);
break;
}
}
开发者ID:mralexgray,项目名称:etPanKit,代码行数:29,代码来源:mailprivacy.c
示例4: fetch_messages
static void fetch_messages(struct mailimap * imap)
{
struct mailimap_set * set;
struct mailimap_fetch_type * fetch_type;
struct mailimap_fetch_att * fetch_att;
clist * fetch_result;
clistiter * cur;
int r;
/* as improvement UIDVALIDITY should be read and the message cache should be cleaned
if the UIDVALIDITY is not the same */
set = mailimap_set_new_interval(1, 0); /* fetch in interval 1:* */
fetch_type = mailimap_fetch_type_new_fetch_att_list_empty();
fetch_att = mailimap_fetch_att_new_uid();
mailimap_fetch_type_new_fetch_att_list_add(fetch_type, fetch_att);
r = mailimap_fetch(imap, set, fetch_type, &fetch_result);
check_error(r, "could not fetch");
/* for each message */
for(cur = clist_begin(fetch_result) ; cur != NULL ; cur = clist_next(cur)) {
struct mailimap_msg_att * msg_att;
uint32_t uid;
msg_att = clist_content(cur);
uid = get_uid(msg_att);
if (uid == 0)
continue;
fetch_msg(imap, uid);
}
mailimap_fetch_list_free(fetch_result);
}
开发者ID:AlexKar,项目名称:libetpan,代码行数:35,代码来源:imap-sample.c
示例5: display_recursive_part
static void display_recursive_part(struct mailmime * mime)
{
clistiter * cur;
fprintf(stderr, "part %p\n", mime->mm_body);
switch (mime->mm_type) {
case MAILMIME_SINGLE:
fprintf(stderr, "single %p - %i\n", mime->mm_data.mm_single,
mime->mm_data.mm_single->dt_type);
if (mime->mm_data.mm_single->dt_type == MAILMIME_DATA_TEXT) {
fprintf(stderr, "data : %p %i\n",
mime->mm_data.mm_single->dt_data.dt_text.dt_data,
mime->mm_data.mm_single->dt_data.dt_text.dt_length);
}
break;
case MAILMIME_MESSAGE:
fprintf(stderr, "message %p\n", mime->mm_data.mm_message.mm_msg_mime);
display_recursive_part(mime->mm_data.mm_message.mm_msg_mime);
break;
case MAILMIME_MULTIPLE:
for(cur = clist_begin(mime->mm_data.mm_multipart.mm_mp_list) ; cur != NULL ;
cur = clist_next(cur)) {
fprintf(stderr, "multipart\n");
display_recursive_part(clist_content(cur));
}
break;
}
}
开发者ID:mralexgray,项目名称:etPanKit,代码行数:29,代码来源:mailprivacy.c
示例6: newsnntp_xover_single
int newsnntp_xover_single(newsnntp * f, uint32_t article,
struct newsnntp_xover_resp_item ** result)
{
char command[NNTP_STRING_SIZE];
int r;
clist * list;
clistiter * cur;
struct newsnntp_xover_resp_item * item;
snprintf(command, NNTP_STRING_SIZE, "XOVER %i\r\n", article);
r = send_command(f, command);
if (r == -1)
return NEWSNNTP_ERROR_STREAM;
r = newsnntp_xover_resp(f, &list);
if (r != NEWSNNTP_NO_ERROR)
return r;
cur = clist_begin(list);
item = clist_content(cur);
clist_free(list);
* result = item;
return r;
}
开发者ID:AnckieLV,项目名称:libetpan,代码行数:26,代码来源:newsnntp.c
示例7: smime_is_encrypted
static int smime_is_encrypted(struct mailmime * mime)
{
if (mime->mm_content_type != NULL) {
if ((strcasecmp(mime->mm_content_type->ct_subtype, "x-pkcs7-mime") == 0) ||
(strcasecmp(mime->mm_content_type->ct_subtype, "pkcs7-mime") == 0)) {
clistiter * cur;
for(cur = clist_begin(mime->mm_content_type->ct_parameters) ;
cur != NULL ;
cur = clist_next(cur)) {
struct mailmime_parameter * param;
param = cur->data;
if ((strcasecmp(param->pa_name, "smime-type") == 0) &&
(strcasecmp(param->pa_value, "signed-data") == 0))
return 0;
}
return 1;
}
}
return 0;
}
开发者ID:AlexandrPonomarev,项目名称:Gmail,代码行数:25,代码来源:mailprivacy_smime.c
示例8: clist_foreach
void clist_foreach(clist * lst, clist_func func, void * data)
{
clistiter * cur;
for(cur = clist_begin(lst) ; cur != NULL ; cur = cur->next)
func(cur->data, data);
}
开发者ID:Mortal,项目名称:claws,代码行数:7,代码来源:clist.c
示例9: mailimf_address_list_write
int mailimf_address_list_write(FILE * f, int * col,
struct mailimf_address_list * addr_list)
{
clistiter * cur;
int r;
int first;
first = TRUE;
for(cur = clist_begin(addr_list->ad_list) ; cur != NULL ;
cur = clist_next(cur)) {
struct mailimf_address * addr;
addr = clist_content(cur);
if (!first) {
r = mailimf_string_write(f, col, ", ", 2);
if (r != MAILIMF_NO_ERROR)
return r;
}
else {
first = FALSE;
}
r = mailimf_address_write(f, col, addr);
if (r != MAILIMF_NO_ERROR)
return r;
}
return MAILIMF_NO_ERROR;
}
开发者ID:Mortal,项目名称:claws,代码行数:31,代码来源:mailimf_write.c
示例10: mailimf_mailbox_list_write
int mailimf_mailbox_list_write(FILE * f, int * col,
struct mailimf_mailbox_list * mb_list)
{
clistiter * cur;
int r;
int first;
first = TRUE;
for(cur = clist_begin(mb_list->mb_list) ; cur != NULL ;
cur = clist_next(cur)) {
struct mailimf_mailbox * mb;
mb = clist_content(cur);
if (!first) {
r = mailimf_string_write(f, col, ", ", 2);
if (r != MAILIMF_NO_ERROR)
return r;
}
else {
first = FALSE;
}
r = mailimf_mailbox_write(f, col, mb);
if (r != MAILIMF_NO_ERROR)
return r;
}
return MAILIMF_NO_ERROR;
}
开发者ID:Mortal,项目名称:claws,代码行数:31,代码来源:mailimf_write.c
示例11: mailprivacy_smime_encryption_id_list_clear
void mailprivacy_smime_encryption_id_list_clear(struct mailprivacy * privacy,
mailmessage * msg)
{
clist * encryption_id_list;
clistiter * iter;
LOCK();
encryption_id_list = get_list(privacy, msg);
if (encryption_id_list != NULL) {
chashdatum key;
for(iter = clist_begin(encryption_id_list) ;
iter != NULL ; iter = clist_next(iter)) {
char * str;
str = clist_content(iter);
free(str);
}
clist_free(encryption_id_list);
key.data = &msg;
key.len = sizeof(msg);
chash_delete(encryption_id_hash, &key, NULL);
if (chash_count(encryption_id_hash) == 0) {
chash_free(encryption_id_hash);
encryption_id_hash = NULL;
}
}
UNLOCK();
}
开发者ID:AlexandrPonomarev,项目名称:Gmail,代码行数:31,代码来源:mailprivacy_smime.c
示例12: get_first_from_addr
static char * get_first_from_addr(struct mailmime * mime)
{
clistiter * cur;
struct mailimf_single_fields single_fields;
struct mailimf_fields * fields;
struct mailimf_mailbox * mb;
while (mime->mm_parent != NULL)
mime = mime->mm_parent;
if (mime->mm_type != MAILMIME_MESSAGE)
return NULL;
fields = mime->mm_data.mm_message.mm_fields;
if (fields == NULL)
return NULL;
mailimf_single_fields_init(&single_fields, fields);
if (single_fields.fld_from == NULL)
return NULL;
cur = clist_begin(single_fields.fld_from->frm_mb_list->mb_list);
if (cur == NULL)
return NULL;
mb = clist_content(cur);
return mb->mb_addr_spec;
}
开发者ID:AlexandrPonomarev,项目名称:Gmail,代码行数:30,代码来源:mailprivacy_smime.c
示例13: cleanup_mime
static void cleanup_mime(struct mailmime * mime)
{
mime->mm_mime_start = NULL;
mime->mm_length = 0;
if (mime->mm_body != NULL) {
mailmime_data_free(mime->mm_body);
mime->mm_body = NULL;
}
switch (mime->mm_type) {
case MAILMIME_SINGLE:
mime->mm_data.mm_single = NULL;
break;
case MAILMIME_MULTIPLE:
{
clistiter * cur;
for(cur = clist_begin(mime->mm_data.mm_multipart.mm_mp_list) ;
cur != NULL ; cur = clist_next(cur)) {
struct mailmime * submime;
submime = clist_content(cur);
cleanup_mime(submime);
}
}
break;
case MAILMIME_MESSAGE:
if (mime->mm_data.mm_message.mm_msg_mime != NULL)
cleanup_mime(mime->mm_data.mm_message.mm_msg_mime);
break;
}
}
开发者ID:AlexKar,项目名称:libetpan,代码行数:31,代码来源:imapdriver_cached_message.c
示例14: mailprivacy_prepare_mime
void mailprivacy_prepare_mime(struct mailmime * mime)
{
clistiter * cur;
switch (mime->mm_type) {
case MAILMIME_SINGLE:
if (mime->mm_data.mm_single != NULL) {
prepare_mime_single(mime);
}
break;
case MAILMIME_MULTIPLE:
for(cur = clist_begin(mime->mm_data.mm_multipart.mm_mp_list) ;
cur != NULL ; cur = clist_next(cur)) {
struct mailmime * child;
child = clist_content(cur);
mailprivacy_prepare_mime(child);
}
break;
case MAILMIME_MESSAGE:
if (mime->mm_data.mm_message.mm_msg_mime) {
mailprivacy_prepare_mime(mime->mm_data.mm_message.mm_msg_mime);
}
break;
}
}
开发者ID:Dunemaster,项目名称:libetpan,代码行数:29,代码来源:mailprivacy_tools.c
示例15: get_mod_sequence_value
static uint64_t get_mod_sequence_value(mailimap * session)
{
uint64_t mod_sequence_value;
clistiter * cur;
mod_sequence_value = 0;
for(cur = clist_begin(session->imap_response_info->rsp_extension_list) ; cur != NULL ; cur = clist_next(cur)) {
struct mailimap_extension_data * ext_data;
struct mailimap_condstore_resptextcode * resptextcode;
ext_data = clist_content(cur);
if (ext_data->ext_extension->ext_id != MAILIMAP_EXTENSION_CONDSTORE) {
continue;
}
if (ext_data->ext_type != MAILIMAP_CONDSTORE_TYPE_RESP_TEXT_CODE) {
continue;
}
resptextcode = ext_data->ext_data;
switch (resptextcode->cs_type) {
case MAILIMAP_CONDSTORE_RESPTEXTCODE_HIGHESTMODSEQ:
mod_sequence_value = resptextcode->cs_data.cs_modseq_value;
break;
case MAILIMAP_CONDSTORE_RESPTEXTCODE_NOMODSEQ:
mod_sequence_value = 0;
break;
}
}
return mod_sequence_value;
}
开发者ID:RayZopf,项目名称:libetpan,代码行数:31,代码来源:qresync.c
示例16: mailsmtp_send
LIBETPAN_EXPORT
int mailsmtp_send(mailsmtp * session,
const char * from,
clist * addresses,
const char * message, size_t size)
{
int r;
clistiter * l;
r = mailsmtp_mail(session, from);
if (r != MAILSMTP_NO_ERROR)
return r;
for(l = clist_begin(addresses) ; l != NULL; l = clist_next(l)) {
struct esmtp_address * addr;
addr = clist_content(l);
r = mailsmtp_rcpt(session, addr->address);
if (r != MAILSMTP_NO_ERROR)
return r;
}
r = mailsmtp_data(session);
if (r != MAILSMTP_NO_ERROR)
return r;
r = mailsmtp_data_message(session, message, size);
if (r != MAILSMTP_NO_ERROR)
return r;
return MAILSMTP_NO_ERROR;
}
开发者ID:Jazzo,项目名称:libetpan,代码行数:33,代码来源:mailsmtp_helper.c
示例17: mailimf_msg_id_list_write
static int mailimf_msg_id_list_write(FILE * f, int * col, clist * mid_list)
{
clistiter * cur;
int r;
int first;
first = TRUE;
for(cur = clist_begin(mid_list) ; cur != NULL ; cur = clist_next(cur)) {
char * msgid;
size_t len;
msgid = clist_content(cur);
len = strlen(msgid);
/*
XXX - if this is the first message ID, don't fold.
This is a workaround for a bug of old versions of INN.
*/
if (!first) {
if (* col > 1) {
if (* col + len >= MAX_MAIL_COL) {
r = mailimf_string_write(f, col, "\r\n ", 3);
if (r != MAILIMF_NO_ERROR)
return r;
#if 0
* col = 1;
#endif
first = TRUE;
}
}
}
if (!first) {
r = mailimf_string_write(f, col, " ", 1);
if (r != MAILIMF_NO_ERROR)
return r;
}
else {
first = FALSE;
}
r = mailimf_string_write(f, col, "<", 1);
if (r != MAILIMF_NO_ERROR)
return r;
r = mailimf_string_write(f, col, msgid, len);
if (r != MAILIMF_NO_ERROR)
return r;
r = mailimf_string_write(f, col, ">", 1);
if (r != MAILIMF_NO_ERROR)
return r;
}
return MAILIMF_NO_ERROR;
}
开发者ID:Mortal,项目名称:claws,代码行数:58,代码来源:mailimf_write.c
示例18: mailimf_keywords_write
static int mailimf_keywords_write(FILE * f, int * col,
struct mailimf_keywords * keywords)
{
int r;
clistiter * cur;
int first;
r = mailimf_string_write(f, col, "Keywords: ", 10);
if (r != MAILIMF_NO_ERROR)
return r;
first = TRUE;
for(cur = clist_begin(keywords->kw_list) ; cur != NULL ;
cur = clist_next(cur)) {
char * keyword;
size_t len;
keyword = clist_content(cur);
len = strlen(keyword);
if (!first) {
r = mailimf_string_write(f, col, ", ", 2);
if (r != MAILIMF_NO_ERROR)
return r;
}
else {
first = FALSE;
}
#if 0
if (* col > 1) {
if (* col + len >= MAX_MAIL_COL) {
r = mailimf_string_write(f, col, "\r\n ", 3);
if (r != MAILIMF_NO_ERROR)
return r;
#if 0
* col = 1;
#endif
}
}
#endif
r = mailimf_header_string_write(f, col, keyword, len);
if (r != MAILIMF_NO_ERROR)
return r;
}
r = mailimf_string_write(f, col, "\r\n", 2);
if (r != MAILIMF_NO_ERROR)
return r;
#if 0
* col = 0;
#endif
return MAILIMF_NO_ERROR;
}
开发者ID:Mortal,项目名称:claws,代码行数:58,代码来源:mailimf_write.c
示例19: mailmime_single_fields_init
void mailmime_single_fields_init(struct mailmime_single_fields * single_fields,
struct mailmime_fields * fld_fields,
struct mailmime_content * fld_content)
{
clistiter * cur;
memset(single_fields, 0, sizeof(struct mailmime_single_fields));
if (fld_content != NULL)
mailmime_content_single_fields_init(single_fields, fld_content);
if (fld_fields == NULL)
return;
for(cur = clist_begin(fld_fields->fld_list) ; cur != NULL ;
cur = clist_next(cur)) {
struct mailmime_field * field;
field = clist_content(cur);
switch (field->fld_type) {
case MAILMIME_FIELD_TYPE:
mailmime_content_single_fields_init(single_fields,
field->fld_data.fld_content);
break;
case MAILMIME_FIELD_TRANSFER_ENCODING:
single_fields->fld_encoding = field->fld_data.fld_encoding;
break;
case MAILMIME_FIELD_ID:
single_fields->fld_id = field->fld_data.fld_id;
break;
case MAILMIME_FIELD_DESCRIPTION:
single_fields->fld_description = field->fld_data.fld_description;
break;
case MAILMIME_FIELD_VERSION:
single_fields->fld_version = field->fld_data.fld_version;
break;
case MAILMIME_FIELD_DISPOSITION:
mailmime_disposition_single_fields_init(single_fields,
field->fld_data.fld_disposition);
break;
case MAILMIME_FIELD_LANGUAGE:
single_fields->fld_language = field->fld_data.fld_language;
break;
case MAILMIME_FIELD_LOCATION:
single_fields->fld_location = field->fld_data.fld_location;
break;
}
}
}
开发者ID:RayZopf,项目名称:libetpan,代码行数:57,代码来源:mailmime_types_helper.c
示例20: mailmime_content_dup
struct mailmime_content *
mailmime_content_dup(struct mailmime_content * content)
{
clist * list;
struct mailmime_type * type;
int r;
struct mailmime_content * dup_content;
char * subtype;
type = mailmime_type_dup(content->ct_type);
if (type == NULL)
goto err;
subtype = strdup(content->ct_subtype);
if (subtype == NULL)
goto free_type;
list = clist_new();
if (list == NULL)
goto free_subtype;
if (content->ct_parameters != NULL) {
clistiter * cur;
for(cur = clist_begin(content->ct_parameters) ;
cur != NULL ; cur = clist_next(cur)) {
struct mailmime_parameter * param;
param = mailmime_parameter_dup(clist_content(cur));
if (param == NULL)
goto free_list;
r = clist_append(list, param);
if (r < 0) {
mailmime_parameter_free(param);
goto free_list;
}
}
}
dup_content = mailmime_content_new(type, subtype, list);
if (dup_content == NULL)
goto free_list;
return dup_content;
free_list:
clist_foreach(list, (clist_func) mailmime_parameter_free, NULL);
free_subtype:
free(subtype);
free_type:
mailmime_type_free(type);
err:
return NULL;
}
开发者ID:Dunemaster,项目名称:libetpan,代码行数:55,代码来源:mailprivacy_tools.c
注:本文中的clist_begin函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论