Throw CommandError for commands with range out of bounds
This commit is contained in:
parent
2b7e6346a5
commit
ebd1b3367d
1 changed files with 9 additions and 7 deletions
|
|
@ -128,11 +128,13 @@ class Command
|
||||||
if off1?
|
if off1?
|
||||||
address1 += @parseOffset(off1)
|
address1 += @parseOffset(off1)
|
||||||
|
|
||||||
address1 = 0 if address1 is -1
|
inputIsNumber = /^\d+$/.test(cl)
|
||||||
address1 = lastLine if address1 > lastLine
|
|
||||||
|
|
||||||
if address1 < 0
|
address1 = 0 if address1 is -1
|
||||||
throw new CommandError('Invalid range')
|
address1 = lastLine if address1 > lastLine and inputIsNumber
|
||||||
|
|
||||||
|
if address1 < 0 or address1 > lastLine
|
||||||
|
throw new CommandError('E16: Invalid range')
|
||||||
|
|
||||||
if addr2?
|
if addr2?
|
||||||
address2 = @parseAddr(addr2, cursor)
|
address2 = @parseAddr(addr2, cursor)
|
||||||
|
|
@ -140,10 +142,10 @@ class Command
|
||||||
address2 += @parseOffset(off2)
|
address2 += @parseOffset(off2)
|
||||||
|
|
||||||
address2 = 0 if address2 is -1
|
address2 = 0 if address2 is -1
|
||||||
address2 = lastLine if address2 > lastLine
|
address2 = lastLine if address2 > lastLine and inputIsNumber
|
||||||
|
|
||||||
if address2 < 0
|
if address2 < 0 or address2 > lastLine
|
||||||
throw new CommandError('Invalid range')
|
throw new CommandError('E16: Invalid range')
|
||||||
|
|
||||||
if address2 < address1
|
if address2 < address1
|
||||||
throw new CommandError('Backwards range given')
|
throw new CommandError('Backwards range given')
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue