Lines Matching refs:msgnum

22 static uint32_t msgnum_to_seq(struct client *client, uint32_t msgnum)
24 return msgnum < client->msgnum_to_seq_map_count ?
25 client->msgnum_to_seq_map[msgnum] : msgnum+1;
29 unsigned int *msgnum, bool thenspace)
65 *msgnum = num;
103 unsigned int msgnum;
105 if (get_msgnum(client, args, &msgnum, FALSE) == NULL)
113 client->deleted_bitmask[msgnum / CHAR_BIT] |= 1 << (msgnum % CHAR_BIT);
115 client->deleted_size += client->message_sizes[msgnum];
121 unsigned int msgnum;
128 for (; ctx->msgnum != client->messages_count; ctx->msgnum++) {
137 if ((client->deleted_bitmask[ctx->msgnum / CHAR_BIT] &
138 (1 << (ctx->msgnum % CHAR_BIT))) != 0)
142 client_send_line(client, "%u %"PRIuUOFF_T, ctx->msgnum+1,
143 client->message_sizes[ctx->msgnum]);
165 unsigned int msgnum;
167 if (get_msgnum(client, args, &msgnum, FALSE) == NULL)
170 client_send_line(client, "+OK %u %"PRIuUOFF_T, msgnum+1,
171 client->message_sizes[msgnum]);
206 struct mail *mail, uint32_t msgnum)
210 seq = msgnum_to_seq(client, msgnum);
214 msgnum+1, seq, mail->seq);
239 uint32_t msgnum, bit;
251 for (msgnum = 0; msgnum < client->messages_count; msgnum++) {
252 bit = 1 << (msgnum % CHAR_BIT);
253 if ((client->deleted_bitmask[msgnum / CHAR_BIT] & bit) != 0)
254 seq_range_array_add(&deleted_msgs, msgnum_to_seq(client, msgnum));
259 for (msgnum = 0; msgnum < client->messages_count; msgnum++) {
260 bit = 1 << (msgnum % CHAR_BIT);
261 if ((client->seen_bitmask[msgnum / CHAR_BIT] & bit) != 0)
262 seq_range_array_add(&seen_msgs, msgnum_to_seq(client, msgnum));
427 static int client_reply_msg_expunged(struct client *client, unsigned int msgnum)
429 client_send_line(client, "-ERR Message %u expunged.", msgnum + 1);
430 if (msgnum <= client->highest_expunged_fetch_msgnum) {
436 client->highest_expunged_fetch_msgnum = msgnum;
440 static int fetch(struct client *client, unsigned int msgnum, uoff_t body_lines,
452 mail_set_seq(ctx->mail, msgnum_to_seq(client, msgnum));
455 ret = client_reply_msg_expunged(client, msgnum);
463 client->seen_bitmask[msgnum / CHAR_BIT] |=
464 1 << (msgnum % CHAR_BIT);
472 client->message_sizes[msgnum]);
486 unsigned int msgnum;
488 if (get_msgnum(client, args, &msgnum, FALSE) == NULL)
491 if (client->lowest_retr_pop3_msn > msgnum+1 ||
493 client->lowest_retr_pop3_msn = msgnum+1;
494 if (client->last_seen_pop3_msn < msgnum+1)
495 client->last_seen_pop3_msn = msgnum+1;
498 return fetch(client, msgnum, (uoff_t)-1, "RETR", &client->retr_bytes);
550 unsigned int msgnum;
553 args = get_msgnum(client, args, &msgnum, TRUE);
560 return fetch(client, msgnum, max_lines, "TOP", &client->top_bytes);
566 uint32_t msgnum;
659 while (ctx->msgnum < client->messages_count) {
660 uint32_t msgnum = ctx->msgnum++;
663 if ((client->deleted_bitmask[msgnum / CHAR_BIT] &
664 (1 << (msgnum % CHAR_BIT))) != 0)
671 msgnum+1, client->message_uidls[msgnum]);
700 uint32_t msgnum = ctx->msgnum++;
702 if (client_verify_ordering(client, ctx->mail, msgnum) < 0) {
707 if ((client->deleted_bitmask[msgnum / CHAR_BIT] &
708 (1 << (msgnum % CHAR_BIT))) != 0)
722 msgnum+1, str_c(str));
781 uint32_t msgnum;
835 for (msgnum = 0; msgnum < client->messages_count; msgnum++) {
836 client->message_uidls[msgnum] =
837 seq_uidls[msgnum_to_seq(client, msgnum) - 1];
885 unsigned int msgnum;
887 if (get_msgnum(client, args, &msgnum, FALSE) == NULL)
890 seq = msgnum_to_seq(client, msgnum);
892 ctx->msgnum = msgnum;
894 return client_reply_msg_expunged(client, msgnum);