diff --git a/annogen.py b/annogen.py index 174b1078952a4ecbaba9e127a7bea7c28cf8f464..cedde106ab6212d57bd9a0c4da36b90ac6301b2d 100755 --- a/annogen.py +++ b/annogen.py @@ -1,6 +1,6 @@ #!/usr/bin/env python -program_name = "Annotator Generator v0.563 (c) 2012-14 Silas S. Brown" +program_name = "Annotator Generator v0.564 (c) 2012-14 Silas S. Brown" # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -1292,7 +1292,7 @@ function readData() { case 52: return; case 60: { var nBytes = data.charCodeAt(dPtr++)+1; - var i = data.slice(dPtr,dPtr+nBytes).indexOf(input.charAt(p++)); + var i = ((p>=input.length)?-1:data.slice(dPtr,dPtr+nBytes).indexOf(input.charAt(p++))); if (i==-1) i = nBytes; dPtr += (nBytes + i * addrLen); dPtr = readAddr(); break; } @@ -1417,7 +1417,8 @@ class Annotator: elif d==52: return elif d==60: nBytes = ord(data[self.dPtr])+1 ; self.dPtr += 1 - i = data[self.dPtr:self.dPtr+nBytes].find(self.inStr[self.p]) ; self.p += 1 + if self.p>=len(self.inStr): i = -1 + else: i = data[self.dPtr:self.dPtr+nBytes].find(self.inStr[self.p]) ; self.p += 1 if i==-1: i = nBytes self.dPtr += (nBytes + i * self.addrLen) self.dPtr = self.readAddr()