Patch: Elm ME+ 2.5 PLalpha49 -> Elm ME+ 2.5 PLalpha50 [3/7] (3/4)
From
Kari Hurtta@21:1/5 to
All on Mon Jun 10 20:53:28 2019
[continued from previous message]
! entry_in_reply_to));
!
! free_string(& entry_in_reply_to);
! }
!
! ok = 0;
! }
!
! if (prev_entry->in_reply_to) {
! struct string * prev_entry_in_reply_to =
! references_to_string(prev_entry->in_reply_to);
!
! if (prev_entry_in_reply_to) {
!
! DPRINT(Debug,12,(&Debug,
! "match_header_rec: only prev_entry in_reply_to %S exists\n",
! prev_entry_in_reply_to));
!
! free_string(& prev_entry_in_reply_to);
! }
!
! ok = 0;
! }
! }
!
! if (entry->references && prev_entry->references) {
! struct string * entry_references =
! references_to_string(entry->references);
!
! if (same_references(entry->references,prev_entry->references)) {
!
! if (entry_references) {
! DPRINT(Debug,12,(&Debug,
! "match_header_rec: references %S matches\n", ! entry_references));
! }
!
! } else {
! struct string * prev_entry_references =
! references_to_string(prev_entry->references);
!
! if (prev_entry_references) {
!
! DPRINT(Debug,12,(&Debug,
! "match_header_rec: entry references %S != prev_entry references %S\n",
! entry_references,prev_entry_references));
!
! free_string(& prev_entry_references);
! }
!
! ok = 0;
! }
!
! if (entry_references)
! free_string(& entry_references);
!
! } else {
!
! if (entry->references) {
! struct string * entry_references =
! references_to_string(entry->references);
!
! if (entry_references) {
!
! DPRINT(Debug,12,(&Debug,
! "match_header_rec: only entry references %S exists\n",
! entry_references));
!
! free_string(& entry_references);
! }
!
! ok = 0;
! }
!
! if (prev_entry->references) {
! struct string * prev_entry_references =
! references_to_string(prev_entry->references);
!
! if (prev_entry_references) {
!
! DPRINT(Debug,12,(&Debug,
! "match_header_rec: only prev_entry references %S exists\n",
! prev_entry_references));
!
! free_string(& prev_entry_references);
! }
!
! ok = 0;
! }
! }
!
! if (0 == strcmp(entry->time_zone, prev_entry->time_zone)) {
! if (entry->time_zone[0]) {
! DPRINT(Debug,12,(&Debug,
! "match_header_rec: time_zone %s matches\n",
! entry->time_zone));
! }
!
! } else {
! DPRINT(Debug,12,(&Debug,
! "match_header_rec: entry time_zone %s != prev_entry time_zone %s\n",
! entry->time_zone,prev_entry->time_zone));
! ok = 0;
! }
!
! if (entry->time_sent == prev_entry->time_sent) {
!
! if (entry->time_sent > 0 && entry->time_sent < time_MAX) {
! char * s = ctime(&(entry->time_sent));
!
! DPRINT(Debug,12,(&Debug,
! "match_header_rec: time_sent %ld matches: %s",
! (long)(entry->time_sent),
! s ? s : "(no time)\n"));
!
! }
! } else {
! DPRINT(Debug,12,(&Debug,
! "match_header_rec: entry time_sent %ld != prev_entry time_sent %ld\n",
! (long)(entry->time_sent),
! (long)(prev_entry->time_sent)));
! ok = 0;
!
! }
!
! if (entry->tz_offset == prev_entry->tz_offset) {
!
! DPRINT(Debug,12,(&Debug,
! "match_header_rec: tz_offset %ld matches\n",
! (long)(entry->tz_offset)));
!
! } else {
! DPRINT(Debug,12,(&Debug,
! "match_header_rec: entry tz_offset %ld != prev_entry tz_offset %ld\n",
! (long)(entry->tz_offset),
! (long)(prev_entry->tz_offset)));
! ok = 0;
! }
!
! if (entry->subject && prev_entry->subject) {
! #define FAIL_COMPARE -1000
! int r = string_cmp(entry->subject,prev_entry->subject,
! FAIL_COMPARE);
!
! if (0 == r) {
! DPRINT(Debug,12,(&Debug,
! "match_header_rec: subject %S matches\n",
! entry->subject));
! } else if (FAIL_COMPARE != r) {
! DPRINT(Debug,12,(&Debug,
! "match_header_rec: entry subject %S != prev_entry subject %S\n",
! entry->subject,
! prev_entry->subject));
!
! ok = 0;
! }
! #undef FAIL_COMPARE
! } else {
! if (entry->subject) {
!
! DPRINT(Debug,12,(&Debug,
! "match_header_rec: only entry subject %S exists\n",
! entry->subject));
!
! ok = 0;
! }
!
! if (prev_entry->subject) {
!
! DPRINT(Debug,12,(&Debug,
! "match_header_rec: only prev_entry subject %S exists\n",
! prev_entry->subject));
!
! ok = 0;
! }
! }
!
! ret = ok && match;
!
! DPRINT(Debug,12,(&Debug,
! "match_header_rec=%d (%s), %s%s\n",
! ret,
! ret ? "matched" : "not found",
! ok ? "ok" : "no match",
! match ? ", message-id" : ""));
!
! return ret;
! }
!
! struct previous_data * search_previous_header(folder,entry,
! reconnect_mode_ptr,
! previous_headers,
! previous_count,
! result_index)
! struct folder_info *folder;
! struct header_rec *entry;
! RECONNECT_MODE reconnect_mode_ptr;
! struct previous_data * previous_headers;
! size_t previous_count;
! size_t *result_index;
! {
! struct previous_data * ret = NULL;
! size_t i;
!
! if (FOLDER_INFO_magic != folder->magic)
! panic("MBX PANIC",__FILE__,__LINE__,"search_previous_header",
! "Bad magic number (folder_info)",0);
!
! if (FOLDER_TYPE_magic != folder->folder_type->magic)
! panic("MBX PANIC",__FILE__,__LINE__,"search_previous_header",
! "Bad magic number (folder type)",0);
!
! if (RECONNECT_MODE_magic != reconnect_mode_ptr->magic)
! panic("MBX PANIC",__FILE__,__LINE__,"search_previous_header",
! "Bad magic number (reconnect_mode)",0);
!
! DPRINT(Debug,10,(&Debug,
! "search_previous_header: folder=%p (%s), type=%p (%s)\n", ! folder,folder->cur_folder_sys,folder -> folder_type,
! folder->folder_type->type_name));
! DPRINT(Debug,10,(&Debug,
! " : entry=%p",entry));
! if (!entry->mbx_info) {
! DPRINT(Debug,10,(&Debug,
! ", { mbx_info=NULL }"));
! } else {
! DPRINT(Debug,10,(&Debug,
! ", { mbx_info=%p, type=%p }",
! entry->mbx_info,entry->mbx_info->type_code));
! }
! DPRINT(Debug,10,(&Debug,
! ", hdr index #%d\n",
! entry->index_number_X));
! DPRINT(Debug,10,(&Debug,
! " : previous_headers=%p, previous_count=%lu, result_index=%p\n",
! previous_headers,(unsigned long)previous_count,result_index));
!
!
! *result_index = 0L;
!
! for (i = 0; i < previous_count && !ret; i++) {
! if ( -1 == previous_headers[i].found_index &&
! previous_headers[i].rec) {
! enum comp_prev_hdr_result r =
! folder->folder_type->
! comp_prev_hdr_it(folder,entry,
! previous_headers[i].rec,
! reconnect_mode_ptr);
!
! switch (r) {
! case comp_prev_hdr_miss: break;
! case comp_prev_hdr_pass:
! if (! match_header_rec(entry,
! previous_headers[i].rec))
! break;
! /* FALL THROUGH */
! case comp_prev_hdr_found:
! *result_index = i;
! ret = &( previous_headers[i]);
! break;
! }
! }
! }
!
!
! if (ret) {
! DPRINT(Debug,10,(&Debug,
! "search_previous_header=%p: #%d, *result_index=%lu\n",
! ret,
! entry->index_number_X,
! (unsigned long)*result_index
! ));
! } else {
! DPRINT(Debug,10,(&Debug,
! "search_previous_header=NULL: #%d\n",
! entry->index_number_X));
! }
!
! return ret;
! }
!
!
! static int cpprev_read_buffered_line P_((RECONNECT_MODE reconnect_mode_ptr,
! struct FILE_rs *rs,
! char **buffer, int *len));
! static int cpprev_read_buffered_line(reconnect_mode_ptr,rs,
! buffer,len)
! RECONNECT_MODE reconnect_mode_ptr;
! struct FILE_rs * rs;
! char ** buffer;
! int * len;
! {
! long f = -1L;
!
! if (RECONNECT_MODE_magic != reconnect_mode_ptr->magic)
! panic("MBX PANIC",__FILE__,__LINE__,"cpprev_read_buffered_line",
! "Bad magic number (reconnect_mode)",0);
!
! if(rs->next_line) {
! *buffer = rs->next_line;
! *len = rs->next_line_len;
!
! } else {
! f = ftell(reconnect_mode_ptr->tempfolder_fh);
!
! if (!mbx_read_line(reconnect_mode_ptr->tempfolder_fh,
! buffer,len,
! mbx_max_line_read(reconnect_mode_ptr -> tempfolder_size,f)))
! return 0;
!
!
! rs->next_line = *buffer;
! rs->next_line_len = *len;
!
! }
!
! DPRINT(Debug,60,(&Debug,
! "cpprev_read_buffered_line: "));
! if (f >= 0L) {
! DPRINT(Debug,60,(&Debug, "offset=%ld, ",
! f));
! }
!
! DPRINT(Debug,60,(&Debug, "len=%d, buffer=",
! *len));
! DEBUG_PRINT_BUFFER(Debug,60,*len,s2us(*buffer));
! if (*len < 1 || !(*buffer) || (*buffer)[*len -1] != '\n') {
! DPRINT(Debug,60,(&Debug,
! "\ncpprev_read_buffered_line: NO NEWLINE\n"));
! }
!
! return 1;
! }
!
! static void cpprev_accept_buffered_line P_((RECONNECT_MODE reconnect_mode_ptr,
! struct FILE_rs *rs,
! READ_STATE read_state_ptr,
! char **buffer, int *len));
! static void cpprev_accept_buffered_line(reconnect_mode_ptr,rs,
! read_state_ptr,buffer,len)
! RECONNECT_MODE reconnect_mode_ptr;
! struct FILE_rs *rs;
! READ_STATE read_state_ptr;
! char **buffer;
! int *len;
! {
! if (RECONNECT_MODE_magic != reconnect_mode_ptr->magic)
! panic("MBX PANIC",__FILE__,__LINE__,"cpprev_accept_buffered_line",
! "Bad magic number (reconnect_mode)",0);
!
! if (RF_magic != read_state_ptr -> magic)
! panic("MBX PANIC",__FILE__,__LINE__,"cpprev_accept_buffered_line",
! "Bad magic number (read state)",0);
!
! if (*buffer != rs->next_line)
! panic("MBX PANIC",__FILE__,__LINE__,"cpprev_accept_buffered_line",
! "Bad buffer!",0);
!
! if (!*buffer)
! return;
!
! if (*len < 1 || (*buffer)[*len -1] != '\n') {
! } else {
! read_state_ptr -> linecounter++;
! }
!
! rs->next_line = NULL;
! read_state_ptr -> fbytes += rs->next_line_len;
! rs->next_line_len = 0;
!
! free(*buffer);
! *buffer = NULL;
! *len = 0;
! }
!
! #define CPPREV_RS_magic 0xFA07
!
! /* Hook for copy_previous_mail() */
! struct copy_previous_rs {
! unsigned short magic; /* CPPREV_RS_magic */
!
! RECONNECT_MODE reconnect_mode_ptr;
! struct FILE_rs RS;
!
! long fbytes_body;
! };
!
!
! enum copy_env_status copy_previous_mail(folder,read_state_ptr,
! entry,parse_header,parse_body,
! counter,reconnect_mode_ptr,
! previous_header)
! struct folder_info *folder;
! READ_STATE read_state_ptr;
! struct header_rec * entry; /* May be replaced entry */
! parse_header_callback * parse_header;
! parse_body_callback * parse_body;
! struct counter_data * counter;
! RECONNECT_MODE reconnect_mode_ptr;
! struct previous_data * previous_header;
! {
! enum copy_env_status status = copy_env_no_data;
!
! if (FOLDER_INFO_magic != folder->magic)
! panic("MBX PANIC",__FILE__,__LINE__,"copy_previous_mail",
! "Bad magic number (folder_info)",0);
!
! if (FOLDER_TYPE_magic != folder->folder_type->magic)
! panic("MBX PANIC",__FILE__,__LINE__,"copy_previous_mail",
! "Bad magic number (folder type)",0);
!
! if (RF_magic != read_state_ptr -> magic)
! panic("MBX PANIC",__FILE__,__LINE__,"copy_previous_mail",
! "Bad magic number (read state)",0);
!
! if (RECONNECT_MODE_magic != reconnect_mode_ptr->magic)
! panic("MBX PANIC",__FILE__,__LINE__,"copy_previous_mail",
! "Bad magic number (reconnect_mode)",0);
!
! DPRINT(Debug,10,(&Debug,
! "copy_previous_mail: folder=%p (%s), type=%p (%s)\n",
! folder,folder->cur_folder_sys,folder -> folder_type,
! folder->folder_type->type_name));
! DPRINT(Debug,10,(&Debug,
! " : entry=%p",entry));
! if (!entry->mbx_info) {
! DPRINT(Debug,10,(&Debug,
! ", { mbx_info=NULL }"));
! } else {
! DPRINT(Debug,10,(&Debug,
! ", { mbx_info=%p, type=%p }",
! entry->mbx_info,entry->mbx_info->type_code));
! }
! DPRINT(Debug,10,(&Debug,
! ", hdr index #%d\n",
! entry->index_number_X));
!
! read_state_ptr ->skipping = sm_reading; /* 0 == reading,
! 1 == skipping,
! -1 == end of message */
! entry->body_parsed = 0;
! entry->mime_parsed = 0;
! read_state_ptr -> linecounter = 0; /* Linecounter of current
! message */
!
!
! if (previous_header->rec) {
!
! if (previous_header->rec->body_parsed) {
! struct copy_previous_rs RSHOOK;
! char * buffer = NULL;
! int len;
! int r;
!
! /* bzero is defined hdrs/elm_defs.h */
! bzero((void *)&RSHOOK,sizeof RSHOOK);
!
! RSHOOK.magic = CPPREV_RS_magic;
! RSHOOK.reconnect_mode_ptr = reconnect_mode_ptr;
!
! zero_FILE_rs(& (RSHOOK.RS));
!
! RSHOOK.fbytes_body = previous_header->rec->offset;
!
! read_state_ptr -> reconnect_copy_previous = &RSHOOK;
!
! entry->status = previous_header->rec->status;
!
! entry->offset = read_state_ptr -> fbytes;
! /* Offset of current message */
!
! status = copy_env_eof;
!
! if (PREPARE_ACCESS == read_state_ptr->mode)
! panic("MBX PANIC",__FILE__,__LINE__,"copy_previous_mail",
! "PREPARE_ACCESS not valid when copying previous mail",0);
!
! if (PRIVATE_DATA_magic != folder->p->magic)
! panic("MBX PANIC",__FILE__,__LINE__,"copy_previous_mail",
! "Bad magic number (private_data)",0);
!
! DPRINT(Debug,12,(&Debug,
! "copy_previous_mail: entry offset = %ld (previous mail)\n",
! previous_header->rec->offset));
!
! r = fseek(reconnect_mode_ptr->tempfolder_fh,
! previous_header->rec->offset,
! SEEK_SET);
! if (-1 == r) {
! int err = errno;
!
! lib_error(CATGETS(elm_msg_cat, ElmSet,
! ElmCouldntSeekBytesIntoFolder,
! "\nCouldn't seek %ld bytes into folder.\n"), ! previous_header->rec->offset);
! lib_error(FRM("** %s. **\n"), strerror(err));
!
! DPRINT(Debug,12,(&Debug,
! "copy_previous_mail: Failed to seek %s to %ld: %s (errno=%d)\n",
! reconnect_mode_ptr->tempfolder_name,
! previous_header->rec->offset,
! strerror(err),err));
! status = copy_env_eof;
! goto clean;
! } else if (0 == r) {
! DPRINT(Debug,12,(&Debug,
! "copy_previous_mail: Seeked %s to %ld\n",
! reconnect_mode_ptr->tempfolder_name,
! previous_header->rec->offset));
! }
!
! entry->offset = read_state_ptr -> fbytes; /* Offset of current message */
!
! DPRINT(Debug,12,(&Debug,
! "copy_previous_mail: entry offset = %ld\n",
! entry->offset));
!
! if (!cpprev_read_buffered_line(reconnect_mode_ptr,&(RSHOOK.RS),&buffer,&len)) {
! status = copy_env_eof;
! goto clean;
! }
! if (0 == len) {
! status = copy_env_eof;
! goto clean;
! }
!
! if (real_from(buffer,entry)) {
! long f;
! header_list_ptr parsed_headers = NULL;
! int s;
!
! DPRINT(Debug,12,(&Debug, "copy_previous_mail: "));
! if (entry->env_from[0]) {
! DPRINT(Debug,12,(&Debug," env from %s",
! entry->env_from));
! } else {
! DPRINT(Debug,12,(&Debug,", no env from"));
! }
! DPRINT(Debug,12,(&Debug, "\n"));
!
! if (!mbx_copy_line_to_temp(folder,buffer,len)) {
! status = copy_env_eof;
! goto clean;
! }
!
! cpprev_accept_buffered_line(reconnect_mode_ptr,&(RSHOOK.RS),
! read_state_ptr,&buffer,&len);
!
! f = ftell(reconnect_mode_ptr->tempfolder_fh);
!
! status = copy_env_ok;
! read_state_ptr -> fbytes_body = read_state_ptr -> fbytes;
! entry->mime_rec.begin_offset = read_state_ptr -> fbytes;;
! RSHOOK.fbytes_body = f;
!
! DPRINT(Debug,12,(&Debug,
! "copy_previous_mail: {mime} begin_offset = %ld\n",
! entry->mime_rec.begin_offset));
! DPRINT(Debug,12,(&Debug,
! "copy_previous_mail: {mime} begin_offset = %ld (previous mail)\n",
! RSHOOK.fbytes_body));
!
! entry->header_charset = previous_header->rec->header_charset;
! entry->content_length = previous_header->rec->content_length;
!
! DPRINT(Debug,12,(&Debug,
! "copy_previous_mail: hdr %ld body %ld content_length %ld%s\n",
! entry->offset,read_state_ptr -> fbytes_body, ! entry->content_length,
! -1 == entry->content_length ? " (unset)" : ""));
!
! parsed_headers =
! read_folder_headers(read_state_ptr,folder,entry);
!
! entry->mime_rec.offset = read_state_ptr -> fbytes;
! DPRINT(Debug,12,(&Debug,
! "copy_previous_mail: {mime} offset = %ld\n", ! entry->mime_rec.offset));
! if (entry->binary) {
! DPRINT(Debug,10,(&Debug,
! "copy_previous_mail: have binary flag\n"));
! }
!
! if (entry->header_charset != display_charset) {
! const char * MIME_name UNUSED_VAROK =
! get_charset_MIME_name(entry->header_charset);
!
! DPRINT(Debug,10,(&Debug,
! "copy_previous_mail: header charset is: %s\n",
! MIME_name ? MIME_name : "<no MIME name>" ! ));
!
! }
!
! if (-1 != entry->content_length) {
! DPRINT(Debug,10,(&Debug,
! "copy_previous_mail: content_length is: %ld\n",
! entry->content_length
! ));
! }
!
! s = parse_header(folder,read_state_ptr,entry,parsed_headers); !
! if (s <= 0) {
! DPRINT(Debug,10,(&Debug,
! "copy_previous_mail: parse_header callback failed (%d)\n",
! s));
! status = copy_env_format;
! } else {
! switch (read_state_ptr ->skipping) {
! case sm_EOM:
! DPRINT(Debug,10,(&Debug,
! "copy_previous_mail: End of message, body skipped\n"));
! break;
! case sm_skipping:
! DPRINT(Debug,10,(&Debug,
! "copy_previous_mail: Body skipped\n"));
! break;
! case sm_reading:
! s = parse_body(folder,read_state_ptr,entry,parsed_headers,counter);
! if (s <= 0) {
! DPRINT(Debug,10,(&Debug,
! "copy_previous_mail: parse_body callback failed (%d)\n",
! s));
! status = copy_env_format;
! }
! break;
! }
! }
! delete_headers(&parsed_headers);
!
! if (sm_EOM != read_state_ptr ->skipping &&
! ( status >= copy_env_ok ||
! copy_env_no_data == status)) {
! DPRINT(Debug,10,(&Debug,
! "copy_previous_mail: copy_envelope_end_folder not called or succeed (skipping=%d, status=%d)\n",
! read_state_ptr ->skipping, status));
! }
!
! } else {
! lib_error(CATGETS(elm_msg_cat, ElmSet, ElmFolderCorrupt,
! "Folder is corrupt!! I can't read it!!")); ! status = copy_env_format;
! }
!
! clean:
! if (buffer) {
! if (buffer == RSHOOK.RS.next_line)
! RSHOOK.RS.next_line = NULL;
! free(buffer);
! buffer = NULL;
! }
!
! clear_FILE_rs(& (RSHOOK.RS));
!
! read_state_ptr -> reconnect_copy_previous = NULL;
! } else {
! DPRINT(Debug,10,(&Debug,
! "copy_previous_mail: Previous mail was not parsed.\n"));
! status = copy_env_no_data;
! }
!
! if (previous_header->rec->status_chgd) {
! DPRINT(Debug,10,(&Debug,
! "copy_previous_mail: message #%d: previous (#%d) was changed status",
! entry->index_number_X,previous_header->rec->index_number_X
! ));
!
! #define X(field,F,T) if (ison(previous_header->rec->field,F) && isoff(entry->field,F)) { \
! setit(entry->field,F); \
! DPRINT(Debug,10,(&Debug,"; set %s",T)); \
! entry->status_chgd = 1; \
! } \
! else if (isoff(previous_header->rec->status,F) && ison(entry->status,F)) { \
! clearit(entry->status,F); \
! DPRINT(Debug,10,(&Debug,"; clear %s",T)); \
! entry->status_chgd = 1; \
! }
!
! X(status,UNREAD,"UNREAD");
! X(status,DELETED,"DELETED");
! X(status,NEW,"NEW");
! X(status,TAGGED,"TAGGED");
! X(status,VISIBLE,"VISIBLE");
! X(status,REPLIED_TO, "REPLIED_TO");
! X(status1,S1_FLAGGED,"S1_FLAGGED");
!
! if (! entry->status_chgd) {
! DPRINT(Debug,10,(&Debug, ", no changes to current"));
! }
!
! DPRINT(Debug,10,(&Debug, "\n"));
! #undef X
! }
!
! /* This usually does nothing */
!
! folder->folder_type->
! update_prev_hdr_it(folder,entry,
! previous_header->rec,
! reconnect_mode_ptr,
! read_state_ptr);
!
! }
!
! DPRINT(Debug,10,(&Debug,
! "copy_previous_mail=%d",
! status));
! switch (status) {
! case copy_env_no_data: DPRINT(Debug,10,(&Debug," copy_env_no_data")); break;
! case copy_env_format: DPRINT(Debug,10,(&Debug," copy_env_format")); break;
! case copy_env_eof: DPRINT(Debug,10,(&Debug," copy_env_eof")); break;
! case copy_env_ok: DPRINT(Debug,10,(&Debug," copy_env_ok")); break;
! }
! DPRINT(Debug,10,(&Debug,"\n"));
!
! return status;
! }
!
! #if ANSI_C
! extern parse_mime_callback NO_mime_parse;
! #endif
! int NO_mime_parse(folder,entry,fp)
! struct folder_info *folder;
! struct header_rec *entry;
! FILE *fp;
! {
! return 1; /* OK, but not set parsed flag */
! }
!
! int prepare_message_access(folder,entry,parse_header,
! parse_body,counter,parse_mime)
! struct folder_info *folder;
! struct header_rec *entry;
! parse_header_callback *parse_header;
! parse_body_callback *parse_body;
! struct counter_data *counter;
! parse_mime_callback *parse_mime;
! {
! int status = 1;
!
! if (FOLDER_INFO_magic != folder->magic)
! panic("MBX PANIC",__FILE__,__LINE__,"prepare_message_access",
! "Bad magic number (folder_info)",0);
if (FOLDER_TYPE_magic != folder->folder_type->magic)
panic("MBX PANIC",__FILE__,__LINE__,"prepare_message_access", ***************
*** 1457,1478 ****
" : entry=%p",entry));
if (!entry->mbx_info) {
DPRINT(Debug,10,(&Debug,
! ", { mbx_info=NULL }\n"));
} else {
DPRINT(Debug,10,(&Debug,
! ", { mbx_info=%p, type=%p }\n",
entry->mbx_info,entry->mbx_info->type_code));
}
if (! entry->body_parsed) {
! READ_STATE read_state_ptr;
enum copy_env_status status1 = copy_env_eof;
DPRINT(Debug,10,(&Debug,
"prepare_message_access: Need read message\n",
folder,folder->cur_folder_sys));
!
! malloc_read_folder_state(&read_state_ptr);
folder->folder_type->zero_rs_fields_it(read_state_ptr);
if (PRIVATE_DATA_magic != folder->p->magic)
--- 3081,3115 ----
" : entry=%p",entry));
if (!entry->mbx_info) {
DPRINT(Debug,10,(&Debug,
! ", { mbx_info=NULL }"));
} else {
DPRINT(Debug,10,(&Debug,
! ", { mbx_info=%p, type=%p }",
entry->mbx_info,entry->mbx_info->type_code));
}
+ DPRINT(Debug,10,(&Debug,
+ ", hdr index #%d",
+ entry->index_number_X));
+ if (entry->message_id) {
+ struct string * entry_message_id =
+ message_id_to_string(entry->message_id);
+ if (entry_message_id) {
+ DPRINT(Debug,10,(&Debug,", message-id=%S",
+ entry_message_id));
+ free_string(& entry_message_id);
+ }
+ }
+ DPRINT(Debug,10,(&Debug,"\n"));
+
if (! entry->body_parsed) {
! READ_STATE read_state_ptr = malloc_read_folder_state();
enum copy_env_status status1 = copy_env_eof;
DPRINT(Debug,10,(&Debug,
"prepare_message_access: Need read message\n",
folder,folder->cur_folder_sys));
!
folder->f