Add functions to strip color information. (#5472)
authorDiego Martínez <kaeza@users.noreply.github.com>
Tue, 28 Mar 2017 19:55:39 +0000 (16:55 -0300)
committerLoïc Blot <nerzhul@users.noreply.github.com>
Tue, 28 Mar 2017 19:55:39 +0000 (21:55 +0200)
builtin/common/misc_helpers.lua
doc/client_lua_api.md
doc/lua_api.txt

index cf76fbde9fb3de233de2834269c8e95ed918d3fa..f7111680c329975894d19cad18be03ee45f7f1e8 100644 (file)
@@ -640,6 +640,8 @@ if INIT == "client" or INIT == "mainmenu" then
        end
 end
 
+local ESCAPE_CHAR = string.char(0x1b)
+
 -- Client-sided mods don't have access to getbool
 if core.setting_getbool and core.setting_getbool("disable_escape_sequences") then
 
@@ -657,7 +659,6 @@ if core.setting_getbool and core.setting_getbool("disable_escape_sequences") the
 
 else
 
-       local ESCAPE_CHAR = string.char(0x1b)
        function core.get_color_escape_sequence(color)
                return ESCAPE_CHAR .. "(c@" .. color .. ")"
        end
@@ -678,3 +679,15 @@ else
        end
 
 end
+
+function core.strip_foreground_colors(str)
+       return (str:gsub(ESCAPE_CHAR .. "%(c@[^)]+%)", ""))
+end
+
+function core.strip_background_colors(str)
+       return (str:gsub(ESCAPE_CHAR .. "%(b@[^)]+%)", ""))
+end
+
+function core.strip_colors(str)
+       return (str:gsub(ESCAPE_CHAR .. "%([bc]@[^)]+%)", ""))
+end
index f7a1094f0392bf1601eada090267c9b67e09a556..d5ccef5d309628879bd198804b2084afea39c406 100644 (file)
@@ -818,6 +818,12 @@ The following functions provide escape sequences:
     * `color` is a ColorString
     * The escape sequence sets the background of the whole text element to
       `color`. Only defined for item descriptions and tooltips.
+* `color.strip_foreground_colors(str)`
+    * Removes foreground colors added by `get_color_escape_sequence`.
+* `color.strip_background_colors(str)`
+    * Removes background colors added by `get_background_escape_sequence`.
+* `color.strip_colors(str)`
+    * Removes all color escape sequences.
          
 `ColorString`
 -------------
index 2ac8f107798eddb4456d48a0990e628fa792cdbf..72599cb7c1f35c8365a32bc2ad773625b7ad20a0 100644 (file)
@@ -1872,6 +1872,12 @@ The following functions provide escape sequences:
     * `color` is a ColorString
     * The escape sequence sets the background of the whole text element to
       `color`. Only defined for item descriptions and tooltips.
+* `color.strip_foreground_colors(str)`
+    * Removes foreground colors added by `get_color_escape_sequence`.
+* `color.strip_background_colors(str)`
+    * Removes background colors added by `get_background_escape_sequence`.
+* `color.strip_colors(str)`
+    * Removes all color escape sequences.
 
 Spatial Vectors
 ---------------