From 082a9fce06ad4813d7d242dd43b540afd9b374d0 Mon Sep 17 00:00:00 2001
From: rswindell <>
Date: Sun, 3 Feb 2019 00:20:23 +0000
Subject: [PATCH] sbbs_t::listmsgs() is called from both readmsgs() and
 listsub(), where the message numbers should be printed differently for each
 context, so added a 'reading' boolean argument (defaults to true) to indicate
 it was called from readmsgs() and to use the index offset (+1) as the printed
 msg number in that case.

---
 src/sbbs3/readmsgs.cpp | 6 +++---
 src/sbbs3/sbbs.h       | 2 +-
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/src/sbbs3/readmsgs.cpp b/src/sbbs3/readmsgs.cpp
index 2913e3e265..d7f2a72a86 100644
--- a/src/sbbs3/readmsgs.cpp
+++ b/src/sbbs3/readmsgs.cpp
@@ -59,7 +59,7 @@ uchar sbbs_t::msg_listing_flag(uint subnum, smbmsg_t* msg, post_t* post)
 	return ' ';
 }
 
-long sbbs_t::listmsgs(uint subnum, long mode, post_t *post, long i, long posts)
+long sbbs_t::listmsgs(uint subnum, long mode, post_t *post, long i, long posts, bool reading)
 {
 	smbmsg_t msg;
 	long listed=0;
@@ -73,7 +73,7 @@ long sbbs_t::listmsgs(uint subnum, long mode, post_t *post, long i, long posts)
 		smb_unlockmsghdr(&smb,&msg);
 		if(listed==0)
 			bputs(text[MailOnSystemLstHdr]);
-		bprintf(text[SubMsgLstFmt], i+1
+		bprintf(text[SubMsgLstFmt], reading ? (i+1) : post[i].num
 			,msg.hdr.attr&MSG_ANONYMOUS && !sub_op(subnum)
 			? text[Anonymous] : msg.from
 			,msg.to
@@ -1726,7 +1726,7 @@ long sbbs_t::listsub(uint subnum, long mode, long start, const char* search)
 		if(mode&SCAN_FIND)
 			displayed=searchposts(subnum, post, start, posts, search);
 		else
-			displayed=listmsgs(subnum, mode, post, start, posts);
+			displayed=listmsgs(subnum, mode, post, start, posts, /* reading: */false);
 		free(post);
 	}
 	smb_close(&smb);
diff --git a/src/sbbs3/sbbs.h b/src/sbbs3/sbbs.h
index 983636d4fa..792f7b83e7 100644
--- a/src/sbbs3/sbbs.h
+++ b/src/sbbs3/sbbs.h
@@ -803,7 +803,7 @@ public:
 	int		scanposts(uint subnum, long mode, const char* find);	/* Scan sub-board */
 	bool	scanposts_inside;
 	long	listsub(uint subnum, long mode, long start, const char* search);
-	long	listmsgs(uint subnum, long mode, post_t* post, long start, long posts);
+	long	listmsgs(uint subnum, long mode, post_t* post, long start, long posts, bool reading = true);
 	long	searchposts(uint subnum, post_t* post, long start, long msgs, const char* find);
 	long	showposts_toyou(uint subnum, post_t* post, ulong start, long posts, long mode=0);
 	void	show_thread(uint32_t msgnum, post_t* post, unsigned curmsg, int thread_depth = 0, uint64_t reply_mask = 0);
-- 
GitLab