当前位置: 首页>>代码示例>>C++>>正文


C++ clist_begin函数代码示例

本文整理汇总了C++中clist_begin函数的典型用法代码示例。如果您正苦于以下问题:C++ clist_begin函数的具体用法?C++ clist_begin怎么用?C++ clist_begin使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。


在下文中一共展示了clist_begin函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的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


注:本文中的clist_begin函数示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。