about summary refs log tree commit diff
path: root/IrcTokens/Protocol.cs
diff options
context:
space:
mode:
authorBen Harris <ben@tilde.team>2020-04-28 00:35:52 -0400
committerBen Harris <ben@tilde.team>2020-04-28 00:35:52 -0400
commit80afa2c0aec37b7f98cc22615417c36672e695da (patch)
tree63ca3e309a5daa5093e54bdfdb493115c7a3d942 /IrcTokens/Protocol.cs
parent933a4f85604e21445c9bac8272d64cf3e6f65e00 (diff)
tidy up, work on stateful
Diffstat (limited to 'IrcTokens/Protocol.cs')
-rw-r--r--IrcTokens/Protocol.cs76
1 files changed, 0 insertions, 76 deletions
diff --git a/IrcTokens/Protocol.cs b/IrcTokens/Protocol.cs
deleted file mode 100644
index 6ddb079..0000000
--- a/IrcTokens/Protocol.cs
+++ /dev/null
@@ -1,76 +0,0 @@
-using System;
-using System.Globalization;
-using System.Linq;
-using System.Text;
-
-namespace IrcTokens
-{
-    internal class Protocol
-    {
-        private static readonly string[] TagUnescaped =
-        {
-            "\\", " ", ";", "\r", "\n"
-        };
-
-        private static readonly string[] TagEscaped =
-        {
-            "\\\\", "\\s", "\\:", "\\r", "\\n"
-        };
-
-        /// <summary>
-        /// Unescape ircv3 tag
-        /// </summary>
-        /// <param name="val">escaped string</param>
-        /// <returns>unescaped string</returns>
-        public static string UnescapeTag(string val)
-        {
-            var unescaped = new StringBuilder();
-
-            var graphemeIterator = StringInfo.GetTextElementEnumerator(val);
-            graphemeIterator.Reset();
-
-            while (graphemeIterator.MoveNext())
-            {
-                var current = graphemeIterator.GetTextElement();
-
-                if (current == @"\")
-                {
-                    try
-                    {
-                        graphemeIterator.MoveNext();
-                        var next = graphemeIterator.GetTextElement();
-                        var pair = current + next;
-                        unescaped.Append(TagEscaped.Contains(pair)
-                            ? TagUnescaped[Array.IndexOf(TagEscaped, pair)]
-                            : next);
-                    }
-                    catch (InvalidOperationException)
-                    {
-                        // ignored
-                    }
-                }
-                else
-                {
-                    unescaped.Append(current);
-                }
-            }
-
-            return unescaped.ToString();
-        }
-
-        /// <summary>
-        /// Escape strings for use in ircv3 tags
-        /// </summary>
-        /// <param name="val">string to escape</param>
-        /// <returns>escaped string</returns>
-        public static string EscapeTag(string val)
-        {
-            for (var i = 0; i < TagUnescaped.Length; ++i)
-            {
-                val = val.Replace(TagUnescaped[i], TagEscaped[i], StringComparison.Ordinal);
-            }
-
-            return val;
-        }
-    }
-}