From ebd1b3367d12056fcb1b874d335daf48c3fb5996 Mon Sep 17 00:00:00 2001 From: solecki <38192622+solecki@users.noreply.github.com> Date: Thu, 12 Apr 2018 20:30:28 +0200 Subject: [PATCH] Throw CommandError for commands with range out of bounds --- lib/command.coffee | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/lib/command.coffee b/lib/command.coffee index 15e74fe..90f49c2 100644 --- a/lib/command.coffee +++ b/lib/command.coffee @@ -128,11 +128,13 @@ class Command if off1? address1 += @parseOffset(off1) - address1 = 0 if address1 is -1 - address1 = lastLine if address1 > lastLine + inputIsNumber = /^\d+$/.test(cl) - if address1 < 0 - throw new CommandError('Invalid range') + address1 = 0 if address1 is -1 + address1 = lastLine if address1 > lastLine and inputIsNumber + + if address1 < 0 or address1 > lastLine + throw new CommandError('E16: Invalid range') if addr2? address2 = @parseAddr(addr2, cursor) @@ -140,10 +142,10 @@ class Command address2 += @parseOffset(off2) address2 = 0 if address2 is -1 - address2 = lastLine if address2 > lastLine + address2 = lastLine if address2 > lastLine and inputIsNumber - if address2 < 0 - throw new CommandError('Invalid range') + if address2 < 0 or address2 > lastLine + throw new CommandError('E16: Invalid range') if address2 < address1 throw new CommandError('Backwards range given')