Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ curses(3X) — Reliant UNIX 5.44c4

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

mv(3X)

no(3X)

w(3X)

terminfo(4)

curses(5)

term(5)

curses(3X)                   (Enhanced Curses)                   curses(3X)

NAME
     curses - Programmpaket für die Bearbeitung und Optimierung von
     zeichenorientierten Bildschirmen

SYNTAX
     cc [flag ...] file ... -lcurses [library ...]

     #include <curses.h>

BESCHREIBUNG
     Mit den in curses enthaltenen Bibliotheksfunktionen kann der Benutzer
     zeichenorientierte Bildschirme bei geeigneter Optimierung terminalun-
     abhängig aktualisieren. Bei der Kompilierung mit cc von Programmen,
     die diese Routinen verwenden, muß die Option -lcurses in der Kommando-
     zeile angegeben werden.

     Das curses-Paket enthält Funktionen zum Bearbeiten der gesamten Bild-
     schirmanzeige sowie von Fenstern und kleinen Fenstern (Pads), zur Aus-
     gabe in Fenstern und kleinen Fenstern, zum Lesen der Terminaleingabe,
     zur Steuerung von Terminal- und curses-Ein-/Ausgabeoptionen, zum
     Abfragen der Umgebungseinstellungen, zum Bearbeiten von Farben, zur
     Verwendung von SLKs (Soft Label Keys - nicht-festverdrahteten Funkti-
     onstasten), für den Zugriff auf die Datenbasis terminfo und für den
     Zugriff auf curses-Low-Level-Funktionen.

     Zum Initialisieren der Funktionen muß zunächst die Funktion initscr()
     oder newterm() aufgerufen werden; erst dann können andere Funktionen
     für Fenster und Bildschirme verwendet werden. Vor dem Verlassen muß
     die Funktion endwin() aufgerufen werden. Zur Einzelzeicheneingabe ohne
     Echo-Funktion (dies ist für die meisten interaktiven, bildschirmorien-
     tierten Programme erforderlich) sollte die folgende Sequenz verwendet
     werden:

          initscr,cbreak,noecho;

     Die meisten Programme verwenden zusätzlich die Sequenz:

          nonl,intrflush(stdscr,FALSE),keypad(stdscr,TRUE);

     Bevor ein curses-Programm ausgeführt wird, müssen die Tabulatoren des
     Terminals gesetzt und die Strings für die Initialisierung ausgegeben
     werden, sofern sie definiert sind. Führen Sie hierzu das Kommando tput
     init aus, nachdem die Shell-Umgebungsvariable TERM exportiert worden
     ist. [Nähere Informationen hierzu finden Sie unter terminfo(4).]











Seite 1                      Reliant UNIX 5.44               Gedruckt 11/98

curses(3X)                   (Enhanced Curses)                   curses(3X)

   Bildschirme, Fenster und Terminals

     Bildschirm (Screen)

     Ein Bildschirm ist das physische Ausgabegerät des Terminals. In curses
     ist ein Datentyp SCREEN ein nicht transparenter Datentyp, der einem
     Terminal zugeordnet ist. Jedes Fenster (siehe unten) ist einem SCREEN
     zugeordnet.

     Fenster (Windows)

     Die curses-Funktionen erlauben die Bearbeitung von Fensterobjekten,
     die man sich als zweidimensionale Zeichen-Arrays und deren Darstellun-
     gen vorstellen kann. Ein Standardfenster mit dem Namen stdscr, das die
     Größe des Terminalbildschirms hat, ist bereits vorhanden. Weitere Fen-
     ster können mit newwin() erstellt werden.

     Variablen, die als WINDOW * deklariert sind, verweisen auf Fenster
     (und auf untergeordnete Fenster, abgeleitete Fenster und kleine Fen-
     ster (Pads) wie weiter unten beschrieben). Diese Datenstrukturen wer-
     den mit den Funktionen bearbeitet, die auf den 3X-Seiten des Referenz-
     handbuchs beschrieben sind. Hierbei sind move() und addch() die grund-
     legenden Funktionen. Mit den allgemeineren Versionen dieser Funktionen
     kann ein Prozeß ein Fenster angeben.

     Nachdem Funktionen zur Fensterbearbeitung verwendet worden sind, wird
     refresh() aufgerufen; hierdurch wird curses aufgefordert, das Aussehen
     des zeichenorientierten Bildschirms an das des Standardfensters stdscr
     anzupassen.

     Zeichen zum Zeichnen von Linien können auch für die Ausgabe verwendet
     werden. Bei der Eingabe kann curses außerdem Pfeil- und Funktionsta-
     sten, die ESCAPE-Sequenzen übertragen, in Einzelwerte übersetzen. Für
     Zeichen zum Zeichnen von Linien und für Eingabewerte werden Namen ver-
     wendet, die in <curses.h> definiert sind [siehe curses(5)].

     Jedes Fenster hat ein Flag, das angibt, daß die Informationen im Fen-
     ster von den am Terminalgerät angezeigten Informationen abweichen kön-
     nen. Dieses Flag wird beim Ändern des Fensterinhalts, beim Verschieben
     oder Ändern des Fensters oder beim Einstellen der Cursor-Position des
     Fensters gesetzt (das Fenster wird als geändert markiert). Sobald das
     Fenster aktualisiert wird, wird dieses Flag gelöscht. Weitere Informa-
     tionen hierzu finden Sie unter islinetouched(3X).

     Untergeordnete Fenster (Subwindows)

     Ein untergeordnetes Fenster ist ein Fenster, das innerhalb eines ande-
     ren Fensters (dem übergeordneten Fenster) erstellt und relativ zum
     übergeordneten Fenster positioniert wird. Ein untergeordnetes Fenster
     kann durch Aufrufen von derwin(), newpad() oder subwin() erstellt wer-
     den. Änderungen, die am untergeordneten Fenster vorgenommen werden,
     haben keine Auswirkungen auf das übergeordnete Fenster.


Seite 2                      Reliant UNIX 5.44               Gedruckt 11/98

curses(3X)                   (Enhanced Curses)                   curses(3X)

     Untergeordnete Fenster können von einem übergeordneten Fenster aus
     durch Aufrufen von subwin() erstellt werden. Position und Größe von
     untergeordneten Fenstern auf dem Bildschirm müssen mit denen des über-
     geordneten Fensters übereinstimmen oder innerhalb dieses Fensters lie-
     gen. Änderungen, die am übergeordneten Fenster vorgenommen werden,
     wirken sich sowohl auf untergeordnete als auch auf abgeleitete Fenster
     aus. Fensterverkleinerung ist keine Eigenschaft, die von untergeordne-
     ten Fenstern unterstützt wird.

     Stammfenster (Ancestors)

     Der Begriff Stammfenster bezieht sich auf das übergeordnete Fenster
     eines Fensters, dessen übergeordnetes Fenster usw.

     Abgeleitete Fenster (Derived Windows)

     Abgeleitete Fenster sind untergeordnete Fenster, deren Position in
     bezug auf das übergeordnete Fenster anstatt durch absolute Bildschirm-
     koordinaten definiert ist. Ansonsten unterscheiden sich abgeleitete
     Fenster nicht von untergeordneten Fenstern.

     Kleine Fenster (Pads)

     Ein Pad ist ein Sonderfall eines untergeordneten Fensters, das nicht
     unbedingt einem sichtbaren Teil des Bildschirms zugeordnet sein muß.
     Funktionen im Zusammenhang mit Pads werden in newpad(3X) näher
     beschrieben.

     Terminal

     Ein Terminal ist das logische Ein-/Ausgabegerät, über das zeichen-
     orientierte Anwendungen mit dem Benutzer interagieren. TERMINAL ist
     ein nicht transparenter Datentyp, der einem Terminal zugeordnet ist.
     Eine Datenstruktur TERMINAL enthält hauptsächlich Informationen zu den
     Funktionen des Terminals wie in terminfo definiert. Sie enthält ferner
     Informationen zu den Terminalmodi und dem aktuellen Status für Ein-
     und Ausgabeoperationen. Jeder Bildschirm ist (wie oben definiert)
     einem TERMINAL zugeordnet.

   Eingabeverarbeitung
     Das Eingabemodell von curses stellt eine ganze Reihe von Möglichkeiten
     für die Eingabe über die Tastatur zur Verfügung.

     Verarbeitung von Eingabe über den Tastenblock

     Die Anwendung kann die "Übersetzung der Eingabe über den Tastenblock"
     durch Aufrufen von keypad() aktivieren und deaktivieren. Wenn die
     Übersetzung aktiviert ist, versucht curses eine Terminaleingabese-
     quenz, die dem Drücken einer Funktionstaste entspricht, in einen ein-
     fachen Tastencode zu übersetzen. Wenn die Übersetzung deaktiviert ist,
     leitet curses die Terminaleingabe ohne Übersetzung an die Anwendung
     weiter und jegliche Interpretation der Eingabe, die dem Drücken einer


Seite 3                      Reliant UNIX 5.44               Gedruckt 11/98

curses(3X)                   (Enhanced Curses)                   curses(3X)

     Taste auf dem Tastenblock entspricht, muß von der Anwendung selbst
     vorgenommen werden.

     Der vollständige Satz der Tastencodes für die Tasten des Tastenblocks,
     die curses verarbeiten kann, wird über Konstanten angegeben, die in
     <curses.h> definiert sind. Hierbei handelt es sich um die Konstanten,
     die mit KEY beginnen. Jeder in der Datenbasis terminfo beschriebene
     Terminaltyp unterstützt einige oder alle dieser Tastencodes. In der
     Datenbasis terminfo ist zu jedem Tastencode die entsprechende Sequenz
     der Eingabezeichen vom Terminaltyp angegeben [siehe keypad(3X)].

     Die curses-Implementierung kann Tasten des Tastenblocks auf Terminals,
     bei denen durch Drücken dieser Tasten keine eindeutige Eingabesequenz
     übertragen wird, nicht verarbeiten.

     Wenn die Übersetzung aktiviert ist und ein Zeichen empfangen wird, das
     für den Anfang einer Funktionstaste stehen könnte (zum Beispiel das
     ESCAPE-Zeichen), notiert sich curses die Uhrzeit und sammelt die fol-
     genden Zeichen. Werden während einer nicht definierten Zeitspanne ab
     dem Zeitpunkt, da das erste Zeichen empfangen wurde, weitere Zeichen
     empfangen, die durch Drücken einer Taste auf dem Tastenblock generiert
     werden, so setzt curses diese Eingabe in einen Tastencode um, der an
     die Anwendung weitergegeben wird. Werden während dieser Zeitspanne
     keine entsprechenden Zeichen mehr empfangen, erfolgt keine Übersetzung
     dieser Eingabe und die einzelnen Zeichen werden separat an die Anwen-
     dung weitergegeben. (Aufgrund der Zeitspanne, die curses zum Akkumu-
     lieren der Zeichen für den Tastencode wartet, ist bei vielen Terminals
     eine Verzögerung zwischen dem Drücken der ESCAPE-Taste und der Ausgabe
     des entsprechenden Zeichens an die Anwendung zu beobachten.)

     Bei dem Modus "Keine Zeitüberschreitung" (No Timeout) wird außerdem
     jedesmal, wenn curses einen Teil einer Funktionstastensequenz empfan-
     gen hat, unbegrenzt auf die vollständige Tastensequenz gewartet. Die
     im vorherigen Abschnitt angesprochene "nicht definierte Zeitspanne"
     ist bei diesem Modus unendlich. Der Modus "Keine Zeitüberschreitung"
     ermöglicht die Verwendung von Funktionstasten bei langsamen Übertra-
     gungsleitungen. In diesem Modus kann der Benutzer zwar die einzelnen
     Zeichen einer Funktionstastensequenz eingeben, allerdings wird hier-
     durch bei Eingabe eines Zeichens (keiner Funktionstaste), mit dem eine
     Funktionstastensequenz beginnt, auch die Antwort der Anwendung verzö-
     gert. Aus diesem Grund scheinen viele Terminals zwischen dem Drücken
     der ESCAPE-Taste und dem Drücken einer anderen Taste zu "hängen".
     Durch Aufrufen von notimeout() kann vom Modus "Keine Zeitüberschrei-
     tung" wieder in den Zeitüberschreitungsmodus gewechselt werden.

     Wenn Sonderzeichen (<backspace>, <carriage return>, <newline>, <tab>)
     als Zeichen, die zu einer Funktionstastensequenz gehören, definiert
     oder neu definiert werden, kann curses diese Funktionstasten nicht
     erkennen und demnach auch nicht übersetzen.





Seite 4                      Reliant UNIX 5.44               Gedruckt 11/98

curses(3X)                   (Enhanced Curses)                   curses(3X)

     Einige der unten behandelten Modi sind in bezug auf ihre Verfügbarkeit
     für die Eingabe beschrieben. Wenn die Übersetzung der Eingabe über den
     Tastenblock aktiviert ist, ist die Eingabe von dem Zeitpunkt, da
     curses begonnen hat, eine Eingabesequenz über den Tastenblock zu emp-
     fangen bis zum vollständigen Empfang der Sequenz oder bis zum Ablauf
     der Zeitspanne nicht verfügbar.

     Eingabemodus

     Die XBD-Spezifikation ("Special Characters") definiert Flußsteuerungs-
     zeichen, das Interrupt-Zeichen, das Erase-Zeichen und das Kill-Zei-
     chen. Über vier sich gegenseitig ausschließende curses-Modi kann die
     Anwendung die Auswirkung dieser Eingabezeichen steuern:

     ________________________________________________________________________
    |   Eingabemodus   |                      Auswirkung                    |
    |__________________|____________________________________________________|
    | Cooked-Modus     |  Aktiviert die normale, zeilenweise vorgehende Ver-|
    |                  |  arbeitung, wobei alle Sonderzeichen außerhalb der |
    |                  |  Anwendung bearbeitet werden. Dieser Modus hat die-|
    |                  |  selben Auswirkungen wie die in der XBD-Spezifika- |
    |                  |  tion beschriebene Eingabeverarbeitung im kanoni-  |
    |                  |  schen Modus. Die Status der Flags ISIG und IXON   |
    |                  |  werden nicht geändert, wenn der Modus über        |
    |                  |  nocbreak() aufgerufen wird, und aktiviert, wenn   |
    |                  |  der Modus über noraw() aufgerufen wird.           |
    |                  |                                                    |
    |                  |  Die Implementierung unterstützt Erase- und Kill-  |
    |                  |  Zeichen aus jeder unterstützten Locale, unabhängig|
    |                  |  von der Breite des Zeichens.                      |
    |                  |                                                    |
    | cbreak-Modus     |  Vom Benutzer eingegebene Zeichen werden direkt an |
    |                  |  die Anwendung weitergegeben, und curses führt     |
    |                  |  keine spezielle Verarbeitung bei Erase- oder      |
    |                  |  Kill-Zeichen durch. Eine Anwendung kann den Modus |
    |                  |  cbreak aktivieren, um die Zeilen selbst zu editie-|
    |                  |  ren, wobei jedoch die Möglichkeit besteht, die    |
    |                  |  Operation durch das Abort-Zeichen abzubrechen.    |
    |                  |  Dieser Modus hat dieselben Auswirkungen wie die   |
    |                  |  Eingabeverarbeitung im nichtkanonischen Modus, die|
    |                  |  in der XBD-Spezifikation unter Fall B beschrieben |
    |                  |  ist (wobei MIN auf 1 gesetzt und ICRNL gelöscht   |
    |                  |  ist). Die Status der Flags ISIG und IXON werden   |
    |                  |  bei Eintritt in diesen Modus nicht geändert.      |
    |__________________|____________________________________________________|









Seite 5                      Reliant UNIX 5.44               Gedruckt 11/98

curses(3X)                   (Enhanced Curses)                   curses(3X)

     ________________________________________________________________________
    |   Eingabemodus   |                      Auswirkung                    |
    |__________________|____________________________________________________|
    | Modus "Halbe Ver-|  Dieser Modus wirkt sich wie der Modus cbreak aus, |
    | zögerung"        |  mit der Ausnahme, daß die Eingabefunktionen war-  |
    |                  |  ten, bis ein Zeichen eingegeben oder ein von der  |
    |                  |  Anwendung definierter Zeitraum überschritten wird,|
    |                  |  je nachdem, was zuerst eintrifft. Dieser Modus hat|
    |                  |  dieselben Auswirkungen wie die Eingabeverarbeitung|
    |                  |  im nichtkanonischen Modus, die in der XBD-Spezifi-|
    |                  |  kation unter Fall C beschrieben ist (wobei TIME   |
    |                  |  auf den von der Anwendung angegebenen Wert gesetzt|
    |                  |  ist). Die Status der Flags ISIG und IXON werden   |
    |                  |  bei Eintritt in diesen Modus nicht geändert.      |
    |                  |                                                    |
    | Raw-Modus        |  Durch den Raw-Modus erhält die Anwendung die maxi-|
    |                  |  male Kontrolle über die Terminaleingabe. Die ein- |
    |                  |  gegebenen Zeichen werden direkt an die Anwendung  |
    |                  |  weitergeleitet. Dieser Modus hat dieselben Auswir-|
    |                  |  kungen wie die Eingabeverarbeitung im nichtkanoni-|
    |                  |  schen Modus, die in der XBD-Spezifikation unter   |
    |                  |  Fall B beschrieben ist Die Status der Flags ISIG  |
    |                  |  und IXON werden bei Eintritt in diesen Modus      |
    |                  |  gelöscht.                                         |
    |__________________|____________________________________________________|

     Die Einstellungen der Terminalschnittstellen werden aufgezeichnet,
     wenn der Prozeß initscr() oder newterm() aufruft, um curses zu initia-
     lisieren und werden wieder zuückgesetzt, wenn endwin() aufgerufen
     wird. Der Anfangseingabemodus für curses-Operationen ist nicht defi-
     niert, es sei denn, die Implementierung unterstützt die Funktionen von
     "Enhanced Curses". In diesem Fall ist der Anfangseingabemodus cbreak.

     Das Verhalten der BREAK-Taste wird von anderen nicht von curses
     gesetzten Bits des Terminaltreibers bestimmt.

     Verzögerungsmodus

     Zwei sich gegenseitig ausschließende Verzögerungsmodi geben an, wie
     schnell bestimmte curses-Funktionen an die Anwendung zurückgegeben
     werden, wenn beim Aufrufen der Funktion keine Terminaleingabe ansteht:

     Keine Verzögerung  Die Funktion schlägt fehl.

     Verzögerung        Die Anwendung wartet, bis die Implementierung Text
                        an die Anwendung weitergibt. Wenn der cbreak- oder
                        Raw-Modus gesetzt ist, geschieht dies nach Eingabe
                        eines Zeichens, andernfalls nach dem ersten Zeilen-
                        vorschubzeichen (<newline>), dem Zeilenendezeichen
                        oder dem Dateiendezeichen.




Seite 6                      Reliant UNIX 5.44               Gedruckt 11/98

curses(3X)                   (Enhanced Curses)                   curses(3X)

     Die Auswirkung des Modus "Keine Verzögerung" auf die Verarbeitung von
     Funktionstasten ist nicht definiert.

     Echo-Verarbeitung

     Der Echo-Modus bestimmt, ob curses die eingegebenen Zeichen direkt auf
     dem Bildschirm wiedergibt. Der Echo-Modus entspricht dem Flag ECHO im
     Feld für lokale Modi der Struktur termios für das Terminalgerät, das
     dem Fenster zugeordnet ist. Beim Aufruf löscht curses jedoch immer das
     Flag ECHO, um die Echo-Funktion des Betriebssystems zu deaktivieren.
     Die Methode für die direkte Wiedergabe der Zeichen auf dem Bildschirm
     entspricht nicht der des Betriebssystems, da curses die Terminalein-
     gabe noch zusätzlich verarbeitet.

     Ist der Echo-Modus aktiviert, führt curses die eigene Echo-Funktion
     durch: Jedes sichtbare Eingabezeichen wird von der über die Anwendung
     aufgerufenen Eingabefunktion im aktuellen oder angegebenen Fenster an
     der Cursor-Position gespeichert, so als wäre addch() aufgerufen - und
     zwar mit allen Auswirkungen dieser Funktion wie Cursor-Bewegung und
     Zeilenumbrüche.

     Ist der Echo-Modus nicht aktiviert, muß die Wiedergabe der Eingabe
     über die Anwendung erfolgen. Anwendungen führen in vielen Fällen ihre
     eigenen Echo-Funktionen in einem bestimmten Bereich des Bildschirms
     aus oder sie deaktivieren den Echo-Modus.

     Unter Umständen ist die Echo-Verarbeitung für synchrone Terminals und
     asynchrone Terminals im Netzwerk nicht möglich, da diese Verarbeitung
     direkt von den Terminals durchfgeführt wird. Bei Anwendungen, die auf
     solchen Terminals ausgeführt werden, sollte bedacht werden, daß die
     eingegebenen Zeichen an der Stelle auf dem Bildschirm angezeigt wer-
     den, an der der Cursor gerade steht.

   Umgebungsvariablen
     Wenn die Umgebungsvariablen LINES und COLUMNS gesetzt sind, oder wenn
     das Programm in einer Fensterumgebung ausgeführt wird, überschreiben
     Zeilen- und Spaltendaten in der Umgebung die von terminfo gelesenen
     Daten. Dies würde sich zum Beispiel auf ein Programm auswirken, das in
     einer AT&T 630-Schicht ausgeführt wird, in der sich die Bildschirm-
     größe verändern läßt.

     Wenn die Umgebungsvariable TERMINFO definiert ist, sucht jedes Pro-
     gramm, das curses verwendet, zunächst nach einer lokalen Terminaldefi-
     nition, bevor es die Suche im Standardverzeichnis fortsetzt. Ist TERM
     beispielsweise auf att4424 gesetzt, befindet sich die kompilierte Ter-
     minaldefinition in folgender Datei:

          /usr/share/lib/terminfo/a/att4424

     (Das a wird aus dem ersten Buchstaben von att4424 kopiert, um die
     Erstellung riesiger Verzeichnisse zu vermeiden.) Wird TERMINFO aber
     auf $HOME/myterms gesetzt, überprüft curses zunächst folgende Datei:


Seite 7                      Reliant UNIX 5.44               Gedruckt 11/98

curses(3X)                   (Enhanced Curses)                   curses(3X)

          $HOME/myterms/a/att4424

     Wird die Definition hier nicht gefunden, überprüft curses folgende
     Datei:

          /usr/share/lib/terminfo/a/att4424

     Dies ist zum Beispiel bei der Entwicklung von Testdefinitionen nütz-
     lich, oder wenn für /usr/share/lib/terminfo kein Schreibzugriff
     besteht.

     Die ganzzahligen Variablen LINES und COLS sind in <curses.h> definiert
     und werden von initscr auf die Größe des Bildschirms gesetzt. Die Kon-
     stanten TRUE und FALSE haben die Werte 1 bzw. 0.

     Die Funktionen von curses definieren ferner die WINDOW *-Variable
     curscr, die für bestimmte Low-Level-Operationen wie das Löschen und
     Neuzeichnen einer mit unbrauchbaren Daten gefüllten Bildschirmanzeige
     verwendet wird. Die Variable curscr kann nur in wenigen Funktionen
     verwendet werden.

   Benennungsregeln für die Funktionen
     Die 3X-Seiten (Man Pages) enthalten mehrere Gruppen von curses-Funk-
     tionen. Die Funktionsgruppen enthalten unterschiedliche Funktionen,
     mit folgenden Optionen für den Programmierer:

     -  Eine Funktion mit dem Basisnamen gilt für das Fenster stdscr. Eine
        Funktion mit dem Basisnamen und dem Präfix w [siehe w(3X] gilt für
        ein über das Argument win angegebenes Fenster.

        Wenn die Handbuchseite für eine Funktionsgruppe auf das aktuelle
        oder angegebene Fenster verweist, bezieht sich dieses bei den
        Basisfunktionen auf das Fenster stdscr und bei allen w-Funktionen
        auf das über win angegebene Fenster.

        Bei Funktionen, deren Namen mit p beginnen, muß als Argument ein
        Pad anstatt eines Fensters angegeben werden.

     -  Eine Funktion mit dem Basisnamen wird basierend auf der aktuellen
        Cursor-Position (im aktuellen oder angegebenen Fenster wie oben
        beschrieben) ausgeführt. Eine Funktion mit dem Basisnamen und dem
        Präfix mv [siehe mv(3X], bewegt den Cursor auf eine durch die Argu-
        mente y und x angegebene Position, bevor die angegebene Operation
        ausgeführt wird.

        Wenn die Handbuchseite für eine Funktionsgruppe auf die aktuelle
        oder angegebene Position verweist, bezieht sich diese bei den
        Basisfunktionen auf die Cursor-Position und bei allen mv-Funktionen
        auf die Position (y, x).





Seite 8                      Reliant UNIX 5.44               Gedruckt 11/98

curses(3X)                   (Enhanced Curses)                   curses(3X)

        Ferner gibt es noch das Präfix mvw, das die hier beschriebene
        Semantik von mv und die weiter oben beschriebene Semantik von w
        kombiniert. Das Fensterargument wird immer vor den Koordinaten
        angegeben.

     -  Eine Funktion mit dem Basisnamen dient oft der Kompatibilität mit
        früheren Versionen und kann nur für Einzelbytezeichen ausgeführt
        werden. Eine Funktion mit dem Basisnamen plus einem Infix w wird
        für Wide-Charachters (Mehrbytezeichen) ausgeführt. Eine Funktion
        mit dem Basisnamen plus dem Infix -w wird für komplexe Zeichen und
        deren Darstellung (bestehend aus Attributen und Farbenpaar) ausge-
        führt.

     -  Für eine Funktion mit dem Basisnamen, die für ein Einzelbytezeichen
        ausgeführt wird, liegt manchmal auch eine Funktion mit demselben
        Namen plus dem Infix n vor, die für mehrere Zeichen ausgeführt
        wird. Ein Argument n gibt die Anzahl der zu verarbeitenden Zeichen
        an. Auf der entsprechenden Handbuchseite ist angegeben, welche Aus-
        gabe bei einem ungültigen Wert von n erfolgt.

   Funktionsgruppen
________________________________________________________________________________
|   Funktionsnamen            Beschreibung        | s | w | c |      Siehe     |
|_________________________________________________|___|___|___|________________|
|                     Hinzufügen (Überschreiben)  |   |   |   |                |
|[mv][w]addch         Ein Zeichen hinzufügen      | J | J | J | addch(3X)      |
|[mv][w]addch[n]str   Einen Zeichen-String hinzu- | N | N | N | addchstr(3X)   |
|                     fügen                       |   |   |   |                |
|[mv][w]add[n]str     Einen String hinzufügen     | J | J | J | addnstr(3X)    |
|[mv][w]add[n]wstr    Einen Wide-Character-String | J | J | J | addnwstr(3X)   |
|                     hinzufügen                  |   |   |   |                |
|[mv][w]addwch       Ein Wide-Character mit Dar- | J | J | J | addwch(3X)    |
|                     stellung hinzufügen         |   |   |   |                |
|[mv][w]addwch[n]str Einen Array aus Wide-Char-  | ? | N | N | addwchnstr(3X)|
|                     acters und Darstellungen    |   |   |   |                |
|                     hinzufügen                  |   |   |   |                |
|_________________________________________________|___|___|___|________________|
|                     Darstellungen ändern        |   |   |   |                |
|[mv][w]chgat         Darstellungen der Zeichen in| - | N | N | chgat(3X)      |
|                     einem Fenster ändern        |   |   |   |                |
|_________________________________________________|___|___|___|________________|
|                     Löschen                     |   |   |   |                |
|[mv][w]delch         Ein Zeichen löschen         | - | - | N | delch(3X)      |
|_________________________________________________|___|___|___|________________|










Seite 9                      Reliant UNIX 5.44               Gedruckt 11/98

curses(3X)                   (Enhanced Curses)                   curses(3X)

________________________________________________________________________________
|   Funktionsnamen            Beschreibung        | s | w | c |      Siehe     |
|_________________________________________________|___|___|___|________________|
|                     Abrufen (Eingabe über die   |   |   |   |                |
|                     Tastatur in das Fenster)    |   |   |   |                |
|[mv][w]getch         Ein Zeichen abrufen         | J | J | J | getch(3X)      |
|[mv][w]get[n]str     Einen Zeichen-String abrufen| J | J | J | getnstr(3X)    |
|[mv][w]getwch       Ein Wide-Character abrufen  | J | J | J | getwch(3X)    |
|[mv][w]get[n]wstr   Einen Array aus Wide-Char-  | J | J | J | getwstr(3X)   |
|                     acters und Tastencodes abru-|   |   |   |                |
|                     fen                         |   |   |   |                |
|_________________________________________________|___|___|___|________________|
|                     Explizite Cursor-Bewegung   |   |   |   |                |
|[w]move              Den Cursor verschieben      | - | - | - | move(3X)       |
|_________________________________________________|___|___|___|________________|
|                     Eingeben (aus dem Fenster   |   |   |   |                |
|                     zurückgeben)                |   |   |   |                |
|[mv][w]inch          Ein Zeichen eingeben        | - | - | - | inch(3X)       |
|[mv][w]inch[n]str    Einen Array asu Zeichen und | - | - | - | inchnstr(3X)   |
|                     Attributen eingeben         |   |   |   |                |
|[mv][w]in[n]str      Einen String eingeben       | - | - | - | innstr(3X)     |
|[mv][w]in[n]wstr     Einen String aus Wide-Char- | - | - | - | innwstr(3X)    |
|                     acters eingeben             |   |   |   |                |
|[mv][w]inwch        Ein Wide-Character mit Dar- | - | - | - | inwch(3X)     |
|                     stellung eingeben           |   |   |   |                |
|[mv][w]inwch[n]str  Einen Array aus Wide-Char-  | - | - | - | inwchnstr(3X)  |
|                     acters und Darstellungen    |   |   |   |                |
|                     eingeben                    |   |   |   |                |
|_________________________________________________|___|___|___|________________|
|                     Einfügen                    |   |   |   |                |
|[mv][w]insch         Ein Zeichen einfügen        | J | N | N | insch(3X)      |
|[mv][w]ins[n]str     Einen Zeichen-String einfü- | J | N | N | insnstr(3X)    |
|                     gen                         |   |   |   |                |
|[mv][w]ins[n]wstr   Einen Wide-Character-String | J | N | N | insnwstr(3X)  |
|                     einfügen                    |   |   |   |                |
|[mv][w]inswch       Ein Wide-Character einfügen | J | N | N | inswch(3X)    |
|_________________________________________________|___|___|___|________________|
|                     Ausgeben und Lesen          |   |   |   |                |
|[mv][w]printw        Formatierte Ausgabe         | - | - | - | mvprintw(3X)   |
|[mv][w]scanw         Formatierte Eingabe umwan-  | - | - | - | mvscanw(3X)    |
|                     deln                        |   |   |   |                |
|_________________________________________________|___|___|___|________________|

     Legende:

     Folgende Kennzeichen geben die Auswirkungen an, wenn Zeichen auf den
     Bildschirm gestellt werden. (Für die Abruffunktionen (Get) gilt dies
     nur bei aktivierter Echo-Funktion.)






Seite 10                     Reliant UNIX 5.44               Gedruckt 11/98

curses(3X)                   (Enhanced Curses)                   curses(3X)

     s   "J" bedeutet, daß bei diesen Funktionen Sonderzeichen verarbeitet
         werden. "N" bedeutet, daß Sonderzeichen nicht verarbeitet werden.
         "?" bedeutet, daß die Ergebnisse nicht definiert sind, wenn diese
         Funktionen auf Sonderzeichen angewendet werden.

     w   "J" bedeutet, daß bei diesen Funktionen Zeilenumbrüche durchge-
         führt werden. "N" bedeutet, daß Zeilenumbrüche nicht durchgeführt
         werden.

     c   "J" bedeutet, daß bei diesen Funktionen der Cursor auf die nächste
         Position gestellt wird. "N" bedeutet, daß der Cursor nicht auf die
         nächste Position gestellt wird.

     -   Das in dieser Spalte angegebene Attribut gilt nicht für diese
         Funktionen.

HINWEISE
     Die Include-Datei <curses.h> schließt automatisch die Include-Dateien
     <stdio.h> und <unctrl.h> ein.

SIEHE AUCH
     mv(3X), no(3X), w(3X), terminfo(4), curses(5), term(5).
































Seite 11                     Reliant UNIX 5.44               Gedruckt 11/98

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026