<?xml version="1.0" encoding="UTF-8" ?>
<sect1 id="specials">
<sect1info>
<title>Erid ja sisseehitatud globaalsed muutujad</title>
</sect1info>
<title>Erid ja sisseehitatud globaalsed muutujad</title>
<para>Erid on &kommander;i töödeldavad funktsioonid. Tuleks arvestada, et &kommander;i vana parsija kasutamisel käivitatakse esmalt kõik &kommander;i erid ja alles seejärel skript. Enamasti ei kujuta see endast probleemi, kuid igatahese tasuks see kõrva taha panna. </para>
<note><para>Alltoodud nimekiri on mõnevõrra aegunud. Saadaolevate funktsioonide kohta teabe hankimiseks on soovitatav kasutada <guilabel>funktsioonibrauserit</guilabel>. <guilabel>Funktsioonibrauseri</guilabel> saab avada <guilabel>Kommanderi tekst</guilabel>iredaktoris, klõpsates nupule <guilabel>Funktsioon...</guilabel> </para>
</note>
<variablelist>
<varlistentry>
<term><function>@dcop(<parameter>appId</parameter>, <parameter>objekt</parameter>, <parameter>funktion</parameter>, <parameter>argumendid</parameter>)</function></term>
<listitem>
<para>Sooritab &DCOP; väljakutse. @dcop(<quote>kmail</quote>, <quote>KMailIface</quote>, <quote>checkMail()</quote>, <quote></quote>) </para>
</listitem>
</varlistentry>
<varlistentry>
<term><function>@dcopid</function></term>
<listitem>
<para>Protsessi &DCOP; ID. (kmdr-executor-@pid) </para>
</listitem>
</varlistentry>
<varlistentry>
<term><function>@dialog(<parameter>dialoog</parameter>[,<parameter>parameetrid</parameter>])</function></term>
<listitem>
<para>Käivitab määratud Kommanderi dialoogi. Seda otsitakse esmalt dialoogi ja seejärel aktiivses kataloogis. Sellega kutsutakse välja Executor ning määratakse vaikekataloogiks Kommanderi rakenduse kataloog. Parameetreid võib edastada UNIX-i tavapärasel viisil või siis anda nimega parameetrid, näiteks <quote>muutuja=väärtus</quote>. Edastatud parameetrid leiab seejärel globaalsest puhvrist. @global(muutuja) tagastab <quote>väärtuse</quote>. </para>
</listitem>
</varlistentry>
<varlistentry>
<term><function>@env(<parameter>keskkonnaMuutuja</parameter>)</function></term>
<listitem>
<para>Kasutab määratud keskkonnamuutujat. @enc(PWD) näiteks kasutab $PWD. Arvesta, et <quote>$</quote> kuulub shelli ja seda ei tohi siin pruukida. </para>
</listitem>
</varlistentry>
<varlistentry>
<term><function>@exec(<parameter>käsk</parameter>)</function></term>
<listitem>
<para>Tagastab määratud käsu käivitamise väljundi. @exec(ls -l) </para>
</listitem>
</varlistentry>
<varlistentry>
<term><function>@execBegin ... @execEnd</function></term>
<listitem>
<para>Sama, mis <function>@exec</function>, kuid toetab ka mitmerealisi skripte. See on mõistlik mitmete skriptikeelte puhul. </para>
<itemizedlist>
<listitem><para><function>@execBegin(php)</function></para></listitem>
<listitem><para><function>@execBegin</function>(#!/usr/bin/php)</para></listitem>
</itemizedlist>
<para>Esimene kasutab <acronym>PHP</acronym> käivitatava faili nime. &kommander; otsib otsinguteelt (PATH) <application>php</application>-d ja kui ei leia, uurib, ega see pole &kommander;is määratud asuma kuskil mujal kui sinu otsinguteel. Kui mitte, siis antakse kasutajale teada, et seda ei leitud. Teine võimalus kasutab tavapärast <quote>kupatust</quote> (shebang), millel on omad plussid, kuid ka omad miinused. Kui sul on näiteks <acronym>PHP5</acronym> koopia asukohas <filename>/usr/local/bin</filename>, siis seda ei leita, sest otsitakse ainult asukohast <filename>/usr/bin</filename>. Seepärast on <quote>kupatuse</quote> kasutamine kahe otsaga asi ning eriti juhul, kui sa faile ja dialooge ka teistega jagada soovid, ei oleks seda mõttekas kasutada.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><function>@global(<parameter>muutuja</parameter>)</function></term>
<listitem>
<para>Kasutab määratud globaalse muutuja väärtust. </para>
</listitem>
</varlistentry>
<varlistentry>
<term><function>@null</function></term>
<listitem>
<para>Tagastab nulli. Kui näiteks Kommander kontrollib käivitamisel tühja widgetText'i, väldib see vigu.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><function>@parentPid</function></term>
<listitem>
<para>Eellasprotsessi &PID;. </para>
</listitem>
</varlistentry>
<varlistentry>
<term><function>@pid</function></term>
<listitem>
<para>Protsessi &PID;. </para>
</listitem>
</varlistentry>
<varlistentry>
<term><function>@readSetting(<parameter>võti</parameter>, <parameter>vaikeVäärtus</parameter>)</function></term>
<listitem>
<para>loeb väärtuse failist <filename>kommanderrc</filename>. Vaata ka @writeSetting. </para>
</listitem>
</varlistentry>
<varlistentry>
<term><function>@selectedWidgetText</function></term>
<listitem>
<para>Vidina valitud sisu, mis võib näidata enam kui üht väärtust, näiteks vidinate loendit. </para>
</listitem>
</varlistentry>
<varlistentry>
<term><function>@setGlobal(<parameter>muutuja</parameter>, <parameter>väärtus</parameter>)</function></term>
<listitem>
<para>Määrab globaalsele muutujale antud väärtuse. </para>
</listitem>
</varlistentry>
<varlistentry>
<term><function>@widgetText</function></term>
<listitem>
<para>Vidina sisu. </para>
</listitem>
</varlistentry>
<varlistentry>
<term><function>@writeSetting(<parameter>võti</parameter>, <parameter>väärtus</parameter>)</function></term>
<listitem>
<para>kirjutab väärtuse faili <filename>kommanderrc</filename>. Kõik &kommander;i dialoogid kasutavad faili kommanderrc, igal dialoogil on selles oma lõik. </para>
</listitem>
</varlistentry>
</variablelist>
<sect2 id="arrays">
<title>Massiivifunktsioonide grupp</title>
<variablelist>
<varlistentry>
<term><function>@Array.values(<parameter>massiiv</parameter>)</function></term>
<listitem>
<para>Tagastab massiivi kõigi väärtuste reavahetusmärkidega eraldatud loendi. Kasulik näiteks massiiviga tutvumisel.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><function>@Array.keys(<parameter>massiiv</parameter>)</function></term>
<listitem>
<para>Tagastab massiivi kõigi võtmete reavahetusmärkidega eraldatud loendi.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><function>@Array.setValue(<parameter>massiiv</parameter>, <parameter>võti</parameter>, <parameter>väärtus</parameter>)</function></term>
<listitem>
<para>Määrab massiivi elemendile võtme ja väärtuse. Kui massiivi ei ole, see luuakse.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><function>@Array.clear(<parameter>massiiv</parameter>)</function></term>
<listitem>
<para>Eemaldab kõik elemendid massiivist.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><function>@Array.count(<parameter>massiiv</parameter>)</function></term>
<listitem>
<para>Tagastab massiivi elementide arvu.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><function>@Array.value(<parameter>massiiv</parameter>,<parameter>võti</parameter>)</function></term>
<listitem>
<para>Tagastab antud võtmega seostatud väärtuse.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><function>@Array.remove(<parameter>massiiv</parameter>,<parameter>võti</parameter>)</function></term>
<listitem>
<para>Eemaldab antud võtmega elemendi massiivist.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><function>@Array.fromString(<parameter>massiiv</parameter>,<parameter>string</parameter>)</function></term>
<listitem>
<para>Lisab stringi kõik elemendid massiivi. String peab olema kujul <emphasis>võti\tväärtus\n</emphasis>."</para>
</listitem>
</varlistentry>
<varlistentry>
<term><function>@Array.toString(<parameter>massiiv</parameter>,<parameter>string</parameter>)</function></term>
<listitem>
<para>"Tagastab massiivi kõik elemendid kujul <emphasis>võti\tväärtus\n</emphasis>."</para>
</listitem>
</varlistentry>
</variablelist>
</sect2>
<sect2 id="files">
<title>Failifunktsioonide grupp</title>
<variablelist>
<varlistentry>
<term><function>@File.read(<parameter>fail</parameter>)</function></term>
<listitem>
<para>Tagastab antud faili sisu.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><function>@File.write(<parameter>fail</parameter><parameter>string</parameter>)</function></term>
<listitem>
<para>Salvestab antud stringi faili.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><function>@File.append(<parameter>fail</parameter><parameter>string</parameter>)</function></term>
<listitem>
<para>Lisab antud stringi faili lõppu.</para>
</listitem>
</varlistentry>
</variablelist>
</sect2>
<sect2 id="strings">
<title>Stringifunktsioonide grupp</title>
<variablelist>
<varlistentry>
<term><function>@String.length(<parameter>string</parameter>)</function></term>
<listitem>
<para>Tagastab sümbolite arvu stringis.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><function>@String.contains(<parameter>string</parameter>,<parameter>alamstring</parameter>)</function></term>
<listitem>
<para>Kontrollib, kas string sisaldab antud alamstringi.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><function>@String.find(<parameter>string</parameter>)</function></term>
<listitem>
<para>Tagastab alamstringi asukoha stringis või -1, kui seda ei leita."</para>
<note><para>Järgmises versioonis saab sellele lisada ka täisarvu, mis tähistab järgmise otsingu alguskohta.</para></note>
</listitem>
</varlistentry>
<varlistentry>
<term><function>@String.left(<parameter>string</parameter>, <parameter>täisarv</parameter>)</function></term>
<listitem>
<para>Tagastab stringi esimesed n sümbolit.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><function>@String.right(<parameter>string</parameter>, <parameter>täisarv</parameter>)</function></term>
<listitem>
<para>Tagastab stringi viimased n sümbolit.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><function>@String.mid(<parameter>string</parameter>, <parameter>täisarv start</parameter>, <parameter>täisarv end</parameter>)</function></term>
<listitem>
<para>Tagastab stringi alamstringi alates antud asukohast.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><function>@String.remove(<parameter>string</parameter>, <parameter>alamstring</parameter>)</function></term>
<listitem>
<para>Eemaldab kõik antud alamstringid.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><function>@String.replace(<parameter>string</parameter>, <parameter>alamstring find</parameter>, <parameter>alamstring replace</parameter>)</function></term>
<listitem>
<para>Asendab kõik antud alamstringid antud asendusega.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><function>@String.upper(<parameter>string</parameter>)</function></term>
<listitem>
<para>Muudab stringi suurtäheliseks.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><function>@String.lower(<parameter>string</parameter>)</function></term>
<listitem>
<para>Muudab stringi väiketäheliseks.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><function>@String.compare(<parameter>string</parameter>, <parameter>string</parameter>)</function></term>
<listitem>
<para>Võrdleb kaht stringi. Tagastab 0, kui need on võrdsed, -1, kui esimene on madalam ja 1, kui esimene on kõrgem.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><function>@String.isEmpty(<parameter>string</parameter>)</function></term>
<listitem>
<para>Kontrollib, kas string on tühi.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><function>@String.isNumber(<parameter>string</parameter>)</function></term>
<listitem>
<para>Kontrollib, kas string on kehtiv arv.</para>
</listitem>
</varlistentry>
</variablelist>
</sect2>
<sect2 id="builtins">
<title>Sisseehitatud globaalsed muutujad</title>
<para>Sisseehitatud globaalseid muutujaid saab kasutada nagu tavalisi globaalseid muutujaid, andes nende ees <function>@global</function>.</para>
<variablelist>
<varlistentry>
<term><function>@global(_KDDIR)</function></term>
<listitem>
<para>Aktiivse dialoogi kataloog.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><function>@global(_NIMI)</function></term>
<listitem><para>Dialoogi nimi.</para></listitem>
</varlistentry>
</variablelist>
</sect2>
</sect1>