Patch: Elm ME+ 2.5 PLalpha49 -> Elm ME+ 2.5 PLalpha50 [6/7] (3/4)
From
Kari Hurtta@21:1/5 to
All on Mon Jun 10 20:55:53 2019
[continued from previous message]
! parse_body_routine,
! &COUNTER,
! reconnect_mode,
! &previous_headers[i]);
!
! if (y % readmsginc == 0 || refresh) {
!
! /* Not optimal */
!
! updater_helper(storage->current_folder,
! read_state_ptr,
! &COUNTER,
! count,refresh);
! refresh = 0;
! }
!
! switch (status) {
! case copy_env_ok:
!
!
! if (replaced_entry) {
!
! replaced_entry->index_number_X = idx+1;
!
! } else {
! /** allocate new header pointers, if needed... **/
! realloc_headers(storage,count);
!
! if (storage->max_headers <= count)
! panic("MBX PANIC",__FILE__,__LINE__,"read_headers",
! "Bad storage->max_headers",0);
!
! if (storage->headers[count])
! free_header_rec(& (storage->headers[count]));
! storage->headers[count] = work;
! work = NULL;
! storage->headers[count]->index_number_X = count+1;
!
! count++;
! }
!
!
! DPRINT(Debug,10,(&Debug, "read_headers: previous message #%d parsed",
! i));
!
! if (0) {
! case copy_env_no_data:
! DPRINT(Debug,10,(&Debug, "read_headers: previous message #%d: not handled",
! i));
! }
!
! if (0) {
! case copy_env_format:
! DPRINT(Debug,10,(&Debug, "read_headers: previous message #%d: copy_previous_mail returns copy_env_format",
! i));
! read_folder = 0;
! }
!
! if (0) {
! case copy_env_eof:
! DPRINT(Debug,10,(&Debug, "read_headers: previous message #%d: copy_previous_mail returns copy_env_eof",
! i));
! read_folder = 0;
! }
!
!
! if (previous_headers[i].rec) {
! DPRINT(Debug,10,(&Debug, ", was hdr index #%d",
! previous_headers[i].rec->index_number_X));
! }
! if (replaced_entry) {
! DPRINT(Debug,10,(&Debug, ", current hdr index #%d",
! replaced_entry->index_number_X));
! }
! DPRINT(Debug,10,(&Debug, "\n"));
!
! y++;
!
!
! break;
! }
!
! if (work == replaced_entry)
! work = NULL;
!
! }
! }
!
! if (work)
! free_header_rec( & work);
!
! if (copy_env_format == status) {
! sleep_message();
! end_read_folder(storage->current_folder,&read_state_ptr,
! &reconnect_mode,
! 1);
!
! goto failure;
! }
! }
{
/* Final counter */
int skipcount;
long skipbytes;
+ int percent;
+
long f = copy_fbytes_folder(storage->current_folder,
read_state_ptr);
+
+ long total_size =
+ storage->current_folder->mailfile_size +
+ COUNTER.previous_bytes;
copy_skipcount_folder(storage->current_folder,read_state_ptr,
&skipcount,&skipbytes);
f += skipbytes;
! if (total_size >0)
! percent = (int)(f * 100.0 / total_size);
else
percent = 100;
/* calculation with integers overflow on big folders! */ ***************
*** 1105,1112 ****
COUNTER.lastpercent = percent;
}
!
! if (!end_read_folder(storage->current_folder,&read_state_ptr,0)) {
sleep_message();
goto failure;
--- 2085,2093 ----
COUNTER.lastpercent = percent;
}
!
! if (!end_read_folder(storage->current_folder,&read_state_ptr,
! &reconnect_mode,0)) {
sleep_message();
goto failure;
***************
*** 1114,1146 ****
/* We need set per storage variable message_count */
DPRINT(Debug,7,(&Debug,
! " Updating storage message count %d -> %d\n",
storage->message_count,count));
storage->message_count = count;
clear_error();
- if (delay_redraw) {
- DPRINT(Debug,7,(&Debug, " Triggering redraw\n"));
- menu_trigger_redraw(page);
- }
! return(count);
failure:
!
DPRINT(Debug,7,(&Debug,
! " Updating storage message count %d -> %d on FAILURE\n",
storage->message_count,count));
storage->message_count = count;
if (delay_redraw) {
! DPRINT(Debug,7,(&Debug, " Triggering redraw\n"));
menu_trigger_redraw(page);
}
! return -1; /* FAILURE */
}
/*
--- 2095