diff --git a/web/lib/msgslib.ssjs b/web/lib/msgslib.ssjs index da9ae0565670ff566f81ca5d1b15fc3c2080b30f..089eecf09085a7ea0d04522c57d5fb5f29980af0 100644 --- a/web/lib/msgslib.ssjs +++ b/web/lib/msgslib.ssjs @@ -76,20 +76,31 @@ function find_np_message(offset,next) { /* "Next" actually means the one before this one as msgs reverses everything */ var step=-1; - var hdr=null; var idx; + var last_offset; if(!next) step=1; - - for(last_offset=offset+step;(hdr=msgbase.get_msg_header(true,last_offset))!=null;last_offset+=step) { - if(hdr.attr&MSG_DELETE) +write("offset: "+offset+" step: "+step+"<BR>"); + for(last_offset=parseInt(offset)+step;last_offset>0 && (idx=msgbase.get_msg_index(true,last_offset))!=null;last_offset+=step) { +write("checking: "+last_offset+"<BR>"); + if(idx.attr&MSG_DELETE) continue; - if(sub!=mail) - return(last_offset); - if((idx=msgbase.get_msg_index(true,last_offset))==null || idx.to!=user.number) + if(sub!='mail') + return(idx.number); + if(idx.to!=user.number) + continue; + return(idx.number); + } + return(undefined); +} + +function get_msg_offset(number) +{ + for(last_offset=0; (hdr=msgbase.get_msg_header(true,last_offset)) != null;last_offset++) { + if((idx=msgbase.get_msg_index(true,last_offset))==null) continue; - return(hdr.number); + return(idx.number); } return(undefined); }