From 61856178b0b023c662483d5fc50adef4370ac784 Mon Sep 17 00:00:00 2001
From: echicken <>
Date: Mon, 7 Jan 2019 06:43:50 +0000
Subject: [PATCH] When unsetting high colour, send colour code for dark version
 of last colour.

---
 exec/load/ircbot_functions.js | 22 +++++++++++++---------
 1 file changed, 13 insertions(+), 9 deletions(-)

diff --git a/exec/load/ircbot_functions.js b/exec/load/ircbot_functions.js
index e0776130b9..2c438c616a 100644
--- a/exec/load/ircbot_functions.js
+++ b/exec/load/ircbot_functions.js
@@ -329,10 +329,12 @@ function ctrl_a_to_mirc(s) {
 
     var ctrl_a = false;
     var bright = false;
+    var last_colour = '';
     var ret = '';
 
-    function add_fg_colour(nn, nb) {
+    function add_fg_colour(nn, nb, c) {
         ret += ascii(3) + (bright ? nb : nn);
+        last_colour = c.toUpperCase();
     }
 
     s = s.split('');
@@ -347,30 +349,32 @@ function ctrl_a_to_mirc(s) {
                     break;
                 case 'N':
                     bright = false;
+                    s.unshift(last_colour);
+                    s.unshift('\1');
                     break;
                 case 'K':
-                    add_fg_colour(1, 14);
+                    add_fg_colour(1, 14, c);
                     break;
                 case 'R':
-                    add_fg_colour(4, 7); // Red -> light red, high red -> orange
+                    add_fg_colour(4, 7, c); // Red -> light red, high red -> orange
                     break;
                 case 'G':
-                    add_fg_colour(3, 9);
+                    add_fg_colour(3, 9, c);
                     break;
                 case 'Y':
-                    add_fg_colour(5, 8);
+                    add_fg_colour(5, 8, c);
                     break;
                 case 'B':
-                    add_fg_colour(2, 12);
+                    add_fg_colour(2, 12, c);
                     break;
                 case 'M':
-                    add_fg_colour(6, 13);
+                    add_fg_colour(6, 13, c);
                     break;
                 case 'C':
-                    add_fg_colour(10, 11);
+                    add_fg_colour(10, 11, c);
                     break;
                 case 'W':
-                    add_fg_colour(15, 0);
+                    add_fg_colour(15, 0, c);
                     break;
                 default:
                     break;
-- 
GitLab