]> git.lyx.org Git - lyx.git/blobdiff - lib/lyx2lyx/parser_tools.py
Avoid endless loops, e.g when an end_deeper is missing
[lyx.git] / lib / lyx2lyx / parser_tools.py
index c0c891f5346d6847a90cd044b4691128859837eb..78459d21d9ce4afc59b7f5bee5ac35d700fc1a73 100644 (file)
@@ -141,8 +141,8 @@ def find_tokens_backwards(lines, tokens, start):
     return -1
 
 
-def get_value(lines, token, start, end = 0):
-    """ get_value(lines, token, start[, end]) -> list of strings
+def get_value(lines, token, start, end = 0, default = ""):
+    """ get_value(lines, token, start[[, end], default]) -> list of strings
 
     Return tokens after token for the first line, in lines, where
     token is the first element."""
@@ -153,7 +153,7 @@ def get_value(lines, token, start, end = 0):
     if len(lines[i].split()) > 1:
         return lines[i].split()[1]
     else:
-        return ""
+        return default
 
 
 def del_token(lines, token, start, end):
@@ -176,6 +176,8 @@ def find_beginning_of(lines, i, start_token, end_token):
     count = 1
     while i > 0:
         i = find_tokens_backwards(lines, [start_token, end_token], i-1)
+        if i == -1:
+            return -1
         if check_token(lines[i], end_token):
             count = count+1
         else:
@@ -190,6 +192,8 @@ def find_end_of(lines, i, start_token, end_token):
     n = len(lines)
     while i < n:
         i = find_tokens(lines, [end_token, start_token], i+1)
+        if i == -1:
+            return -1
         if check_token(lines[i], start_token):
             count = count+1
         else: