diff --git a/src/sbbs3/readmsgs.cpp b/src/sbbs3/readmsgs.cpp index e1ffcddc41d10aa74fa64324b6843dbd954b8179..8a414b8e3b27090f4599cb5b6770c595e12b335b 100644 --- a/src/sbbs3/readmsgs.cpp +++ b/src/sbbs3/readmsgs.cpp @@ -337,9 +337,10 @@ post_t * sbbs_t::loadposts(uint32_t *posts, uint subnum, ulong ptr, long mode, u return(post); } -static uint32_t get_start_msg(sbbs_t* sbbs, smb_t* smb) +static int64_t get_start_msg(sbbs_t* sbbs, smb_t* smb) { - uint32_t i,j=smb->curmsg+1; + uint32_t j=smb->curmsg+1; + int64_t i; if(j<smb->msgs) j++; @@ -367,6 +368,7 @@ int sbbs_t::scanposts(uint subnum, long mode, const char *find) char find_buf[128]; char tmp[128]; int i; + int64_t i64; int quit=0; uint usub,ugrp,reads=0; uint lp=0; @@ -858,8 +860,9 @@ int sbbs_t::scanposts(uint subnum, long mode, const char *find) case 'F': /* find text in messages */ domsg=0; mode&=~SCAN_FIND; /* turn off find mode */ - if((i=get_start_msg(this,&smb))<0) + if((i64=get_start_msg(this,&smb))<0) break; + i=64; bputs(text[SearchStringPrompt]); if(!getstr(find_buf,40,K_LINE|K_UPPER|K_EDIT|K_AUTODEL)) break; @@ -878,8 +881,9 @@ int sbbs_t::scanposts(uint subnum, long mode, const char *find) break; case 'L': /* List messages */ domsg=0; - if((i=get_start_msg(this,&smb))<0) + if((i64=get_start_msg(this,&smb))<0) break; + i=i64; listmsgs(subnum,0,post,i,smb.msgs); sys_status&=~SS_ABORT; break;