summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLászló Németh <nemeth@numbertext.org>2014-03-31 11:12:57 +0200
committerLászló Németh <nemeth@numbertext.org>2014-03-31 11:19:33 +0200
commit236d87d529ed4c5c4b19320f222ac2cc8b0312ae (patch)
tree2c768435b259bcf6e40a2e885156df9e18aa16db
parentb740953537b324e157b22ce3bd46611b01f78e47 (diff)
fdo#75109 librelogo: fix localized procedures
Change-Id: Ia6edb02b871a41828758ba5fd5376c811c4084cc
-rw-r--r--librelogo/source/LibreLogo/LibreLogo.py7
1 files changed, 6 insertions, 1 deletions
diff --git a/librelogo/source/LibreLogo/LibreLogo.py b/librelogo/source/LibreLogo/LibreLogo.py
index 7b5930bf715b..d44ffa194a6d 100644
--- a/librelogo/source/LibreLogo/LibreLogo.py
+++ b/librelogo/source/LibreLogo/LibreLogo.py
@@ -1607,11 +1607,16 @@ def __compil__(s):
if len(subnames) > 0:
globs = "global %s" % ", ".join(subnames)
# search user functions (function calls with two or more arguments need explicite Python parentheses)
+ ends = __l12n__(_.lng)["END"] # support multiple names of "END"
+ firstend = ends.split("|")[0]
+ s = re.sub(r"(?<!:)\b(?:%s)\b" % ends, firstend, s)
+ __l12n__(_.lng)["END"] = firstend
functions += [ re.findall("(?u)\w+",i[0])[0] for i in re.findall(r"""(?iu)(?<=__def__ )([^\n]*)\n # beginning of a procedure
(?:[^\n]*(?<!\b(%(END)s))\n)* # 0 or more lines (not END)
[^\n]*\b(?:%(OUTPUT)s)\b[^\n]*\n # line with OUTPUT (functions = procedures with OUTPUT)
(?:[^\n]*(?<!\b(?:%(END)s))\n)* # 0 or more lines (not END)
- [ \t]*\b(?:%(END)s)\b""" % __l12n__(_.lng), s, re.X) ] # final END (XXX multiple names of "END" doesn't supported)
+ [ \t]*\b(?:%(END)s)\b""" % __l12n__(_.lng), s, re.X) ]
+ __l12n__(_.lng)["END"] = ends
# add line breaks before procedure calls
procedures = set(subnames) - set(functions)
if len(procedures) > 0: