librelogo/source/LibreLogo/LibreLogo.py |    6 +++---
 sw/qa/uitest/librelogo/compile.py       |    1 +
 2 files changed, 4 insertions(+), 3 deletions(-)

New commits:
commit 0718458f1ae80c798c13400fd87c989faba01937
Author:     László Németh <nem...@numbertext.org>
AuthorDate: Wed Apr 17 00:37:54 2019 +0200
Commit:     László Németh <nem...@numbertext.org>
CommitDate: Thu Apr 25 20:21:16 2019 +0200

    LibreLogo: fix RANGE with a single function argument
    
    in a FOR loop, by removing the range(x,,)-like double
    commas in this case, too, during program compilation.
    
    Previous empty (missing) argument of RANGE was checked
    by the terminating comma, but it can be a white space
    after it, as in the following example:
    
    FOR i IN RANGE COUNT 'letter' [ PRINT i ]
    
    Change-Id: I67d0a4f089be06f30003d1b979b8f1801dbfa2e9
    Reviewed-on: https://gerrit.libreoffice.org/71263
    Tested-by: Jenkins
    Reviewed-by: László Németh <nem...@numbertext.org>

diff --git a/librelogo/source/LibreLogo/LibreLogo.py 
b/librelogo/source/LibreLogo/LibreLogo.py
index d4fa0cfea340..e58537b2338a 100644
--- a/librelogo/source/LibreLogo/LibreLogo.py
+++ b/librelogo/source/LibreLogo/LibreLogo.py
@@ -1764,10 +1764,10 @@ def __l2p__(i, par, insub, inarray):
             for j in range(par["names"][subname]):
                 # add commas, except if already added, eg. with special RANGE
                 # (variable argument counts: RANGE 1 or RANGE 1 100 or RANGE 1 
100 10)
-                if j > 0 and par["out"][-1] != ",":
-                    par["out"] = re.sub("( *),$",",\\1", par["out"] + ",")
+                if j > 0 and par["out"].rstrip()[-1] != ",":
+                    par["out"] = re.sub("( +),$",",\\1", par["out"] + ",")
                 __l2p__(i, par, True, False)
-            par["out"] = re.sub("( *)\\)$", ")\\1", par["out"] + ")")
+            par["out"] = re.sub("( +)\\)$", ")\\1", par["out"] + ")")
         # operators
         elif pos in par["op"]:
             op = i[pos:par["op"][pos]]
diff --git a/sw/qa/uitest/librelogo/compile.py 
b/sw/qa/uitest/librelogo/compile.py
index 28905a36b897..89e538b8c926 100644
--- a/sw/qa/uitest/librelogo/compile.py
+++ b/sw/qa/uitest/librelogo/compile.py
@@ -74,6 +74,7 @@ class LibreLogoCompileTest(UITestCase):
                 ("WHILE REPCOUNT < 10 [ ]", "REPCOUNT2 = 1\nwhile REPCOUNT2 < 
10 :\n __checkhalt__()\n REPCOUNT = REPCOUNT2\n REPCOUNT2 += 1"),
                 # for
                 ("FOR i in [1, 2, 3] [ ]", "REPCOUNT4 = 1\nfor i in [1, 2, 3] 
:\n __checkhalt__()\n REPCOUNT = REPCOUNT4\n REPCOUNT4 += 1"),
+                ("FOR i IN RANGE COUNT 'letters' [ ]", "REPCOUNT6 = 1\nfor i 
in range(len(u'letters'),) :\n __checkhalt__()\n REPCOUNT = REPCOUNT6\n 
REPCOUNT6 += 1"),
                 # PROCEDURE
                 ("TO x\nLABEL 2\nEND", "global x\ndef x():\n __checkhalt__()\n 
%s\n label(2)\n %s" % (((self.LS),)*2)),
                 # FUNCTION
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to