From 4e61b7ba1ed8737ae1b9782d1a4c1aafdf67bd58 Mon Sep 17 00:00:00 2001
From: Rob Swindell <rob@synchro.net>
Date: Fri, 24 Sep 2021 18:15:04 -0700
Subject: [PATCH] Added "Replied" attribute to mail messages that are
 replied-to.

Reported by Keyop.
---
 exec/msglist.js | 15 ++++++++++-----
 1 file changed, 10 insertions(+), 5 deletions(-)

diff --git a/exec/msglist.js b/exec/msglist.js
index 68da8e5f65..811623012d 100644
--- a/exec/msglist.js
+++ b/exec/msglist.js
@@ -662,7 +662,7 @@ function mail_reply(msg, reply_all)
 		console.putmsg(bbs.text(EnterNetMailAddress));
 		addr = console.getstr(addr, 128, K_EDIT|K_AUTODEL|K_LINE);
 		if(!addr || console.aborted)
-			return;
+			return false;
 		success = bbs.netmail(addr.split(','), msg);
 	} else if(msg.from_ext)
 		success = bbs.email(parseInt(msg.from_ext, 10), msg);
@@ -670,6 +670,7 @@ function mail_reply(msg, reply_all)
 		alert("Failed to send");
 		console.pause();
 	}
+	return success;
 }
 
 function download_msg(msg, plain_text)
@@ -1047,7 +1048,8 @@ function list_msgs(msgbase, list, current, preview, grp_name, sub_name)
 						case 'A':
 						case 'R':
 							if(mail) {
-								mail_reply(list[current], key == 'A');
+								if(mail_reply(list[current], key == 'A'))
+									update_msg_attr(msgbase, list[current], list[current].attr | MSG_REPLIED);
 								pause();
 							} else {
 								console.clear();
@@ -1074,7 +1076,8 @@ function list_msgs(msgbase, list, current, preview, grp_name, sub_name)
 							}
 							break;
 						case 'M':
-							mail_reply(list[current]);
+							if(mail_reply(list[current]) && mail)
+								update_msg_attr(msgbase, list[current], list[current].attr | MSG_REPLIED);
 							pause();
 							break;
 						case 'D':
@@ -1247,7 +1250,8 @@ function list_msgs(msgbase, list, current, preview, grp_name, sub_name)
 			case 'A':
 			case 'R':
 				if(mail) {
-					mail_reply(list[current], key.toUpperCase() == 'A');
+					if(mail_reply(list[current], key.toUpperCase() == 'A'))
+						update_msg_attr(msgbase, list[current], list[current].attr | MSG_REPLIED);
 					pause();
 				} else {
 					console.clear();
@@ -1257,7 +1261,8 @@ function list_msgs(msgbase, list, current, preview, grp_name, sub_name)
 				}
 				break;
 			case 'M':
-				mail_reply(list[current]);
+				if(mail_reply(list[current]) && mail)
+					update_msg_attr(msgbase, list[current], list[current].attr | MSG_REPLIED);
 				pause();
 				break;
 			case 'S':
-- 
GitLab