From 39911a812da5ff989806d32a1f93828de73edc38 Mon Sep 17 00:00:00 2001 From: Jeremy Latt Date: Wed, 26 Feb 2014 12:08:01 -0800 Subject: [PATCH] handle mode command with trailing empty arguments --- irc/commands.go | 10 ++++++++-- irc/constants.go | 2 +- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/irc/commands.go b/irc/commands.go index feb106c4..a255e3c6 100644 --- a/irc/commands.go +++ b/irc/commands.go @@ -104,7 +104,6 @@ func parseLine(line string) (StringCode, []string) { parts = append(spacesExpr.Split(line, -1), lastArg) } else { parts = spacesExpr.Split(line, -1) - } return StringCode(strings.ToUpper(parts[0])), parts[1:] } @@ -477,6 +476,9 @@ func NewUserModeCommand(args []string) (editableCommand, error) { } for _, modeChange := range args[1:] { + if len(modeChange) == 0 { + continue + } op := ModeOp(modeChange[0]) if (op != Add) && (op != Remove) { return nil, ErrParseCommand @@ -552,8 +554,12 @@ func NewChannelModeCommand(args []string) (editableCommand, error) { args = args[1:] for len(args) > 0 { - modeArg := args[0] + if len(args[0]) == 0 { + args = args[1:] + continue + } + modeArg := args[0] op := ModeOp(modeArg[0]) if (op == Add) || (op == Remove) { modeArg = modeArg[1:] diff --git a/irc/constants.go b/irc/constants.go index a129d762..5538d115 100644 --- a/irc/constants.go +++ b/irc/constants.go @@ -23,7 +23,7 @@ var ( ) const ( - SEM_VER = "ergonomadic-1.2.3" + SEM_VER = "ergonomadic-1.2.4" CRLF = "\r\n" MAX_REPLY_LEN = 512 - len(CRLF)