akfavatar-term(3)                                            akfavatar-term(3)



NNAAMMEE
       akfavatar-term  - Modul zum Ausführen von Terminal-basierten Programmen
       in AKFAvatar

SSYYNNTTAAXX
       term = require "akfavatar-term"

       HHiinnwweeiiss: Man muss eine globale Variable verwenden, wenn  man  die  APC-
       Schnittstelle verwenden will.

BBEESSCCHHRREEIIBBUUNNGG
       Dieses  Modul  kann  man verwenden um allgemeine Terminal-basierte Pro‐
       gramme innerhalb von AKFAvatar laufen zu lassen.   Die  Terminal-Emula‐
       tion  emuliert  eine  Linux-Textkonsole  (nicht nur auf Linux-basierten
       Systemen).

       Es kann auch dafür verwendet werden, um spezifische Programme für AKFA‐
       vatar   zu  schreiben,  in  Programmiersprachen,  die  ansonsten  nicht
       unterstützt werden.  Es gibt  ein  paar  Möglichkeiten  mit  denen  das
       ausführende  Skript  und  das auszuführende Programm miteinander kommu‐
       nizieren können.

       AAcchhttuunngg: Dieses Modul steht nicht für allen Plattformen zur  Verfügung!
       Insbesondere nicht für Windows.

       tteerrmm..ssttaarrttddiirr((_[_V_e_r_z_e_i_c_h_n_i_s_]))
              Legt   das   Anfangsverzeichnis   für   den  nächsten  tteerrmm..eexxee‐‐
              ccuuttee(())-Befehl fest.  Wenn kein _V_e_r_z_e_i_c_h_n_i_s angegeben wird,  wird
              die vorherige Einstellung dadurch gelöscht.

              HHiinnwweeiiss:  Das  Arbeitsverzeichnis  des ausführenden Skriptes und
              des ausgeführten Programmes sind voneinander unabhängig!

       tteerrmm..hhoommeeddiirr(())
              Setzt  das  Anfangsverzeichnis  für   den   nächsten   tteerrmm..eexxee‐‐
              ccuuttee(())-Befehl auf das Heimatverzeichnis des Benutzers.

              HHiinnwweeiiss:  Das  Arbeitsverzeichnis  des ausführenden Skriptes und
              des ausgeführten Programmes sind voneinander unabhängig!

       tteerrmm..ccoolloorr((_t_r_u_e_|_f_a_l_s_e))
              Schaltet die Farbunterstützung ein oder aus.   Der  Terminal-Typ
              mit Farben ist „linux“, ohne Farben „linux-m“.

       tteerrmm..sseetteennvv((_V_a_r_i_a_b_l_e_, _W_e_r_t))
              Setzt die angegebene Umgebungs_v_a_r_i_a_b_l_e auf den angegebenen _W_e_r_t.
              Das  hat  auch Einfluss auf Programme, die mit ooss..eexxeeccuuttee(()) oder
              iioo..ppooppeenn(()) ausgeführt werden.

       tteerrmm..uunnsseetteennvv((_V_a_r_i_a_b_l_e))
              Löscht die angegebene Umgebungs_v_a_r_i_a_b_l_e.
              Das hat auch Einfluss auf Programme, die mit  ooss..eexxeeccuuttee(())  oder
              iioo..ppooppeenn(()) ausgeführt werden.

       tteerrmm..eexxeeccuuttee((_[_P_r_o_g_r_a_m_m _[_, _A_r_g_u_m_e_n_t_e_]_]))
              Führt  das angegebene _P_r_o_g_r_a_m_m mit den angegebenen _A_r_g_u_m_e_n_t_en in
              der Terminal-Emulation aus.  Wenn kein _P_r_o_g_r_a_m_m angegeben  wird,
              wird die Standard-Shell ausgeführt.

   AAPPCC--SScchhnniittttsstteellllee
       Die  „Application Program Command“ (APC) Schnittstelle ist eine Methode
       mit der das ausgeführte Programm mit dem Lua-Interpreter des ausführen‐
       den  Programmes  kommunizieren  kann.   Um dies zu verwenden sendet das
       ausgeführte Programm Escape-Sequenzen der Art, wie ESC +  „_“,  gefolgt
       vom  Befehl,  abgeschlossen  mit ESC + „\“.  Die Ausgabe muss eventuell
       noch einen Flush bekommen, um einen sofortigen Effekt zu erzielen.

       Zum Beispiel in C:

       static void
       APC (const char *s)
       {
         fprintf (stdout, "\033_%s\033\\", s);
         fflush (stdout);
       }

       Die  Befehle  können  Lua-Funktionsaufrufe   sein,   insbesondere   die
       „avt.“-Befehle von „lua-akfavatar“ (siehe „lua-akfavatar-ref“).
       Bis  zu  1024  Zeichen  können gesendet werden.  Das bedeutet, man kann
       keinen komplizierten Code vom ausgeführten Programm senden.  Allerdings
       kann  man  im  Lua-Skript,  das das Programm aufruft globale Funktionen
       definieren, die dann auch mit der APC-Schnittstelle aufrufbar sind.

       Als Konvention sollte  das  aufrufende  Skript  eine  Umgebungsvariable
       namens _„_A_P_C_“ definieren, die die verfügbaren Funktionen beschreibt.

       Zum Beispiel:

         term.setenv("APC", _VERSION .. ", lua-akfavatar")

       tteerrmm..sseenndd((_S_t_r_i_n_g))
              Sendet  einen  String  an das ausgeführte Programm, so als ob es
              von der Tastatur eingegeben worden wäre.  Das kann man  nur  von
              der APC-Schnittstelle (siehe oben) verwenden.
              Wenn  das  ausgeführte Programm zeilenorientiert ist, sollte der
              String mit einem „\r“ (wie Return) abgeschlossen werden.

       tteerrmm..ddeecciiddee((_S_t_r_i_n_g_1 _[_,_S_t_r_i_n_g_2_]))
              Zeige Plus-/Minus-Knöpfe und abhängig von dieser  Auswahl  sende
              _S_t_r_i_n_g_1  oder  _S_t_r_i_n_g_2 an das ausgeführte Programm, so als ob es
              von Tastatur eingegeben worden wäre.  Das kann man nur  von  der
              APC-Schnittstelle (siehe oben) verwenden.
              Wenn  das  ausgeführte  Programm  zeilenorientiert  ist, sollten
              beide Strings angegeben werden und beide  mit  einem  „\r“  (wie
              Return) abgeschlossen werden.

SSIIEEHHEE AAUUCCHH
       lluuaa--aakkffaavvaattaarr(1) lluuaa(1) lluuaa--aakkffaavvaattaarr--rreeff(3) aakkffaavvaattaarr--ggrraapphhiicc(3) aakkffaa‐‐
       vvaattaarr..uuttff88(3)



AKFAvatar                         2012-07-21                 akfavatar-term(3)
