about summary refs log tree commit diff
diff options
context:
space:
mode:
authorBen Harris <ben@tilde.team>2020-05-14 19:29:01 -0400
committerBen Harris <ben@tilde.team>2020-05-14 19:29:01 -0400
commit43aec9591c9546b5574f1bb60fe3a8b23d6d9630 (patch)
tree266cd28c5f340d64dac423eca3ed384735c8cc7c
parentaef26a40cbc6835aae0d293a523f5a7681b9a436 (diff)
all tests pass
-rw-r--r--IrcStates/ISupport.cs15
-rw-r--r--IrcStates/Tests/ISupport.cs2
2 files changed, 13 insertions, 4 deletions
diff --git a/IrcStates/ISupport.cs b/IrcStates/ISupport.cs
index db2f537..f481f5f 100644
--- a/IrcStates/ISupport.cs
+++ b/IrcStates/ISupport.cs
@@ -71,13 +71,22 @@ namespace IrcStates
                         StatusMsg.AddRange(value.Select(c => c.ToString(CultureInfo.InvariantCulture)));
                         break;
                     case "MODES":
-                        Modes = int.Parse(value, NumberStyles.Integer, CultureInfo.InvariantCulture);
+                        if (int.TryParse(value, NumberStyles.Integer, CultureInfo.InvariantCulture, out var modes))
+                            Modes = modes;
+                        else
+                            Modes = -1;
                         break;
                     case "MONITOR":
-                        Monitor = int.Parse(value, NumberStyles.Integer, CultureInfo.InvariantCulture);
+                        if (int.TryParse(value, NumberStyles.Integer, CultureInfo.InvariantCulture, out var monitor))
+                            Monitor = monitor;
+                        else
+                            Monitor = -1;
                         break;
                     case "WATCH":
-                        Watch = int.Parse(value, NumberStyles.Integer, CultureInfo.InvariantCulture);
+                        if (int.TryParse(value, NumberStyles.Integer, CultureInfo.InvariantCulture, out var watch))
+                            Watch = watch;
+                        else
+                            Watch = -1;
                         break;
                     case "CASEMAPPING":
                         if (Enum.TryParse(value, true, out Casemap.CaseMapping caseMapping)) CaseMapping = caseMapping;
diff --git a/IrcStates/Tests/ISupport.cs b/IrcStates/Tests/ISupport.cs
index c5698a2..6cd2f48 100644
--- a/IrcStates/Tests/ISupport.cs
+++ b/IrcStates/Tests/ISupport.cs
@@ -53,7 +53,7 @@ namespace IrcStates.Tests
             Assert.AreEqual("o", _server.ISupport.Prefix.FromPrefix("@"));
             Assert.IsNull(_server.ISupport.Prefix.FromPrefix("&"));
 
-            _server.Parse(new Line("005 * PREFIX=(qaohv)~&#%+ *"));
+            _server.Parse(new Line("005 * PREFIX=(qaohv)~&@%+ *"));
             CollectionAssert.AreEqual(new List<string>
             {
                 "q",