summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/exirc/utils.ex2
-rw-r--r--test/utils_test.exs7
2 files changed, 8 insertions, 1 deletions
diff --git a/lib/exirc/utils.ex b/lib/exirc/utils.ex
index a5f18b5..d3f903c 100644
--- a/lib/exirc/utils.ex
+++ b/lib/exirc/utils.ex
@@ -25,7 +25,7 @@ defmodule ExIrc.Utils do
end
end
- @prefix_pattern ~r/^(?<nick>[^!]+)(?:(?:!(?<user>[^@ ]+))?(?:@(?<host>[\w.:-]+)))?$/
+ @prefix_pattern ~r/^(?<nick>[^!]+)(?:!(?:(?<user>[^@ ]+)@)?(?:(?<host>[\w.:-]+)))?$/
defp parse_from(from, msg) do
from_str = IO.iodata_to_binary(from)
parts = Regex.run(@prefix_pattern, from_str, capture: :all_but_first)
diff --git a/test/utils_test.exs b/test/utils_test.exs
index 31dac37..38e343b 100644
--- a/test/utils_test.exs
+++ b/test/utils_test.exs
@@ -62,6 +62,13 @@ defmodule ExIrc.UtilsTest do
} = Utils.parse(':WiZ!jto@tolsun.oulu.fi NICK Kilroy')
end
+ test "Can parse prefix with only hostname in messages" do
+ assert %IrcMessage{
+ nick: "WiZ",
+ host: "tolsun.oulu.fi",
+ } = Utils.parse(':WiZ!tolsun.oulu.fi NICK Kilroy')
+ end
+
test "Can parse reduced prefix in messages" do
assert %IrcMessage{
nick: "Trillian",