summaryrefslogtreecommitdiff
path: root/librelogo
diff options
context:
space:
mode:
authorAndras Timar <atimar@suse.com>2012-11-07 23:31:44 +0100
committerAndras Timar <atimar@suse.com>2012-11-07 23:32:35 +0100
commit74abeff02b750fb22fc3d56299abc2cd12d357d3 (patch)
treecbd82d31a89f4ecfe8bcf7cbc0c0bc1cabc80af1 /librelogo
parent0facaa9fe659efa0e0a3ddbeea81e83e1fede191 (diff)
integrate librelogo to the build
Change-Id: I4cd29f6a893d72a49233bb53d19701d0bdd0e078
Diffstat (limited to 'librelogo')
-rw-r--r--librelogo/Configuration_librelogo.mk18
-rw-r--r--librelogo/Extension_librelogo.mk46
-rw-r--r--librelogo/Makefile7
-rw-r--r--librelogo/Module_librelogo.mk17
-rw-r--r--librelogo/README44
-rw-r--r--librelogo/description-hu.txt1
-rw-r--r--librelogo/help/en-US/LibreLogo/LibreLogo.xhp614
-rw-r--r--librelogo/help/en-US/LibreLogo/doc.txt787
-rwxr-xr-xlibrelogo/help/en-US/LibreLogo/gendoc.sh3
-rw-r--r--librelogo/help/en-US/LibreLogo/head17
-rw-r--r--librelogo/make.py30
-rw-r--r--librelogo/prj/build.lst2
-rw-r--r--librelogo/prj/d.lst0
-rw-r--r--librelogo/pythonpath/hu.properties151
-rw-r--r--librelogo/source/ChangeLog (renamed from librelogo/ChangeLog)0
-rw-r--r--librelogo/source/LibreLogo/LibreLogo.py (renamed from librelogo/LibreLogo/LibreLogo.py)8
-rw-r--r--librelogo/source/LibreLogoDummy.py (renamed from librelogo/LibreLogoDummy.py)0
-rw-r--r--librelogo/source/META-INF/manifest.xml (renamed from librelogo/META-INF/manifest.xml)0
-rw-r--r--librelogo/source/README43
-rw-r--r--librelogo/source/description-en-US.txt (renamed from librelogo/description-en.txt)0
-rw-r--r--librelogo/source/description.xml (renamed from librelogo/description.xml)5
-rw-r--r--librelogo/source/help/en-US/LibreLogo.xhp388
-rw-r--r--librelogo/source/help/en-US/help.tree (renamed from librelogo/help/en-US/help.tree)6
-rw-r--r--librelogo/source/help/en-US/tree_strings.xhp29
-rw-r--r--librelogo/source/icons/lc_arrowshapes.circular-arrow.png (renamed from librelogo/icons/lc_arrowshapes.circular-arrow.png)bin787 -> 787 bytes
-rw-r--r--librelogo/source/icons/lc_arrowshapes.circular-leftarrow.png (renamed from librelogo/icons/lc_arrowshapes.circular-leftarrow.png)bin1082 -> 1082 bytes
-rw-r--r--librelogo/source/icons/lc_arrowshapes.down-arrow.png (renamed from librelogo/icons/lc_arrowshapes.down-arrow.png)bin527 -> 527 bytes
-rw-r--r--librelogo/source/icons/lc_arrowshapes.up-arrow.png (renamed from librelogo/icons/lc_arrowshapes.up-arrow.png)bin487 -> 487 bytes
-rw-r--r--librelogo/source/icons/lc_basicstop.png (renamed from librelogo/icons/lc_basicstop.png)bin616 -> 616 bytes
-rw-r--r--librelogo/source/icons/lc_editglossary.png (renamed from librelogo/icons/lc_editglossary.png)bin705 -> 705 bytes
-rw-r--r--librelogo/source/icons/lc_navigationbarleft.png (renamed from librelogo/icons/lc_navigationbarleft.png)bin831 -> 831 bytes
-rw-r--r--librelogo/source/icons/lc_newdoc.png (renamed from librelogo/icons/lc_newdoc.png)bin445 -> 445 bytes
-rw-r--r--librelogo/source/icons/lc_runbasic.png (renamed from librelogo/icons/lc_runbasic.png)bin740 -> 740 bytes
-rw-r--r--librelogo/source/icons/sc_arrowshapes.circular-arrow.png (renamed from librelogo/icons/sc_arrowshapes.circular-arrow.png)bin482 -> 482 bytes
-rw-r--r--librelogo/source/icons/sc_arrowshapes.circular-leftarrow.png (renamed from librelogo/icons/sc_arrowshapes.circular-leftarrow.png)bin631 -> 631 bytes
-rw-r--r--librelogo/source/icons/sc_arrowshapes.down-arrow.png (renamed from librelogo/icons/sc_arrowshapes.down-arrow.png)bin340 -> 340 bytes
-rw-r--r--librelogo/source/icons/sc_arrowshapes.up-arrow.png (renamed from librelogo/icons/sc_arrowshapes.up-arrow.png)bin323 -> 323 bytes
-rw-r--r--librelogo/source/icons/sc_basicstop.png (renamed from librelogo/icons/sc_basicstop.png)bin397 -> 397 bytes
-rw-r--r--librelogo/source/icons/sc_editglossary.png (renamed from librelogo/icons/sc_editglossary.png)bin429 -> 429 bytes
-rw-r--r--librelogo/source/icons/sc_navigationbarleft.png (renamed from librelogo/icons/sc_navigationbarleft.png)bin626 -> 626 bytes
-rw-r--r--librelogo/source/icons/sc_newdoc.png (renamed from librelogo/icons/sc_newdoc.png)bin350 -> 350 bytes
-rw-r--r--librelogo/source/icons/sc_runbasic.png (renamed from librelogo/icons/sc_runbasic.png)bin534 -> 534 bytes
-rw-r--r--librelogo/source/pythonpath/LibreLogo_en_US.properties (renamed from librelogo/pythonpath/en.properties)0
-rw-r--r--librelogo/source/pythonpath/librelogodummy_path.py (renamed from librelogo/pythonpath/librelogodummy_path.py)0
-rw-r--r--librelogo/source/registry/data/org/openoffice/Office/Addons.xcu (renamed from librelogo/Addons.xcu)46
-rw-r--r--librelogo/source/registry/data/org/openoffice/Office/UI/StartModuleWindowState.xcu (renamed from librelogo/Office/UI/StartModuleWindowState.xcu)8
-rw-r--r--librelogo/source/registry/data/org/openoffice/Office/UI/WriterWindowState.xcu (renamed from librelogo/Office/UI/WriterWindowState.xcu)8
47 files changed, 575 insertions, 1703 deletions
diff --git a/librelogo/Configuration_librelogo.mk b/librelogo/Configuration_librelogo.mk
new file mode 100644
index 000000000000..00983886a362
--- /dev/null
+++ b/librelogo/Configuration_librelogo.mk
@@ -0,0 +1,18 @@
+# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
+#
+# This file is part of the LibreOffice project.
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+
+$(eval $(call gb_Configuration_Configuration,librelogo,nodeliver))
+
+$(eval $(call gb_Configuration_add_localized_datas,librelogo,librelogo/source/registry/data,\
+ org/openoffice/Office/Addons.xcu \
+ org/openoffice/Office/UI/StartModuleWindowState.xcu \
+ org/openoffice/Office/UI/WriterWindowState.xcu \
+))
+
+# vim:set shiftwidth=4 softtabstop=4 expandtab:
diff --git a/librelogo/Extension_librelogo.mk b/librelogo/Extension_librelogo.mk
new file mode 100644
index 000000000000..1c80e9dcba80
--- /dev/null
+++ b/librelogo/Extension_librelogo.mk
@@ -0,0 +1,46 @@
+# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
+#
+# This file is part of the LibreOffice project.
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+
+$(eval $(call gb_Extension_Extension,librelogo,librelogo/source))
+
+$(eval $(call gb_Extension_add_files,librelogo,icons,\
+ $(SRCDIR)/librelogo/source/icons/lc_arrowshapes.circular-arrow.png \
+ $(SRCDIR)/librelogo/source/icons/lc_arrowshapes.circular-leftarrow.png \
+ $(SRCDIR)/librelogo/source/icons/lc_arrowshapes.down-arrow.png \
+ $(SRCDIR)/librelogo/source/icons/lc_arrowshapes.up-arrow.png \
+ $(SRCDIR)/librelogo/source/icons/lc_basicstop.png \
+ $(SRCDIR)/librelogo/source/icons/lc_editglossary.png \
+ $(SRCDIR)/librelogo/source/icons/lc_navigationbarleft.png \
+ $(SRCDIR)/librelogo/source/icons/lc_newdoc.png \
+ $(SRCDIR)/librelogo/source/icons/lc_runbasic.png \
+ $(SRCDIR)/librelogo/source/icons/sc_arrowshapes.circular-arrow.png \
+ $(SRCDIR)/librelogo/source/icons/sc_arrowshapes.circular-leftarrow.png \
+ $(SRCDIR)/librelogo/source/icons/sc_arrowshapes.down-arrow.png \
+ $(SRCDIR)/librelogo/source/icons/sc_arrowshapes.up-arrow.png \
+ $(SRCDIR)/librelogo/source/icons/sc_basicstop.png \
+ $(SRCDIR)/librelogo/source/icons/sc_editglossary.png \
+ $(SRCDIR)/librelogo/source/icons/sc_navigationbarleft.png \
+ $(SRCDIR)/librelogo/source/icons/sc_newdoc.png \
+ $(SRCDIR)/librelogo/source/icons/sc_runbasic.png \
+))
+
+$(eval $(call gb_Extension_add_file,librelogo,LibreLogoDummy.py,$(SRCDIR)/librelogo/source/LibreLogoDummy.py))
+$(eval $(call gb_Extension_add_file,librelogo,pythonpath/librelogodummy_path.py,$(SRCDIR)/librelogo/source/pythonpath/librelogodummy_path.py))
+$(eval $(call gb_Extension_add_file,librelogo,LibreLogo/LibreLogo.py,$(SRCDIR)/librelogo/source/LibreLogo/LibreLogo.py))
+$(eval $(call gb_Extension_add_file,librelogo,Addons.xcu,$(call gb_XcuFile_for_extension,librelogo/source/registry/data/org/openoffice/Office/Addons.xcu)))
+$(eval $(call gb_Extension_add_file,librelogo,Office/UI/StartModuleWindowState.xcu,$(call gb_XcuFile_for_extension,librelogo/source/registry/data/org/openoffice/Office/UI/StartModuleWindowState.xcu)))
+$(eval $(call gb_Extension_add_file,librelogo,Office/UI/WriterWindowState.xcu,$(call gb_XcuFile_for_extension,librelogo/source/registry/data/org/openoffice/Office/UI/WriterWindowState.xcu)))
+
+$(eval $(call gb_Extension_localize_properties,librelogo,pythonpath/LibreLogo_en_US.properties,$(SRCDIR)/librelogo/source/pythonpath/LibreLogo_en_US.properties))
+
+$(eval $(call gb_Extension_add_helpfile,librelogo,$(SRCDIR)/librelogo/source/help/en-US,org.openoffice.comp.pyuno.LibreLogo/LibreLogo.xhp,LibreLogo.xhp))
+
+$(eval $(call gb_Extension_add_helptreefile,librelogo,$(SRCDIR)/librelogo/source/help/en-US,/help.tree,/help.tree,org.openoffice.comp.pyuno.LibreLogo))
+
+# vim:set shiftwidth=4 softtabstop=4 expandtab:
diff --git a/librelogo/Makefile b/librelogo/Makefile
new file mode 100644
index 000000000000..ccb1c85a04da
--- /dev/null
+++ b/librelogo/Makefile
@@ -0,0 +1,7 @@
+# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
+
+module_directory:=$(dir $(realpath $(firstword $(MAKEFILE_LIST))))
+
+include $(module_directory)/../solenv/gbuild/partial_build.mk
+
+# vim: set noet sw=4 ts=4:
diff --git a/librelogo/Module_librelogo.mk b/librelogo/Module_librelogo.mk
new file mode 100644
index 000000000000..cd0245d77d8d
--- /dev/null
+++ b/librelogo/Module_librelogo.mk
@@ -0,0 +1,17 @@
+# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
+#
+# This file is part of the LibreOffice project.
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+
+$(eval $(call gb_Module_Module,librelogo))
+
+$(eval $(call gb_Module_add_targets,librelogo,\
+ Configuration_librelogo \
+ Extension_librelogo \
+))
+
+# vim: set noet sw=4 ts=4:
diff --git a/librelogo/README b/librelogo/README
index cc32af2e3fa5..af75698f5f2d 100644
--- a/librelogo/README
+++ b/librelogo/README
@@ -1,43 +1 @@
-LibreOffice Logo 0.2 RC2
-
-License: GNU LGPL & GPL, MPL
-
-Home page: http://www.numbertext.org/logo
-
-(c) László Németh (nemeth at numbertextdotorg)
-
-FSF.hu Foundation, http://www.fsf.hu
-
-Icons copyright: OpenOffice.org/LibreOffice
-
-Introduction
-============
-
-LibreLogo is a Logo-like progamming language with interactive vectorgraphics for education and DTP
-
-- presentation: http://www.numbertext.org/logo/librelogo.pdf
-- basic Logo syntax for back compability with educational Logo systems
-- interactive vectorgraphics in LibreOffice Writer
-- native commands (easily translatable)
-- Python data structures (list, tuple, set, dictionary) and other Python features
-
-Usage
-=====
-
-See Logo in LibreOffice Help and http://www.numbertext.org/logo for documentation.
-
-Translation
-===========
-
-create your_language_id.lng in LibreOffice/ based on en.lng.
-
-Compilation:
-
-python make.py
-
-Development
-===========
-
-LibreLogo uses the PyUNO scripting framework, so Addons.xcu URLs depend from the
-full name of the package. Modify them according to the package name with the
-version number.
+LibreLogo is a Logo-like programming language with interactive vectorgraphics for education and DTP
diff --git a/librelogo/description-hu.txt b/librelogo/description-hu.txt
deleted file mode 100644
index 9d0b626b470a..000000000000
--- a/librelogo/description-hu.txt
+++ /dev/null
@@ -1 +0,0 @@
-Programozási nyelv és környezet oktatáshoz, számítógépes grafikához és kiadványszerkesztéshez. Használat: Nézet→Eszköztárak→Logo eszköztár a Writerben. L. Logo a LibreOffice Súgóban.
diff --git a/librelogo/help/en-US/LibreLogo/LibreLogo.xhp b/librelogo/help/en-US/LibreLogo/LibreLogo.xhp
deleted file mode 100644
index e3aa04c08bdf..000000000000
--- a/librelogo/help/en-US/LibreLogo/LibreLogo.xhp
+++ /dev/null
@@ -1,614 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<helpdocument version="1.0">
-<meta>
-<topic id="LibreLogo" indexer="include" status="PUBLISH">
-<title id="title">LibreLogo</title>
-<filename>/LibreLogo/LibreLogo.xhp</filename>
-</topic>
-</meta>
-<body>
-
-<bookmark xml-lang="en" branch="index" id="bm1">
-<bookmark_value>LibreLogo</bookmark_value>
-<bookmark_value>Logo</bookmark_value>
-<bookmark_value>Turtle graphics</bookmark_value>
-</bookmark>
-
-<paragraph role="heading" level="1">LibreLogo</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="paragraph">LibreLogo is a simple, native, Logo-like programming environment with turtle vector graphics for teaching of computing (programming and word processing), DTP and graphic design. See http://www.numbertext.org/logo/librelogo.pdf.</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="heading" level="2">LibreLogo toolbar</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="paragraph">The LibreLogo toolbar (View » Toolbars » Logo) contains turtle moving, program run and stop, home and clear screen and syntax highlighting/translating icons and an input bar (command line).</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="heading" level="2">Turtle moving icons</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="paragraph">They are equivalents of the Logo commands “FORWARD 10”, “BACK 10”, “LEFT 15”, “RIGHT 15”.</paragraph>
-<paragraph role="paragraph">Clicking on one of the icons will also focus the turtle shape scrolling the page to its position.</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="heading" level="2">Program run and start</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="paragraph">Click on the icon “run” to execute the text of the Writer document as a LibreLogo program.</paragraph>
-<paragraph role="paragraph">Click on the icon “stop” to stop the program execution.</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="heading" level="2">Home</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="paragraph">Click on the icon “home” to reset the position and settings of the turtle.</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="heading" level="2">Clear screen</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="paragraph">Click on the icon “clear screen” to remove the drawing objects of the document.</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="heading" level="2">Command line</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="paragraph">Hit Enter in the command line to execute its content. To stop the program use the icon “stop”.</paragraph>
-<paragraph role="paragraph">Hold down the Enter to repeat the command line, for example, on the following command sequence:</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="code">&#160;FORWARD&#160;200&#160;LEFT&#160;89<br/></paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="paragraph">To reset the command line click triple in it or press Ctrl-A to select the previous commands, and type the new commands.</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="heading" level="2">Syntax highlighting/Translating</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="paragraph">It expands and upper case Logo commands in the Writer document. Change the language of the document (Tools » Options » Language Settings » Languages » Western) and click on this icon to translate the Logo program to the selected language.</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="heading" level="2">Program editing</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="paragraph">LibreLogo drawings and programs use the same Writer document. The LibreLogo canvas is on the first page of the Writer document. You can insert a page break before the LibreLogo programs and set the zoom/font size for a comfortable two page layout for LibreLogo programming: left (first) page is the canvas, right (second) page is for the LibreLogo programs.</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="heading" level="1">LibreLogo programming language</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="paragraph">LibreLogo is a native, easily localisable, Logo-like programming language. It is back-compatible with the older Logo systems in the case of the simple Logo programs used in education, eg.</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="code">&#160;TO&#160;triangle&#160;:size<br/>&#160;REPEAT&#160;3&#160;[<br/>&#160;&#160;&#160;FORWARD&#160;:size<br/>&#160;&#160;&#160;LEFT&#160;120<br/>&#160;]<br/>&#160;END<br/>&#160;<br/>&#160;triangle&#160;10&#160;triangle&#160;100&#160;triangle&#160;200<br/></paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="heading" level="2">Differences from the Logo programming language</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="heading" level="3">List members are comma separated</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="code">&#160;POSITION&#160;[0,&#160;0]<br/></paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="heading" level="3">Program blocks and lists</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="paragraph">Program blocks and lists have got different syntax.</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="paragraph">Program blocks need space or new line at parenthesization:</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="code">&#160;REPEAT&#160;10&#160;[&#160;forward&#160;10&#160;left&#160;36&#160;]<br/></paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="paragraph">Lists need close parenthesization:</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="code">&#160;POSITION&#160;[0,&#160;0]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;;&#160;and&#160;not&#160;POSITION&#160;[&#160;0,&#160;0&#160;]<br/></paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="heading" level="3">Function declarations</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="paragraph">LibreLogo has not supported 1-line function declarations, yet. TO and END need new lines.</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="code">&#160;TO&#160;polygon<br/>&#160;&#160;&#160;FORWARD&#160;1&#160;RIGHT&#160;1<br/>&#160;&#160;&#160;polygon&#160;&#160;&#160;&#160;&#160;&#160;;&#160;recursion<br/>&#160;END<br/></paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="code">&#160;polygon<br/></paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="heading" level="2">Other features of LibreLogo</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="heading" level="3">Optional colon</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="paragraph">The colon is optional before variable names.</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="code">&#160;TO&#160;triangle&#160;size<br/>&#160;&#160;&#160;REPEAT&#160;3&#160;[&#160;FORWARD&#160;size&#160;LEFT&#160;120&#160;]<br/>&#160;END<br/></paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="heading" level="3">String notation</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="paragraph">String notation supports also orthographical and Python syntax.</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="code">&#160;PRINT&#160;"word ;&#160;original&#160;Logo&#160;syntax<br/>&#160;PRINT&#160;“Arbitrary&#160;text.” ;&#160;orthography,&#160;Writer<br/>&#160;PRINT&#160;'Arbitrary&#160;text.' ;&#160;Python&#160;syntax<br/></paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="heading" level="3">Python list and string handling</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="code">&#160;PRINT&#160;“text”[2] ;&#160;print&#160;“x”<br/>&#160;PRINT&#160;“text”[1:3] ;&#160;print&#160;“ex”<br/>&#160;PRINT&#160;[1,&#160;2,&#160;3,&#160;4][1] ;&#160;print&#160;2<br/>&#160;PRINT&#160;[1,&#160;2,&#160;3,&#160;4][1:3] ;&#160;print&#160;[2,&#160;3]<br/></paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="heading" level="3">Python-like FOR loop</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="code">&#160;FOR&#160;i&#160;IN&#160;[1,&#160;2]&#160;[<br/>&#160;&#160;&#160;PRINT&#160;i<br/>&#160;]<br/></paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="heading" level="3">Python-like variable declaration</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="code">&#160;x&#160;=&#160;15<br/>&#160;PRINT&#160;x<br/></paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="heading" level="3">There are no extra query functions</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="code">&#160;PRINT&#160;FILLCOLOR<br/>&#160;p&#160;=&#160;POSITION<br/>&#160;PRINT&#160;p<br/>&#160;REPEAT&#160;10&#160;[&#160;POSITION&#160;ANY&#160;POSITION&#160;p&#160;]<br/></paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="heading" level="3">Alternative parenthesization in function calls</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="code">&#160;TO&#160;star&#160;size&#160;color<br/>&#160;FILLCOLOR&#160;color<br/>&#160;REPEAT&#160;5&#160;[&#160;LEFT&#160;72&#160;FORWARD&#160;size&#160;RIGHT&#160;144&#160;FORWARD&#160;size&#160;]<br/>&#160;FILL<br/>&#160;END<br/>&#160;<br/>&#160;star&#160;100&#160;“red”<br/>&#160;star&#160;(100,&#160;“green”)<br/>&#160;star(100,&#160;“blue”)<br/></paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="heading" level="1">LibreLogo commands</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="heading" level="2">Basic syntax</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="heading" level="3">Case sensitivity</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="paragraph">Commands, color constants are case insensitive:</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="code">&#160;PRINT&#160;“Hello,&#160;World!”<br/>&#160;print&#160;“Hello,&#160;World,&#160;again!”<br/></paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="paragraph">Variable names are case sensitive:</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="code">&#160;a&#160;=&#160;5<br/>&#160;A&#160;=&#160;7<br/>&#160;PRINT&#160;a<br/>&#160;PRINT&#160;A<br/></paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="heading" level="3">Program lines</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="paragraph">Lines of a LibreLogo program are paragraphs in the LibreOffice Writer document. A program line can contain multiple commands:</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="code">&#160;PRINT&#160;“Hello,&#160;World!”&#160;PRINT&#160;“LibreLogo”<br/></paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="heading" level="3">Comments</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="paragraph">Lines or line parts are comments from a semicolon to the end of the line (paragraph):</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="code">&#160;;&#160;some&#160;comments<br/>&#160;PRINT&#160;5&#160;*&#160;5 ;&#160;some&#160;comments<br/></paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="heading" level="3">Break program lines to multiple paragraphs</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="paragraph">It’s possible to break a program line for more paragraphs using the character tilde at the end of the line:</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="code">&#160;PRINT&#160;“This&#160;is&#160;a&#160;very&#160;long&#160;”&#160;+&#160;~<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;“warning&#160;message”<br/></paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="heading" level="2">Turtle moving</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="heading" level="3">FORWARD (fd)</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="code">&#160;FORWARD&#160;10 ;&#160;move&#160;forward&#160;10pt&#160;(1pt&#160;=&#160;1/72&#160;inch)<br/>&#160;FORWARD&#160;10pt ;&#160;see&#160;above<br/>&#160;FORWARD&#160;0.5in ;&#160;move&#160;forward&#160;0.5&#160;inch&#160;(1&#160;inch&#160;=&#160;2.54&#160;cm)<br/>&#160;FORWARD&#160;1" ;&#160;see&#160;above<br/>&#160;FD&#160;1mm<br/>&#160;FD&#160;1cm<br/></paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="heading" level="3">BACK (bk)</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="code">&#160;BACK&#160;10&#160;;&#160;move&#160;back&#160;10pt<br/></paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="heading" level="3">LEFT (lt)</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="code">&#160;LEFT&#160;90 ;&#160;turn&#160;counterclockwise&#160;90&#160;degrees<br/>&#160;LEFT&#160;90° ;&#160;see&#160;above<br/>&#160;LT&#160;3h ;&#160;see&#160;above&#160;(clock&#160;position)<br/>&#160;LT&#160;any ;&#160;turn&#160;to&#160;a&#160;random&#160;position<br/></paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="heading" level="3">RIGHT (rt)</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="code">&#160;RIGHT&#160;90 ;&#160;turn&#160;clockwise&#160;90&#160;degrees<br/></paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="heading" level="3">PENUP (pu)</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="code">&#160;PENUP ;&#160;turtle&#160;will&#160;move&#160;without&#160;drawing<br/></paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="heading" level="3">PENDOWN (pd)</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="code">&#160;PENDOWN ;&#160;turtle&#160;will&#160;move&#160;with&#160;drawing<br/></paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="heading" level="3">POSITION (pos)</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="code">&#160;POSITION&#160;[0,&#160;0] ;&#160;turn&#160;and&#160;move&#160;to&#160;the&#160;top-left&#160;corner<br/>&#160;POSITION&#160;PAGESIZE ;&#160;turn&#160;and&#160;move&#160;to&#160;the&#160;bottom-right&#160;corner<br/>&#160;POSITION&#160;[PAGESIZE[0],&#160;0]&#160;;&#160;turn&#160;and&#160;move&#160;to&#160;the&#160;top-right&#160;corner<br/>&#160;POSITION&#160;ANY ;&#160;turn&#160;and&#160;move&#160;to&#160;a&#160;random&#160;position<br/></paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="heading" level="3">HEADING (seth)</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="code">&#160;HEADING&#160;0 ;&#160;turn&#160;north<br/>&#160;HEADING&#160;12h ;&#160;see&#160;above<br/>&#160;HEADING&#160;ANY ;&#160;turn&#160;to&#160;a&#160;random&#160;position<br/></paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="heading" level="2">Other turtle commands</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="heading" level="3">HIDETURTLE (ht)</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="code">&#160;HIDETURTLE ;&#160;hide&#160;turtle&#160;(until&#160;the&#160;showturtle&#160;command)<br/></paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="heading" level="3">SHOWTURTLE (st)</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="code">&#160;SHOWTURTLE ;&#160;show&#160;turtle<br/></paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="heading" level="3">HOME</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="code">&#160;HOME ;&#160;reset&#160;initial&#160;turtle&#160;settings&#160;and&#160;position<br/></paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="heading" level="3">CLEARSCREEN (cs)</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="code">&#160;CLEARSCREEN ;&#160;remove&#160;drawing&#160;objects&#160;of&#160;the&#160;document<br/></paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="heading" level="3">FILL and CLOSE</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="code">&#160;FILL ;&#160;close&#160;and&#160;fill&#160;the&#160;actual&#160;line&#160;shape<br/>&#160;CLOSE ;&#160;close&#160;the&#160;actual&#160;line&#160;shape<br/></paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="heading" level="2">Pen settings</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="heading" level="3">PENSIZE (ps)</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="code">&#160;PENSIZE&#160;100 ;&#160;line&#160;width&#160;is&#160;100&#160;points<br/>&#160;PENSIZE&#160;ANY ;&#160;equivalent&#160;of&#160;PENSIZE&#160;RANDOM&#160;10<br/></paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="heading" level="3">PENCOLOR/PENCOLOUR (pc)</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="code">&#160;PENCOLOR&#160;“red” ;&#160;set&#160;red&#160;pen&#160;color&#160;(by&#160;color&#160;name,&#160;see&#160;color&#160;constants)<br/>&#160;PENCOLOR&#160;[255,&#160;255,&#160;0] ;&#160;set&#160;yellow&#160;color&#160;(RGB&#160;list)<br/>&#160;PENCOLOR&#160;0xffff00 ;&#160;set&#160;yellow&#160;color&#160;(hexa&#160;code)<br/>&#160;PENCOLOR&#160;0 ;&#160;set&#160;black&#160;color&#160;(0x000000)<br/>&#160;PENCOLOR&#160;ANY ;&#160;random&#160;color<br/>&#160;PENCOLOR&#160;[5] ;&#160;set&#160;red&#160;color&#160;(by&#160;color&#160;identifier,&#160;see&#160;color&#160;constants)<br/>&#160;PENCOLOR&#160;“invisible” ;&#160;invisible&#160;pen&#160;color&#160;for&#160;shapes&#160;without&#160;visible&#160;outline<br/>&#160;PENCOLOR&#160;“~red” ;&#160;set&#160;random&#160;red&#160;color<br/></paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="heading" level="3">PENJOINT/LINEJOINT</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="code">&#160;PENJOINT&#160;“rounded” ;&#160;rounded&#160;line&#160;joint&#160;(default)<br/>&#160;PENJOINT&#160;“miter” ;&#160;sharp&#160;line&#160;joint<br/>&#160;PENJOINT&#160;“bevel” ;&#160;bevel&#160;line&#160;joint<br/>&#160;PENJOINT&#160;“none” ;&#160;without&#160;line&#160;joint<br/></paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="heading" level="3">PENSTYLE</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="code">&#160;PENSTYLE&#160;“solid” ;&#160;solid&#160;line&#160;(default)<br/>&#160;PENSTYLE&#160;“dotted” ;&#160;dotted&#160;line<br/>&#160;PENSTYLE&#160;“dashed” ;&#160;dashed&#160;line<br/>&#160;<br/>&#160;;&#160;custom&#160;dot–dash&#160;pattern&#160;specified&#160;by&#160;a&#160;list&#160;with&#160;the&#160;following&#160;arguments:<br/>&#160;;&#160;–&#160;number&#160;of&#160;the&#160;neighbouring&#160;dots<br/>&#160;;&#160;–&#160;length&#160;of&#160;a&#160;dot<br/>&#160;;&#160;–&#160;number&#160;of&#160;the&#160;neighbouring&#160;dashes<br/>&#160;;&#160;–&#160;length&#160;of&#160;a&#160;dash<br/>&#160;;&#160;–&#160;distance&#160;of&#160;the&#160;dots/dashes<br/>&#160;;&#160;–&#160;type&#160;(optional):<br/>&#160;;&#160;&#160;&#160;0&#160;=&#160;dots&#160;are&#160;rectangles&#160;(default)<br/>&#160;;&#160;&#160;&#160;2&#160;=&#160;dots&#160;are&#160;squares&#160;(lengths&#160;and&#160;distances&#160;are&#160;relative&#160;to&#160;the&#160;pensize)<br/>&#160;<br/>&#160;PENSTYLE&#160;[3,&#160;1mm,&#160;2,&#160;4mm,&#160;2mm,&#160;2] ;&#160;...––...––...––<br/></paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="heading" level="2">Fill settings</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="heading" level="3">FILLCOLOR/FILLCOLOUR (fc)</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="code">&#160;FILLCOLOR&#160;“blue” ;&#160;fill&#160;with&#160;blue&#160;color,&#160;see&#160;also&#160;PENCOLOR<br/>&#160;FILLCOLOR&#160;“invisible”&#160;CIRCLE&#160;10 ;&#160;unfilled&#160;circle<br/></paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="heading" level="3">FILLSTYLE</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="code">&#160;FILLSTYLE&#160;0 ;&#160;fill&#160;without&#160;hatches&#160;(default)<br/>&#160;FILLSTYLE&#160;1 ;&#160;black&#160;single&#160;hatches&#160;(horizontal)<br/>&#160;FILLSTYLE&#160;2 ;&#160;black&#160;single&#160;hatches&#160;(45&#160;degrees)<br/>&#160;FILLSTYLE&#160;3 ;&#160;black&#160;single&#160;hatches&#160;(-45&#160;degrees)<br/>&#160;FILLSTYLE&#160;4 ;&#160;black&#160;single&#160;hatches&#160;(vertical)<br/>&#160;FILLSTYLE&#160;5 ;&#160;red&#160;crossed&#160;hatches&#160;(45&#160;degrees)<br/>&#160;FILLSTYLE&#160;6 ;&#160;red&#160;crossed&#160;hatches&#160;(0&#160;degrees)<br/>&#160;FILLSTYLE&#160;7 ;&#160;blue&#160;crossed&#160;hatches&#160;(45&#160;degrees)<br/>&#160;FILLSTYLE&#160;8 ;&#160;blue&#160;crossed&#160;hatches&#160;(0&#160;degrees)<br/>&#160;FILLSTYLE&#160;9 ;&#160;blue&#160;triple&#160;crossed<br/>&#160;FILLSTYLE&#160;10 ;&#160;black&#160;wide&#160;single&#160;hatches&#160;(45&#160;degrees)<br/>&#160;<br/>&#160;;&#160;custom&#160;hatches&#160;specified&#160;by&#160;a&#160;list&#160;with&#160;the&#160;following&#160;arguments:<br/>&#160;;&#160;–&#160;style&#160;(1&#160;=&#160;single,&#160;2&#160;=&#160;double,&#160;3&#160;=&#160;triple&#160;hatching)<br/>&#160;;&#160;–&#160;color<br/>&#160;;&#160;–&#160;distance<br/>&#160;;&#160;–&#160;degree<br/>&#160;<br/>&#160;FILLSTYLE&#160;[2,&#160;“green”,&#160;3pt,&#160;15°] ;&#160;green&#160;crossed&#160;hatches&#160;(15&#160;degrees)<br/></paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="heading" level="2">Drawing objects</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="heading" level="3">CIRCLE</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="code">&#160;CIRCLE&#160;100 ;&#160;draw&#160;a&#160;circle&#160;shape&#160;(diameter&#160;=&#160;100pt)<br/></paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="heading" level="3">ELLIPSE</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="code">&#160;ELLIPSE&#160;[50,&#160;100] ;&#160;draw&#160;an&#160;ellipse&#160;with&#160;50&#160;and&#160;100&#160;diameters<br/>&#160;ELLIPSE&#160;[50,&#160;100,&#160;2h,&#160;12h] ;&#160;draw&#160;an&#160;elliptical&#160;sector&#160;(from&#160;2h&#160;clock&#160;position&#160;to&#160;12h)<br/>&#160;ELLIPSE&#160;[50,&#160;100,&#160;2h,&#160;12h,&#160;2]&#160;&#160;;&#160;draw&#160;an&#160;elliptical&#160;segment<br/>&#160;ELLIPSE&#160;[50,&#160;100,&#160;2h,&#160;12h,&#160;3]&#160;&#160;;&#160;draw&#160;an&#160;elliptical&#160;arc<br/></paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="heading" level="3">SQUARE</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="code">&#160;SQUARE&#160;100 ;&#160;draw&#160;a&#160;square&#160;shape&#160;(size&#160;=&#160;100pt)<br/></paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="heading" level="3">RECTANGLE</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="code">&#160;RECTANGLE&#160;[50,&#160;100] ;&#160;draw&#160;a&#160;rectange&#160;shape&#160;(50×100pt)<br/>&#160;RECTANGLE&#160;[50,&#160;100,&#160;50] ;&#160;draw&#160;a&#160;rectangle&#160;<br/></paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="heading" level="3">POINT</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="code">&#160;POINT ;&#160;draw&#160;a&#160;point&#160;with&#160;size&#160;and&#160;color&#160;of&#160;the&#160;pen<br/></paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="heading" level="3">LABEL</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="code">&#160;LABEL&#160;“text” ;&#160;print&#160;text&#160;in&#160;the&#160;turte&#160;position<br/>&#160;LABEL&#160;'text' ;&#160;see&#160;above<br/>&#160;LABEL&#160;"text ;&#160;see&#160;above&#160;(only&#160;for&#160;single&#160;words)<br/></paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="heading" level="3">TEXT</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="code">&#160;CIRCLE&#160;10&#160;TEXT&#160;“text” ;&#160;set&#160;text&#160;of&#160;the&#160;actual&#160;drawing&#160;object<br/></paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="heading" level="2">Font settings</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="heading" level="3">FONTCOLOR/FONTCOLOUR</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="code">&#160;FONTCOLOR&#160;“green” ;&#160;set&#160;font&#160;color<br/></paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="heading" level="3">FONTFAMILY</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="code">&#160;FONTFAMILY&#160;“Linux&#160;Libertine&#160;G” ;&#160;set&#160;font&#160;(family)<br/>&#160;FONTFAMILY&#160;“Linux&#160;Libertine&#160;G:smcp=1” ;&#160;set&#160;also&#160;font&#160;feature&#160;(small&#160;caps)<br/>&#160;FONTFAMILY&#160;“Linux&#160;Libertine&#160;G:smcp=1&amp;onum=1” ;&#160;small&#160;caps&#160;+&#160;old&#160;figures<br/></paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="heading" level="3">FONTSIZE</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="code">&#160;FONTSIZE&#160;12 ;&#160;set&#160;12pt<br/></paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="heading" level="3">FONTWEIGHT</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="code">&#160;FONTWEIGHT&#160;“bold” ;&#160;set&#160;bold&#160;font<br/>&#160;FONTWEIGHT&#160;“normal” ;&#160;set&#160;normal&#160;weight<br/></paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="heading" level="3">FONTSTYLE</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="code">&#160;FONTSTYLE&#160;“italic” ;&#160;set&#160;italic&#160;variant<br/>&#160;FONTSTYLE&#160;“normal” ;&#160;set&#160;normal&#160;variant<br/></paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="heading" level="2">PICTURE (pic)</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="paragraph">PICTURE is for </paragraph>
-<paragraph role="paragraph">* shape grouping;</paragraph>
-<paragraph role="paragraph">* starting new line shapes;</paragraph>
-<paragraph role="paragraph">* keeping the consistency of positions and line shapes at the left border.</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="heading" level="3">Shape grouping</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="code">&#160;;&#160;PICTURE&#160;[&#160;LibreLogo_commands&#160;]<br/>&#160;PICTURE&#160;[&#160;FORWARD&#160;100&#160;CIRCLE&#160;100&#160;] ;&#160;tree-like&#160;grouped&#160;shape<br/></paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="paragraph">See also “Group” in LibreOffice Writer Help.</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="code">&#160;TO&#160;tree&#160;location<br/>&#160;&#160;&#160;PENUP&#160;POSITION&#160;location&#160;HEADING&#160;0&#160;PENDOWN<br/>&#160;&#160;&#160;PICTURE&#160;[&#160;FORWARD&#160;100&#160;CIRCLE&#160;100&#160;] ;&#160;tree-like&#160;grouped&#160;shape<br/>&#160;END<br/>&#160;<br/>&#160;PICTURE&#160;[&#160;tree&#160;[30,&#160;50]&#160;tree&#160;[100,&#160;50]&#160;] ;&#160;grouped&#160;shapes&#160;in&#160;a&#160;grouped&#160;shape<br/></paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="heading" level="3">Starting new line shapes</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="code">&#160;PICTURE ;&#160;start&#160;a&#160;new&#160;line&#160;shape<br/>&#160;FORWARD&#160;10&#160;PICTURE&#160;FORWARD&#160;10 ;&#160;two&#160;line&#160;shapes<br/></paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="heading" level="3">Consistency at the left border</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="paragraph">Use picture to keep the consistency of positions and line shapes at the left border of Writer:</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="code">&#160;PICTURE&#160;[&#160;CIRCLE&#160;20&#160;POSITION&#160;[-100,&#160;100]&#160;CIRCLE&#160;20&#160;]<br/></paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="heading" level="2">Loops</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="heading" level="3">REPEAT</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="code">&#160;;&#160;REPEAT&#160;number&#160;[&#160;commands&#160;]<br/>&#160;<br/>&#160;REPEAT&#160;10&#160;[&#160;FORWARD&#160;10&#160;LEFT&#160;45&#160;CIRCLE&#160;10&#160;] ;&#160;repeat&#160;10&#160;times<br/></paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="code">&#160;;&#160;number&#160;is&#160;optional<br/>&#160;<br/>&#160;REPEAT&#160;[&#160;POSITION&#160;ANY&#160;] ;&#160;endless&#160;loop<br/></paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="heading" level="3">REPCOUNT</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="paragraph">Loop variable (also in the FOR and WHILE loops).</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="code">&#160;REPEAT&#160;100&#160;[&#160;FORWARD&#160;REPCOUNT&#160;LEFT&#160;90&#160;]<br/></paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="heading" level="3">FOR IN</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="paragraph">Loop for the list elements:</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="code">&#160;FOR&#160;i&#160;IN&#160;[1,&#160;5,&#160;7,&#160;9,&#160;11]&#160;[<br/>&#160;&#160;&#160;FORWARD&#160;i<br/>&#160;&#160;&#160;LEFT&#160;90<br/>&#160;]<br/></paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="paragraph">Loop for the characters of a character sequence:</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="code">&#160;FOR&#160;i&#160;IN&#160;“text”&#160;[<br/>&#160;&#160;&#160;LABEL&#160;i<br/>&#160;&#160;&#160;FORWARD&#160;10<br/>&#160;]<br/></paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="heading" level="3">WHILE</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="code">&#160;WHILE&#160;TRUE&#160;[&#160;POSITION&#160;ANY&#160;] ;&#160;endless&#160;loop<br/>&#160;WHILE&#160;REPCOUNT&#160;&lt;=&#160;10&#160;[&#160;FORWARD&#160;50&#160;LEFT&#160;36&#160;] ;&#160;as&#160;REPEAT&#160;10&#160;[&#160;...&#160;]<br/></paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="heading" level="3">BREAK</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="paragraph">Stop the loop.</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="code">&#160;REPEAT&#160;[ ;&#160;endless&#160;loop<br/>&#160;&#160;&#160;POSITION&#160;ANY<br/>&#160;&#160;&#160;IF&#160;REPCOUNT&#160;=&#160;100&#160;[&#160;BREAK&#160;]&#160;&#160;;&#160;equivalent&#160;of&#160;the&#160;REPEAT&#160;100&#160;[&#160;...&#160;]<br/>&#160;]<br/></paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="heading" level="3">CONTINUE</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="paragraph">Jump into the next iteration of the loop.</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="code">&#160;REPEAT&#160;100&#160;[<br/>&#160;&#160;&#160;POSITION&#160;ANY<br/>&#160;&#160;&#160;IF&#160;REPCOUNT&#160;%&#160;2&#160;&lt;>&#160;0&#160;[&#160;CONTINUE&#160;]<br/>&#160;&#160;&#160;CIRCLE&#160;10 ;&#160;draw&#160;circles&#160;on&#160;every&#160;2nd&#160;positions<br/>&#160;]<br/></paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="heading" level="2">Conditions</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="heading" level="3">IF</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="code">&#160;;&#160;IF&#160;condition&#160;[&#160;true&#160;block&#160;]<br/>&#160;;&#160;IF&#160;condition&#160;[&#160;true&#160;block&#160;]&#160;[&#160;false&#160;block&#160;]<br/>&#160;<br/>&#160;IF&#160;a&#160;&lt;&#160;10&#160;[&#160;PRINT&#160;“Small”&#160;]<br/>&#160;IF&#160;a&#160;&lt;&#160;10&#160;[&#160;PRINT&#160;“Small”&#160;]&#160;[&#160;PRINT&#160;“Big”&#160;]<br/></paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="heading" level="3">AND, OR, NOT</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="paragraph">Logical operators.</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="code">&#160;IF&#160;a&#160;&lt;&#160;10&#160;AND&#160;NOT&#160;a&#160;&lt;&#160;5&#160;[&#160;PRINT&#160;“5,&#160;6,&#160;7,&#160;8&#160;or&#160;9”&#160;]<br/></paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="heading" level="2">Subroutines</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="heading" level="3">TO, END</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="paragraph">New word (or procedure).</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="code">&#160;TO&#160;triangle<br/>&#160;&#160;&#160;REPEAT&#160;[&#160;FORWARD&#160;100&#160;RIGHT&#160;120&#160;]&#160;FILL<br/>&#160;END<br/>&#160;<br/>&#160;REPEAT&#160;10&#160;[&#160;triangle&#160;PENUP&#160;POSITION&#160;ANY&#160;PENDOWN&#160;]<br/></paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="heading" level="3">OUTPUT</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="paragraph">Return value of the function.</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="code">&#160;TO&#160;randomletter<br/>&#160;&#160;&#160;OUTPUT&#160;RANDOM&#160;“qwertzuiopasdfghjklyxcvbnm”<br/>&#160;END<br/>&#160;<br/>&#160;PRINT&#160;randomletter&#160;+&#160;randomletter&#160;+&#160;randomletter ;&#160;print&#160;3-letter&#160;random&#160;character&#160;sequence<br/></paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="heading" level="3">STOP</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="paragraph">Return from the procedure.</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="code">&#160;TO&#160;example&#160;number<br/>&#160;&#160;&#160;IF&#160;number&#160;&lt;&#160;0&#160;[&#160;STOP&#160;]<br/>&#160;&#160;&#160;PRINT&#160;SQRT&#160;number ;&#160;print&#160;square&#160;root<br/>&#160;]<br/>&#160;<br/>&#160;example&#160;100<br/>&#160;example&#160;-1 ;&#160;without&#160;output&#160;and&#160;error<br/>&#160;example&#160;25<br/></paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="heading" level="2">Default variables</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="heading" level="3">ANY</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="paragraph">Default random value of colors, etc.</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="code">&#160;PENCOLOR&#160;ANY ;&#160;random&#160;pen&#160;color<br/></paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="heading" level="3">TRUE</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="paragraph">Logical value.</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="code">&#160;WHILE&#160;TRUE&#160;[&#160;POSITION&#160;ANY&#160;] ;&#160;endless&#160;loop<br/>&#160;PRINT&#160;TRUE ;&#160;print&#160;true<br/></paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="heading" level="3">FALSE</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="paragraph">Logical value.</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="code">&#160;WHILE&#160;NOT&#160;FALSE&#160;[&#160;POSITION&#160;ANY&#160;] ;&#160;endless&#160;loop<br/>&#160;PRINT&#160;FALSE ;&#160;print&#160;false<br/></paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="heading" level="3">PAGESIZE</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="code">&#160;PRINT&#160;PAGESIZE ;&#160;print&#160;list&#160;of&#160;the&#160;page&#160;sizes&#160;in&#160;points,&#160;eg.&#160;[595.30,&#160;841.89]<br/></paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="heading" level="3">PI/π</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="code">&#160;PRINT&#160;PI ;&#160;print&#160;3.14159265359<br/></paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="heading" level="2">Input/Output</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="heading" level="3">PRINT</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="code">&#160;PRINT&#160;“text” ;&#160;print&#160;“text”&#160;in&#160;a&#160;dialog&#160;box<br/>&#160;PRINT&#160;5&#160;+&#160;10 ;&#160;print&#160;15<br/></paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="heading" level="3">INPUT</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="code">&#160;PRINT&#160;INPUT&#160;“Input&#160;value?” ;&#160;ask&#160;and&#160;print&#160;a&#160;string&#160;by&#160;a&#160;query&#160;dialog&#160;box<br/>&#160;PRINT&#160;FLOAT&#160;(INPUT&#160;“First&#160;number?”)&#160;+&#160;FLOAT&#160;(INPUT&#160;“Second&#160;number?”)&#160;;&#160;simple&#160;calculator<br/></paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="heading" level="2">SLEEP</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="code">&#160;SLEEP&#160;1000 ;&#160;wait&#160;for&#160;1000&#160;ms&#160;(1&#160;sec)<br/></paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="heading" level="2">GLOBAL</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="paragraph">Set global variables used in procedures.</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="code">&#160;GLOBAL&#160;about<br/>&#160;about&#160;=&#160;“LibreLogo”<br/>&#160;<br/>&#160;TO&#160;example<br/>&#160;&#160;&#160;PRINT&#160;about<br/>&#160;&#160;&#160;GLOBAL&#160;about ;&#160;when&#160;we&#160;want&#160;to&#160;add&#160;a&#160;new&#160;value<br/>&#160;&#160;&#160;about&#160;=&#160;“new&#160;value&#160;for&#160;the&#160;global&#160;variable”<br/>&#160;END<br/>&#160;<br/>&#160;example<br/>&#160;PRINT&#160;about<br/></paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="heading" level="2">Functions</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="heading" level="3">RANDOM</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="code">&#160;PRINT&#160;RANDOM&#160;100 ;&#160;random&#160;float&#160;number&#160;(0&#160;&lt;=&#160;x&#160;&lt;&#160;100)<br/>&#160;PRINT&#160;RANDOM&#160;“text” ;&#160;random&#160;letter&#160;of&#160;the&#160;“text”<br/>&#160;PRINT&#160;RANDOM&#160;[1,&#160;2] ;&#160;random&#160;list&#160;element&#160;(1&#160;or&#160;2)<br/></paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="heading" level="3">INT</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="code">&#160;PRINT&#160;INT&#160;3.8 ;&#160;print&#160;3&#160;(integer&#160;part&#160;of&#160;3.8)<br/>&#160;PRINT&#160;INT&#160;RANDOM&#160;100 ;&#160;random&#160;integer&#160;number&#160;(0&#160;&lt;=&#160;x&#160;&lt;&#160;100)<br/>&#160;PRINT&#160;INT&#160;“7” ;&#160;convert&#160;the&#160;string&#160;parameter&#160;to&#160;integer<br/></paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="heading" level="3">FLOAT</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="code">&#160;;&#160;convert&#160;the&#160;string&#160;parameter&#160;to&#160;float&#160;number<br/>&#160;PRINT&#160;2&#160;*&#160;FLOAT&#160;“5.5” ;&#160;print&#160;11.0<br/></paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="heading" level="3">STR</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="code">&#160;;&#160;convert&#160;the&#160;number&#160;parameter&#160;to&#160;string<br/>&#160;PRINT&#160;“Result:&#160;”&#160;+&#160;STR&#160;5 ;&#160;print&#160;“Result:&#160;5”<br/>&#160;PRINT&#160;10&#160;*&#160;STR&#160;5 ;&#160;print&#160;5555555555<br/></paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="heading" level="3">SQRT</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="code">&#160;PRINT&#160;SQRT&#160;100 ;&#160;print&#160;10,&#160;square&#160;root&#160;of&#160;100<br/></paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="heading" level="3">SIN</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="code">&#160;PRINT&#160;SIN&#160;90&#160;*&#160;PI/180 ;&#160;print&#160;1.0&#160;(sinus&#160;of&#160;90°&#160;in&#160;radians)<br/></paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="heading" level="3">COS</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="code">&#160;PRINT&#160;COS&#160;0&#160;*&#160;PI/180 ;&#160;print&#160;1.0&#160;(sinus&#160;of&#160;0°&#160;in&#160;radians)<br/></paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="heading" level="3">ROUND</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="code">&#160;PRINT&#160;ROUND&#160;3.8 ;&#160;print&#160;4&#160;(rounding&#160;3.8)<br/>&#160;PRINT&#160;ROUND&#160;RANDOM&#160;100 ;&#160;random&#160;integer&#160;number&#160;(0&#160;&lt;=&#160;x&#160;&lt;=&#160;100)<br/></paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="heading" level="3">ABS</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="code">&#160;PRINT&#160;ABS&#160;-10 ;&#160;print&#160;10,&#160;absolute&#160;value&#160;of&#160;-10<br/></paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="heading" level="3">COUNT</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="code">&#160;PRINT&#160;COUNT&#160;“text” ;&#160;print&#160;4,&#160;character&#160;count&#160;of&#160;“text”<br/>&#160;PRINT&#160;COUNT&#160;[1,&#160;2,&#160;3] ;&#160;print&#160;3,&#160;size&#160;of&#160;the&#160;list<br/></paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="heading" level="3">SET</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="code">&#160;;&#160;Convert&#160;list&#160;to&#160;Python&#160;set<br/>&#160;PRINT&#160;SET&#160;[4,&#160;5,&#160;6,&#160;6] ;&#160;print&#160;{4,&#160;5,&#160;6}<br/>&#160;PRINT&#160;SET&#160;[4,&#160;5,&#160;6,&#160;6]&#160;|&#160;SET&#160;[4,&#160;1,&#160;9] ;&#160;print&#160;{1,&#160;4,&#160;5,&#160;6,&#160;9},&#160;union<br/>&#160;PRINT&#160;SET&#160;[4,&#160;5,&#160;6,&#160;6]&#160;&amp;&#160;SET&#160;[4,&#160;1,&#160;9] ;&#160;print&#160;{4},&#160;intersection<br/>&#160;PRINT&#160;SET&#160;([4,&#160;5,&#160;6,&#160;6])&#160;-&#160;SET&#160;[4,&#160;1,&#160;9] ;&#160;print&#160;{5,&#160;6},&#160;difference<br/>&#160;PRINT&#160;SET&#160;[4,&#160;5,&#160;6,&#160;6]&#160;^&#160;SET&#160;[4,&#160;1,&#160;9] ;&#160;print&#160;{1,&#160;5,&#160;6,&#160;9},&#160;symmetric&#160;difference&#160;&#160;<br/></paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="heading" level="3">RANGE</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="code">&#160;;&#160;Python-like&#160;list&#160;generation<br/>&#160;PRINT&#160;RANGE&#160;10 ;&#160;print&#160;[0,&#160;1,&#160;2,&#160;3,&#160;4,&#160;5,&#160;6,&#160;7,&#160;8,&#160;9]<br/>&#160;PRINT&#160;RANGE&#160;3&#160;10 ;&#160;print&#160;[3,&#160;4,&#160;5,&#160;6,&#160;7,&#160;8,&#160;9]<br/>&#160;PRINT&#160;RANGE&#160;3&#160;10&#160;3 ;&#160;print&#160;[3,&#160;6,&#160;9]<br/>&#160;<br/>&#160;FOR&#160;i&#160;in&#160;RANGE&#160;10&#160;50&#160;10&#160;[ ;&#160;loop&#160;for&#160;[10,&#160;20,&#160;30,&#160;40]<br/>&#160;&#160;&#160;FORWARD&#160;i<br/>&#160;&#160;&#160;LEFT&#160;90<br/>&#160;]<br/></paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="heading" level="3">LIST</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="code">&#160;;&#160;remove&#160;the&#160;repeating&#160;elements&#160;of&#160;a&#160;list&#160;using&#160;set&#160;and&#160;list&#160;conversion<br/>&#160;PRINT&#160;LIST&#160;(SET&#160;[1,&#160;3,&#160;5,&#160;5,&#160;2,&#160;1]) ;&#160;print&#160;[1,&#160;3,&#160;5,&#160;2]<br/></paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="heading" level="3">TUPLE</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="paragraph">Conversion to Python tuple (non-modifiable list)</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="code">&#160;PRINT&#160;TUPLE&#160;[4,&#160;5]<br/></paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="heading" level="3">SORTED</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="paragraph">It returns with a sorted list.</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="code">&#160;PRINT&#160;SORTED&#160;[5,&#160;1,&#160;3,&#160;4] ;&#160;print&#160;[1,&#160;3,&#160;4,&#160;5]<br/></paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="heading" level="3">SUB</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="paragraph">Substitue character sequences using regex (regular expression) patterns.</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="code">&#160;PRINT&#160;SUB&#160;(“t”,&#160;“T”,&#160;“text”) ;&#160;print&#160;“Text”,&#160;replacing&#160;“t”&#160;with&#160;“T”<br/>&#160;PRINT&#160;SUB&#160;(“(.)”,&#160;“\\1\\1”,&#160;“text”)&#160;;&#160;print&#160;“tteexxtt”,&#160;doubling&#160;every&#160;characters<br/></paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="heading" level="3">SEARCH</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="paragraph">Search character sequences patterns using regex patterns.</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="code">&#160;IF&#160;SEARCH&#160;(“\w”,&#160;word)&#160;[&#160;PRINT&#160;“Letter&#160;in&#160;the&#160;word.”&#160;]<br/></paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="heading" level="3">FINDALL</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="paragraph">Find all character sequences in the input string matching the given regex pattern.</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="code">&#160;PRINT&#160;FINDALL(“\w+”,&#160;“Dogs,&#160;cats.”) ;&#160;print&#160;[“Dogs”,&#160;“cats”],&#160;the&#160;list&#160;of&#160;the&#160;words.<br/></paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="heading" level="3">MIN</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="code">&#160;PRINT&#160;MIN&#160;[1,&#160;2,&#160;3] ;&#160;print&#160;1,&#160;the&#160;lowest&#160;element&#160;of&#160;the&#160;list<br/></paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="heading" level="3">MAX</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="code">&#160;PRINT&#160;MAX&#160;[1,&#160;2,&#160;3] ;&#160;print&#160;3,&#160;the&#160;greatest&#160;element&#160;of&#160;the&#160;list<br/></paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="heading" level="2">Color constants</paragraph>
-<paragraph role="paragraph"></paragraph>
-<paragraph role="code">&#160;PENCOLOR&#160;“SILVER” ;&#160;set&#160;by&#160;name<br/>&#160;PENCOLOR&#160;[1] ;&#160;set&#160;by&#160;identifiers<br/>&#160;PENCOLOR&#160;“~SILVER” ;&#160;random&#160;silver&#160;color<br/>&#160;<br/></paragraph>
-<table><tablerow>
-<tablecell>Identifier</tablecell>
-<tablecell>Name</tablecell>
-</tablerow><tablerow>
-<tablecell>0</tablecell>
-<tablecell>BLACK</tablecell>
-</tablerow><tablerow>
-<tablecell>1</tablecell>
-<tablecell>SILVER</tablecell>
-</tablerow><tablerow>
-<tablecell>2</tablecell>
-<tablecell>GRAY/GREY</tablecell>
-</tablerow><tablerow>
-<tablecell>3</tablecell>
-<tablecell>WHITE</tablecell>
-</tablerow><tablerow>
-<tablecell>4</tablecell>
-<tablecell>MAROON</tablecell>
-</tablerow><tablerow>
-<tablecell>5</tablecell>
-<tablecell>RED</tablecell>
-</tablerow><tablerow>
-<tablecell>6</tablecell>
-<tablecell>PURPLE</tablecell>
-</tablerow><tablerow>
-<tablecell>7</tablecell>
-<tablecell>FUCHSIA/MAGENTA</tablecell>
-</tablerow><tablerow>
-<tablecell>8</tablecell>
-<tablecell>GREEN</tablecell>
-</tablerow><tablerow>
-<tablecell>9</tablecell>
-<tablecell>LIME</tablecell>
-</tablerow><tablerow>
-<tablecell>10</tablecell>
-<tablecell>OLIVE</tablecell>
-</tablerow><tablerow>
-<tablecell>11</tablecell>
-<tablecell>YELLOW</tablecell>
-</tablerow><tablerow>
-<tablecell>12</tablecell>
-<tablecell>NAVY</tablecell>
-</tablerow><tablerow>
-<tablecell>13</tablecell>
-<tablecell>BLUE</tablecell>
-</tablerow><tablerow>
-<tablecell>14</tablecell>
-<tablecell>TEAL</tablecell>
-</tablerow><tablerow>
-<tablecell>15</tablecell>
-<tablecell>AQUA</tablecell>
-</tablerow><tablerow>
-<tablecell>16</tablecell>
-<tablecell>PINK</tablecell>
-</tablerow><tablerow>
-<tablecell>17</tablecell>
-<tablecell>TOMATO</tablecell>
-</tablerow><tablerow>
-<tablecell>18</tablecell>
-<tablecell>ORANGE</tablecell>
-</tablerow><tablerow>
-<tablecell>19</tablecell>
-<tablecell>GOLD</tablecell>
-</tablerow><tablerow>
-<tablecell>20</tablecell>
-<tablecell>VIOLET</tablecell>
-</tablerow><tablerow>
-<tablecell>21</tablecell>
-<tablecell>SKYBLUE</tablecell>
-</tablerow><tablerow>
-<tablecell>22</tablecell>
-<tablecell>CHOCOLATE</tablecell>
-</tablerow><tablerow>
-<tablecell>23</tablecell>
-<tablecell>BROWN</tablecell>
-</tablerow><tablerow>
-<tablecell>24</tablecell>
-<tablecell>INVISIBLE</tablecell>
-</tablerow></table>
-</body></helpdocument>
diff --git a/librelogo/help/en-US/LibreLogo/doc.txt b/librelogo/help/en-US/LibreLogo/doc.txt
deleted file mode 100644
index db596f926808..000000000000
--- a/librelogo/help/en-US/LibreLogo/doc.txt
+++ /dev/null
@@ -1,787 +0,0 @@
-= LibreLogo =
-
-LibreLogo is a simple, native, Logo-like programming environment with turtle vector graphics for teaching of computing (programming and word processing), DTP and graphic design. See http://www.numbertext.org/logo/librelogo.pdf.
-
-== LibreLogo toolbar ==
-
-The LibreLogo toolbar (View » Toolbars » Logo) contains turtle moving, program run and stop, home and clear screen and syntax highlighting/translating icons and an input bar (command line).
-
-== Turtle moving icons ==
-
-They are equivalents of the Logo commands “FORWARD 10”, “BACK 10”, “LEFT 15”, “RIGHT 15”.
-Clicking on one of the icons will also focus the turtle shape scrolling the page to its position.
-
-== Program run and start ==
-
-Click on the icon “run” to execute the text of the Writer document as a LibreLogo program.
-Click on the icon “stop” to stop the program execution.
-
-== Home ==
-
-Click on the icon “home” to reset the position and settings of the turtle.
-
-== Clear screen ==
-
-Click on the icon “clear screen” to remove the drawing objects of the document.
-
-== Command line ==
-
-Hit Enter in the command line to execute its content. To stop the program use the icon “stop”.
-Hold down the Enter to repeat the command line, for example, on the following command sequence:
-
- FORWARD 200 LEFT 89
-
-To reset the command line click triple in it or press Ctrl-A to select the previous commands, and type the new commands.
-
-== Syntax highlighting/Translating ==
-
-It expands and upper case Logo commands in the Writer document. Change the language of the document (Tools » Options » Language Settings » Languages » Western) and click on this icon to translate the Logo program to the selected language.
-
-== Program editing ==
-
-LibreLogo drawings and programs use the same Writer document. The LibreLogo canvas is on the first page of the Writer document. You can insert a page break before the LibreLogo programs and set the zoom/font size for a comfortable two page layout for LibreLogo programming: left (first) page is the canvas, right (second) page is for the LibreLogo programs.
-
-= LibreLogo programming language =
-
-LibreLogo is a native, easily localisable, Logo-like programming language. It is back-compatible with the older Logo systems in the case of the simple Logo programs used in education, eg.
-
- TO triangle :size
- REPEAT 3 [
- FORWARD :size
- LEFT 120
- ]
- END
-
- triangle 10 triangle 100 triangle 200
-
-== Differences from the Logo programming language ==
-
-=== List members are comma separated ===
-
- POSITION [0, 0]
-
-=== Program blocks and lists ===
-
-Program blocks and lists have got different syntax.
-
-Program blocks need space or new line at parenthesization:
-
- REPEAT 10 [ forward 10 left 36 ]
-
-Lists need close parenthesization:
-
- POSITION [0, 0] ; and not POSITION [ 0, 0 ]
-
-=== Function declarations ===
-
-LibreLogo has not supported 1-line function declarations, yet. TO and END need new lines.
-
- TO polygon
- FORWARD 1 RIGHT 1
- polygon ; recursion
- END
-
- polygon
-
-== Other features of LibreLogo ==
-
-=== Optional colon ===
-
-The colon is optional before variable names.
-
- TO triangle size
- REPEAT 3 [ FORWARD size LEFT 120 ]
- END
-
-=== String notation ===
-
-String notation supports also orthographical and Python syntax.
-
- PRINT "word ; original Logo syntax
- PRINT “Arbitrary text.” ; orthography, Writer
- PRINT 'Arbitrary text.' ; Python syntax
-
-=== Python list and string handling ===
-
- PRINT “text”[2] ; print “x”
- PRINT “text”[1:3] ; print “ex”
- PRINT [1, 2, 3, 4][1] ; print 2
- PRINT [1, 2, 3, 4][1:3] ; print [2, 3]
-
-=== Python-like FOR loop ===
-
- FOR i IN [1, 2] [
- PRINT i
- ]
-
-=== Python-like variable declaration ===
-
- x = 15
- PRINT x
-
-=== There are no extra query functions ===
-
- PRINT FILLCOLOR
- p = POSITION
- PRINT p
- REPEAT 10 [ POSITION ANY POSITION p ]
-
-=== Alternative parenthesization in function calls ===
-
- TO star size color
- FILLCOLOR color
- REPEAT 5 [ LEFT 72 FORWARD size RIGHT 144 FORWARD size ]
- FILL
- END
-
- star 100 “red”
- star (100, “green”)
- star(100, “blue”)
-
-= LibreLogo commands =
-
-== Basic syntax ==
-
-=== Case sensitivity ===
-
-Commands, color constants are case insensitive:
-
- PRINT “Hello, World!”
- print “Hello, World, again!”
-
-Variable names are case sensitive:
-
- a = 5
- A = 7
- PRINT a
- PRINT A
-
-=== Program lines ===
-
-Lines of a LibreLogo program are paragraphs in the LibreOffice Writer document. A program line can contain multiple commands:
-
- PRINT “Hello, World!” PRINT “LibreLogo”
-
-=== Comments ===
-
-Lines or line parts are comments from a semicolon to the end of the line (paragraph):
-
- ; some comments
- PRINT 5 * 5 ; some comments
-
-=== Break program lines to multiple paragraphs ===
-
-It’s possible to break a program line for more paragraphs using the character tilde at the end of the line:
-
- PRINT “This is a very long ” + ~
- “warning message”
-
-== Turtle moving ==
-
-=== FORWARD (fd) ===
-
- FORWARD 10 ; move forward 10pt (1pt = 1/72 inch)
- FORWARD 10pt ; see above
- FORWARD 0.5in ; move forward 0.5 inch (1 inch = 2.54 cm)
- FORWARD 1" ; see above
- FD 1mm
- FD 1cm
-
-=== BACK (bk) ===
-
- BACK 10 ; move back 10pt
-
-=== LEFT (lt) ===
-
- LEFT 90 ; turn counterclockwise 90 degrees
- LEFT 90° ; see above
- LT 3h ; see above (clock position)
- LT any ; turn to a random position
-
-=== RIGHT (rt) ===
-
- RIGHT 90 ; turn clockwise 90 degrees
-
-=== PENUP (pu) ===
-
- PENUP ; turtle will move without drawing
-
-=== PENDOWN (pd) ===
-
- PENDOWN ; turtle will move with drawing
-
-=== POSITION (pos) ===
-
- POSITION [0, 0] ; turn and move to the top-left corner
- POSITION PAGESIZE ; turn and move to the bottom-right corner
- POSITION [PAGESIZE[0], 0] ; turn and move to the top-right corner
- POSITION ANY ; turn and move to a random position
-
-=== HEADING (seth) ===
-
- HEADING 0 ; turn north
- HEADING 12h ; see above
- HEADING ANY ; turn to a random position
-
-== Other turtle commands ==
-
-=== HIDETURTLE (ht) ===
-
- HIDETURTLE ; hide turtle (until the showturtle command)
-
-=== SHOWTURTLE (st) ===
-
- SHOWTURTLE ; show turtle
-
-=== HOME ===
-
- HOME ; reset initial turtle settings and position
-
-=== CLEARSCREEN (cs) ===
-
- CLEARSCREEN ; remove drawing objects of the document
-
-=== FILL and CLOSE ===
-
- FILL ; close and fill the actual line shape
- CLOSE ; close the actual line shape
-
-== Pen settings ==
-
-=== PENSIZE (ps) ===
-
- PENSIZE 100 ; line width is 100 points
- PENSIZE ANY ; equivalent of PENSIZE RANDOM 10
-
-=== PENCOLOR/PENCOLOUR (pc) ===
-
- PENCOLOR “red” ; set red pen color (by color name, see color constants)
- PENCOLOR [255, 255, 0] ; set yellow color (RGB list)
- PENCOLOR 0xffff00 ; set yellow color (hexa code)
- PENCOLOR 0 ; set black color (0x000000)
- PENCOLOR ANY ; random color
- PENCOLOR [5] ; set red color (by color identifier, see color constants)
- PENCOLOR “invisible” ; invisible pen color for shapes without visible outline
- PENCOLOR “~red” ; set random red color
-
-=== PENJOINT/LINEJOINT ===
-
- PENJOINT “rounded” ; rounded line joint (default)
- PENJOINT “miter” ; sharp line joint
- PENJOINT “bevel” ; bevel line joint
- PENJOINT “none” ; without line joint
-
-=== PENSTYLE ===
-
- PENSTYLE “solid” ; solid line (default)
- PENSTYLE “dotted” ; dotted line
- PENSTYLE “dashed” ; dashed line
-
- ; custom dot–dash pattern specified by a list with the following arguments:
- ; – number of the neighbouring dots
- ; – length of a dot
- ; – number of the neighbouring dashes
- ; – length of a dash
- ; – distance of the dots/dashes
- ; – type (optional):
- ; 0 = dots are rectangles (default)
- ; 2 = dots are squares (lengths and distances are relative to the pensize)
-
- PENSTYLE [3, 1mm, 2, 4mm, 2mm, 2] ; ...––...––...––
-
-== Fill settings ==
-
-=== FILLCOLOR/FILLCOLOUR (fc) ===
-
- FILLCOLOR “blue” ; fill with blue color, see also PENCOLOR
- FILLCOLOR “invisible” CIRCLE 10 ; unfilled circle
-
-=== FILLSTYLE ===
-
- FILLSTYLE 0 ; fill without hatches (default)
- FILLSTYLE 1 ; black single hatches (horizontal)
- FILLSTYLE 2 ; black single hatches (45 degrees)
- FILLSTYLE 3 ; black single hatches (-45 degrees)
- FILLSTYLE 4 ; black single hatches (vertical)
- FILLSTYLE 5 ; red crossed hatches (45 degrees)
- FILLSTYLE 6 ; red crossed hatches (0 degrees)
- FILLSTYLE 7 ; blue crossed hatches (45 degrees)
- FILLSTYLE 8 ; blue crossed hatches (0 degrees)
- FILLSTYLE 9 ; blue triple crossed
- FILLSTYLE 10 ; black wide single hatches (45 degrees)
-
- ; custom hatches specified by a list with the following arguments:
- ; – style (1 = single, 2 = double, 3 = triple hatching)
- ; – color
- ; – distance
- ; – degree
-
- FILLSTYLE [2, “green”, 3pt, 15°] ; green crossed hatches (15 degrees)
-
-== Drawing objects ==
-
-=== CIRCLE ===
-
- CIRCLE 100 ; draw a circle shape (diameter = 100pt)
-
-=== ELLIPSE ===
-
- ELLIPSE [50, 100] ; draw an ellipse with 50 and 100 diameters
- ELLIPSE [50, 100, 2h, 12h] ; draw an elliptical sector (from 2h clock position to 12h)
- ELLIPSE [50, 100, 2h, 12h, 2] ; draw an elliptical segment
- ELLIPSE [50, 100, 2h, 12h, 3] ; draw an elliptical arc
-
-=== SQUARE ===
-
- SQUARE 100 ; draw a square shape (size = 100pt)
-
-=== RECTANGLE ===
-
- RECTANGLE [50, 100] ; draw a rectange shape (50×100pt)
- RECTANGLE [50, 100, 50] ; draw a rectangle
-
-=== POINT ===
-
- POINT ; draw a point with size and color of the pen
-
-=== LABEL ===
-
- LABEL “text” ; print text in the turte position
- LABEL 'text' ; see above
- LABEL "text ; see above (only for single words)
-
-=== TEXT ===
-
- CIRCLE 10 TEXT “text” ; set text of the actual drawing object
-
-== Font settings ==
-
-=== FONTCOLOR/FONTCOLOUR ===
-
- FONTCOLOR “green” ; set font color
-
-=== FONTFAMILY ===
-
- FONTFAMILY “Linux Libertine G” ; set font (family)
- FONTFAMILY “Linux Libertine G:smcp=1” ; set also font feature (small caps)
- FONTFAMILY “Linux Libertine G:smcp=1&amp;onum=1” ; small caps + old figures
-
-=== FONTSIZE ===
-
- FONTSIZE 12 ; set 12pt
-
-=== FONTWEIGHT ===
-
- FONTWEIGHT “bold” ; set bold font
- FONTWEIGHT “normal” ; set normal weight
-
-=== FONTSTYLE ===
-
- FONTSTYLE “italic” ; set italic variant
- FONTSTYLE “normal” ; set normal variant
-
-== PICTURE (pic) ==
-
-PICTURE is for
-* shape grouping;
-* starting new line shapes;
-* keeping the consistency of positions and line shapes at the left border.
-
-=== Shape grouping ===
-
- ; PICTURE [ LibreLogo_commands ]
- PICTURE [ FORWARD 100 CIRCLE 100 ] ; tree-like grouped shape
-
-See also “Group” in LibreOffice Writer Help.
-
- TO tree location
- PENUP POSITION location HEADING 0 PENDOWN
- PICTURE [ FORWARD 100 CIRCLE 100 ] ; tree-like grouped shape
- END
-
- PICTURE [ tree [30, 50] tree [100, 50] ] ; grouped shapes in a grouped shape
-
-=== Starting new line shapes ===
-
- PICTURE ; start a new line shape
- FORWARD 10 PICTURE FORWARD 10 ; two line shapes
-
-=== Consistency at the left border ===
-
-Use picture to keep the consistency of positions and line shapes at the left border of Writer:
-
- PICTURE [ CIRCLE 20 POSITION [-100, 100] CIRCLE 20 ]
-
-== Loops ==
-
-=== REPEAT ===
-
- ; REPEAT number [ commands ]
-
- REPEAT 10 [ FORWARD 10 LEFT 45 CIRCLE 10 ] ; repeat 10 times
-
- ; number is optional
-
- REPEAT [ POSITION ANY ] ; endless loop
-
-=== REPCOUNT ===
-
-Loop variable (also in the FOR and WHILE loops).
-
- REPEAT 100 [ FORWARD REPCOUNT LEFT 90 ]
-
-=== FOR IN ===
-
-Loop for the list elements:
-
- FOR i IN [1, 5, 7, 9, 11] [
- FORWARD i
- LEFT 90
- ]
-
-Loop for the characters of a character sequence:
-
- FOR i IN “text” [
- LABEL i
- FORWARD 10
- ]
-
-=== WHILE ===
-
- WHILE TRUE [ POSITION ANY ] ; endless loop
- WHILE REPCOUNT &lt;= 10 [ FORWARD 50 LEFT 36 ] ; as REPEAT 10 [ ... ]
-
-=== BREAK ===
-
-Stop the loop.
-
- REPEAT [ ; endless loop
- POSITION ANY
- IF REPCOUNT = 100 [ BREAK ] ; equivalent of the REPEAT 100 [ ... ]
- ]
-
-=== CONTINUE ===
-
-Jump into the next iteration of the loop.
-
- REPEAT 100 [
- POSITION ANY
- IF REPCOUNT % 2 &lt;> 0 [ CONTINUE ]
- CIRCLE 10 ; draw circles on every 2nd positions
- ]
-
-== Conditions ==
-
-=== IF ===
-
- ; IF condition [ true block ]
- ; IF condition [ true block ] [ false block ]
-
- IF a &lt; 10 [ PRINT “Small” ]
- IF a &lt; 10 [ PRINT “Small” ] [ PRINT “Big” ]
-
-=== AND, OR, NOT ===
-
-Logical operators.
-
- IF a &lt; 10 AND NOT a &lt; 5 [ PRINT “5, 6, 7, 8 or 9” ]
-
-== Subroutines ==
-
-=== TO, END ===
-
-New word (or procedure).
-
- TO triangle
- REPEAT [ FORWARD 100 RIGHT 120 ] FILL
- END
-
- REPEAT 10 [ triangle PENUP POSITION ANY PENDOWN ]
-
-=== OUTPUT ===
-
-Return value of the function.
-
- TO randomletter
- OUTPUT RANDOM “qwertzuiopasdfghjklyxcvbnm”
- END
-
- PRINT randomletter + randomletter + randomletter ; print 3-letter random character sequence
-
-=== STOP ===
-
-Return from the procedure.
-
- TO example number
- IF number &lt; 0 [ STOP ]
- PRINT SQRT number ; print square root
- ]
-
- example 100
- example -1 ; without output and error
- example 25
-
-== Default variables ==
-
-=== ANY ===
-
-Default random value of colors, etc.
-
- PENCOLOR ANY ; random pen color
-
-=== TRUE ===
-
-Logical value.
-
- WHILE TRUE [ POSITION ANY ] ; endless loop
- PRINT TRUE ; print true
-
-=== FALSE ===
-
-Logical value.
-
- WHILE NOT FALSE [ POSITION ANY ] ; endless loop
- PRINT FALSE ; print false
-
-=== PAGESIZE ===
-
- PRINT PAGESIZE ; print list of the page sizes in points, eg. [595.30, 841.89]
-
-=== PI/π ===
-
- PRINT PI ; print 3.14159265359
-
-== Input/Output ==
-
-=== PRINT ===
-
- PRINT “text” ; print “text” in a dialog box
- PRINT 5 + 10 ; print 15
-
-=== INPUT ===
-
- PRINT INPUT “Input value?” ; ask and print a string by a query dialog box
- PRINT FLOAT (INPUT “First number?”) + FLOAT (INPUT “Second number?”) ; simple calculator
-
-== SLEEP ==
-
- SLEEP 1000 ; wait for 1000 ms (1 sec)
-
-== GLOBAL ==
-
-Set global variables used in procedures.
-
- GLOBAL about
- about = “LibreLogo”
-
- TO example
- PRINT about
- GLOBAL about ; when we want to add a new value
- about = “new value for the global variable”
- END
-
- example
- PRINT about
-
-== Functions ==
-
-=== RANDOM ===
-
- PRINT RANDOM 100 ; random float number (0 &lt;= x &lt; 100)
- PRINT RANDOM “text” ; random letter of the “text”
- PRINT RANDOM [1, 2] ; random list element (1 or 2)
-
-=== INT ===
-
- PRINT INT 3.8 ; print 3 (integer part of 3.8)
- PRINT INT RANDOM 100 ; random integer number (0 &lt;= x &lt; 100)
- PRINT INT “7” ; convert the string parameter to integer
-
-=== FLOAT ===
-
- ; convert the string parameter to float number
- PRINT 2 * FLOAT “5.5” ; print 11.0
-
-=== STR ===
-
- ; convert the number parameter to string
- PRINT “Result: ” + STR 5 ; print “Result: 5”
- PRINT 10 * STR 5 ; print 5555555555
-
-=== SQRT ===
-
- PRINT SQRT 100 ; print 10, square root of 100
-
-=== SIN ===
-
- PRINT SIN 90 * PI/180 ; print 1.0 (sinus of 90° in radians)
-
-=== COS ===
-
- PRINT COS 0 * PI/180 ; print 1.0 (sinus of 0° in radians)
-
-=== ROUND ===
-
- PRINT ROUND 3.8 ; print 4 (rounding 3.8)
- PRINT ROUND RANDOM 100 ; random integer number (0 &lt;= x &lt;= 100)
-
-=== ABS ===
-
- PRINT ABS -10 ; print 10, absolute value of -10
-
-=== COUNT ===
-
- PRINT COUNT “text” ; print 4, character count of “text”
- PRINT COUNT [1, 2, 3] ; print 3, size of the list
-
-=== SET ===
-
- ; Convert list to Python set
- PRINT SET [4, 5, 6, 6] ; print {4, 5, 6}
- PRINT SET [4, 5, 6, 6] | SET [4, 1, 9] ; print {1, 4, 5, 6, 9}, union
- PRINT SET [4, 5, 6, 6] &amp; SET [4, 1, 9] ; print {4}, intersection
- PRINT SET ([4, 5, 6, 6]) - SET [4, 1, 9] ; print {5, 6}, difference
- PRINT SET [4, 5, 6, 6] ^ SET [4, 1, 9] ; print {1, 5, 6, 9}, symmetric difference
-
-=== RANGE ===
-
- ; Python-like list generation
- PRINT RANGE 10 ; print [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
- PRINT RANGE 3 10 ; print [3, 4, 5, 6, 7, 8, 9]
- PRINT RANGE 3 10 3 ; print [3, 6, 9]
-
- FOR i in RANGE 10 50 10 [ ; loop for [10, 20, 30, 40]
- FORWARD i
- LEFT 90
- ]
-
-=== LIST ===
-
- ; remove the repeating elements of a list using set and list conversion
- PRINT LIST (SET [1, 3, 5, 5, 2, 1]) ; print [1, 3, 5, 2]
-
-=== TUPLE ===
-
-Conversion to Python tuple (non-modifiable list)
-
- PRINT TUPLE [4, 5]
-
-=== SORTED ===
-
-It returns with a sorted list.
-
- PRINT SORTED [5, 1, 3, 4] ; print [1, 3, 4, 5]
-
-=== SUB ===
-
-Substitue character sequences using regex (regular expression) patterns.
-
- PRINT SUB (“t”, “T”, “text”) ; print “Text”, replacing “t” with “T”
- PRINT SUB (“(.)”, “\\1\\1”, “text”) ; print “tteexxtt”, doubling every characters
-
-=== SEARCH ===
-
-Search character sequences patterns using regex patterns.
-
- IF SEARCH (“\w”, word) [ PRINT “Letter in the word.” ]
-
-=== FINDALL ===
-
-Find all character sequences in the input string matching the given regex pattern.
-
- PRINT FINDALL(“\w+”, “Dogs, cats.”) ; print [“Dogs”, “cats”], the list of the words.
-
-=== MIN ===
-
- PRINT MIN [1, 2, 3] ; print 1, the lowest element of the list
-
-=== MAX ===
-
- PRINT MAX [1, 2, 3] ; print 3, the greatest element of the list
-
-== Color constants ==
-
- PENCOLOR “SILVER” ; set by name
- PENCOLOR [1] ; set by identifiers
- PENCOLOR “~SILVER” ; random silver color
-
-{|class="wikitable"
-|Identifier
-|Name
-|-
-|0
-|style="color: white; background-color: #000000;"|BLACK
-|-
-|1
-|style="color: black; background-color: #c0c0c0;"|SILVER
-|-
-|2
-|style="color: white; background-color: #808080;"|GRAY/GREY
-|-
-|3
-|style="color: black; background-color: #ffffff;"|WHITE
-|-
-|4
-|style="color: white; background-color: #800000;"|MAROON
-|-
-|5
-|style="color: white; background-color: #ff0000;"|RED
-|-
-|6
-|style="color: white; background-color: #800080;"|PURPLE
-|-
-|7
-|style="color: black; background-color: #f000f0;"|FUCHSIA/MAGENTA
-|-
-|8
-|style="color: white; background-color: #008000;"|GREEN
-|-
-|9
-|style="color: black; background-color: #00ff00;"|LIME
-|-
-|10
-|style="color: white; background-color: #808000;"|OLIVE
-|-
-|11
-|style="color: black; background-color: #ffff00;"|YELLOW
-|-
-|12
-|style="color: white; background-color: #000080;"|NAVY
-|-
-|13
-|style="color: white; background-color: #0000f0;"|BLUE
-|-
-|14
-|style="color: white; background-color: #008080;"|TEAL
-|-
-|15
-|style="color: black; background-color: #00ffff;"|AQUA
-|-
-|16
-|style="color: black; background-color: #ffc0cb;"|PINK
-|-
-|17
-|style="color: black; background-color: #ff6347;"|TOMATO
-|-
-|18
-|style="color: black; background-color: #ffa500;"|ORANGE
-|-
-|19
-|style="color: black; background-color: #ffd700;"|GOLD
-|-
-|20
-|style="color: black; background-color: #9400d3;"|VIOLET
-|-
-|21
-|style="color: black; background-color: #87ceeb;"|SKYBLUE
-|-
-|22
-|style="color: black; background-color: #d2691e;"|CHOCOLATE
-|-
-|23
-|style="color: black; background-color: #a52a2a;"|BROWN
-|-
-|24
-|style="color: black;"|INVISIBLE
-|}
-
diff --git a/librelogo/help/en-US/LibreLogo/gendoc.sh b/librelogo/help/en-US/LibreLogo/gendoc.sh
deleted file mode 100755
index c07c62d3d82e..000000000000
--- a/librelogo/help/en-US/LibreLogo/gendoc.sh
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/sh
-cat doc.txt | awk 'BEGIN{system("cat head")}/^ /{code = code $0 "<br/>";next}{if (code != ""){print "<paragraph role=\"code\">" gensub(" ", "\\&#160;", "g", code) "</paragraph>";code=""}}/^=+/{l=length($1);print "<paragraph role=\"heading\" level=\"" l "\">"substr($0, l+2, length($0)-l*2-2)"</paragraph>";next}/^[{][|]/{print "<table><tablerow>";next}/^[|]}/{print "</tablerow></table>";next}/^[|]-/{print "</tablerow><tablerow>";next}/^[|]/{print "<tablecell>"gensub("^.*[|]","","g")"</tablecell>";next}{print "<paragraph role=\"paragraph\">" $0 "</paragraph>" }END{print "</body></helpdocument>"}' >LibreLogo.xhp
-
diff --git a/librelogo/help/en-US/LibreLogo/head b/librelogo/help/en-US/LibreLogo/head
deleted file mode 100644
index e0783a4ae971..000000000000
--- a/librelogo/help/en-US/LibreLogo/head
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<helpdocument version="1.0">
-<meta>
-<topic id="LibreLogo" indexer="include" status="PUBLISH">
-<title id="title">LibreLogo</title>
-<filename>/LibreLogo/LibreLogo.xhp</filename>
-</topic>
-</meta>
-<body>
-
-<bookmark xml-lang="en" branch="index" id="bm1">
-<bookmark_value>LibreLogo</bookmark_value>
-<bookmark_value>Logo</bookmark_value>
-<bookmark_value>Turtle graphics</bookmark_value>
-</bookmark>
-
diff --git a/librelogo/make.py b/librelogo/make.py
deleted file mode 100644
index 0d877edadf62..000000000000
--- a/librelogo/make.py
+++ /dev/null
@@ -1,30 +0,0 @@
-# -*- encoding: UTF-8 -*-
-import sys, os, zipfile
-
-distname = 'librelogo-0.2.oxt'
-z = zipfile.ZipFile(distname, mode='w', compression = zipfile.ZIP_DEFLATED)
-
-for i in ["LibreLogo/LibreLogo.py", "pythonpath/en.properties", "pythonpath/hu.properties", \
- "META-INF/manifest.xml", "description.xml", "Addons.xcu", "README", \
- "Office/UI/WriterWindowState.xcu", "Office/UI/StartModuleWindowState.xcu", \
- "help/en-US/LibreLogo/LibreLogo.xhp", "help/en-US/help.tree", "pythonpath/librelogodummy_path.py", \
- "description-en.txt", "description-hu.txt", "LibreLogoDummy.py" ] + \
-"""icons/lc_arrowshapes.circular-arrow.png
-icons/lc_arrowshapes.circular-leftarrow.png
-icons/lc_arrowshapes.down-arrow.png
-icons/lc_arrowshapes.up-arrow.png
-icons/lc_basicstop.png
-icons/lc_editglossary.png
-icons/lc_navigationbarleft.png
-icons/lc_newdoc.png
-icons/lc_runbasic.png
-icons/sc_arrowshapes.circular-arrow.png
-icons/sc_arrowshapes.circular-leftarrow.png
-icons/sc_arrowshapes.down-arrow.png
-icons/sc_arrowshapes.up-arrow.png
-icons/sc_basicstop.png
-icons/sc_editglossary.png
-icons/sc_navigationbarleft.png
-icons/sc_newdoc.png
-icons/sc_runbasic.png""".split("\n"):
- z.writestr(i, open(i, "r").read())
diff --git a/librelogo/prj/build.lst b/librelogo/prj/build.lst
new file mode 100644
index 000000000000..d280a4a42d12
--- /dev/null
+++ b/librelogo/prj/build.lst
@@ -0,0 +1,2 @@
+librelogo librelogo : TRANSLATIONS:translations offapi officecfg comphelper unotools l10ntools cppu tools cppuhelper sal javaunohelper officecfg DESKTOP:xmlhelp DESKTOP:helpcompiler NULL
+librelogo librelogo\prj nmake - all librelogo_prj NULL
diff --git a/librelogo/prj/d.lst b/librelogo/prj/d.lst
new file mode 100644
index 000000000000..e69de29bb2d1
--- /dev/null
+++ b/librelogo/prj/d.lst
diff --git a/librelogo/pythonpath/hu.properties b/librelogo/pythonpath/hu.properties
deleted file mode 100644
index 36408b732e48..000000000000
--- a/librelogo/pythonpath/hu.properties
+++ /dev/null
@@ -1,151 +0,0 @@
-# turtle graphics
-
-FORWARD=el\u0151re|e
-BACKWARD=h\u00e1tra|h
-TURNLEFT=balra|b
-TURNRIGHT=jobbra|j
-PENUP=tollatfel|tf
-PENDOWN=tollatle|tl
-HOME=haza
-POINT=pont
-CIRCLE=k\u00f6r
-ELLIPSE=ellipszis
-SQUARE=n\u00e9gyzet
-RECTANGLE=t\u00e9glalap
-LABEL=c\u00edmke
-PENCOLOR=tollsz\u00edn|tollsz\u00edn!|tsz!?|vonalsz\u00edn
-ANY=tetsz\u0151leges|tetsz
-PENWIDTH=tollvastags\u00e1g|tollvastags\u00e1g!|tv!?|vonalvastags\u00e1g
-PENSTYLE=tollst\u00edlus|vonalst\u00edlus
-PENJOINT=tollsarok|vonalsarok
-NONE=nincs
-BEVEL=tompa
-ROUNDED=kerek
-MITER=hegyes
-SOLID=folyamatos
-DASH=szaggatott
-DOTTED=pontozott
-CLOSE=z\u00e1r
-FILL=t\u00f6lt
-FILLCOLOR=t\u00f6lt\u0151sz\u00edn|t\u00f6lt\u0151sz\u00edn!|tlsz!?
-FILLSTYLE=t\u00f6lt\u0151st\u00edlus
-FONTCOLOR=bet\u0171sz\u00edn
-FONTHEIGHT=bet\u0171m\u00e9ret
-FONTWEIGHT=bet\u0171vastags\u00e1g
-FONTSTYLE=bet\u0171st\u00edlus
-BOLD=f\u00e9lk\u00f6v\u00e9r|k\u00f6v\u00e9r|vastag
-ITALIC=kurz\u00edv|d\u0151lt
-UPRIGHT=\u00e1ll\u00f3|norm\u00e1l
-NORMAL=norm\u00e1l
-FONTFAMILY=bet\u0171csal\u00e1d
-CLEARSCREEN=t\u00f6r\u00f6lk\u00e9perny\u0151|t\u00f6r\u00f6lk\u00e9p|t\u00f6r\u00f6lrajzlap|tr
-TEXT=sz\u00f6veg
-HIDETURTLE=l\u00e1thatatlan|elrejttekn\u0151c|rejttek|elrejt
-SHOWTURTLE=l\u00e1that\u00f3
-POSITION=hely|hely!|poz\u00edci\u00f3|xy!
-HEADING=ir\u00e1ny|ir\u00e1ny!
-PAGESIZE=oldalm\u00e9ret
-GROUP=k\u00e9p
-
-# control structures
-
-TO=ez|elj\u00e1r\u00e1s|elj|tanuld
-END=v\u00e9ge
-STOP=stop|visszat\u00e9r
-OUTPUT=eredm\u00e9ny
-REPEAT=ism\u00e9t|ism|ism\u00e9tl\u00e9s|v\u00e9gtelenszer|vszer
-REPCOUNT=h\u00e1nyadik
-BREAK=kil\u00e9p
-CONTINUE=\u00fajra
-WHILE=am\u00edg
-FOR=fut
-IN=-ban|-ben
-IF=ha
-LEFTSTRING=\u201e
-RIGHTSTRING=\u201d
-TRUE=igaz
-FALSE=hamis
-NOT=nem
-AND=\u00e9s
-OR=vagy
-INPUT=be
-PRINT=ki|ki\u00edr
-SLEEP=v\u00e1r|v\u00e1rj
-GLOBAL=glob\u00e1lis|glob\u00e1lisv\u00e1ltoz\u00f3|globv\u00e1l
-
-# functions
-RANDOM=v\u00e9letlen|v\u00e9letlensz\u00e1m|vsz\u00e1m|kiv\u00e1laszt
-INT=eg\u00e9szsz\u00e1m|eg\u00e9sz
-FLOAT=t\u00f6rtsz\u00e1m|t\u00f6rt
-STR=karakterl\u00e1nc|l\u00e1nc
-SQRT=gy\u00f6k
-SIN=sin
-COS=cos
-ROUND=kerek|kerek\u00edt\u00e9s
-ABS=abszol\u00fat\u00e9rt\u00e9k|absz?
-COUNT=darab|db|elemsz\u00e1m
-SET=halmaz
-RANGE=sor
-LIST=lista
-TUPLE=fix
-SORTED=rendez
-RESUB=cser\u00e9l
-RESEARCH=keres
-REFINDALL=tal\u00e1l
-MIN=min
-MAX=max
-
-PI=pi|\u03c0
-
-# measurement
-DECIMAL=,
-DEG=\u00b0
-HOUR=\u00f3|h
-MM=mm
-CM=cm
-PT=pt
-INCH=in|"
-
-# color constants
-
-INVISIBLE=l\u00e1thatatlan
-BLACK=fekete
-SILVER=vil\u00e1gossz\u00fcrke|ez\u00fcst
-GRAY=sz\u00fcrke
-WHITE=feh\u00e9r
-MAROON=s\u00f6t\u00e9tbarna
-RED=piros|v\u00f6r\u00f6s
-PURPLE=lila
-FUCHSIA=b\u00edbor|cikl\u00e1men
-GREEN=z\u00f6ld
-LIME=vil\u00e1gosz\u00f6ld
-OLIVE=olajz\u00f6ld
-YELLOW=s\u00e1rga
-NAVY=s\u00f6t\u00e9tk\u00e9k
-BLUE=k\u00e9k
-TEAL=k\u00e9kesz\u00f6ld
-AQUA=ci\u00e1nk\u00e9k|ci\u00e1n
-PINK=r\u00f3zsasz\u00edn
-TOMATO=vil\u00e1gospiros
-ORANGE=narancss\u00e1rga|narancs
-GOLD=aranys\u00e1rga|arany
-VIOLET=ibolyak\u00e9k|ibolya|viola
-SKYBLUE=\u00e9gsz\u00ednk\u00e9k|vil\u00e1gosk\u00e9k
-CHOCOLATE=vil\u00e1gosbarna
-BROWN=barna
-
-# messages
-
-LIBRELOGO=LibreLogo
-ERROR=Hiba (%s. sor)
-ERR_ZERODIVISION=Oszt\u00e1s null\u00e1val.
-ERR_NAME=Ismeretlen n\u00e9v: \u201e%s\u201d.
-ERR_ARGUMENTS=%s: %s adatot v\u00e1r, de %s lett megadva.
-ERR_BLOCK=Hiba (hi\u00e1nyz\u00f3 vagy felesleges sz\u00f3k\u00f6z a kapcsos z\u00e1r\u00f3jeln\u00e9l?)
-ERR_KEY=Ismeretlen elem: %s
-ERR_INDEX=Nem l\u00e9tez\u0151 elemre hivatkoz\u00e1s.
-
-ERR_STOP=A fut\u00e1s le\u00e1ll\u00edtva:
-ERR_MAXRECURSION=el\u00e9rve az \u00fajrah\u00edv\u00e1si korl\u00e1t (%d).
-ERR_MEMORY=nincs el\u00e9g mem\u00f3ria.
-ERR_NOTAPROGRAM=Futtatni akarja ezt a sz\u00f6veges dokumentumot?
diff --git a/librelogo/ChangeLog b/librelogo/source/ChangeLog
index 17f19a88a998..17f19a88a998 100644
--- a/librelogo/ChangeLog
+++ b/librelogo/source/ChangeLog
diff --git a/librelogo/LibreLogo/LibreLogo.py b/librelogo/source/LibreLogo/LibreLogo.py
index 34f271b4bbfa..9a45b2b20caf 100644
--- a/librelogo/LibreLogo/LibreLogo.py
+++ b/librelogo/source/LibreLogo/LibreLogo.py
@@ -6,7 +6,7 @@ import threading, time as __time__
ctx = uno.getComponentContext()
__lngpath__ = re.sub("[\w_.]*$", "", ctx.ServiceManager.createInstanceWithContext("org.openoffice.LibreLogo.LibreLogoDummy", ctx).get_path())
-__translang__ = "cz|de|dk|en|es|fr|hu|it|nl|no|pl|pt|ru|se|sl" # FIXME supported languages for language guessing, expand this list, according to the localizations
+__translang__ = "cz|de|dk|en_US|es|fr|hu|it|nl|no|pl|pt|ru|se|sl" # FIXME supported languages for language guessing, expand this list, according to the localizations
__lng__ = {}
__docs__ = {}
__prevcode__ = None
@@ -118,7 +118,7 @@ def __l12n__(lng):
return __lng__[lng]
except:
try:
- __lng__[lng] = dict([[i.split("=")[0].strip(), i.split("=")[1].strip().decode("unicode-escape")] for i in open(__lngpath__ + lng + ".properties", 'r').readlines() if "=" in i])
+ __lng__[lng] = dict([[i.split("=")[0].strip(), i.split("=")[1].strip().decode("unicode-escape")] for i in open(__lngpath__ + "LibreLogo_" + lng + ".properties", 'r').readlines() if "=" in i])
return __lng__[lng]
except:
return None
@@ -281,7 +281,7 @@ def __translate__(arg = None):
if not lang:
lang = __l12n__(_.lng)
if not lang:
- lang = __l12n__("en")
+ lang = __l12n__("en_US")
lq = '\'' + lang['LEFTSTRING'].replace("|", "")
rq = '\'' + lang['RIGHTSTRING'].replace("|", "")
@@ -521,7 +521,7 @@ def __setlang__():
if not __l12n__(_.lng):
_.lng = loc.Language
if not __l12n__(_.lng):
- _.lng = "en"
+ _.lng = "en_US"
def run(arg=None, arg2 = -1):
global _, __thread__, __halt__, _, __prevcode__, __prevlang__, __prevcompiledcode__
diff --git a/librelogo/LibreLogoDummy.py b/librelogo/source/LibreLogoDummy.py
index 1d65ff4919fa..1d65ff4919fa 100644
--- a/librelogo/LibreLogoDummy.py
+++ b/librelogo/source/LibreLogoDummy.py
diff --git a/librelogo/META-INF/manifest.xml b/librelogo/source/META-INF/manifest.xml
index a10be2952af5..a10be2952af5 100644
--- a/librelogo/META-INF/manifest.xml
+++ b/librelogo/source/META-INF/manifest.xml
diff --git a/librelogo/source/README b/librelogo/source/README
new file mode 100644
index 000000000000..ffe5ea0a1611
--- /dev/null
+++ b/librelogo/source/README
@@ -0,0 +1,43 @@
+LibreOffice Logo 0.2 RC2
+
+License: GNU LGPL & GPL, MPL
+
+Home page: http://www.numbertext.org/logo
+
+(c) László Németh (nemeth at numbertextdotorg)
+
+FSF.hu Foundation, http://www.fsf.hu
+
+Icons copyright: OpenOffice.org/LibreOffice
+
+Introduction
+============
+
+LibreLogo is a Logo-like programming language with interactive vectorgraphics for education and DTP
+
+- presentation: http://www.numbertext.org/logo/librelogo.pdf
+- basic Logo syntax for back compability with educational Logo systems
+- interactive vectorgraphics in LibreOffice Writer
+- native commands (easily translatable)
+- Python data structures (list, tuple, set, dictionary) and other Python features
+
+Usage
+=====
+
+See Logo in LibreOffice Help and http://www.numbertext.org/logo for documentation.
+
+Translation
+===========
+
+create your_language_id.lng in LibreOffice/ based on en.lng.
+
+Compilation:
+
+python make.py
+
+Development
+===========
+
+LibreLogo uses the PyUNO scripting framework, so Addons.xcu URLs depend from the
+full name of the package. Modify them according to the package name with the
+version number.
diff --git a/librelogo/description-en.txt b/librelogo/source/description-en-US.txt
index 6e9566518da8..6e9566518da8 100644
--- a/librelogo/description-en.txt
+++ b/librelogo/source/description-en-US.txt
diff --git a/librelogo/description.xml b/librelogo/source/description.xml
index 6ff4a9f1d19c..6711d7806ccb 100644
--- a/librelogo/description.xml
+++ b/librelogo/source/description.xml
@@ -8,12 +8,11 @@
</display-name>
<version value="0.2rc2" />
<publisher>
- <name lang="en" xlink:href="http://www.numbertext.org/logo">László Németh</name>
+ <name lang="en-US" xlink:href="http://www.numbertext.org/logo">László Németh</name>
<name lang="hu" xlink:href="http://www.numbertext.org/logo">Németh László</name>
</publisher>
<extension-description>
- <src lang="en" xlink:href="description-en.txt" />
- <src lang="hu" xlink:href="description-hu.txt" />
+ <src lang="en-US" xlink:href="description-en-US.txt" />
</extension-description>
<dependencies>
<OpenOffice.org-minimal-version value="3.2" d:name="OpenOffice.org 3.2" />
diff --git a/librelogo/source/help/en-US/LibreLogo.xhp b/librelogo/source/help/en-US/LibreLogo.xhp
new file mode 100644
index 000000000000..7d6539d53da7
--- /dev/null
+++ b/librelogo/source/help/en-US/LibreLogo.xhp
@@ -0,0 +1,388 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<helpdocument version="1.0">
+<meta>
+<topic id="LibreLogo" indexer="include" status="PUBLISH">
+<title id="title">LibreLogo</title>
+<filename>/org.openoffice.comp.pyuno.LibreLogo/LibreLogo.xhp</filename>
+</topic>
+</meta>
+<body>
+
+<bookmark xml-lang="en-US" branch="index" id="bm1">
+<bookmark_value>LibreLogo</bookmark_value>
+<bookmark_value>Logo</bookmark_value>
+<bookmark_value>Turtle graphics</bookmark_value>
+</bookmark>
+
+<paragraph role="heading" level="1" xml-lang="en-US" id="hd_170">LibreLogo</paragraph>
+<paragraph role="paragraph" xml-lang="en-US" id="par_180">LibreLogo is a simple, native, Logo-like programming environment with turtle vector graphics for teaching of computing (programming and word processing), DTP and graphic design. See http://www.numbertext.org/logo/librelogo.pdf.</paragraph>
+<paragraph role="heading" level="2" xml-lang="en-US" id="hd_220">LibreLogo toolbar</paragraph>
+<paragraph role="paragraph" xml-lang="en-US" id="par_230">The LibreLogo toolbar (View » Toolbars » Logo) contains turtle moving, program run and stop, home and clear screen and syntax highlighting/translating icons and an input bar (command line).</paragraph>
+<paragraph role="heading" level="2" xml-lang="en-US" id="hd_240">Turtle moving icons</paragraph>
+<paragraph role="paragraph" xml-lang="en-US" id="par_250">They are equivalents of the Logo commands “FORWARD 10”, “BACK 10”, “LEFT 15”, “RIGHT 15”. Clicking on one of the icons will also focus the turtle shape scrolling the page to its position.</paragraph>
+<paragraph role="heading" level="2" xml-lang="en-US" id="hd_280">Program run and start</paragraph>
+<paragraph role="paragraph" xml-lang="en-US" id="par_290">Click on the icon “run” to execute the text of the Writer document as a LibreLogo program.</paragraph>
+<paragraph role="paragraph" xml-lang="en-US" id="par_300">Click on the icon “stop” to stop the program execution.</paragraph>
+<paragraph role="heading" level="2" xml-lang="en-US" id="hd_310">Home</paragraph>
+<paragraph role="paragraph" xml-lang="en-US" id="par_320">Click on the icon “home” to reset the position and settings of the turtle.</paragraph>
+<paragraph role="heading" level="2" xml-lang="en-US" id="hd_330">Clear screen</paragraph>
+<paragraph role="paragraph" xml-lang="en-US" id="par_340">Click on the icon “clear screen” to remove the drawing objects of the document.</paragraph>
+<paragraph role="heading" level="2" xml-lang="en-US" id="hd_350">Command line</paragraph>
+<paragraph role="paragraph" xml-lang="en-US" id="par_360">Hit Enter in the command line to execute its content. To stop the program use the icon “stop”.</paragraph>
+<paragraph role="paragraph" xml-lang="en-US" id="par_370">Hold down the Enter to repeat the command line, for example, on the following command sequence:</paragraph>
+<paragraph role="code" xml-lang="en-US" id="par_380">&#160;FORWARD&#160;200&#160;LEFT&#160;89<br/></paragraph>
+<paragraph role="paragraph" xml-lang="en-US" id="par_390">To reset the command line click triple in it or press Ctrl-A to select the previous commands, and type the new commands.</paragraph>
+<paragraph role="heading" level="2" xml-lang="en-US" id="hd_400">Syntax highlighting/Translating</paragraph>
+<paragraph role="paragraph" xml-lang="en-US" id="par_410">It expands and upper case Logo commands in the Writer document. Change the language of the document (Tools » Options » Language Settings » Languages » Western) and click on this icon to translate the Logo program to the selected language.</paragraph>
+<paragraph role="heading" level="2" xml-lang="en-US" id="hd_420">Program editing</paragraph>
+<paragraph role="paragraph" xml-lang="en-US" id="par_430">LibreLogo drawings and programs use the same Writer document. The LibreLogo canvas is on the first page of the Writer document. You can insert a page break before the LibreLogo programs and set the zoom/font size for a comfortable two page layout for LibreLogo programming: left (first) page is the canvas, right (second) page is for the LibreLogo programs.</paragraph>
+<paragraph role="heading" level="1" xml-lang="en-US" id="hd_440">LibreLogo programming language</paragraph>
+<paragraph role="paragraph" xml-lang="en-US" id="par_450">LibreLogo is a native, easily localisable, Logo-like programming language. It is back-compatible with the older Logo systems in the case of the simple Logo programs used in education, eg.</paragraph>
+<paragraph role="code" xml-lang="en-US" id="par_460">&#160;TO&#160;triangle&#160;:size<br/>&#160;REPEAT&#160;3&#160;[<br/>&#160;&#160;&#160;FORWARD&#160;:size<br/>&#160;&#160;&#160;LEFT&#160;120<br/>&#160;]<br/>&#160;END<br/>&#160;<br/>&#160;triangle&#160;10&#160;triangle&#160;100&#160;triangle&#160;200<br/></paragraph>
+<paragraph role="heading" level="2" xml-lang="en-US" id="hd_470">Differences from the Logo programming language</paragraph>
+<list type="unordered">
+ <listitem>
+ <paragraph role="listitem" xml-lang="en-US" id="par_480">List members are comma separated: POSITION [0, 0]</paragraph>
+ </listitem>
+ <listitem>
+ <paragraph role="listitem" xml-lang="en-US" id="par_490">Program blocks and lists are different</paragraph>
+ </listitem>
+ <listitem>
+ <list type="unordered">
+ <listitem>
+ <paragraph role="listitem" xml-lang="en-US" id="par_500">Program blocks need space or new line at parenthesization: REPEAT 10 [ forward 10 left 36 ]</paragraph>
+ </listitem>
+ <listitem>
+ <paragraph role="listitem" xml-lang="en-US" id="par_510">Lists need close parenthesization: POSITION [0, 0], and not POSITION [ 0, 0 ]</paragraph>
+ </listitem>
+ </list>
+ </listitem>
+ <listitem>
+ <paragraph role="listitem" xml-lang="en-US" id="par_520">1-line function declarations have not supported yet (TO and END need new lines).</paragraph>
+ </listitem>
+</list>
+<paragraph role="heading" level="2" xml-lang="en-US" id="hd_530">Other features of LibreLogo</paragraph>
+<list type="unordered">
+ <listitem>
+ <paragraph role="listitem" xml-lang="en-US" id="par_540">The colon is optional before the variables (like in the Berkeley Logo)</paragraph>
+ <paragraph role="code" xml-lang="en-US" id="par_550">&#160;TO&#160;triangle&#160;size<br/>&#160;&#160;&#160;REPEAT&#160;3&#160;[&#160;FORWARD&#160;size&#160;LEFT&#160;120&#160;]<br/>&#160;END<br/></paragraph>
+ </listitem>
+ <listitem>
+ <paragraph role="paragraph" xml-lang="en-US" id="par_560">String notation supports also orthographical and Python syntax:</paragraph>
+ <paragraph role="code" xml-lang="en-US" id="par_570">&#160;PRINT&#160;"word" ;&#160;original&#160;Logo&#160;syntax<br/>&#160;PRINT&#160;“Arbitrary&#160;text.” ;&#160;orthography,&#160;Writer<br/>&#160;PRINT&#160;'Arbitrary&#160;text.' ;&#160;Python&#160;syntax<br/></paragraph>
+ </listitem>
+ <listitem>
+ <paragraph role="paragraph" xml-lang="en-US" id="par_580">Python list and string handling</paragraph>
+ <paragraph role="code" xml-lang="en-US" id="par_590">&#160;PRINT&#160;“text”[2] ;&#160;print&#160;“x”<br/>&#160;PRINT&#160;“text”[1:3] ;&#160;print&#160;“ex”<br/></paragraph>
+ </listitem>
+ <listitem>
+ <paragraph role="paragraph" xml-lang="en-US" id="par_600">Python-like FOR loop</paragraph>
+ </listitem>
+ <listitem>
+ <paragraph role="paragraph" xml-lang="en-US" id="par_610">Python-like variable declaration:</paragraph>
+ <paragraph role="code" xml-lang="en-US" id="par_620">&#160;x&#160;=&#160;15<br/>&#160;PRINT&#160;x<br/></paragraph>
+ </listitem>
+ <listitem>
+ <paragraph role="paragraph" xml-lang="en-US" id="par_630">There are no extra query functions:</paragraph>
+ <paragraph role="code" xml-lang="en-US" id="par_640">&#160;PRINT&#160;FILLCOLOR<br/>&#160;p&#160;=&#160;POSITION<br/>&#160;PRINT&#160;p<br/>&#160;REPEAT&#160;10&#160;[&#160;POSITION&#160;ANY&#160;POSITION&#160;p&#160;]<br/></paragraph>
+ </listitem>
+ <listitem>
+ <paragraph role="paragraph" xml-lang="en-US" id="par_650">Alternative parenthesization in function calls</paragraph>
+ <paragraph role="code" xml-lang="en-US" id="par_660">&#160;TO&#160;star&#160;size&#160;color<br/>&#160;FILLCOLOR&#160;color<br/>&#160;REPEAT&#160;5&#160;[&#160;LEFT&#160;72&#160;FORWARD&#160;size&#160;RIGHT&#160;144&#160;FORWARD&#160;size&#160;]<br/>&#160;FILL<br/>&#160;END<br/>&#160;<br/>&#160;star&#160;100&#160;“red”<br/>&#160;star&#160;(100,&#160;“green”)<br/>&#160;star(100,&#160;“blue”)<br/></paragraph>
+ </listitem>
+</list>
+<paragraph role="heading" level="1" xml-lang="en-US" id="hd_670">LibreLogo commands</paragraph>
+<paragraph role="heading" level="2" xml-lang="en-US" id="hd_680">Basic syntax</paragraph>
+<paragraph role="heading" level="3" xml-lang="en-US" id="hd_690">Case sensitivity</paragraph>
+<paragraph role="paragraph" xml-lang="en-US" id="par_700">Commands, color constants are case insensitive:</paragraph>
+<paragraph role="code" xml-lang="en-US" id="par_710">&#160;PRINT&#160;“Hello,&#160;World!”<br/>&#160;print&#160;“Hello,&#160;World,&#160;again!”<br/></paragraph>
+<paragraph role="paragraph" xml-lang="en-US" id="par_720">Variable names are case sensitive:</paragraph>
+<paragraph role="code" xml-lang="en-US" id="par_730">&#160;a&#160;=&#160;5<br/>&#160;A&#160;=&#160;7<br/>&#160;PRINT&#160;a<br/>&#160;PRINT&#160;A<br/></paragraph>
+<paragraph role="heading" level="3" xml-lang="en-US" id="hd_740">Program lines</paragraph>
+<paragraph role="paragraph" xml-lang="en-US" id="par_750">Lines of a LibreLogo program are paragraphs in the LibreOffice Writer document. A program line can contain multiple commands:</paragraph>
+<paragraph role="code" xml-lang="en-US" id="par_760">&#160;PRINT&#160;“Hello,&#160;World!”&#160;PRINT&#160;“LibreLogo”<br/></paragraph>
+<paragraph role="heading" level="3" xml-lang="en-US" id="hd_770">Comments</paragraph>
+<paragraph role="paragraph" xml-lang="en-US" id="par_780">Lines or line parts are comments from a semicolon to the end of the line (paragraph):</paragraph>
+<paragraph role="code" xml-lang="en-US" id="par_790">&#160;;&#160;some&#160;comments<br/>&#160;PRINT&#160;5&#160;*&#160;5 ;&#160;some&#160;comments<br/></paragraph>
+<paragraph role="heading" level="3" xml-lang="en-US" id="hd_800">Break program lines to multiple paragraphs</paragraph>
+<paragraph role="paragraph" xml-lang="en-US" id="par_810">It’s possible to break a program line for more paragraphs using the character tilde at the end of the line:</paragraph>
+<paragraph role="code" xml-lang="en-US" id="par_820">&#160;PRINT&#160;“This&#160;is&#160;a&#160;very&#160;long&#160;”&#160;+&#160;~<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;“warning&#160;message”<br/></paragraph>
+<paragraph role="heading" level="2" xml-lang="en-US" id="hd_830">Turtle moving</paragraph>
+<paragraph role="heading" level="3" xml-lang="en-US" id="hd_840">FORWARD (fd)</paragraph>
+<paragraph role="code" xml-lang="en-US" id="par_850">&#160;FORWARD&#160;10 ;&#160;move&#160;forward&#160;10pt&#160;(1pt&#160;=&#160;1/72&#160;inch)<br/>&#160;FORWARD&#160;10pt ;&#160;see&#160;above<br/>&#160;FORWARD&#160;0.5in ;&#160;move&#160;forward&#160;0.5&#160;inch&#160;(1&#160;inch&#160;=&#160;2.54&#160;cm)<br/>&#160;FORWARD&#160;1" ;&#160;see&#160;above<br/>&#160;FD&#160;1mm<br/>&#160;FD&#160;1cm<br/></paragraph>
+<paragraph role="heading" level="3" xml-lang="en-US" id="hd_860">BACK (bk)</paragraph>
+<paragraph role="code" xml-lang="en-US" id="par_870">&#160;BACK&#160;10&#160;;&#160;move&#160;back&#160;10pt<br/></paragraph>
+<paragraph role="heading" level="3" xml-lang="en-US" id="hd_880">LEFT (lt)</paragraph>
+<paragraph role="code" xml-lang="en-US" id="par_890">&#160;LEFT&#160;90 ;&#160;turn&#160;counterclockwise&#160;90&#160;degrees<br/>&#160;LEFT&#160;90° ;&#160;see&#160;above<br/>&#160;LT&#160;3h ;&#160;see&#160;above&#160;(clock&#160;position)<br/>&#160;LT&#160;any ;&#160;turn&#160;to&#160;a&#160;random&#160;position<br/></paragraph>
+<paragraph role="heading" level="3" xml-lang="en-US" id="hd_900">RIGHT (rt)</paragraph>
+<paragraph role="code" xml-lang="en-US" id="par_910">&#160;RIGHT&#160;90 ;&#160;turn&#160;clockwise&#160;90&#160;degrees<br/></paragraph>
+<paragraph role="heading" level="3" xml-lang="en-US" id="hd_920">PENUP (pu)</paragraph>
+<paragraph role="code" xml-lang="en-US" id="par_930">&#160;PENUP ;&#160;turtle&#160;will&#160;move&#160;without&#160;drawing<br/></paragraph>
+<paragraph role="heading" level="3" xml-lang="en-US" id="hd_940">PENDOWN (pd)</paragraph>
+<paragraph role="code" xml-lang="en-US" id="par_950">&#160;PENDOWN ;&#160;turtle&#160;will&#160;move&#160;with&#160;drawing<br/></paragraph>
+<paragraph role="heading" level="3" xml-lang="en-US" id="hd_960">POSITION (pos)</paragraph>
+<paragraph role="code" xml-lang="en-US" id="par_970">&#160;POSITION&#160;[0,&#160;0] ;&#160;turn&#160;and&#160;move&#160;to&#160;the&#160;top-left&#160;corner<br/>&#160;POSITION&#160;PAGESIZE ;&#160;turn&#160;and&#160;move&#160;to&#160;the&#160;bottom-right&#160;corner<br/>&#160;POSITION&#160;[PAGESIZE[0],&#160;0]&#160;;&#160;turn&#160;and&#160;move&#160;to&#160;the&#160;top-right&#160;corner<br/>&#160;POSITION&#160;ANY ;&#160;turn&#160;and&#160;move&#160;to&#160;a&#160;random&#160;position<br/></paragraph>
+<paragraph role="heading" level="3" xml-lang="en-US" id="hd_980">HEADING (seth)</paragraph>
+<paragraph role="code" xml-lang="en-US" id="par_990">&#160;HEADING&#160;0 ;&#160;turn&#160;north<br/>&#160;HEADING&#160;12h ;&#160;see&#160;above<br/>&#160;HEADING&#160;ANY ;&#160;turn&#160;to&#160;a&#160;random&#160;position<br/></paragraph>
+<paragraph role="heading" level="2" xml-lang="en-US" id="hd_1000">Other turtle commands</paragraph>
+<paragraph role="heading" level="3" xml-lang="en-US" id="hd_1010">HIDETURTLE (ht)</paragraph>
+<paragraph role="code" xml-lang="en-US" id="par_1020">&#160;HIDETURTLE ;&#160;hide&#160;turtle&#160;(until&#160;the&#160;showturtle&#160;command)<br/></paragraph>
+<paragraph role="heading" level="3" xml-lang="en-US" id="hd_1030">SHOWTURTLE (st)</paragraph>
+<paragraph role="code" xml-lang="en-US" id="par_1040">&#160;SHOWTURTLE ;&#160;show&#160;turtle<br/></paragraph>
+<paragraph role="heading" level="3" xml-lang="en-US" id="hd_1050">HOME</paragraph>
+<paragraph role="code" xml-lang="en-US" id="par_1060">&#160;HOME ;&#160;reset&#160;initial&#160;turtle&#160;settings&#160;and&#160;position<br/></paragraph>
+<paragraph role="heading" level="3" xml-lang="en-US" id="hd_1070">CLEARSCREEN (cs)</paragraph>
+<paragraph role="code" xml-lang="en-US" id="par_1080">&#160;CLEARSCREEN ;&#160;remove&#160;drawing&#160;objects&#160;of&#160;the&#160;document<br/></paragraph>
+<paragraph role="heading" level="3" xml-lang="en-US" id="hd_1090">FILL and CLOSE</paragraph>
+<paragraph role="code" xml-lang="en-US" id="par_1100">&#160;FILL ;&#160;close&#160;and&#160;fill&#160;the&#160;actual&#160;line&#160;shape<br/>&#160;CLOSE ;&#160;close&#160;the&#160;actual&#160;line&#160;shape<br/></paragraph>
+<paragraph role="heading" level="2" xml-lang="en-US" id="hd_1110">Pen settings</paragraph>
+<paragraph role="heading" level="3" xml-lang="en-US" id="hd_1120">PENSIZE (ps)</paragraph>
+<paragraph role="code" xml-lang="en-US" id="par_1130">&#160;PENSIZE&#160;100 ;&#160;line&#160;width&#160;is&#160;100&#160;points<br/>&#160;PENSIZE&#160;ANY ;&#160;equivalent&#160;of&#160;PENSIZE&#160;RANDOM&#160;10<br/></paragraph>
+<paragraph role="heading" level="3" xml-lang="en-US" id="hd_1140">PENCOLOR/PENCOLOUR (pc)</paragraph>
+<paragraph role="code" xml-lang="en-US" id="par_1150">&#160;PENCOLOR&#160;“red” ;&#160;set&#160;red&#160;pen&#160;color&#160;(by&#160;color&#160;name,&#160;see&#160;color&#160;constants)<br/>&#160;PENCOLOR&#160;[255,&#160;255,&#160;0] ;&#160;set&#160;yellow&#160;color&#160;(RGB&#160;list)<br/>&#160;PENCOLOR&#160;0xffff00 ;&#160;set&#160;yellow&#160;color&#160;(hexa&#160;code)<br/>&#160;PENCOLOR&#160;0 ;&#160;set&#160;black&#160;color&#160;(0x000000)<br/>&#160;PENCOLOR&#160;ANY ;&#160;random&#160;color<br/>&#160;PENCOLOR&#160;[5] ;&#160;set&#160;red&#160;color&#160;(by&#160;color&#160;identifier,&#160;see&#160;color&#160;constants)<br/>&#160;PENCOLOR&#160;“invisible” ;&#160;invisible&#160;pen&#160;color&#160;for&#160;shapes&#160;without&#160;visible&#160;outline<br/>&#160;PENCOLOR&#160;“~red” ;&#160;set&#160;random&#160;red&#160;color<br/></paragraph>
+<paragraph role="heading" level="3" xml-lang="en-US" id="hd_1160">PENJOINT/LINEJOINT</paragraph>
+<paragraph role="code" xml-lang="en-US" id="par_1170">&#160;PENJOINT&#160;“rounded” ;&#160;rounded&#160;line&#160;joint&#160;(default)<br/>&#160;PENJOINT&#160;“miter” ;&#160;sharp&#160;line&#160;joint<br/>&#160;PENJOINT&#160;“bevel” ;&#160;bevel&#160;line&#160;joint<br/>&#160;PENJOINT&#160;“none” ;&#160;without&#160;line&#160;joint<br/></paragraph>
+<paragraph role="heading" level="3" xml-lang="en-US" id="hd_1180">PENSTYLE</paragraph>
+<paragraph role="code" xml-lang="en-US" id="par_1190">&#160;PENSTYLE&#160;“solid” ;&#160;solid&#160;line&#160;(default)<br/>&#160;PENSTYLE&#160;“dotted” ;&#160;dotted&#160;line<br/>&#160;PENSTYLE&#160;“dashed” ;&#160;dashed&#160;line<br/>&#160;<br/>&#160;;&#160;custom&#160;dot–dash&#160;pattern&#160;specified&#160;by&#160;a&#160;list&#160;with&#160;the&#160;following&#160;arguments:<br/>&#160;;&#160;–&#160;number&#160;of&#160;the&#160;neighbouring&#160;dots<br/>&#160;;&#160;–&#160;length&#160;of&#160;a&#160;dot<br/>&#160;;&#160;–&#160;number&#160;of&#160;the&#160;neighbouring&#160;dashes<br/>&#160;;&#160;–&#160;length&#160;of&#160;a&#160;dash<br/>&#160;;&#160;–&#160;distance&#160;of&#160;the&#160;dots/dashes<br/>&#160;;&#160;–&#160;type&#160;(optional):<br/>&#160;;&#160;&#160;&#160;0&#160;=&#160;dots&#160;are&#160;rectangles&#160;(default)<br/>&#160;;&#160;&#160;&#160;2&#160;=&#160;dots&#160;are&#160;squares&#160;(lengths&#160;and&#160;distances&#160;are&#160;relative&#160;to&#160;the&#160;pensize)<br/>&#160;<br/>&#160;PENSTYLE&#160;[3,&#160;1mm,&#160;2,&#160;4mm,&#160;2mm,&#160;2] ;&#160;...––...––...––<br/></paragraph>
+<paragraph role="heading" level="2" xml-lang="en-US" id="hd_1200">Fill settings</paragraph>
+<paragraph role="heading" level="3" xml-lang="en-US" id="hd_1210">FILLCOLOR/FILLCOLOUR (fc)</paragraph>
+<paragraph role="code" xml-lang="en-US" id="par_1220">&#160;FILLCOLOR&#160;“blue” ;&#160;fill&#160;with&#160;blue&#160;color,&#160;see&#160;also&#160;PENCOLOR<br/>&#160;FILLCOLOR&#160;“invisible”&#160;CIRCLE&#160;10 ;&#160;unfilled&#160;circle<br/></paragraph>
+<paragraph role="heading" level="3" xml-lang="en-US" id="hd_1230">FILLSTYLE</paragraph>
+<paragraph role="code" xml-lang="en-US" id="par_1240">&#160;FILLSTYLE&#160;0 ;&#160;fill&#160;without&#160;hatches&#160;(default)<br/>&#160;FILLSTYLE&#160;1 ;&#160;black&#160;single&#160;hatches&#160;(horizontal)<br/>&#160;FILLSTYLE&#160;2 ;&#160;black&#160;single&#160;hatches&#160;(45&#160;degrees)<br/>&#160;FILLSTYLE&#160;3 ;&#160;black&#160;single&#160;hatches&#160;(-45&#160;degrees)<br/>&#160;FILLSTYLE&#160;4 ;&#160;black&#160;single&#160;hatches&#160;(vertical)<br/>&#160;FILLSTYLE&#160;5 ;&#160;red&#160;crossed&#160;hatches&#160;(45&#160;degrees)<br/>&#160;FILLSTYLE&#160;6 ;&#160;red&#160;crossed&#160;hatches&#160;(0&#160;degrees)<br/>&#160;FILLSTYLE&#160;7 ;&#160;blue&#160;crossed&#160;hatches&#160;(45&#160;degrees)<br/>&#160;FILLSTYLE&#160;8 ;&#160;blue&#160;crossed&#160;hatches&#160;(0&#160;degrees)<br/>&#160;FILLSTYLE&#160;9 ;&#160;blue&#160;triple&#160;crossed<br/>&#160;FILLSTYLE&#160;10 ;&#160;black&#160;wide&#160;single&#160;hatches&#160;(45&#160;degrees)<br/>&#160;<br/>&#160;;&#160;custom&#160;hatches&#160;specified&#160;by&#160;a&#160;list&#160;with&#160;the&#160;following&#160;arguments:<br/>&#160;;&#160;–&#160;style&#160;(1&#160;=&#160;single,&#160;2&#160;=&#160;double,&#160;3&#160;=&#160;triple&#160;hatching)<br/>&#160;;&#160;–&#160;color<br/>&#160;;&#160;–&#160;distance<br/>&#160;;&#160;–&#160;degree<br/>&#160;<br/>&#160;FILLSTYLE&#160;[2,&#160;“green”,&#160;3pt,&#160;15°] ;&#160;green&#160;crossed&#160;hatches&#160;(15&#160;degrees)<br/></paragraph>
+<paragraph role="heading" level="2" xml-lang="en-US" id="hd_1250">Drawing objects</paragraph>
+<paragraph role="heading" level="3" xml-lang="en-US" id="hd_1260">CIRCLE</paragraph>
+<paragraph role="code" xml-lang="en-US" id="par_1270">&#160;CIRCLE&#160;100 ;&#160;draw&#160;a&#160;circle&#160;shape&#160;(diameter&#160;=&#160;100pt)<br/></paragraph>
+<paragraph role="heading" level="3" xml-lang="en-US" id="hd_1280">ELLIPSE</paragraph>
+<paragraph role="code" xml-lang="en-US" id="par_1290">&#160;ELLIPSE&#160;[50,&#160;100] ;&#160;draw&#160;an&#160;ellipse&#160;with&#160;50&#160;and&#160;100&#160;diameters<br/>&#160;ELLIPSE&#160;[50,&#160;100,&#160;2h,&#160;12h] ;&#160;draw&#160;an&#160;elliptical&#160;sector&#160;(from&#160;2h&#160;clock&#160;position&#160;to&#160;12h)<br/>&#160;ELLIPSE&#160;[50,&#160;100,&#160;2h,&#160;12h,&#160;2]&#160;&#160;;&#160;draw&#160;an&#160;elliptical&#160;segment<br/>&#160;ELLIPSE&#160;[50,&#160;100,&#160;2h,&#160;12h,&#160;3]&#160;&#160;;&#160;draw&#160;an&#160;elliptical&#160;arc<br/></paragraph>
+<paragraph role="heading" level="3" xml-lang="en-US" id="hd_1300">SQUARE</paragraph>
+<paragraph role="code" xml-lang="en-US" id="par_1310">&#160;SQUARE&#160;100 ;&#160;draw&#160;a&#160;square&#160;shape&#160;(size&#160;=&#160;100pt)<br/></paragraph>
+<paragraph role="heading" level="3" xml-lang="en-US" id="hd_1320">RECTANGLE</paragraph>
+<paragraph role="code" xml-lang="en-US" id="par_1330">&#160;RECTANGLE&#160;[50,&#160;100] ;&#160;draw&#160;a&#160;rectange&#160;shape&#160;(50×100pt)<br/>&#160;RECTANGLE&#160;[50,&#160;100,&#160;50] ;&#160;draw&#160;a&#160;rectangle&#160;<br/></paragraph>
+<paragraph role="heading" level="3" xml-lang="en-US" id="hd_1340">POINT</paragraph>
+<paragraph role="code" xml-lang="en-US" id="par_1350">&#160;POINT ;&#160;draw&#160;a&#160;point&#160;with&#160;size&#160;and&#160;color&#160;of&#160;the&#160;pen<br/></paragraph>
+<paragraph role="heading" level="3" xml-lang="en-US" id="hd_1360">LABEL</paragraph>
+<paragraph role="code" xml-lang="en-US" id="par_1370">&#160;LABEL&#160;“text” ;&#160;print&#160;text&#160;in&#160;the&#160;turte&#160;position<br/>&#160;LABEL&#160;'text' ;&#160;see&#160;above<br/>&#160;LABEL&#160;"text ;&#160;see&#160;above&#160;(only&#160;for&#160;single&#160;words)<br/></paragraph>
+<paragraph role="heading" level="3" xml-lang="en-US" id="hd_1380">TEXT</paragraph>
+<paragraph role="code" xml-lang="en-US" id="par_1390">&#160;CIRCLE&#160;10&#160;TEXT&#160;“text” ;&#160;set&#160;text&#160;of&#160;the&#160;actual&#160;drawing&#160;object<br/></paragraph>
+<paragraph role="heading" level="2" xml-lang="en-US" id="hd_1400">Font settings</paragraph>
+<paragraph role="heading" level="3" xml-lang="en-US" id="hd_1410">FONTCOLOR/FONTCOLOUR</paragraph>
+<paragraph role="code" xml-lang="en-US" id="par_1420">&#160;FONTCOLOR&#160;“green” ;&#160;set&#160;font&#160;color<br/></paragraph>
+<paragraph role="heading" level="3" xml-lang="en-US" id="hd_1430">FONTFAMILY</paragraph>
+<paragraph role="code" xml-lang="en-US" id="par_1440">&#160;FONTFAMILY&#160;“Linux&#160;Libertine&#160;G” ;&#160;set&#160;font&#160;(family)<br/>&#160;FONTFAMILY&#160;“Linux&#160;Libertine&#160;G:smcp=1” ;&#160;set&#160;also&#160;font&#160;feature&#160;(small&#160;caps)<br/>&#160;FONTFAMILY&#160;“Linux&#160;Libertine&#160;G:smcp=1&amp;onum=1” ;&#160;small&#160;caps&#160;+&#160;old&#160;figures<br/></paragraph>
+<paragraph role="heading" level="3" xml-lang="en-US" id="hd_1450">FONTSIZE</paragraph>
+<paragraph role="code" xml-lang="en-US" id="par_1460">&#160;FONTSIZE&#160;12 ;&#160;set&#160;12pt<br/></paragraph>
+<paragraph role="heading" level="3" xml-lang="en-US" id="hd_1470">FONTWEIGHT</paragraph>
+<paragraph role="code" xml-lang="en-US" id="par_1480">&#160;FONTWEIGHT&#160;“bold” ;&#160;set&#160;bold&#160;font<br/>&#160;FONTWEIGHT&#160;“normal” ;&#160;set&#160;normal&#160;weight<br/></paragraph>
+<paragraph role="heading" level="3" xml-lang="en-US" id="hd_1490">FONTSTYLE</paragraph>
+<paragraph role="code" xml-lang="en-US" id="par_1500">&#160;FONTSTYLE&#160;“italic” ;&#160;set&#160;italic&#160;variant<br/>&#160;FONTSTYLE&#160;“normal” ;&#160;set&#160;normal&#160;variant<br/></paragraph>
+<paragraph role="heading" level="2" xml-lang="en-US" id="hd_1510">PICTURE (pic)</paragraph>
+<paragraph role="paragraph" xml-lang="en-US" id="par_1520">PICTURE is for </paragraph>
+<list type="unordered">
+ <listitem>
+ <paragraph role="listitem" xml-lang="en-US" id="par_1530">shape grouping;</paragraph>
+ </listitem>
+ <listitem>
+ <paragraph role="listitem" xml-lang="en-US" id="par_1540">starting new line shapes;</paragraph>
+ </listitem>
+ <listitem>
+ <paragraph role="listitem" xml-lang="en-US" id="par_1550">keeping the consistency of positions and line shapes at the left border.</paragraph>
+ </listitem>
+</list>
+<paragraph role="heading" level="3" xml-lang="en-US" id="hd_1560">Shape grouping</paragraph>
+<paragraph role="code" xml-lang="en-US" id="par_1570">&#160;;&#160;PICTURE&#160;[&#160;LibreLogo_commands&#160;]<br/>&#160;PICTURE&#160;[&#160;FORWARD&#160;100&#160;CIRCLE&#160;100&#160;] ;&#160;tree-like&#160;grouped&#160;shape<br/></paragraph>
+<paragraph role="paragraph" xml-lang="en-US" id="par_1580">See also “Group” in LibreOffice Writer Help.</paragraph>
+<paragraph role="code" xml-lang="en-US" id="par_1590">&#160;TO&#160;tree&#160;location<br/>&#160;&#160;&#160;PENUP&#160;POSITION&#160;location&#160;HEADING&#160;0&#160;PENDOWN<br/>&#160;&#160;&#160;PICTURE&#160;[&#160;FORWARD&#160;100&#160;CIRCLE&#160;100&#160;] ;&#160;tree-like&#160;grouped&#160;shape<br/>&#160;END<br/>&#160;<br/>&#160;PICTURE&#160;[&#160;tree&#160;[30,&#160;50]&#160;tree&#160;[100,&#160;50]&#160;] ;&#160;grouped&#160;shapes&#160;in&#160;a&#160;grouped&#160;shape<br/></paragraph>
+<paragraph role="heading" level="3" xml-lang="en-US" id="hd_1600">Starting new line shapes</paragraph>
+<paragraph role="code" xml-lang="en-US" id="par_1610">&#160;PICTURE ;&#160;start&#160;a&#160;new&#160;line&#160;shape<br/>&#160;FORWARD&#160;10&#160;PICTURE&#160;FORWARD&#160;10 ;&#160;two&#160;line&#160;shapes<br/></paragraph>
+<paragraph role="heading" level="3" xml-lang="en-US" id="hd_1620">Consistency at the left border</paragraph>
+<paragraph role="paragraph" xml-lang="en-US" id="par_1630">Use picture to keep the consistency of positions and line shapes at the left border of Writer:</paragraph>
+<paragraph role="code" xml-lang="en-US" id="par_1640">&#160;PICTURE&#160;[&#160;CIRCLE&#160;20&#160;POSITION&#160;[-100,&#160;100]&#160;CIRCLE&#160;20&#160;]<br/></paragraph>
+<paragraph role="heading" level="2" xml-lang="en-US" id="hd_1650">Loops</paragraph>
+<paragraph role="heading" level="3" xml-lang="en-US" id="hd_1660">REPEAT</paragraph>
+<paragraph role="code" xml-lang="en-US" id="par_1670">&#160;;&#160;REPEAT&#160;number&#160;[&#160;commands&#160;]<br/>&#160;<br/>&#160;REPEAT&#160;10&#160;[&#160;FORWARD&#160;10&#160;LEFT&#160;45&#160;CIRCLE&#160;10&#160;] ;&#160;repeat&#160;10&#160;times<br/></paragraph>
+<paragraph role="code" xml-lang="en-US" id="par_1680">&#160;;&#160;number&#160;is&#160;optional<br/>&#160;<br/>&#160;REPEAT&#160;[&#160;POSITION&#160;ANY&#160;] ;&#160;endless&#160;loop<br/></paragraph>
+<paragraph role="heading" level="3" xml-lang="en-US" id="hd_1690">REPCOUNT</paragraph>
+<paragraph role="paragraph" xml-lang="en-US" id="par_1700">Loop variable (also in the FOR and WHILE loops).</paragraph>
+<paragraph role="code" xml-lang="en-US" id="par_1710">&#160;REPEAT&#160;100&#160;[&#160;FORWARD&#160;REPCOUNT&#160;LEFT&#160;90&#160;]<br/></paragraph>
+<paragraph role="heading" level="3" xml-lang="en-US" id="hd_1720">FOR IN</paragraph>
+<paragraph role="paragraph" xml-lang="en-US" id="par_1730">Loop for the list elements:</paragraph>
+<paragraph role="code" xml-lang="en-US" id="par_1740">&#160;FOR&#160;i&#160;IN&#160;[1,&#160;5,&#160;7,&#160;9,&#160;11]&#160;[<br/>&#160;&#160;&#160;FORWARD&#160;i<br/>&#160;&#160;&#160;LEFT&#160;90<br/>&#160;]<br/></paragraph>
+<paragraph role="paragraph" xml-lang="en-US" id="par_1750">Loop for the characters of a character sequence:</paragraph>
+<paragraph role="code" xml-lang="en-US" id="par_1760">&#160;FOR&#160;i&#160;IN&#160;“text”&#160;[<br/>&#160;&#160;&#160;LABEL&#160;i<br/>&#160;&#160;&#160;FORWARD&#160;10<br/>&#160;]<br/></paragraph>
+<paragraph role="heading" level="3" xml-lang="en-US" id="hd_1770">WHILE</paragraph>
+<paragraph role="code" xml-lang="en-US" id="par_1780">&#160;WHILE&#160;TRUE&#160;[&#160;POSITION&#160;ANY&#160;] ;&#160;endless&#160;loop<br/>&#160;WHILE&#160;REPCOUNT&#160;&lt;=&#160;10&#160;[&#160;FORWARD&#160;50&#160;LEFT&#160;36&#160;] ;&#160;as&#160;REPEAT&#160;10&#160;[&#160;...&#160;]<br/></paragraph>
+<paragraph role="heading" level="3" xml-lang="en-US" id="hd_1790">BREAK</paragraph>
+<paragraph role="paragraph" xml-lang="en-US" id="par_1800">Stop the loop.</paragraph>
+<paragraph role="code" xml-lang="en-US" id="par_1810">&#160;REPEAT&#160;[ ;&#160;endless&#160;loop<br/>&#160;&#160;&#160;POSITION&#160;ANY<br/>&#160;&#160;&#160;IF&#160;REPCOUNT&#160;=&#160;100&#160;[&#160;BREAK&#160;]&#160;&#160;;&#160;equivalent&#160;of&#160;the&#160;REPEAT&#160;100&#160;[&#160;...&#160;]<br/>&#160;]<br/></paragraph>
+<paragraph role="heading" level="3" xml-lang="en-US" id="hd_1820">CONTINUE</paragraph>
+<paragraph role="paragraph" xml-lang="en-US" id="par_1830">Jump into the next iteration of the loop.</paragraph>
+<paragraph role="code" xml-lang="en-US" id="par_1840">&#160;REPEAT&#160;100&#160;[<br/>&#160;&#160;&#160;POSITION&#160;ANY<br/>&#160;&#160;&#160;IF&#160;REPCOUNT&#160;%&#160;2&#160;&lt;>&#160;0&#160;[&#160;CONTINUE&#160;]<br/>&#160;&#160;&#160;CIRCLE&#160;10 ;&#160;draw&#160;circles&#160;on&#160;every&#160;2nd&#160;positions<br/>&#160;]<br/></paragraph>
+<paragraph role="heading" level="2" xml-lang="en-US" id="hd_1850">Conditions</paragraph>
+<paragraph role="heading" level="3" xml-lang="en-US" id="hd_1860">IF</paragraph>
+<paragraph role="code" xml-lang="en-US" id="par_1870">&#160;;&#160;IF&#160;condition&#160;[&#160;true&#160;block&#160;]<br/>&#160;;&#160;IF&#160;condition&#160;[&#160;true&#160;block&#160;]&#160;[&#160;false&#160;block&#160;]<br/>&#160;<br/>&#160;IF&#160;a&#160;&lt;&#160;10&#160;[&#160;PRINT&#160;“Small”&#160;]<br/>&#160;IF&#160;a&#160;&lt;&#160;10&#160;[&#160;PRINT&#160;“Small”&#160;]&#160;[&#160;PRINT&#160;“Big”&#160;]<br/></paragraph>
+<paragraph role="heading" level="3" xml-lang="en-US" id="hd_1880">AND, OR, NOT</paragraph>
+<paragraph role="paragraph" xml-lang="en-US" id="par_1890">Logical operators.</paragraph>
+<paragraph role="code" xml-lang="en-US" id="par_1900">&#160;IF&#160;a&#160;&lt;&#160;10&#160;AND&#160;NOT&#160;a&#160;&lt;&#160;5&#160;[&#160;PRINT&#160;“5,&#160;6,&#160;7,&#160;8&#160;or&#160;9”&#160;]<br/></paragraph>
+<paragraph role="heading" level="2" xml-lang="en-US" id="hd_1910">Subroutines</paragraph>
+<paragraph role="heading" level="3" xml-lang="en-US" id="hd_1920">TO, END</paragraph>
+<paragraph role="paragraph" xml-lang="en-US" id="par_1930">New word (or procedure).</paragraph>
+<paragraph role="code" xml-lang="en-US" id="par_1940">&#160;TO&#160;triangle<br/>&#160;&#160;&#160;REPEAT&#160;[&#160;FORWARD&#160;100&#160;RIGHT&#160;120&#160;]&#160;FILL<br/>&#160;END<br/>&#160;<br/>&#160;REPEAT&#160;10&#160;[&#160;triangle&#160;PENUP&#160;POSITION&#160;ANY&#160;PENDOWN&#160;]<br/></paragraph>
+<paragraph role="heading" level="3" xml-lang="en-US" id="hd_1950">OUTPUT</paragraph>
+<paragraph role="paragraph" xml-lang="en-US" id="par_1960">Return value of the function.</paragraph>
+<paragraph role="code" xml-lang="en-US" id="par_1970">&#160;TO&#160;randomletter<br/>&#160;&#160;&#160;OUTPUT&#160;RANDOM&#160;“qwertzuiopasdfghjklyxcvbnm”<br/>&#160;END<br/>&#160;<br/>&#160;PRINT&#160;randomletter&#160;+&#160;randomletter&#160;+&#160;randomletter ;&#160;print&#160;3-letter&#160;random&#160;character&#160;sequence<br/></paragraph>
+<paragraph role="heading" level="3" xml-lang="en-US" id="hd_1980">STOP</paragraph>
+<paragraph role="paragraph" xml-lang="en-US" id="par_1990">Return from the procedure.</paragraph>
+<paragraph role="code" xml-lang="en-US" id="par_2000">&#160;TO&#160;example&#160;number<br/>&#160;&#160;&#160;IF&#160;number&#160;&lt;&#160;0&#160;[&#160;STOP&#160;]<br/>&#160;&#160;&#160;PRINT&#160;SQRT&#160;number ;&#160;print&#160;square&#160;root<br/>&#160;]<br/>&#160;<br/>&#160;example&#160;100<br/>&#160;example&#160;-1 ;&#160;without&#160;output&#160;and&#160;error<br/>&#160;example&#160;25<br/></paragraph>
+<paragraph role="heading" level="2" xml-lang="en-US" id="hd_2010">Default variables</paragraph>
+<paragraph role="heading" level="3" xml-lang="en-US" id="hd_2020">ANY</paragraph>
+<paragraph role="paragraph" xml-lang="en-US" id="par_2030">Default random value of colors, etc.</paragraph>
+<paragraph role="code" xml-lang="en-US" id="par_2040">&#160;PENCOLOR&#160;ANY ;&#160;random&#160;pen&#160;color<br/></paragraph>
+<paragraph role="heading" level="3" xml-lang="en-US" id="hd_2050">TRUE</paragraph>
+<paragraph role="paragraph" xml-lang="en-US" id="par_2060">Logical value.</paragraph>
+<paragraph role="code" xml-lang="en-US" id="par_2070">&#160;WHILE&#160;TRUE&#160;[&#160;POSITION&#160;ANY&#160;] ;&#160;endless&#160;loop<br/>&#160;PRINT&#160;TRUE ;&#160;print&#160;true<br/></paragraph>
+<paragraph role="heading" level="3" xml-lang="en-US" id="hd_2080">FALSE</paragraph>
+<paragraph role="paragraph" xml-lang="en-US" id="par_2090">Logical value.</paragraph>
+<paragraph role="code" xml-lang="en-US" id="par_2100">&#160;WHILE&#160;NOT&#160;FALSE&#160;[&#160;POSITION&#160;ANY&#160;] ;&#160;endless&#160;loop<br/>&#160;PRINT&#160;FALSE ;&#160;print&#160;false<br/></paragraph>
+<paragraph role="heading" level="3" xml-lang="en-US" id="hd_2110">PAGESIZE</paragraph>
+<paragraph role="code" xml-lang="en-US" id="par_2120">&#160;PRINT&#160;PAGESIZE ;&#160;print&#160;list&#160;of&#160;the&#160;page&#160;sizes&#160;in&#160;points,&#160;eg.&#160;[595.30,&#160;841.89]<br/></paragraph>
+<paragraph role="heading" level="3" xml-lang="en-US" id="hd_2130">PI/π</paragraph>
+<paragraph role="code" xml-lang="en-US" id="par_2140">&#160;PRINT&#160;PI ;&#160;print&#160;3.14159265359<br/></paragraph>
+<paragraph role="heading" level="2" xml-lang="en-US" id="hd_2150">Input/Output</paragraph>
+<paragraph role="heading" level="3" xml-lang="en-US" id="hd_2160">PRINT</paragraph>
+<paragraph role="code" xml-lang="en-US" id="par_2170">&#160;PRINT&#160;“text” ;&#160;print&#160;“text”&#160;in&#160;a&#160;dialog&#160;box<br/>&#160;PRINT&#160;5&#160;+&#160;10 ;&#160;print&#160;15<br/></paragraph>
+<paragraph role="heading" level="3" xml-lang="en-US" id="hd_2180">INPUT</paragraph>
+<paragraph role="code" xml-lang="en-US" id="par_2190">&#160;PRINT&#160;INPUT&#160;“Input&#160;value?” ;&#160;ask&#160;and&#160;print&#160;a&#160;string&#160;by&#160;a&#160;query&#160;dialog&#160;box<br/>&#160;PRINT&#160;FLOAT&#160;(INPUT&#160;“First&#160;number?”)&#160;+&#160;FLOAT&#160;(INPUT&#160;“Second&#160;number?”)&#160;;&#160;simple&#160;calculator<br/></paragraph>
+<paragraph role="heading" level="2" xml-lang="en-US" id="hd_2200">SLEEP</paragraph>
+<paragraph role="code" xml-lang="en-US" id="par_2210">&#160;SLEEP&#160;1000 ;&#160;wait&#160;for&#160;1000&#160;ms&#160;(1&#160;sec)<br/></paragraph>
+<paragraph role="heading" level="2" xml-lang="en-US" id="hd_2220">GLOBAL</paragraph>
+<paragraph role="paragraph" xml-lang="en-US" id="par_2230">Set global variables used in procedures.</paragraph>
+<paragraph role="code" xml-lang="en-US" id="par_2240">&#160;GLOBAL&#160;about<br/>&#160;about&#160;=&#160;“LibreLogo”<br/>&#160;<br/>&#160;TO&#160;example<br/>&#160;&#160;&#160;PRINT&#160;about<br/>&#160;&#160;&#160;GLOBAL&#160;about ;&#160;when&#160;we&#160;want&#160;to&#160;add&#160;a&#160;new&#160;value<br/>&#160;&#160;&#160;about&#160;=&#160;“new&#160;value&#160;for&#160;the&#160;global&#160;variable”<br/>&#160;END<br/>&#160;<br/>&#160;example<br/>&#160;PRINT&#160;about<br/></paragraph>
+<paragraph role="heading" level="2" xml-lang="en-US" id="hd_2250">Functions</paragraph>
+<paragraph role="heading" level="3" xml-lang="en-US" id="hd_2260">RANDOM</paragraph>
+<paragraph role="code" xml-lang="en-US" id="par_2270">&#160;PRINT&#160;RANDOM&#160;100 ;&#160;random&#160;float&#160;number&#160;(0&#160;&lt;=&#160;x&#160;&lt;&#160;100)<br/>&#160;PRINT&#160;RANDOM&#160;“text” ;&#160;random&#160;letter&#160;of&#160;the&#160;“text”<br/>&#160;PRINT&#160;RANDOM&#160;[1,&#160;2] ;&#160;random&#160;list&#160;element&#160;(1&#160;or&#160;2)<br/></paragraph>
+<paragraph role="heading" level="3" xml-lang="en-US" id="hd_2280">INT</paragraph>
+<paragraph role="code" xml-lang="en-US" id="par_2290">&#160;PRINT&#160;INT&#160;3.8 ;&#160;print&#160;3&#160;(integer&#160;part&#160;of&#160;3.8)<br/>&#160;PRINT&#160;INT&#160;RANDOM&#160;100 ;&#160;random&#160;integer&#160;number&#160;(0&#160;&lt;=&#160;x&#160;&lt;&#160;100)<br/>&#160;PRINT&#160;INT&#160;“7” ;&#160;convert&#160;the&#160;string&#160;parameter&#160;to&#160;integer<br/></paragraph>
+<paragraph role="heading" level="3" xml-lang="en-US" id="hd_2300">FLOAT</paragraph>
+<paragraph role="code" xml-lang="en-US" id="par_2310">&#160;;&#160;convert&#160;the&#160;string&#160;parameter&#160;to&#160;float&#160;number<br/>&#160;PRINT&#160;2&#160;*&#160;FLOAT&#160;“5.5” ;&#160;print&#160;11.0<br/></paragraph>
+<paragraph role="heading" level="3" xml-lang="en-US" id="hd_2320">STR</paragraph>
+<paragraph role="code" xml-lang="en-US" id="par_2330">&#160;;&#160;convert&#160;the&#160;number&#160;parameter&#160;to&#160;string<br/>&#160;PRINT&#160;“Result:&#160;”&#160;+&#160;STR&#160;5 ;&#160;print&#160;“Result:&#160;5”<br/>&#160;PRINT&#160;10&#160;*&#160;STR&#160;5 ;&#160;print&#160;5555555555<br/></paragraph>
+<paragraph role="heading" level="3" xml-lang="en-US" id="hd_2340">SQRT</paragraph>
+<paragraph role="code" xml-lang="en-US" id="par_2350">&#160;PRINT&#160;SQRT&#160;100 ;&#160;print&#160;10,&#160;square&#160;root&#160;of&#160;100<br/></paragraph>
+<paragraph role="heading" level="3" xml-lang="en-US" id="hd_2360">SIN</paragraph>
+<paragraph role="code" xml-lang="en-US" id="par_2370">&#160;PRINT&#160;SIN&#160;90&#160;*&#160;PI/180 ;&#160;print&#160;1.0&#160;(sinus&#160;of&#160;90°&#160;in&#160;radians)<br/></paragraph>
+<paragraph role="heading" level="3" xml-lang="en-US" id="hd_2380">COS</paragraph>
+<paragraph role="code" xml-lang="en-US" id="par_2390">&#160;PRINT&#160;COS&#160;0&#160;*&#160;PI/180 ;&#160;print&#160;1.0&#160;(sinus&#160;of&#160;0°&#160;in&#160;radians)<br/></paragraph>
+<paragraph role="heading" level="3" xml-lang="en-US" id="hd_2400">ROUND</paragraph>
+<paragraph role="code" xml-lang="en-US" id="par_2410">&#160;PRINT&#160;ROUND&#160;3.8 ;&#160;print&#160;4&#160;(rounding&#160;3.8)<br/>&#160;PRINT&#160;ROUND&#160;RANDOM&#160;100 ;&#160;random&#160;integer&#160;number&#160;(0&#160;&lt;=&#160;x&#160;&lt;=&#160;100)<br/></paragraph>
+<paragraph role="heading" level="3" xml-lang="en-US" id="hd_2420">ABS</paragraph>
+<paragraph role="code" xml-lang="en-US" id="par_2430">&#160;PRINT&#160;ABS&#160;-10 ;&#160;print&#160;10,&#160;absolute&#160;value&#160;of&#160;-10<br/></paragraph>
+<paragraph role="heading" level="3" xml-lang="en-US" id="hd_2440">COUNT</paragraph>
+<paragraph role="code" xml-lang="en-US" id="par_2450">&#160;PRINT&#160;COUNT&#160;“text” ;&#160;print&#160;4,&#160;character&#160;count&#160;of&#160;“text”<br/>&#160;PRINT&#160;COUNT&#160;[1,&#160;2,&#160;3] ;&#160;print&#160;3,&#160;size&#160;of&#160;the&#160;list<br/></paragraph>
+<paragraph role="heading" level="3" xml-lang="en-US" id="hd_2460">SET</paragraph>
+<paragraph role="code" xml-lang="en-US" id="par_2470">&#160;;&#160;Convert&#160;list&#160;to&#160;Python&#160;set<br/>&#160;PRINT&#160;SET&#160;[4,&#160;5,&#160;6,&#160;6] ;&#160;print&#160;{4,&#160;5,&#160;6}<br/>&#160;PRINT&#160;SET&#160;[4,&#160;5,&#160;6,&#160;6]&#160;|&#160;SET&#160;[4,&#160;1,&#160;9] ;&#160;print&#160;{1,&#160;4,&#160;5,&#160;6,&#160;9},&#160;union<br/>&#160;PRINT&#160;SET&#160;[4,&#160;5,&#160;6,&#160;6]&#160;&amp;&#160;SET&#160;[4,&#160;1,&#160;9] ;&#160;print&#160;{4},&#160;intersection<br/>&#160;PRINT&#160;SET&#160;([4,&#160;5,&#160;6,&#160;6])&#160;-&#160;SET&#160;[4,&#160;1,&#160;9] ;&#160;print&#160;{5,&#160;6},&#160;difference<br/>&#160;PRINT&#160;SET&#160;[4,&#160;5,&#160;6,&#160;6]&#160;^&#160;SET&#160;[4,&#160;1,&#160;9] ;&#160;print&#160;{1,&#160;5,&#160;6,&#160;9},&#160;symmetric&#160;difference&#160;&#160;<br/></paragraph>
+<paragraph role="heading" level="3" xml-lang="en-US" id="hd_2480">RANGE</paragraph>
+<paragraph role="code" xml-lang="en-US" id="par_2490">&#160;;&#160;Python-like&#160;list&#160;generation<br/>&#160;PRINT&#160;RANGE&#160;10 ;&#160;print&#160;[0,&#160;1,&#160;2,&#160;3,&#160;4,&#160;5,&#160;6,&#160;7,&#160;8,&#160;9]<br/>&#160;PRINT&#160;RANGE&#160;3&#160;10 ;&#160;print&#160;[3,&#160;4,&#160;5,&#160;6,&#160;7,&#160;8,&#160;9]<br/>&#160;PRINT&#160;RANGE&#160;3&#160;10&#160;3 ;&#160;print&#160;[3,&#160;6,&#160;9]<br/>&#160;<br/>&#160;FOR&#160;i&#160;in&#160;RANGE&#160;10&#160;50&#160;10&#160;[ ;&#160;loop&#160;for&#160;[10,&#160;20,&#160;30,&#160;40]<br/>&#160;&#160;&#160;FORWARD&#160;i<br/>&#160;&#160;&#160;LEFT&#160;90<br/>&#160;]<br/></paragraph>
+<paragraph role="heading" level="3" xml-lang="en-US" id="hd_2500">LIST</paragraph>
+<paragraph role="code" xml-lang="en-US" id="par_2510">&#160;;&#160;remove&#160;the&#160;repeating&#160;elements&#160;of&#160;a&#160;list&#160;using&#160;set&#160;and&#160;list&#160;conversion<br/>&#160;PRINT&#160;LIST&#160;(SET&#160;[1,&#160;3,&#160;5,&#160;5,&#160;2,&#160;1]) ;&#160;print&#160;[1,&#160;3,&#160;5,&#160;2]<br/></paragraph>
+<paragraph role="heading" level="3" xml-lang="en-US" id="hd_2520">TUPLE</paragraph>
+<paragraph role="paragraph" xml-lang="en-US" id="par_2530">Conversion to Python tuple (non-modifiable list)</paragraph>
+<paragraph role="code" xml-lang="en-US" id="par_2540">&#160;PRINT&#160;TUPLE&#160;[4,&#160;5]<br/></paragraph>
+<paragraph role="heading" level="3" xml-lang="en-US" id="hd_2550">SORTED</paragraph>
+<paragraph role="paragraph" xml-lang="en-US" id="par_2560">It returns with a sorted list.</paragraph>
+<paragraph role="code" xml-lang="en-US" id="par_2570">&#160;PRINT&#160;SORTED&#160;[5,&#160;1,&#160;3,&#160;4] ;&#160;print&#160;[1,&#160;3,&#160;4,&#160;5]<br/></paragraph>
+<paragraph role="heading" level="3" xml-lang="en-US" id="hd_2580">SUB</paragraph>
+<paragraph role="paragraph" xml-lang="en-US" id="par_2590">Substitue character sequences using regex (regular expression) patterns.</paragraph>
+<paragraph role="code" xml-lang="en-US" id="par_2600">&#160;PRINT&#160;SUB&#160;(“t”,&#160;“T”,&#160;“text”) ;&#160;print&#160;“Text”,&#160;replacing&#160;“t”&#160;with&#160;“T”<br/>&#160;PRINT&#160;SUB&#160;(“(.)”,&#160;“\\1\\1”,&#160;“text”)&#160;;&#160;print&#160;“tteexxtt”,&#160;doubling&#160;every&#160;characters<br/></paragraph>
+<paragraph role="heading" level="3" xml-lang="en-US" id="hd_2610">SEARCH</paragraph>
+<paragraph role="paragraph" xml-lang="en-US" id="par_2620">Search character sequences patterns using regex patterns.</paragraph>
+<paragraph role="code" xml-lang="en-US" id="par_2630">&#160;IF&#160;SEARCH&#160;(“\w”,&#160;word)&#160;[&#160;PRINT&#160;“Letter&#160;in&#160;the&#160;word.”&#160;]<br/></paragraph>
+<paragraph role="heading" level="3" xml-lang="en-US" id="hd_2640">FINDALL</paragraph>
+<paragraph role="paragraph" xml-lang="en-US" id="par_2650">Find all character sequences in the input string matching the given regex pattern.</paragraph>
+<paragraph role="code" xml-lang="en-US" id="par_2660">&#160;PRINT&#160;FINDALL(“\w+”,&#160;“Dogs,&#160;cats.”) ;&#160;print&#160;[“Dogs”,&#160;“cats”],&#160;the&#160;list&#160;of&#160;the&#160;words.<br/></paragraph>
+<paragraph role="heading" level="3" xml-lang="en-US" id="hd_2670">MIN</paragraph>
+<paragraph role="code" xml-lang="en-US" id="par_2680">&#160;PRINT&#160;MIN&#160;[1,&#160;2,&#160;3] ;&#160;print&#160;1,&#160;the&#160;lowest&#160;element&#160;of&#160;the&#160;list<br/></paragraph>
+<paragraph role="heading" level="3" xml-lang="en-US" id="hd_2690">MAX</paragraph>
+<paragraph role="code" xml-lang="en-US" id="par_2700">&#160;PRINT&#160;MAX&#160;[1,&#160;2,&#160;3] ;&#160;print&#160;3,&#160;the&#160;greatest&#160;element&#160;of&#160;the&#160;list<br/></paragraph>
+<paragraph role="heading" level="2" xml-lang="en-US" id="hd_2710">Color constants</paragraph>
+<paragraph role="code" xml-lang="en-US" id="par_2720">&#160;PENCOLOR&#160;“SILVER” ;&#160;set&#160;by&#160;name<br/>&#160;PENCOLOR&#160;[1] ;&#160;set&#160;by&#160;identifiers<br/>&#160;PENCOLOR&#160;“~SILVER” ;&#160;random&#160;silver&#160;color<br/>&#160;<br/></paragraph>
+<table><tablerow>
+<tablecell><paragraph role="tablecontent" xml-lang="en-US" id="par_2740">Identifier</paragraph></tablecell>
+<tablecell><paragraph role="tablecontent" xml-lang="en-US" id="par_2750">Name</paragraph></tablecell>
+</tablerow><tablerow>
+<tablecell><paragraph role="tablecontent" xml-lang="en-US" id="par_2770">0</paragraph></tablecell>
+<tablecell><paragraph role="tablecontent" xml-lang="en-US" id="par_2780">BLACK</paragraph></tablecell>
+</tablerow><tablerow>
+<tablecell><paragraph role="tablecontent" xml-lang="en-US" id="par_2800">1</paragraph></tablecell>
+<tablecell><paragraph role="tablecontent" xml-lang="en-US" id="par_2810">SILVER</paragraph></tablecell>
+</tablerow><tablerow>
+<tablecell><paragraph role="tablecontent" xml-lang="en-US" id="par_2830">2</paragraph></tablecell>
+<tablecell><paragraph role="tablecontent" xml-lang="en-US" id="par_2840">GRAY/GREY</paragraph></tablecell>
+</tablerow><tablerow>
+<tablecell><paragraph role="tablecontent" xml-lang="en-US" id="par_2860">3</paragraph></tablecell>
+<tablecell><paragraph role="tablecontent" xml-lang="en-US" id="par_2870">WHITE</paragraph></tablecell>
+</tablerow><tablerow>
+<tablecell><paragraph role="tablecontent" xml-lang="en-US" id="par_2890">4</paragraph></tablecell>
+<tablecell><paragraph role="tablecontent" xml-lang="en-US" id="par_2900">MAROON</paragraph></tablecell>
+</tablerow><tablerow>
+<tablecell><paragraph role="tablecontent" xml-lang="en-US" id="par_2920">5</paragraph></tablecell>
+<tablecell><paragraph role="tablecontent" xml-lang="en-US" id="par_2930">RED</paragraph></tablecell>
+</tablerow><tablerow>
+<tablecell><paragraph role="tablecontent" xml-lang="en-US" id="par_2950">6</paragraph></tablecell>
+<tablecell><paragraph role="tablecontent" xml-lang="en-US" id="par_2960">PURPLE</paragraph></tablecell>
+</tablerow><tablerow>
+<tablecell><paragraph role="tablecontent" xml-lang="en-US" id="par_2980">7</paragraph></tablecell>
+<tablecell><paragraph role="tablecontent" xml-lang="en-US" id="par_2990">FUCHSIA/MAGENTA</paragraph></tablecell>
+</tablerow><tablerow>
+<tablecell><paragraph role="tablecontent" xml-lang="en-US" id="par_3010">8</paragraph></tablecell>
+<tablecell><paragraph role="tablecontent" xml-lang="en-US" id="par_3020">GREEN</paragraph></tablecell>
+</tablerow><tablerow>
+<tablecell><paragraph role="tablecontent" xml-lang="en-US" id="par_3040">9</paragraph></tablecell>
+<tablecell><paragraph role="tablecontent" xml-lang="en-US" id="par_3050">LIME</paragraph></tablecell>
+</tablerow><tablerow>
+<tablecell><paragraph role="tablecontent" xml-lang="en-US" id="par_3070">10</paragraph></tablecell>
+<tablecell><paragraph role="tablecontent" xml-lang="en-US" id="par_3080">OLIVE</paragraph></tablecell>
+</tablerow><tablerow>
+<tablecell><paragraph role="tablecontent" xml-lang="en-US" id="par_3100">11</paragraph></tablecell>
+<tablecell><paragraph role="tablecontent" xml-lang="en-US" id="par_3110">YELLOW</paragraph></tablecell>
+</tablerow><tablerow>
+<tablecell><paragraph role="tablecontent" xml-lang="en-US" id="par_3130">12</paragraph></tablecell>
+<tablecell><paragraph role="tablecontent" xml-lang="en-US" id="par_3140">NAVY</paragraph></tablecell>
+</tablerow><tablerow>
+<tablecell><paragraph role="tablecontent" xml-lang="en-US" id="par_3160">13</paragraph></tablecell>
+<tablecell><paragraph role="tablecontent" xml-lang="en-US" id="par_3170">BLUE</paragraph></tablecell>
+</tablerow><tablerow>
+<tablecell><paragraph role="tablecontent" xml-lang="en-US" id="par_3190">14</paragraph></tablecell>
+<tablecell><paragraph role="tablecontent" xml-lang="en-US" id="par_3200">TEAL</paragraph></tablecell>
+</tablerow><tablerow>
+<tablecell><paragraph role="tablecontent" xml-lang="en-US" id="par_3220">15</paragraph></tablecell>
+<tablecell><paragraph role="tablecontent" xml-lang="en-US" id="par_3230">AQUA</paragraph></tablecell>
+</tablerow><tablerow>
+<tablecell><paragraph role="tablecontent" xml-lang="en-US" id="par_3250">16</paragraph></tablecell>
+<tablecell><paragraph role="tablecontent" xml-lang="en-US" id="par_3260">PINK</paragraph></tablecell>
+</tablerow><tablerow>
+<tablecell><paragraph role="tablecontent" xml-lang="en-US" id="par_3280">17</paragraph></tablecell>
+<tablecell><paragraph role="tablecontent" xml-lang="en-US" id="par_3290">TOMATO</paragraph></tablecell>
+</tablerow><tablerow>
+<tablecell><paragraph role="tablecontent" xml-lang="en-US" id="par_3310">18</paragraph></tablecell>
+<tablecell><paragraph role="tablecontent" xml-lang="en-US" id="par_3320">ORANGE</paragraph></tablecell>
+</tablerow><tablerow>
+<tablecell><paragraph role="tablecontent" xml-lang="en-US" id="par_3340">19</paragraph></tablecell>
+<tablecell><paragraph role="tablecontent" xml-lang="en-US" id="par_3350">GOLD</paragraph></tablecell>
+</tablerow><tablerow>
+<tablecell><paragraph role="tablecontent" xml-lang="en-US" id="par_3370">20</paragraph></tablecell>
+<tablecell><paragraph role="tablecontent" xml-lang="en-US" id="par_3380">VIOLET</paragraph></tablecell>
+</tablerow><tablerow>
+<tablecell><paragraph role="tablecontent" xml-lang="en-US" id="par_3400">21</paragraph></tablecell>
+<tablecell><paragraph role="tablecontent" xml-lang="en-US" id="par_3410">SKYBLUE</paragraph></tablecell>
+</tablerow><tablerow>
+<tablecell><paragraph role="tablecontent" xml-lang="en-US" id="par_3430">22</paragraph></tablecell>
+<tablecell><paragraph role="tablecontent" xml-lang="en-US" id="par_3440">CHOCOLATE</paragraph></tablecell>
+</tablerow><tablerow>
+<tablecell><paragraph role="tablecontent" xml-lang="en-US" id="par_3460">23</paragraph></tablecell>
+<tablecell><paragraph role="tablecontent" xml-lang="en-US" id="par_3470">BROWN</paragraph></tablecell>
+</tablerow><tablerow>
+<tablecell><paragraph role="tablecontent" xml-lang="en-US" id="par_3490">24</paragraph></tablecell>
+<tablecell><paragraph role="tablecontent" xml-lang="en-US" id="par_3500">INVISIBLE</paragraph></tablecell>
+</tablerow></table>
+</body></helpdocument>
diff --git a/librelogo/help/en-US/help.tree b/librelogo/source/help/en-US/help.tree
index 6bed2ffa1d2e..10d79ef2958a 100644
--- a/librelogo/help/en-US/help.tree
+++ b/librelogo/source/help/en-US/help.tree
@@ -10,9 +10,9 @@
-->
<tree_view>
-<help_section application="swriter" id="02" title="Presenter Console Keyboard Shortcuts">
- <node id="0211" title="LibreLogo">
- <topic id="LibreLogo/LibreLogo.xhp">LibreLogo</topic>
+<help_section application="swriter" id="02" title="LibreLogo">
+ <node id="0225" title="LibreLogo">
+ <topic id="help/org.openoffice.comp.pyuno.LibreLogo/LibreLogo.xhp">LibreLogo</topic>
</node>
</help_section>
</tree_view>
diff --git a/librelogo/source/help/en-US/tree_strings.xhp b/librelogo/source/help/en-US/tree_strings.xhp
new file mode 100644
index 000000000000..b56e4ffe200c
--- /dev/null
+++ b/librelogo/source/help/en-US/tree_strings.xhp
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<helpdocument version="1.0">
+
+<!--
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+-->
+
+<meta>
+ <topic id="tree_stringsxml" indexer="include" status="PUBLISH">
+ <title xml-lang="en-US" id="tit" localize="false">Note to translators:</title>
+ <filename>/mediawiki/help/treestrings.xhp</filename>
+ </topic>
+</meta>
+
+<body>
+ <comment>This file contains extra strings for the contents (*.tree) files. No indexing!</comment>
+ <switch select="sys"> <case select="OS2">
+ <paragraph role="heading" level="1" id="hd_id3150150" xml-lang="en-US" localize="false">File: help.tree</paragraph>
+ <paragraph role="paragraph" id="par_id3160160" xml-lang="en-US">&lt;help_section application=&quot;swriter&quot; id=&quot;02&quot; title=&quot;LibreLogo&quot;&gt;</paragraph>
+ <paragraph role="paragraph" id="par_id3170170" xml-lang="en-US">&lt;node id=&quot;0225&quot; title=&quot;LibreLogo&quot;&gt;</paragraph>
+ </case> </switch>
+</body>
+
+</helpdocument>
diff --git a/librelogo/icons/lc_arrowshapes.circular-arrow.png b/librelogo/source/icons/lc_arrowshapes.circular-arrow.png
index b7a5a9258ca7..b7a5a9258ca7 100644
--- a/librelogo/icons/lc_arrowshapes.circular-arrow.png
+++ b/librelogo/source/icons/lc_arrowshapes.circular-arrow.png
Binary files differ
diff --git a/librelogo/icons/lc_arrowshapes.circular-leftarrow.png b/librelogo/source/icons/lc_arrowshapes.circular-leftarrow.png
index ad2197838ca7..ad2197838ca7 100644
--- a/librelogo/icons/lc_arrowshapes.circular-leftarrow.png
+++ b/librelogo/source/icons/lc_arrowshapes.circular-leftarrow.png
Binary files differ
diff --git a/librelogo/icons/lc_arrowshapes.down-arrow.png b/librelogo/source/icons/lc_arrowshapes.down-arrow.png
index d3b81b9f6446..d3b81b9f6446 100644
--- a/librelogo/icons/lc_arrowshapes.down-arrow.png
+++ b/librelogo/source/icons/lc_arrowshapes.down-arrow.png
Binary files differ
diff --git a/librelogo/icons/lc_arrowshapes.up-arrow.png b/librelogo/source/icons/lc_arrowshapes.up-arrow.png
index 6ae84abe8376..6ae84abe8376 100644
--- a/librelogo/icons/lc_arrowshapes.up-arrow.png
+++ b/librelogo/source/icons/lc_arrowshapes.up-arrow.png
Binary files differ
diff --git a/librelogo/icons/lc_basicstop.png b/librelogo/source/icons/lc_basicstop.png
index ab9bddb4a98b..ab9bddb4a98b 100644
--- a/librelogo/icons/lc_basicstop.png
+++ b/librelogo/source/icons/lc_basicstop.png
Binary files differ
diff --git a/librelogo/icons/lc_editglossary.png b/librelogo/source/icons/lc_editglossary.png
index fcba68f1feb5..fcba68f1feb5 100644
--- a/librelogo/icons/lc_editglossary.png
+++ b/librelogo/source/icons/lc_editglossary.png
Binary files differ
diff --git a/librelogo/icons/lc_navigationbarleft.png b/librelogo/source/icons/lc_navigationbarleft.png
index 7e69c8045fbe..7e69c8045fbe 100644
--- a/librelogo/icons/lc_navigationbarleft.png
+++ b/librelogo/source/icons/lc_navigationbarleft.png
Binary files differ
diff --git a/librelogo/icons/lc_newdoc.png b/librelogo/source/icons/lc_newdoc.png
index 8e18798acdb2..8e18798acdb2 100644
--- a/librelogo/icons/lc_newdoc.png
+++ b/librelogo/source/icons/lc_newdoc.png
Binary files differ
diff --git a/librelogo/icons/lc_runbasic.png b/librelogo/source/icons/lc_runbasic.png
index da2d9d97badf..da2d9d97badf 100644
--- a/librelogo/icons/lc_runbasic.png
+++ b/librelogo/source/icons/lc_runbasic.png
Binary files differ
diff --git a/librelogo/icons/sc_arrowshapes.circular-arrow.png b/librelogo/source/icons/sc_arrowshapes.circular-arrow.png
index 35a5e9719607..35a5e9719607 100644
--- a/librelogo/icons/sc_arrowshapes.circular-arrow.png
+++ b/librelogo/source/icons/sc_arrowshapes.circular-arrow.png
Binary files differ
diff --git a/librelogo/icons/sc_arrowshapes.circular-leftarrow.png b/librelogo/source/icons/sc_arrowshapes.circular-leftarrow.png
index 62eeee65fba4..62eeee65fba4 100644
--- a/librelogo/icons/sc_arrowshapes.circular-leftarrow.png
+++ b/librelogo/source/icons/sc_arrowshapes.circular-leftarrow.png
Binary files differ
diff --git a/librelogo/icons/sc_arrowshapes.down-arrow.png b/librelogo/source/icons/sc_arrowshapes.down-arrow.png
index 7290cae2f1c4..7290cae2f1c4 100644
--- a/librelogo/icons/sc_arrowshapes.down-arrow.png
+++ b/librelogo/source/icons/sc_arrowshapes.down-arrow.png
Binary files differ
diff --git a/librelogo/icons/sc_arrowshapes.up-arrow.png b/librelogo/source/icons/sc_arrowshapes.up-arrow.png
index 5f9bcc197f81..5f9bcc197f81 100644
--- a/librelogo/icons/sc_arrowshapes.up-arrow.png
+++ b/librelogo/source/icons/sc_arrowshapes.up-arrow.png
Binary files differ
diff --git a/librelogo/icons/sc_basicstop.png b/librelogo/source/icons/sc_basicstop.png
index 1c6ff922a786..1c6ff922a786 100644
--- a/librelogo/icons/sc_basicstop.png
+++ b/librelogo/source/icons/sc_basicstop.png
Binary files differ
diff --git a/librelogo/icons/sc_editglossary.png b/librelogo/source/icons/sc_editglossary.png
index 4e14c031a4ae..4e14c031a4ae 100644
--- a/librelogo/icons/sc_editglossary.png
+++ b/librelogo/source/icons/sc_editglossary.png
Binary files differ
diff --git a/librelogo/icons/sc_navigationbarleft.png b/librelogo/source/icons/sc_navigationbarleft.png
index e544a7581f33..e544a7581f33 100644
--- a/librelogo/icons/sc_navigationbarleft.png
+++ b/librelogo/source/icons/sc_navigationbarleft.png
Binary files differ
diff --git a/librelogo/icons/sc_newdoc.png b/librelogo/source/icons/sc_newdoc.png
index e914775a2693..e914775a2693 100644
--- a/librelogo/icons/sc_newdoc.png
+++ b/librelogo/source/icons/sc_newdoc.png
Binary files differ
diff --git a/librelogo/icons/sc_runbasic.png b/librelogo/source/icons/sc_runbasic.png
index 8dd695c1e767..8dd695c1e767 100644
--- a/librelogo/icons/sc_runbasic.png
+++ b/librelogo/source/icons/sc_runbasic.png
Binary files differ
diff --git a/librelogo/pythonpath/en.properties b/librelogo/source/pythonpath/LibreLogo_en_US.properties
index f9a0d0b87ee6..f9a0d0b87ee6 100644
--- a/librelogo/pythonpath/en.properties
+++ b/librelogo/source/pythonpath/LibreLogo_en_US.properties
diff --git a/librelogo/pythonpath/librelogodummy_path.py b/librelogo/source/pythonpath/librelogodummy_path.py
index f600a162b1cf..f600a162b1cf 100644
--- a/librelogo/pythonpath/librelogodummy_path.py
+++ b/librelogo/source/pythonpath/librelogodummy_path.py
diff --git a/librelogo/Addons.xcu b/librelogo/source/registry/data/org/openoffice/Office/Addons.xcu
index 29080ed9194e..3ad52bbc0eb9 100644
--- a/librelogo/Addons.xcu
+++ b/librelogo/source/registry/data/org/openoffice/Office/Addons.xcu
@@ -1,9 +1,5 @@
<?xml version='1.0' encoding='UTF-8'?>
-<oor:component-data
- xmlns:oor="http://openoffice.org/2001/registry"
- xmlns:xs="http://www.w3.org/2001/XMLSchema"
- oor:name="Addons"
- oor:package="org.openoffice.Office">
+<oor:component-data xmlns:oor="http://openoffice.org/2001/registry" xmlns:xs="http://www.w3.org/2001/XMLSchema" oor:name="Addons" oor:package="org.openoffice.Office">
<node oor:name="AddonUI">
<node oor:name="OfficeToolBar">
<node oor:name="LibreLogo.OfficeToolBar" oor:op="replace">
@@ -15,8 +11,7 @@
<value>vnd.sun.star.script:librelogo-0.2.oxt|LibreLogo|LibreLogo.py$goforward?language=Python&amp;location=user:uno_packages</value>
</prop>
<prop oor:name="Title" oor:type="xs:string">
- <value xml:lang="en">Forward</value>
- <value xml:lang="hu">Előre</value>
+ <value xml:lang="en-US">Forward</value>
</prop>
<prop oor:name="Target" oor:type="xs:string">
<value>_self</value>
@@ -30,8 +25,7 @@
<value>vnd.sun.star.script:librelogo-0.2.oxt|LibreLogo|LibreLogo.py$gobackward?language=Python&amp;location=user:uno_packages</value>
</prop>
<prop oor:name="Title" oor:type="xs:string">
- <value xml:lang="en">Back</value>
- <value xml:lang="hu">Hátra</value>
+ <value xml:lang="en-US">Back</value>
</prop>
<prop oor:name="Target" oor:type="xs:string">
<value>_self</value>
@@ -45,8 +39,7 @@
<value>vnd.sun.star.script:librelogo-0.2.oxt|LibreLogo|LibreLogo.py$left?language=Python&amp;location=user:uno_packages</value>
</prop>
<prop oor:name="Title" oor:type="xs:string">
- <value xml:lang="en">Left</value>
- <value xml:lang="hu">Balra</value>
+ <value xml:lang="en-US">Left</value>
</prop>
<prop oor:name="Target" oor:type="xs:string">
<value>_self</value>
@@ -60,8 +53,7 @@
<value>vnd.sun.star.script:librelogo-0.2.oxt|LibreLogo|LibreLogo.py$right?language=Python&amp;location=user:uno_packages</value>
</prop>
<prop oor:name="Title" oor:type="xs:string">
- <value xml:lang="en">Right</value>
- <value xml:lang="hu">Jobbra</value>
+ <value xml:lang="en-US">Right</value>
</prop>
<prop oor:name="Target" oor:type="xs:string">
<value>_self</value>
@@ -75,8 +67,7 @@
<value>vnd.sun.star.script:librelogo-0.2.oxt|LibreLogo|LibreLogo.py$run?language=Python&amp;location=user:uno_packages</value>
</prop>
<prop oor:name="Title" oor:type="xs:string">
- <value xml:lang="en">Start (the program in the Writer document)</value>
- <value xml:lang="hu">Indítás (a Writer dokumentumban lévő programé)</value>
+ <value xml:lang="en-US">Start (the program in the Writer document)</value>
</prop>
<prop oor:name="Target" oor:type="xs:string">
<value>_self</value>
@@ -90,8 +81,7 @@
<value>vnd.sun.star.script:librelogo-0.2.oxt|LibreLogo|LibreLogo.py$stop?language=Python&amp;location=user:uno_packages</value>
</prop>
<prop oor:name="Title" oor:type="xs:string">
- <value xml:lang="en">Stop</value>
- <value xml:lang="hu">Leállítás</value>
+ <value xml:lang="en-US">Stop</value>
</prop>
<prop oor:name="Target" oor:type="xs:string">
<value>_self</value>
@@ -105,8 +95,7 @@
<value>vnd.sun.star.script:librelogo-0.2.oxt|LibreLogo|LibreLogo.py$home?language=Python&amp;location=user:uno_packages</value>
</prop>
<prop oor:name="Title" oor:type="xs:string">
- <value xml:lang="en">Home</value>
- <value xml:lang="hu">Haza</value>
+ <value xml:lang="en-US">Home</value>
</prop>
<prop oor:name="Target" oor:type="xs:string">
<value>_self</value>
@@ -120,8 +109,7 @@
<value>vnd.sun.star.script:librelogo-0.2.oxt|LibreLogo|LibreLogo.py$clearscreen?language=Python&amp;location=user:uno_packages</value>
</prop>
<prop oor:name="Title" oor:type="xs:string">
- <value xml:lang="en">Clear screen</value>
- <value xml:lang="hu">Képernyőtörlés</value>
+ <value xml:lang="en-US">Clear screen</value>
</prop>
<prop oor:name="Target" oor:type="xs:string">
<value>_self</value>
@@ -132,7 +120,7 @@
<value>vnd.sun.star.script:librelogo-0.2.oxt|LibreLogo|LibreLogo.py$commandline?language=Python&amp;location=user:uno_packages</value>
</prop>
<prop oor:name="Title" oor:type="xs:string">
- <value xml:lang="en">FORWARD (fd), BACK (bk), LEFT (lt), RIGHT (rt) • fd 72, bk 1cm + 1in + 1", lt 90, rt 1.5h
+ <value xml:lang="en-US">FORWARD (fd), BACK (bk), LEFT (lt), RIGHT (rt) • fd 72, bk 1cm + 1in + 1", lt 90, rt 1.5h
REPEAT num [ commands ], REPCOUNT • repeat 100 [ fd repcount lt 91 ]
PENUP (pu), PENDOWN (pd), FILL, CLOSE, HOME, CLEARSCREEN (cs), PENSIZE (ps 5)
PENCOLOR (pc), FILLCOLOR (fc) • pc “red”, pc 0xff0000, fc [255, 0, 0], fc any
@@ -143,17 +131,6 @@ FONTFAMILY “Font” FONTSIZE 9 FONTCOLOR “red” FONTWEIGHT “bold”
TO name arguments ... END, TO name arguments, OUTPUT return_value, END
RANDOM, SQRT, INT, COUNT, ABS, SIN, COS, INPUT • ps random 100, print count “string”
PICTURE (pic) [ ... ] • group different shapes: pic [ fd 100 circle 50 ]</value>
-<value xml:lang="hu">ELŐRE (e), HÁTRA (h), BALRA (b), JOBBRA (j) • e 72, h 1cm + 1in + 1", b 90, j 1,5ó
-ISMÉTLÉS (ism) hányszor [ parancsok ], HÁNYADIK • ism 100 [ e hányadik b 91 ]
-TOLLATFEL (tf), TOLLATLE (tl), TÖLT, ZÁR, HAZA, TÖRÖLKÉP, TOLLVASTAGSÁG (tv 5)
-TOLLSZÍN (tsz), TÖLTŐSZÍN (tlsz) • tsz „kék”, tsz 0xff0000, tsz [0, 0, 0], tsz tetsz
-HELY, IRÁNY • hely [0, 0], hely oldalméret, irány 60, irány [0, 0]
-KÖR, ELLIPSZIS, NÉGYZET, TÉGLALAP • kör 100, ellipszis [50, 100], négyzet 100
-CÍMKE, SZÖVEG, KI • „címke szöveg”, kör 200 szöveg „körfelirat” ki 5+5
-BETŰCSALÁD „betű” BETŰMÉRET 24 BETŰSZÍN „kék” BETŰVASTAGSÁG „vastag”
-EZ név változók ... VÉGE, EZ név változók, EREDMÉNY visszatérési_érték, VÉGE
-VÉLETLENSZÁM (vszám), GYÖK, EGÉSZ, DARAB (db), BE • e vszám 100, ki db „betűk”
-KÉP [ ... ] • alakzatok csoportosítása: kép [ e 100 kör 50 ]</value>
</prop>
<prop oor:name="Target" oor:type="xs:string">
<value>_self</value>
@@ -176,8 +153,7 @@ KÉP [ ... ] • alakzatok csoportosítása: kép [ e 100 kör 50 ]</value>
<value>vnd.sun.star.script:librelogo-0.2.oxt|LibreLogo|LibreLogo.py$__translate__?language=Python&amp;location=user:uno_packages</value>
</prop>
<prop oor:name="Title" oor:type="xs:string">
- <value xml:lang="en">Uppercase commands, also translate them to the language of the document</value>
- <value xml:lang="hu">Parancsok nagybetűsítése és fordítása a dokumentum nyelvére</value>
+ <value xml:lang="en-US">Uppercase commands, also translate them to the language of the document</value>
</prop>
<prop oor:name="Target" oor:type="xs:string">
<value>_self</value>
diff --git a/librelogo/Office/UI/StartModuleWindowState.xcu b/librelogo/source/registry/data/org/openoffice/Office/UI/StartModuleWindowState.xcu
index c772f2aa1594..4fb8fd9ae34f 100644
--- a/librelogo/Office/UI/StartModuleWindowState.xcu
+++ b/librelogo/source/registry/data/org/openoffice/Office/UI/StartModuleWindowState.xcu
@@ -1,14 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
-<oor:component-data xmlns:oor="http://openoffice.org/2001/registry"
- xmlns:xs="http://www.w3.org/2001/XMLSchema"
- oor:name="StartModuleWindowState"
- oor:package="org.openoffice.Office.UI">
+<oor:component-data xmlns:oor="http://openoffice.org/2001/registry" xmlns:xs="http://www.w3.org/2001/XMLSchema" oor:name="StartModuleWindowState" oor:package="org.openoffice.Office.UI">
<node oor:name="UIElements">
<node oor:name="States">
<node oor:name="private:resource/toolbar/addon_LibreLogo.OfficeToolBar" oor:op="replace">
<prop oor:name="UIName" oor:type="xs:string">
- <value lang="en">Logo</value>
- <value lang="hu">Logo</value>
+ <value xml:lang="en-US">Logo</value>
</prop>
<prop oor:name="Visible" oor:type="xs:boolean">
<value>false</value>
diff --git a/librelogo/Office/UI/WriterWindowState.xcu b/librelogo/source/registry/data/org/openoffice/Office/UI/WriterWindowState.xcu
index b10980cd3262..3a37baaac011 100644
--- a/librelogo/Office/UI/WriterWindowState.xcu
+++ b/librelogo/source/registry/data/org/openoffice/Office/UI/WriterWindowState.xcu
@@ -1,14 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
-<oor:component-data xmlns:oor="http://openoffice.org/2001/registry"
- xmlns:xs="http://www.w3.org/2001/XMLSchema"
- oor:name="WriterWindowState"
- oor:package="org.openoffice.Office.UI">
+<oor:component-data xmlns:oor="http://openoffice.org/2001/registry" xmlns:xs="http://www.w3.org/2001/XMLSchema" oor:name="WriterWindowState" oor:package="org.openoffice.Office.UI">
<node oor:name="UIElements">
<node oor:name="States">
<node oor:name="private:resource/toolbar/addon_LibreLogo.OfficeToolBar" oor:op="replace">
<prop oor:name="UIName" oor:type="xs:string">
- <value lang="en">Logo</value>
- <value lang="hu">Logo</value>
+ <value xml:lang="en-US">Logo</value>
</prop>
<prop oor:name="Visible" oor:type="xs:boolean">
<value>false</value>