From 1bf2c8975e16be2e3f5c549a974134135759f932 Mon Sep 17 00:00:00 2001
From: echicken <>
Date: Mon, 7 Jan 2019 21:29:57 +0000
Subject: [PATCH] Handle them background colour codes.

---
 exec/load/ircbot_functions.js | 59 +++++++++++++++++++++++++++++------
 1 file changed, 49 insertions(+), 10 deletions(-)

diff --git a/exec/load/ircbot_functions.js b/exec/load/ircbot_functions.js
index 2c438c616a..34bf4e3b73 100644
--- a/exec/load/ircbot_functions.js
+++ b/exec/load/ircbot_functions.js
@@ -330,11 +330,26 @@ function ctrl_a_to_mirc(s) {
     var ctrl_a = false;
     var bright = false;
     var last_colour = '';
+    var fg = 15;
+    var set_fg = false;
     var ret = '';
 
-    function add_fg_colour(nn, nb, c) {
-        ret += ascii(3) + (bright ? nb : nn);
+    function add_fg(nn, nb, c) {
+        ret += ascii(3);
+        if (bright) {
+            fg = nb;
+            ret += nb;
+        } else {
+            fg = nn;
+            ret += nn;
+        }
         last_colour = c.toUpperCase();
+        set_fg = true;
+    }
+
+    function add_bg(c) {
+        if (!set_fg) ret += ascii(3) + fg;
+        ret += ',' + c;
     }
 
     s = s.split('');
@@ -353,28 +368,52 @@ function ctrl_a_to_mirc(s) {
                     s.unshift('\1');
                     break;
                 case 'K':
-                    add_fg_colour(1, 14, c);
+                    add_fg(1, 14, c);
                     break;
                 case 'R':
-                    add_fg_colour(4, 7, c); // Red -> light red, high red -> orange
+                    add_fg(4, 7, c); // Red -> light red, high red -> orange
                     break;
                 case 'G':
-                    add_fg_colour(3, 9, c);
+                    add_fg(3, 9, c);
                     break;
                 case 'Y':
-                    add_fg_colour(5, 8, c);
+                    add_fg(5, 8, c);
                     break;
                 case 'B':
-                    add_fg_colour(2, 12, c);
+                    add_fg(2, 12, c);
                     break;
                 case 'M':
-                    add_fg_colour(6, 13, c);
+                    add_fg(6, 13, c);
                     break;
                 case 'C':
-                    add_fg_colour(10, 11, c);
+                    add_fg(10, 11, c);
                     break;
                 case 'W':
-                    add_fg_colour(15, 0, c);
+                    add_fg(15, 0, c);
+                    break;
+                case '0':
+                    add_bg(1);
+                    break;
+                case '1':
+                    add_bg(4);
+                    break;
+                case '2':
+                    add_bg(3);
+                    break;
+                case '3':
+                    add_bg(5);
+                    break;
+                case '4':
+                    add_bg(2);
+                    break;
+                case '5':
+                    add_bg(6);
+                    break;
+                case '6':
+                    add_bg(10);
+                    break;
+                case '7':
+                    add_bg(14);
                     break;
                 default:
                     break;
-- 
GitLab