Das XWindow Programming Environment xwpe [ optionen ] Datei ... xwe [ optionen ] Datei ... wpe [ optionen ] Datei ... we [ optionen ] Datei ... xwpe ist die XWindow-Version des XWindow Programming Environments. xwe ist der XWindow Editor ohne die Program- mierumgebung. wpe ist die UNIX-Version der Program- mierumgebung fuer zeichenorientierte Terminals. we ist der Editor ohne Programmierumgebung fuer zeichenorientierte Ter- minals. INHALT: Ueber xwpe Die Kommandozeile Die Initialisierungsdateien Das Hauptmenue Die Funktionstasten Veraenderte Funktionstasten (Common User Access) Der Editor Die Programmierumgebung Die Debug-Umgebung Der File-Manager Die Such/Textersatz-Funktion Die Projekt-Datei C-Programmierhilfen Die Hilfe-Funktion Die GNU General Public License Installations-Hinweise Danksagung  Ueber xwpe Das XWindow Programming Environment ist eine Program- mierumgebung fuer UNIX - Betriebssysteme, die weitgehend der Borland C++ bzw. Turbo- Pascal - Entwicklungsumgebung nachgebildet ist. Sie besteht aus einem Maus- unterstuetzenden, Menue-gesteuerten Editor, aus dem heraus beliebige Uebersetzungs- und Bindungsprogramme sowie der Debugger gestartet werden koennen. Beim Uebersetzen und Binden aufgetretene Fehler werden, soweit sie vom Compiler erkannt worden sind, direkt an der entsprechenden Stelle im Text angezeigt und koennen dann dort behoben werden. Es ist moeglich das erzeugte ausfuehrbare Programm zu Testzwecken direkt aus der Programmierumgebung zu starten. Programme, die aus mehr als einem Modul (Quell-Datei) bestehen, koennen ueber die soge- nannte Projekt - Option (siehe Projekt-Datei) bearbeitet werden. Fehler in uebersetzten Programmen koennen aus der Program- mierumgebung heraus mit Hilfe der Debug-Umgebung gesucht werden. Hiebei werden Breakpoints direkt im Quelltext gesetzt oder wieder geloescht. Ein Programm-Break wird an der entsprechenden Stelle im Text angezeigt. Die Werte von Variablen koennen ueber die Watch - Option (siehe Watch-Fenster) bei jedem Break ausgegeben werden. Der Stack kann ausgegeben und in ihm kann ueber Funktionstasten ge- wandert werden (siehe Stack-Fenster). Die Entwicklungsumgebung bietet eine Hilfe-Funktion, in die sowohl Hilfestellungen zu der Umgebung selber, wie auch saemtliche Dokumentationen zu Funktionen und Kommandos (man-pages) auf dem entsprechenden Rechner integriert sind. Im Editor koennen bis zu 35 Dateien gleichzeitig ediert wer- den. Er arbeitet sowohl Maus- als auch Funktionstasten unterstuetzt. Alle Funktionen koennen entweder ueber Menue oder direkt durch Funktionstasten ausgefuehrt werden. Er bietet eine ausfuehrliche Such/Textersatz-Funktion mit der Moeglichkeit nach regulaeren Ausdruecken zu suchen. Weiterhin ist ein Datei-Manager integriert mit Hilfe dessen Dateienpfade als Baumstruktur dargestellt und aus dieser heraus editiert, kopiert, Namen und Pfade geaendert oder geloescht werden koennen. Die Entwicklungsumgebung kann auf den Editor reduziert wer- den (z.B. zur Shell-Programmierung ), in dem sie mit `xwe' aufgerufen wird. Fuer nicht XWindow-Systeme ist die Program- mierumgebung auch als `wpe' bzw. der reine Editor als `we' verfuegbar. Besonderen Dank allen, die zur Weiterentwicklung von xwpe beigetragen haben (siehe Danksagung) Copyright (C) 1993 Fred Kruse xwpe ist frei kopierbar unter den Bedingungen der GNU General Public License. Es wird fuer diese Sofwar kei- nerlei Garantie oder Gewaehrleistung uebernommen. Alle Fragen, Hinweise und Fehlermeldungen bitte an: oder  Danksagung Besonderen Dank an Lothar Schuette fuer die englische Ueber- setzung des Manuals. Besonderen Dank an Axel Rohde fuer seinen Beitrag zur Be- schleunigung des Bildaufbaus unter XWindow.  Die Kommandozeile xwpe [ Parameter ] Datei ... xwe [ Parameter ] Datei ... wpe [ Parameter ] Datei ... we [ Parameter ] Datei ... Parameter sind: -so Fuer die Sitzung werden Standardoptionen gesetzt. Die Optionendatei wird nicht gelesen. -sf Es werden die Standardfarben gesetzt. Alle anderen Ein- stellungen werden der Optionendatei entnommen. -sf optionfile Statt der Standardoptionendatei ($HOME/.wpe/wperc) wird die Datei -r Bei einem Sitzungsabbruch durch ein Signal (nicht kill -9) werden alle internen Puffere in Dateien mit dem Postfix '.ESV' geschrieben. Die abgebrochene Sitzung kann dann durch Aufruf des Editors unter Angabe des Parameters -r wiederhergestellt werden. -mb Die folgenden Dateien sind binaere Dateien. -mn Die folgenden Dateien sind ASCII Dateien (Standardein- stellung) -nc N N ist eine ganze Zahl, die die maximale Anzahl der Spalten angibt. -nu N N ist eine ganze Zahl, die die Anzahl der rueckgaengig- machbaren Manipulationen angibt. -nm N N ist eine ganze Zahl, die die maximale Anzahl der Veraenderungen angibt, nach denen ein Autosave dur- chgefuehrt werden soll. -k password Die folgende Datei soll beim lesen mit 'password' entschluesselt und beim Schreiben mit 'password' ver- schluesselt werden. -pm Naechste Datei ist eine Message-Datei -pt Message-Datei soll fuer 'traditional' Compiler inter- pretiert werden (siehe Compiler-Optionen). -pe Message-Datei soll fuer 'extended' Compiler interpre- tiert werden (siehe Compiler-Optionen). XWindow-Parameter: -display Disp Ausgabe auf Display 'Disp' -fn Fontname -font Fontname Einstellung des Fonts 'Fontname' -g Geometrie -geometry Geometrie Abmessung des XWindows (z.b.: -g 80x20+4+4) -iconic XWindow als Ikone oeffnen  Die Initialisierungsdateien xwpe kennt die Initialisierungsdatei: wperc Die Datei kann systemseitig im Verzeichnispfad ../lib/wpe relativ zum Pfad der Programmierumgebung xwpe abgelegt sein. Jeder Benutzer kann aber auch seine eigene Initialisierungsdatei im eigenen Heimatverzeichnis (Stan- dard: $HOME/.wpe/wperc) anlegen. Die Reihenfolge der Beruecksichtigung ist: Als erstes wird auf eine persoenliche Initialisierungsdatei geprueft, ist eine solche nicht vorhanden, wird auf eine Systemdatei geprueft. Ist letztere nicht vorhanden, werden festvorgegebene interne Einstel- lungen benutzt. Die Binaer-Datei wperc wird aus der Programmierumgebung heraus erzeugt und speichert die aktuellen Einstellungen. (siehe das Options-Menue) X-Resourcen: In der X-Resourcen-Datei .Xdefaults koennen folgende Ein- traege fuer X-Window Standardvoreinstellungen vorgegeben werden: xwpe.font: Der zu benutzende Textfont (8x13, 9x15, 10x20, 8x13bold, 9x15bold, 10x20bold) xwpe.geometry: Die X-Window-Geometrie xwpe.iconic:yes xwpe wird als Icon geoeffnet. xwpe.color1: ... xwpe.color16: xwpe beruecksichtigt 16 Farben. Diese sind in Anlehnung an die 16 PC-Farben standardmaessig eingestellt und koennen hier veraendert werden. ACHTUNG: Die Datei .wperc, die vor der Version 1.3.1 erstellt wurde, sollten geloescht werden. Die Datei .xwperc, die vor der Version 1.2.1 erstellt wurde, wird nicht mehr beruecksichtigt und kann geloescht werden. Eventuell vorhandene Initialisierungs- und Hilfedateien im binaer Verzeichnis der xwpe sollten ab Version 1.3.1 geloescht werden.  Das Hauptmenue Das WE-Menue kann durch Eingabe von F10, Alt- (oder aus dem Editorenfenster) erreicht bzw. ueber wieder verlassen werden. Jedes einzelne Untermenue kann durch Eingabe von Alt- direkt aufgerufen werden. Die Untermenues sind: Das System-Menue Environment-Verwaltung Das File-Menue Dateien-Verwaltung Das Edit-Menue Edieren zwischen verschiedenen Fenstern Das Search-Menue Such-Anwendungen Das Block-Menue Edieren in einem Fenster Das Run-Menue Programmierumgebung (nicht bei we oder xwe) Das Debug-Menue Debug-Umgebung (wenn installiert; nicht bei we oder xwe) Das Project-Menue Programmieren von mehr Dateienprojekten (nicht bei we oder xwe) Das Options-Menue Einstellungen Das Window-Menue Fenster-Verwaltung Das Help-Menue Hilfestellungen  Das System-Menue (Alt-# oder Alt-): About WE A Zeigt Versionsnummer und Copyright an. Clear Desktop C Schliesst alle Fenster. Repaint Desktop R Initialisiert den Schirm und baut die einzelnen Fenster neu auf. System Info S Gibt einige Informationen zur aktuellen Edit-Sitzung aus. Show Wastebasket W Inhalt des Papierkorbs im File-Manager anzeigen Delete Wastebasket D Inhalt des Papierkorbs loeschen  Das File-Menue (Alt-F): File-Manager M Holt das File-Manager-Fenster in den Vordergrund, wenn nicht vorhanden, wird es erzeugt. ADd F.-Mng. D Erzeugt neues File-Manager-Fenster New N Erstellt eine neue Datei mit Namen 'Noname' Save S Sichert die aktuell bearbeitete Datei Save As A Sichern unter anderem Namen (siehe File-Manager) Save ALl L Sichert alle editierten Dateien Execute E Execution-Manager SHell H Aufruf der UNIX-Shell Find F Suchen nach Dateinamen (siehe Find) Grep G Suchen nach Zeichenketten in Dateien (siehe Grep) Print P Drucken der aktuellen Datei Quit Q Beenden der Sitzung  Das Edit-Menue (Alt-E): Cut T Loescht markierten Text in den Puffer Copy C Kopiert markierten Text in den Puffer Paste P Kopiert Puffer-Inhalt hinter den Cursor Show Clipboard S Zeigt den Puffer-Inhalt an. Delete D Loescht markierten Text Undo U Macht letzte Textaenderung rueckgaengig Redo R Macht letztes Undo wieder rueckgaengig Load XBuffer L Kopiert den XWindow-Buffer in den Paste-Buffer Write to XBuffer W Kopiert den Paste-Buffer in den XWindow-Buffer  Das Search-Menue (Alt-S): Find F Eine Zeichenkette suchen (siehe Such/Textersatz-Funktion) Replace R Eine Zeichenkette suchen und ersetzen (siehe Such/Textersatz-Funktion) Search again S Wiederholtes Suchen bzw. Ersetzen Go to Line G Sprung zu einer anzugebenden Zeilenummer  Das Block-Menue (Alt-B): Begin Mark B Beginn eines Blocks markieren End Mark E Ende eines Blocks markieren Mark Line L Eine Zeile markieren Mark Whole W Ganzen Text markieren Goto Begin G Zum Beginn eines Blockes springen Goto End N Zum Ende eines Blockes springen Copy C Kopieren eines Blocks Move M Verschieben eines Blocks Delete D Loeschen eines Blocks Hide H Loeschen der Anfangs- und Endmarke eines Blocks Read R Einfuegen einer Datei an die Cursor- Position Write W Schreiben eines Blocks in eine Datei Move to Right I Block eines halben Tabulator nach rechts verschieben Move to Left T Block eines halben Tabulator nach links verschieben Bloecke koennen markiert werden, in dem die Tastenkombina- tionen `^k b' und `^k k' verwendet werden. `^k b' setzt den Block-Anfang auf die Cursor-Position. `^k k' setzt das Block-Ende auf die Cursor-Position. Unter XWindow koennen Bloecke auf zwei weitere Arten mar- kiert werden: Bewegen des Cursors bei gedrueckter Shift- Taste makiert den vom Cursor beruehrten Text als Block. Bewgendes Maus-Cursors bei gedruecktem linken Button makiert den vom Maus-Cursor beruehrten Text als Block.  Das Run-Menue (Alt-R): Compile C Uebersetzen des Programm-Codes (siehe Programmierumgebung) Make M Erzeugen des Executables Run R Erzeugen und Ausfuehren des Executables Install I Installierungsroutine (siehe Projekt-Datei) Execute make E Fuehrt das System-Kommando 'make' aus. Next Error N Sprung zum naechsten Fehler Previous Error P Sprung zum vorherigen Fehler Show Definition S Sprung zur Definition eines Ausdrucks (siehe C-Programmierhilfen) Show Next Def. X Sprung zur naechsten Definition des gefundenen Ausdrucks (siehe C-Programmierhilfen) Matching Bracket K Sprung zur zugehoerigen Klammer (siehe C-Programmierhilfen) Beautify B gleichmaessiges einruecken von Programm- bloecken (siehe C-Programmierhilfen) Arguments A Eingabe einer Argumentenliste zur Ueber- gabe an das auszufuehrende Programm  Das Debug-Menue (Alt-D):(siehe die Debug-Umgebung) Toggel Breakpoint B Setzen/Loeschen eines Breakpoints ReMove all Breakp. M Loeschen aller Breakpoints Make Watch W Setzen einer zubeobachtenden Variablen (siehe Watch-Fenster) Edit Watch E Edieren einer zubeob. Variablen Delete Watch D Loeschen einer zubeob. Variablen Remove All Watches A Loeschen aller zubeob. Variablen Show StacK K Stack anzeigen (siehe Stack-Fenster) Step S Einen Programmschritt ausfuehren (mit Sprung in Unterfunktionen) Next N Einen Programmschritt ausfuehren (ohne Sprung in Unterfunktionen) Run/Continue R Starten/Weiterfuehren des Programms Quit Q Beenden des Debuggers OutPut Window P Anzeigen der Ausgabe (nicht unter XWindow)  Das Project-Menue (Alt-P): Open Project P Eingabe des Namen einer Projekt-Datei Es wird ein Project-Fenster geoeffnet Close Project C Schliessen eines Projekts. Das Project-Fenster wird geschlossen und der Projektname auf leer gesetzt. Add Item A Hinzufuegen von Dateien zum geoeffneten Project. Das Projekt-Fenster wird im Add-Status geoeffnet. Delete Item D Loeschen der aktuellen Datei im Projekt-Fenster aus dem geoeffneten Project. Dieser Punkt wird nur ausgefuehrt, wenn das Projekt-Fenster geoefnnet ist. Options O Projekt-Optionen  Das Options-Menue (Alt-O): Adjust Colors A Farbeinstellung Read Colors R Standard Farben oder Farben aus Initiali- sierungsdatei lesen Save Options S Sichern der eigenen Optionseinstellungen fuer spaetere Sitzungen in einer wiederverwendbaren Options-Datei. Editor E Optionen fuer den Editor (siehe Editor-Optionen) File-Manager F Optionen fuer den File-Manager (siehe File-Manager-Optionen) Programming G Optionen fuer die Programmierumgebung: ( Halt bei Fehlern/Warnungen; Syntax-Unterstuetzung) Compiler C Compiler-Optionen eingeben (siehe Compiler-Optionen) Debugger D Optionen (Es koennen sowohl die Debugger gdb, sdb oder dbx gewaehlt werden, als auch die Modi Full Screen oder Normal)  Das Window-Menue (Alt-W): Size/Move S Groesse und Ort des aktuellen Fensters veraendern Zoom Z Zoomen des aktuellen Fensters auf max. Grosse Tile T Fenster im Baukasten-Prinzip nebeneinander- legen. Cascade A Fenster wie einzelne Blaetter kaskadenfoermig uebereinanderlegen. Next X Aktuelles Fenster auf das folgende schalten. Close C Aktuelles Fenster schliessen. List All L Alle vorhandenen Fenster werden gelistet. Mit oder Alt-S (Show) wird das markierte Fenster in den Vordergrund geholt. Messages M Das Message-Fenster wird in den Vordergrund geholt. Ist es nicht geoeffnet, so wird dieses nachgeholt. Project P Das Project-Fenster wird in den Vordergrund geholt. Ist es nicht geoeffnet, so wird dieses nachgeholt. Watches W Das Watch-Fenster wird in den Vordergrund geholt. Ist es nicht geoeffnet, so wird dieses nachgeholt.  Das Help-Menue (Alt-H): Editor E Hilfestellung zum Editor (WE) FUnction Index U Index aller UNIX-Funktionen (siehe Funktions-Index) Function F Hilfestellung zu einer beliebigen UNIX-Funktion Info I Ausgabe des GNU-Infosystems (Funktionsweise wie Hilfe-Funktion) Goto G Sprung zur ausgewaehlten Hilfeseite Back B Ruecksprung zur vorherigen Seite Next N Naechste Seite des Dokuments Previous P Vorherige Seite des Dokuments  Die Funktionstasten: Konvention unter UNIX (gilt nicht fuer XWindow): Alt-X - Wird durch die Tastenkombination <ESC> X realisiert (X steht hier fuer ein beliebiges druckbares Zeichen) ESC - Wird durch die Tastenkombination <ESC> <Return> real- isiert. Fuer folgende Funktionen sind Tasten vorgesehen: Cursor-Bewegungen Edieren Loeschen Block-Kommandos Marker-Kommandos Such- und Textersatz-Kommandos Puffer-Kommandos Laden und Speichern Fenster-Kommandos Run-Kommandos Kommandos der Programmierhilfe Debug-Kommandos Help-Kommandos Sitzungbeenden  Cursor-Bewegungen: Pfeil nach oben Ctrl P bewegt Cursor nach oben Pfeil nach unten Ctrl N bewegt Cursor nach unten rechter Pfeil Ctrl F bewegt Cursor nach rechts linker Pfeil Ctrl B bewegt Cursor nach links Ctrl rechter Pfeil Alt rechter Pfeil bewegt Cursor um ein Wort nach rechts Ctrl linker Pfeil Alt linker Pfeil bewegt Cursor um ein Wort nach links Home oder Ctrl A setzt den Cursor auf den Anfang der Zeile End oder Ctrl E setzt den Cursor auf das Ende der Zeile Ctrl Pfeil nach oben Page Up bewegt den Cursor um ein Fenster nach oben Ctrl Pfeil nach unten Page Down bewegt den Cursor um ein Fenster nach unten Ctrl Page Up Alt Ctrl A bewegt den Cursor auf den Anfang der Datei Ctrl Page Down Alt Ctrl E bewegt den Cursor auf das Ende der Datei Ctrl Home Alt Ctrl P bewegt den Cursor auf den Anfang der Seite Ctrl End Alt Ctrl N bewegt den Cursor auf das Ende der Seite  Edieren: Spaltet die aktuelle Zeile an der Cursor-Position (siehe auch Automatischer Zeileneinzug) Ctrl H Loescht den Character vor der Cursor-Position (siehe auch Automatischer Zeileneinzug) Ctrl D Del Loescht den Character an der Cursor-Position Einfuegen eines Tabulators (siehe auch Automatischer Zeileneinzug) Alt-I Umschalten vom Einfuege- in den Ueberschreibe-Modus Insert und umgekehrt. Alt-J Umschalten in Sonderzeichen-Einsetz-Modus  Loeschen: Ctrl T Loescht nach rechts alle Zeichen bis zum naechsten Wortanfang Ctrl O T Loescht nach links alle Zeichen bis zum naechsten Wortanfang Ctrl Y Loescht die ganze Zeile Ctrl Z Ctrl O Y Loescht alle Zeichen vom Cursor bis zum Ende der Zeile  Block-Kommandos: Shift + Cursorbewegung markiert einen Block Ctrl K B Anfangsmarke eines Blocks setzen Ctrl K K Endmarke eines Blocks setzen Ctrl K L Die aktuelle Zeile markieren Ctrl K X Den gesamten Text markieren Ctrl K A An den Blockanfang springen Ctrl K Z Ans Blockende springen Ctrl K C Block kopieren Ctrl K V Block verschieben Ctrl K Y Block loeschen Ctrl K H Blockmarken loeschen Ctrl K R Einfuegen einer Datei an die Cursor-Position Ctrl K W Schreiben eines Blocks in ein Datei Ctrl K I Blockeinruecken Ctrl K U Blockausruecken  Marker-Kommandos: Ctrl K n Setzt n-ten Marker ( n = 1 - 9 ) Ctrl O n Setzt Cursor auf n-ten Marker  Such- und Textersatz-Kommandos: Find F4 Ctrl O F Zeichenkette suchen Alt-F4 Ctrl O A Zeichenkette durch eine andere Ersetzen Ctrl-F4 Ctrl L Wiederholt Suchen / Ersetzen Alt G Zu einer angegebenen Zeile springen  Puffer-Kommandos: Cut Shift Del Ctrl X Loescht markierten Text in den Puffer Copy Shift Insert Ctrl C Kopiert den markierten Text in den Puffer Paste Ctrl Insert Ctrl V Kopiert den Puffer-Inhalt an die Cursor-Position Ctrl W Puffer-Inhalt in eigenem Fenster anzeigen UNDO Letztes Textveraenderndes Kommando rueckgaengig Ctrl U machen REDO Ctrl R Letztes Undo-Kommando rueckgaengig machen Alt Delete Kopiert den markierten Text in den X-Puffer Alt Insert Kopiert den X-Puffer-Inhalt an die Cursor-Position  Laden und Speichern: Open F3 Aufruf des File-Managers (Laden einer Datei etc.) F2 Speichern des Inhalts einer Datei  Fenster-Kommandos: Alt-Z F5 Zoomen des Fensters (maximale Groesse) Ctrl F5 Alt-F2 Veraendern der Grosse und des Ortes des Fensters F6 Alt-N Umschalten auf naechstes Fenster Alt-F3 Schliessen des aktuellen Fensters Shift F4 Fenster nebeneinander anordnen Shift F5 Fenster versetzt uebereinander anordnen  Run-Kommandos: Alt F9 Alt C startet den Compiler (siehe Programmierumgebung) F9 Alt M erzeugt ein Executable Ctrl F9 Alt R erzeugt ein Executable und fuehrt dieses aus. Alt L fuehrt die Installations-Prozedur aus (siehe Projekt-Datei) Alt A fuehrt das System-Kommando 'make' aus. Eventuell aufgetretenen Fehler werden im Message-Fenster angezeigt und interpretiert (siehe Message-Fenster) Alt V Der Cursor wird an die stelle des vorhergehenden Fehlers gesetzt (siehe Message-Fenster) Alt T Der Cursor wird an die stelle des naechsten Fehlers gesetzt (siehe Message-Fenster)  Kommandos der Programmierhilfe: Ctrl O S Sucht die Definition eines C-Ausdrucks (siehe C-Programmierhilfen) Ctrl O N Sucht nach weiteren Definitionen eines C-Ausdrucks (siehe C-Programmierhilfen) Ctrl O K Sucht die zugehoerige Klammer (siehe C-Programmierhilfen) Ctrl O B Verschoenert den C-Quelltext (siehe C-Programmierhilfen)  Debug-Kommandos: Ctrl F10 Ctrl G R startet den Debugger (siehe Debug-Umgebung) Ctrl F2 Ctrl G Q beendet die Debug-Sitzung F7 der naechste Programmschritt wird ausgefuehrt Ctrl G S (mit Sprung in Funktionen) F8 der naechste Programmschritt wird ausgefuehrt Ctrl G N (ohne Sprung in Funktionen) Ctrl F8 Ctrl G B Setzen bzw. Loeschen eines Breakpoints Ctrl G M Loeschen aller Breakpoints Ctrl F7 Ctrl G W Eingabe einer zu beobachtenden Variablen Ctrl G E Edieren einer zu beobachtenden Variablen (Siehe Watch-Fenster) Ctrl G D Loeschen einer zu beobachtenden Variablen (Siehe Watch-Fenster) Ctrl G D Loeschen einer zu beobachtenden Variablen (Siehe Watch-Fenster) Ctrl F6 Ctrl G K Anzeigen des Stack (siehe Stack-Fenster) Ctrl G O Anzeigen des Ausgabe-Ausgabefesters (nicht fuer XWindow)  Help-Kommandos: F1 Hilfe zum Window-Programming-Environment (xwpe) Alt F1 Hilfe zu einer beliebigen UNIX-Funktions Ctrl F1 Funktions-Index  Sitzungbeenden: Alt-X Beenden der WE-Sitzung (siehe Beenden der Sitzung)  Common User Access: Um eine gewisse Kompatibilitaet zu OSF-Motif bzw. MS-Windows zu erreichen wird ein zweite Form der Funktionstasten- belegung angeboten. Hierbei gelten folgende Ersetzungen: Fenster: F6 -> Ctrl F6 Naechstes Fenster Alt F3 -> Ctrl F4 Fenster schliessen F5 -> Shift F6 Zoom Suchen: Ctrl F4 -> F3 Nochmaliges Suchen F4 -> Alt F3 Suchen Alt F4 -> Ctrl F3 Ersetzen Dateibearbeitung: F3 -> F2 Aufruf des Datei-Managers F2 -> Alt F2 Speichern Debugger: Ctrl F8 -> F5 Breakpoint setzen Ctrl F7 -> Ctrl F5 Watch Ctrl F6 -> Ctrl F3 Stack aufrufen Sitzung beenden: Alt X -> Alt F4 Beenden der Editoren-Sitzung  Beenden der Sitzung: Wird das Kommando zum Beenden der Sitzung eingegeben werden alle NICHT veraenderten Dateien kommentarlos geschlossen. Fuer alle veraenderten Dateien wird nachgefragt: Yes Eingabe von Y speichert die Datei No Eingabe von N schliesst die Datei ohne zu speichern ESC Eingabe von bricht das Kommando ab (die Sitzung wird wieder aufgenommen)  Der Editor Der Editor ist in der Lage bis zu 35 Fenster gleichzeitig zu verwalten. In jedem Editoren-Fenster kann eine Datei geladen werden. Der Editor stellt eine Reihe von Funktionen zur Verfuegung. Die Funktionen koennen ueber Maus, Funktionstasten oder Menues ausgefuehrt werden. Funktionen sind ueber das Hinzufuegen und Loeschen einzelner Zeichen hinaus in erster Linie die folgenden: Kopieren, verschieben und loeschen ganzer Textbloecke innerhalb einer Datei (siehe Block-Menue) Kopieren, verschieben und loeschen ganzer Textbloecke zwischen verschiedenen Dateien (siehe Edit-Menue) Zeichenketten suchen und/oder ersetzen (siehe Search-Menue) Die Form und Lage der einzelnen Editoren-Fenster veraendern (siehe Window-Menue) Optionen fuer den Editor werden ueber das Options-Menue eingestellt. Dateien editiert, gesichert und ganz allgemein manipuliert wird ueber das File-Menue.  Die Hilfe-Funktion In einem Hilfefenster wird eine Beschreibung zu dem entsprechenden Punkt gegeben, aus dem heraus die Hilfe- Funktion aufgerufen wurde. Wurde die Hilfe-Funktion ueber Help/Editor aufgerufen, wird ein Verzeichnis der Hauptpunkte ausgegeben, die als Hilfestellungen angeboten werden. In den meisten Dokumentationen sind hervorgehobene Schluesselworte vorhanden. Anklicken eines Schluesselwortes bzw. Eingabe von nachdem der Cursor auf das ensprechende Schluesselwort gesetzt wurde, ruft die Hilfe- Funktion fuer das angegebene Thema auf. Es kann zu vorher betrachtete Hilfe-Funktionspunkten zurueckgeblaettert werden, indem ein die -Taste gedrueckt, oder mit der Maus auf die Ueberschrift des aktuellen Punktes geklickt wird. Zur folgenden Dokumentenseite kann mit Alt-F8 geblaettert werden. Zur im Dokument vorhergehenden Seite wird mit Alt-F7 geblaettert. Weitere Hilfestellungen fuer Programmierer werden ueber die Menuepunkte des Help-Menues gegeben.  Der File-Manager (Datei-Manager): Mit Hilfe des File-Managers koennen Dateien ediert, neue Unterverzeichnisse erstellt, sowie Dateien und Verzeichnisse kopiert, verschoben/umbenannt geloescht oder ihre Attribute veraendert werden. Alt-N Sprung in Namensleiste (Die vorgegebene Zeichenkette kann bearbeitet werden). Es gibt drei Moeglichkeiten von Namen: 1. Eine existierende Datei wird durch geladen. 2. Eine nicht existierende Datei wird durch erzeugt. 3. Eine Dateienmaske gibt an, welche Dateien unter 'Files' aufgelistet werden sollen. '*' steht fuer eine beliebige Zeichenkette. '?' steht fuer ein beliebiges Zeichen. eckigen Klammern. '[ - ]' steht fuer ein Zeichen aus dem Bereich zwischen den Zeichen vor und nach '-'. steht fuer alle Zeichen ausser den in den Klammern angegebenen. Eingabe von Return bewirkt einen Sprung nach 'Files'. Alt-F Sprung nach 'Files'. Die einzelnen Dateien, die der unter aufgelistet. Durch Eingabe der Cursortasten kann jeweils eine Datei markiert werden. Mit oder Alt-E wird diese Datei in den Editor geladen. Alt-D Eingabezeile fuer Inhaltsverzeichnis. Hier kann ein Inhaltsverzeichnis eingegeben werden. Durch Eingabe von wird das Arbeitsverzeichnis direkt in das eingegebene geaendert. Alt-T Baum des Inhaltsverzeichnisses. Durch Eingabe der Cur- sortasten kann in dem Baum gewandert werden. aendert das Arbeitsverzeichnis in das markierte Ver- zeichnis. Alt-C Das Arbeitsverzeichnis wird in das eingegebene bzw. markierte Verzeichnis geaendert. Alt-E Die unter 'Name' angegebene Datei bzw. die markierte Datei wird in den Editor geladen. Alt-P Die aktuelle Datei wird durch die unter 'Name' angege- bene Datei bzw. die markierte Datei ersetzt. Alt-M Die markierte Datei umbenennen, oder durch die Angabe eines neuen Pfades verschieben. Alt-U Die markierte Datei duplizieren. Der Name der duplizierten Datei ist der alte Dateiname ergaenzt durch die Endung .dup. Alt-R Loeschen der markierten Datei. Die Datei wird je nach Einstellung (siehe File-Manager-Optionen) in den Papi- erkorb verschoben oder absolut von der Platte gloescht. Alt-L Einen Link auf die markierte Datei setzen. Es wird als erstes versucht einen Hard-Link auf die Datei zu erstellen. Ist dies nicht moeglich (bei Verzeichnissen oder unterschiedlichen Platten-Partitionen), wird ein Soft-Link erstellt. Alt-O Die markierte Datei wird kopiert. Der neue Name muss angegeben werden. Alt-K Erzeugen eines neuen Unterverzeichnisses im aktuellen Verzeichnis. Nach der Erzeugung ist die Anwendung im Umbennenungsmodus (Alt-M) und der temporaere Name ist new.dir. Alt-A Setzen der Attribute fuer die markierte Datei. Alt-S (nur fuer Save As) Die aktuelle Datei wird unter dem unter 'Name' angegebenen Namen bzw. unter dem markier- ten Namen gespeichert. Beenden des File-Managers.  Der Execution-Manager: Mit Hilfe des Execution-Managers koennen Dateien ausfuehrbare Programme und Shell-Scripts ausgefuehrt werden. Es werden nur ausfuehrbare Dateien unter 'Files' gelistet. Alt-N Sprung in Namensleiste (Die vorgegebene Zeichenkette kann bearbeitet werden). Es gibt drei Moeglichkeiten von Namen: 1. Eine existierende Datei wird durch geladen. 2. Eine nicht existierende Datei wird durch erzeugt. 3. Eine Dateienmaske gibt an, welche Dateien unter 'Files' aufgelistet werden sollen. '*' steht fuer eine beliebige Zeichenkette. '?' steht fuer ein beliebiges Zeichen. eckigen Klammern. '[ - ]' steht fuer ein Zeichen aus dem Bereich zwischen den Zeichen vor und nach '-'. angegebenen. Eingabe von Return bewirkt einen Sprung nach 'Files'. Alt-F Sprung nach 'Files'. Die einzelnen Dateien, die der unter aufgelistet. Durch Eingabe der Cursortasten kann jeweils eine Datei markiert werden. Mit oder Alt-E wird diese Datei in den Editor geladen. Alt-D Eingabezeile fuer Inhaltsverzeichnis. Hier kann ein Inhalts- verzeichnis eingegeben werden. Durch Eingabe von wird das Arbeitsverzeichnis direkt in das eingegebene geaendert. Alt-T Baum des Inhaltsverzeichnisses. Durch Eingabe der Cur- sortasten kann in dem Baum gewandert werden. aendert das Arbeitsverzeichnis in das markierte Ver- zeichnis. Alt-C Das Arbeitsverzeichnis wird in das eingegebene bzw. markierte Verzeichnis geaendert. Alt-E Die unter 'Name' eingegebene Zeichenkette bzw. die mar- kierte Datei wird vom Betriebssystem ausgefuehrt. Beenden des Execution-Managers.  Die Programmierumgebung Das Run-Menue kann Programm-Code uebersetzen, binden und ausfuehren. Ist die angegebene Projekt-Datei vorhanden, wird diese bearbeitet, ansonsten wird die aktuelle Datei bearbeitet. Der Compiler wird in Abhaengigkeit von dem Datei-Postfix ausgewaehlt. Die moeglichen Compiler und die dazu gehoerigen Optionen sind unter dem Menue-Punkt Run/Options (siehe Compiler-Optionen) einstellbar. Compiliert und gebunden werden nur Dateien, die noch nicht uebersetzt wurden oder seit der letzten Uebersetzung veraen- dert wurden. Fuer C-Programme gilt, dass auch alle Veraen- derungen in eingebundenen 'include' - Dateien beruecksich- tigt werden. Treten beim Uebersetzen oder Binden des Programm- Codes Fehler auf, werden diese aufgelistet (siehe Message-Fenster), das weitere Uebersetzen und Binden abgebrochen und der Cursor an die vermutliche Fehlerstelle in der ensprechenden Datei gesetzt.  Die Debug-Umgebung Das Debug-Menue erlaubt das Setzen von Breakpoints direkt im Programm-Text. Bei einem Programm-Stop waehrend einer Debugger- Sitzung, wird der aktuelle Standpunkt in der entsprechenden Datei angezeigt. Ist sie als Datei noch nicht im Editor geladen, wird dies nachgeholt. Der Cursor wird an die entsprechende Code-Stelle gesetzt. Stops koennen durch Breakpoints oder durch Signale von aussen erzeugt werden. Es koennen Variablen angegeben werden, deren Werte bei jedem Stop ausgegeben werden (siehe Watch-Fenster) Bei einem Stop kann die Stack-Hierarchie ausgeben und in dieser gewandert werden (siehe Stack-Fenster).  Find: Mit Hilfe der Find Option koennen Dateien in einem Ver- zeichnis (auch rekursiv) gesucht werden. Alt-L Dateiname oder Dateienmaske nach der gesucht werden soll. Die Dateienmaske hat die gleichen Eigenschaften wie die unter File-Manager beschriebenen Alt-I Verzeichnis in dem nach der Datei oder Dateienmaske gesucht werden soll. Alt-K Rekursiv. Wenn diese Option eingeschaltet ist werden auch Unterverzeichnisse rekursiv durchsucht. Alt-O Suche beginnen. Abbruch der Find-Anwendung. Die Verzeichnisse in denen entsprechende Dateien gefun- den wurden werden in einem Find-Fenster aufgelistet.  Grep: Mit Hilfe der Grep Option koennen Zeichenketten in Dateien gesucht werden. Die Dateien werden hierbei entsprechend der unter File-Manager beschriebenen Dateienmaske durchsucht. Alt-T Such-Zeichenkette eingeben. Alt-C Wenn angegeben: Gross- und Kleinschreibung wird unter- schieden. Alt-W Wenn angegeben: Nur ganze Worte werden gesucht Alt-R Wenn angegeben: Regulaerer Ausdruck. (siehe die Such/Textersatz-Funktion) Alt-L Dateiname oder Dateienmaske nach der gesucht werden soll. Die Dateienmaske hat die gleichen Eigenschaften wie die unter File-Manager beschriebenen Alt-I Verzeichnis in dem nach der Datei oder Dateienmaske gesucht werden soll. Alt-K Rekursiv. Wenn diese Option eingeschaltet ist werden auch Unterverzeichnisse rekursiv durchsucht. Alt-O Suche beginnen. Abbruch der Find-Anwendung. Die Dateien in denen die angegebene Zeichenkette gefun- den wurde, werden in einem gesonderten Grep-Fenster aufgelistet.  Die Such/Textersatz-Funktion: Alt-T Such-Zeichenkette eingeben. Alt-N Textersatz-Zeichenkette eingeben (nur bei Replace) Alt-C Wenn angegeben: Gross- und Kleinschreibung wird unter- schieden. Alt-W Wenn angegeben: Nur ganze Worte werden gesucht Alt-R Wenn angegeben: Regulaerer Ausdruck. Folgende Sonder- zeichen werden interpretiert (Syntax (e)grep aehnlich): ^ Am Anfang der Such-Zeichenkette wird als Zeilenanfang interpretiert. $ Dieses Zeichen am Ende einer Such-Zeichenkette wird als Zeilenende interpretiert. . Steht fuer ein beliebiges Zeichen [] Steht fuer jedes Zeichen innerhalb der Klammern aber kein anders [^ ] Steht fuer kein Zeichen innerhalb der Klammern aber jedes andere [ - ] Steht fuer einen Zeichenbereich innerhalb der Klammern aber kein anderes * Das vorhergehende Zeichen wird n mal wiederholt (n >= 0) + Das vorhergehende Zeichen wird n mal wiederholt (n >= 1) ? Das vorhergehende Zeichen wird 0 oder 1 mal wiederholt | Oder: Es wird sowohl nach der Zeichenkette vor als auch nach der Zeichenkette nach dem | - Zeichen gesucht. Das folgende Zeichen wird nicht als Sonderzeichen interpretiert Alt-P Wenn angegeben, wird vor jeder Ersetzung nachgefragt.(Nur bei Replace) Nachfragen koennen wie folgt beantwortet werden: Yes Y Text ersetzen No N Text nicht ersetzen Bricht mehrfache Suche ab Alt-D Wenn angegeben: Vorwaerts suchen Alt-B Wenn angegeben: Rueckwaerts suchen Alt-G Wenn angegeben: Ganzen Text durchsuchen Alt-S Wenn angegeben: Nur markierten Bereich durchsuchen Alt-F Wenn angegeben: Suche von Cursor-Position starten Alt-E Wenn angegeben: Suche von Bereichsanfang starten Einmaliges Suchen/Ersetzen beginnen Alt-A Alle Ersetzungen bis Ende des Bereichs durchfuehren (Nur fuer Replace) Suchen/Ersetzen abbrechen  Funktions-Index: Das Programming-Environment erstellt beim Aufruf dieser Funktion einen Index aller vorhandenen Manual-Pages, die im Suchpfad gefunden wurden. Der Suchpfad muss ueber die Environment-Variable MANPATH angegeben werden. Der Funktions-Index ist nach groben Sachgebieten geordnet, die als Untermenue erscheinen: User Commands Benutzer Kommandos System Calls System Routinen (C - Funktionen) C-Lib.-Functions C - Biliotheks - Funktionen Devices & Netw. I. Geraete und Netzschnittstellen File Formats Datei - Formate Games & Demos Spiele und Demonstartionen Environments, ... Umgebungen, Tabellen und TROFF Makros Maintenance Com. Administrations Kommandos Nach Auswahl eines Manuals wird ein Index aller dokumentier- ten Funktionen, Kommandos, etc. ausgegeben. Durch Auswahl eines Stichwortes ( oder Mausklick) wird die auf dem Rechner vorhandene Dokumentation zu diesem Stichwort in einem Fenster ausgegeben. Die Dokumentation zu jedem dieser Stichworte kann auch direkt ueber den Menue-Punkt Function in ein Editoren- Fenster geladen werden. Diese Dokumentationen sind, wie alle Hilfestellungen, read- only Dateien, die mit Hilfe der Cursor-Tasten und der Such- Funktion bearbeitet werden koennen.  Das Editoren-Fenster Mit Hilfe des Editoren-Fensters koennen Dateien ediert werden. Hierfuer stehen die Maus (siehe Maus im Editoren-Fenster), Funktionstasten oder die Edito- ren-Menues zur Verfuegung. Die wichtigsten Menues haben die folgenden Funktionen: Kopieren, verschieben und loeschen ganzer Textbloecke innerhalb einer Datei (siehe Block-Menue) Kopieren, verschieben und loeschen ganzer Textbloecke zwischen verschiedenen Dateien (siehe Edit-Menue) Zeichenketten suchen und/oder ersetzen (siehe Search-Menue) Die Form und Lage der einzelnen Editoren-Fenster veraendern (siehe Window-Menue) Optionen fuer den Editor werden ueber das Options-Menue eingestellt. Dateien editiert, gesichert und ganz allgemein manipuliert wird ueber das File-Menue.  Das Find-Fenster In dem Find-Fenster werden alle Verzeichnisse aufgelistet, in denen die gesuchten Dateien durch Find gefunden wurden. Durch Eingabe von Alt-S oder  wird ein File-Manager fuer das markierte Verzeichnis aufgerufen und in ihm die gefun- denen Dateien angezeigt. Durch Eingabe von  kann das 'Find' - Fenster wieder geloescht werden.  Das Grep-Fenster In dem Grep-Fenster werden alle Dateien aufgelistet, in denen die Suchzeichenkette durch Grep gefunden wurde. Durch Eingabe von Alt-S oder  wird die markierte Datei in den Editor geladen und an die erste Textstelle gesprungen, die den Suchstring enthaelt. Durch Eingabe von  kann das Grep-Fenster wieder geloescht werden.  Das Message-Fenster Treten Fehler beim Uebersetzen oder Binden eines Programm- Codes auf, werden diese im Message-Fenster dokumentiert. Das Message-Fenster ist eine read-only Datei, die mit Hilfe der Cursor-Tasten und der Such-Funktion gelesen werden kann. Ausserdem kann durch betaetigen der Return-Taste, zu dem in der aktuellen Zeile beschriebenen Fehler gesprungen werden. Das Springen zu einem Fehler erfolgt in der Weise, dass die Datei in der dieser aufgetreten ist zur aktuellen Datei geschaltet wird, (Ist sie nicht geladen wird sie in ein neues Fenster geladen) und der Cursor an die von dem Com- piler angegebene Stelle gesetzt wird. Es kann dann der Fehler direkt behoben werden und ein neuer Uebersetzungsversuch gestartet werden.  Das Project-Fenster Im Project-Fenster werden die in der Projekt-Datei eingetragenen Dateien aufgelistet. Es wird ueber das Project-Menue oder das Window-Menue aufgerufen. Ueber die Eingabe von Alt-A (Add) oder  koennen neue Dateien zu den Projekt- Dateien hinzugefuegt werden. Hierzu wird der Datei-Manager aufgerufen. Eingabe von  oder Alt-A (Add) fuegt dann die markierte Datei hinzu. Durch Eingabe von Alt-E (Edit) oder  im Project-Fenster kann der Eintrag in der Liste der Projekt-Dateien veraendert werden. Durch Eingabe von Alt-D (Delete) oder  im Project-Fenster kann die markierte Datei aus der Liste der Projekt-Dateien entfernt werden. Durch Eingabe von Alt-O werden die Projekt-Optionen aufgerufen. Die Eingabe von  schliesst das Project-Fenster.  Das Variablen-Fenster Im Variablen-Fenster werden die in der Projekt-Datei definierten Variablen aufgelistet. Es wird ueber die Projekt-Optionen aufgerufen. Ueber die Eingabe von Alt-A (Add) oder  koennen neue Variablen definiert werden. Durch Eingabe von Alt-E (Edit) oder  kann die markierten Variable veraendert werden. Durch Eingabe von Alt-D (Delete) oder  kann die markierte Variable aus der Liste der definierten Variablen geloescht werden. Die Eingabe von  schliesst das Variablen-Fenster.  Das Install-Fenster Im Install-Fenster werden die in der Projekt-Datei auf- gefuehrten Kommandos, die beim Aufruf von Install (siehe Run-Menue) abgearbeitet werden sollen aufgelistet. Es wird ueber die Projekt-Optionen aufgerufen. Ueber die Eingabe von Alt-A (Add) oder  koennen weitere Kommandos der Liste hinzugefuegt werden. Durch Eingabe von Alt-E (Edit) oder  kann das markierte Kommando veraendert werden. Durch Eingabe von Alt-D (Delete) oder  kann das markierte Kommando aus der Liste entfernt werden. Die Eingabe von  schliesst das Install-Fenster.  Das Watch-Fenster Das Watch-Fenster ist ein read-only Fenster, in dem die Werte, der ueber die Watch Funktionen (siehe Debug-Menue) angegebenen Variablen ausgegeben werden. In dem Fenster kann mit Hilfe der Cursor-Tasten und der Such-Funktion gewandert werden. Zusaetzliche Funktionen sind (in Abhaengigkeit von der Cursor-Position im Watch-Fenster): Auf eine angegebene Variable, editiert diese. Am Ende der Datei, definiert eine neue Variable. Setzt eine neue Variable an die ensprechende Stelle Loescht die angegebene Variable Ist eine Variable in der aktuellen Funktion nicht vorhanden wird dies gemeldet.  Das Stack-Fenster Das Stack-Fenster ist ein read-only Fenster, in dem die Stack- Hierarchie angegeben wird. In dem Fenster kann mit Hilfe der Cursor-Tasten und der Such-Funktion gewandert werden. Zusaetzlich kann ueber  im Stack gesprungen werden (Funktioniert nicht fuer den Debugger 'sdb'). Der Aufruf des Stack-Fensters ist unbedingt bei einem Stop ueber ein Signal zu empfehlen, da in diesem Fall in die naechstliegende sichtbare Funktion (also nicht System-Funktion) gesprungen wird.  Die Maus (nur fuer XWindow): Wenn eine Maus installiert ist, koennen alle Tasteneingaben ueber diese vorgenommen werden. Diese erfolgen durch ein- faches Anklicken der entsprechenden Zeile bzw. des entsprechenden Kommando-Wortes. Ein Fenster wird geschlos- sen ueber das Anklicken des 'Cancel' Kommandos oder durch Anklicken des 'Close-Button' am oberen linken Rand des Fen- sters. Die Maus im Editoren-Fenster und die Maus im File-Manager haben noch zusaetzliche Funktionalitaet. Das Pressen des mittleren Maus-Buttons in einer zu bear- beitenden Zeile bewirkt ein Kopieren des Pufferinhalts an die Maus-Cursor- Position (Paste).  Die Maus im Editoren-Fenster Wenn eine Maus installiert ist, koennen alle Tasteneingaben ueber diese vorgenommen werden. Diese erfolgen durch ein- faches Anklicken der entsprechenden Zeile bzw. des entsprechenden Kommando-Wortes. Das Fenster wird geschlossen ueber das Anklicken des 'Close-Button' am oberen linken Rand des Fensters. Ein Zoom auf das Fenster wird durchgefuehrt in dem der 'Zoom-Button' (-[z]-) am rechten oberen Rahmen des Fensters angeklickt wird. Das Fenster wird Verschoben durch Anklicken des oberen Rah- mens und Verschieben der Maus bei festgehaltenem Maus- Button. Die Groesse des Fensters kann durch Anklicken einer Fen- sterecke und Verschieben der Maus bei festgehaltenem Maus- Button veraendert werden. Ein Sprung zu einer speziellen Zeilennummer kann durch Ank- licken der Zeilennummer und Eintragen in das dann erscheinende Fenster erreicht werden. Cursor-Bewegungen werden durch das Anklicken der Mausleisten bewirkt. Anklicken der Pfeile am oberen bzw. unteren Ende der Mausleste bewirken eine Cursorbewegung um jeweils eine Zeile nach oben bzw. unten. Ein Anklicken der Mausleiste oberhalb bzw. unterhalb des Zeigers bewirkt ein Blaettern um jeweils eine Seite nach oben bzw. unten. Das Anklicken des Zeigers und Bewegung der Maus bei festgehaltenem Maus-Button bewrikt ein Verschieben des Cursors realtiv zum Verschieben des Zeigers. Innerhalb des Fensters: Linker Maus-Button: Das einfache Pressen des linken Maus-Buttons innerhalb des Textes bewirkt das Setzen des Cursors an die entsprechende Stelle. Wird der Maus-Button gedrueckt, waehrend der Maus-Cursor auf dem Text-Cursor steht, wird das entsprechende Wort makiert. Geschieht letzteres innerhalb eines schon markierten Wortes, wird die ganze Zeile markiert. Bewegung des Maus-Cursors bei gedruecktem linken Maus-Button bewirkt ein Markieren des ensprechenden Textbereiches. Bei gleichzeitigem Druecken der Shift-Taste wird der Bereich zwischen Maus-Cursor und schon markierten Bereich zu letzteren hinzugefuegt. Rechter Maus-Button: Das Pressen des rechten Maus-Buttons bewirkt das Kopieren des markierten Bereichs in den Puffer (Copy). Wird gleichzeitig die Alt-Taste gedrueckt, wird in den X-Puffer kopiert. Bei gleichzeitig gedrueckter Shift-Taste wird der markierte Bereich aus dem Text geloescht und in den Puffer geschoben (Cut). Mittlerer Maus-Button: Das Pressen des mittleren Maus-Buttons bewirkt ein Kopieren des Pufferinhalts an die Maus-Cursor-Position (Paste). Wird gleichzeitig die Alt-Taste gedrueckt, wird aus dem X-Puffer kopiert.  Die Maus im File-Manager Wenn eine Maus installiert ist, koennen alle Tasteneingaben ueber diese vorgenommen werden. Diese erfolgen durch ein- faches Anklicken der entsprechenden Zeile bzw. des entsprechenden Kommando-Wortes. Das Fenster wird geschlossen ueber das Anklicken des 'Close-Button' am oberen linken Rand des Fensters. Ein Zoom auf das Fenster wird durchgefuehrt in dem der 'Zoom-Button' (-[z]-) am rechten oberen Rahmen des Fensters angeklickt wird. Das Fenster wird Verschoben durch Anklicken des oberen Rahmens und Verschieben der Maus bei festgehaltenem Maus- Button. Die Groesse des Fensters kann durch Anklicken einer Fen- sterecke und Verschieben der Maus bei festgehaltenem Maus- Button veraendert werden. Markierungen in der 'Files'-Liste als auch im Verzeichnis- baum koennen durch das Anklicken der Mausleiste bewegt wer- den. Anklicken der Pfeile am oberen bzw. unteren Ende der Mausleste bewirken eine Bewegung um jeweils eine Zeile nach oben bzw. unten. Ein Anklicken der Mausleiste oberhalb bzw. unterhalb des Zeigers bewirkt ein Blaettern um jeweils eine Seite nach oben bzw. unten. Das Anklicken des Zeigers und Bewegung der Maus bei festgehaltenem Maus-Button bewrikt ein Verschieben der Markierung realtiv zum Verschieben des Zeigers. Innerhalb des Fensters: Linker Maus-Button: Das einfache Pressen des linken Maus-Buttons auf einen unmarkierten Datei- oder Verzeichnisnamen markiert diesen. Das einfache Pressen auf einen markierten Dateinamen fuehrt zum Laden der Datei in den Editor. Das einfache Pressen auf einen markierten Verzeichnisnamen fuehrt zum Aendern des aktuellen Verzeichnisses auf das markierte. Pressen des linken Maus-Button auf eine markierte Datei oder Verzeichnis und Bewegung des Maus-Cursors bei gedruecktem Maus-Button bewirkt ein Verschieben dieser in ein anderes Verzeichnis unter der Vorraussetzung, dass zum Zeitpunkt des Loesens des Maus-Buttons, sich der Maus-Cursor in einem anderen File-Manager-Fenster befindet. Die Datei oder das Verzeichnis wird dann in das aktuelleingestellte Verzeichnis des letzteren File-Manager-Fenster verschoben. Rechter Maus-Button: Das Pressen des rechten Maus-Buttons auf einen markierten Datei- oder Verzeichnisnamen fuehrt zum Aufruf der Verschieben/Umbenenen-Option des File-Managers. Pressen des rechten Maus-Button auf eine markierte Datei oder Verzeichnis und Bewegung des Maus-Cursors bei gedrueck- tem Maus-Button bewirkt das Erzeugen eines Links auf die Datei in einem anderen Verzeichnis unter der Vorraussetzung, dass zum Zeitpunkt des Loesens des Maus-Buttons, sich der Maus-Cursor in einem anderen File-Manager- Fenster befindet. Der Link auf die Datei oder das Verzeichnis wird dann in das aktuell eingestellte Verzeichnis des letzteren File- Manager-Fensters erzeugt. Mittlerer Maus-Button: Das Pressen des mittleren Maus-Buttons auf einen markierten Datei- oder Verzeichnisnamen fuehrt zur Duplizierung der Datei bzw. des Verzeichnisses. Pressen des mittleren Maus-Button auf eine markierte Datei oder Verzeichnis und Bewegung des Maus-Cursors bei gedrueck- tem Maus-Button bewirkt das Kopieren dieser in ein anderes Verzeichnis unter der Vorraussetzung, dass zum Zeitpunkt des Loesens des Maus-Buttons, sich der Maus-Cursor in einem anderen File-Manager-Fenster befindet. Die Datei oder das Verzeichnis wird dann in das aktuell eingestellte Ver- zeichnis des letzteren File-Manager-Fenster kopiert.  Editor-Optionen Data: Alt-A Wenn angegeben: Die naechsten Dateien werden als ASCII-Dateien eingelesen und behandelt. Alt-B Wenn angegeben: Die naechsten Dateien werden als binaer Dateien eingelesen und behandelt. Display: Alt-S Wenn angegeben: Es werden die Zeilenenden markiert. Ein '$' steht fuer und ein '' fuer eine NULL (naechste Zeile ist Anschlusszeile). Autosave: Alt-P Wenn angegeben: Die eingestellten Optionen werden automatisch beim Verlassen des Editors gesichert. Alt-H Wenn angegeben: Es wird nach jeweils N textveraendernden Aktionen die Datei automatisch gesi- chert. N wird unter Max. Changes (siehe Alt-X) angege- ben. Das Sichern der Datei erfolgt in eine Datei 'Dateiname'.ASV und ueberschreibt nicht die Orginal- datei. Die Sicherheitskopie wird beim normalen Speichern geloescht. Keys (Interpretation der Funktionstasten): Alt-L Wenn angegeben: Es werden die bekannten xwpe Funktionstasten- belegungen verwendet. (Version < 1.2.0; Turbo C aehnlich) Alt-C Wenn angegeben: Es werden 'Common User Access' Tasten- interpretationen verwendet. (MS-Windows aehnlich, aber manchmal nicht so handlich). Auto-Indent (Automatischer Zeileneinzug): Alt-Y Wenn angegeben: Der Automatische Zeileneinzug bezieht sich nur auf Dateien mit Namensendungen, die unter Optionen/Compiler eingestellt sind. Alt-W Wenn angegeben: Der Automatische Zeileneinzug bezieht sich auf alle Dateien. Alt-V Wenn angegeben: Der Automatische Zeileneinzug ist ausgeschaltet. Alt-M Maximale Anzahl der Spalten pro Zeile. Nach der entsprechen- den Anzahl Zeichen, wird automatisch ein Zeilenumbruch durch- gefuehrt. Alt-T Interpretazion des Tabstop-Characters: Ein Tabstop wird als die entsprechende Anzahl Spalten interpretiert. Alt-X Wenn Autosave/Changes eingestellt ist wird nach der entpre- chenden Anzahl Textveraendernder Aktionen automatische eine Sicherheitskopie des Textes angelegt (siehe Alt-H). Alt-N Anzahl der Undo-Schritte, die ueber Edit/Undo rueck- gaengig gemacht werden koennen. Alt-I Anzahl der Spalten bei automatischen Zeileneinzug  File-Manager-Optionen Directories: Alt-F Wenn angegeben: auch versteckte Dateien werden gel- istet. Alt-D Wenn angegeben: auch versteckte Verzeichnisse werden gelistet. Alt-K Wenn angegeben: Alle Aktionen (Move, Link, Copy und Remove) werden rekursiv, also auch in Unterverzeich- nissen ausgefuehrt. Sort Files By (Sortieren der Dateien nach): Alt-N Name: Dateien werden alphabetisch sortiert. Alt-I Time: Dateien werden nach ihrem Erzeugungsdatum sor- tiert. Alt-B Bytes: Dateien werden nach ihrer Groesse sortiert. Alt-R Reverse: Reihenfolge der Sortierung wird umgekehrt. Move/Copy: Alt-Q Wenn angegeben: beim Verschieben/Umbennenen wird nachgefragt, ob gleichnamige Dateien ueberschrieben werden sollen. Alt-V Wenn angegeben: beim Verschieben/Umbennenen werden gleichnamige Dateien ueberschrieben. Alt-T Wenn angegeben: beim Verschieben/Umbennenen werden gleichnamige Dateien nicht ueberschrieben. Remove: Alt-W Wenn angegeben: Dateien werden beim Loeschen in den Papierkorb geschoben. Alt-A Wenn angegeben: Dateien werden absolut geloescht. Es wird vor dem Loeschen aber nachgefragt. Alt-M Wenn angegeben: Dateien werden ohne Nachfrage absolut geloescht. Links on Files: Alt-H Wenn angegeben: Es wird bei jedem Link versucht einen Hardlink auf eine Datei zu erzeugen. Ist dies nicht moeglich, wird ein symbolischer Link erzeugt. Alt-S Wenn angegeben: Jeder Link wird als symbolischer Link erzeugt. Wastebasket (Papierkorb): Alt-P Wenn angegeben: beim Verlassen von xwpe wird nachgefragt ob der Papierkorb geloescht werden soll. Alt-E Wenn angegeben: der Papierkorb wird beim Verlassen von xwpe geloescht. Alt-L Wenn angegeben: der Papierkorb wird beim Verlassen von xwpe nicht geloescht.  Compiler-Optionen Beim Aufruf des Menuepunktes  Options/Compiler werden, die Untermenuepunkte  Add Compiler,  Remove Compiler und die bereits eingestellten Compiler aufgelistet. Ueber den Punkt Add Compiler, sowie ueber die einzelnen schon eingestellten Compiler gelangt man zu dem folgenden Optionen-Menue: Language Unter diesem Punkt wird der Name der Programmiersprache eingegeben. Compiler Hier wird der Compiler-Pfad angegeben. Compiler-Options Hier werden die vom Compiler bei der Uebersetung zu beruecksichtigen Optionen eingestellt. Loader-Options Hier werden die vom Loader beim Binden zu beruecksi- chtigen Optionen eingestellt. Executable-Name Name des auszufuehrenden Programms (Voreinstellung ist Programmname.e) File-Postfix Der File-Postfix gibt an welche Dateien mit diesem Com- piler bearbeitet werden sollen (Beispiel: .c fuer C-Compiler). Compiler-Style Gibt an wie eventuell aufgetretene Fehler interpretiert werden sollen. Es gibt die beiden Moeglichkeiten 'GNU' fuer GNU aehnliche Compiler und 'Other' fuer Compiler die andere Fehlermeldungssyntax verwenden. Wenn 'Other' ausgewaehlt wurde, wird der Message-String (siehe unten) interpretiert, um Fehlermeldungen zu erkennen. OK Veraenderungen werden uebernommen. CANCEL Verlassendes Menues ohne Veraenderungen. Mit Add Compiler wird ein neuer Compiler zu den vorhan- denen hinzu- gefuegt. Ueber den Aufruf eines vorhandenen Compilers koennen dessen Optionen veraendert werden. Remove Compiler mit dieser Option kann ein vorhandener Compiler wieder aus der Liste geloescht werden.  Projekt-Optionen Compiler Hier wird der Compiler-Pfad angegeben. Compiler-Options Hier werden die vom Compiler bei der Uebersetung zu beruecksichtigen Optionen eingestellt. Loader-Options Hier werden die vom Loader beim Binden zu beruecksi- chtigen Optionen eingestellt. Executable-Name Name des auszufuehrenden Programms (Voreinstellung ist a.out) Store Objects in Library Wird hier ein Bibliotheksname angegeben, werden die erzeugten Objektdateien in dieser abgelegt. Die Bibliothek wird beim Binden dann mit beruecksichtigt. Compiler-Style Gibt an wie eventuell aufgetretene Fehler interpretiert werden sollen. Es gibt die beiden Moeglichkeiten 'GNU' fuer GNU aehnliche Compiler und 'Other' fuer Compiler die andere Fehlermeldungssyntax verwenden. Wenn 'Other' ausgewaehlt wurde, wird der Message-String (siehe unten) interpretiert, um Fehlermeldungen zu erkennen. Variablen ... Die Variablen des Projekts werden in einem gesonderten Variablen-Fenster aufgelistet. Es koennen sowohl Varia- blen geloescht als auch neue hinzugefuegt werden. Install ... Die Anweisungen, die beim Aufruf der Install-Anwendung abgearbeitet werden sollen, werden in einem gesonderten Install-Fenster aufgelistet. Es koennen sowohl Anweisungen geloescht als auch neue hinzugefuegt wer- den. Save Veraenderungen werden in der angegebenen Projekt-Datei gespeichert. Save As Veraenderungen werden unter neuem Namen gespeichert. CANCEL Verlassendes Menues ohne Veraenderungen.  C-Programmierhilfen Nur fuer C bzw. C++ - Programmtexte werden die folgenden Programmierhilfen zur Verfuegung gestellt: Sprung zur Definition eines C-Ausdrucks (Show Definition ^O S): Die Datei, in der sich die Definition des Suchausdrucks befindet, wird in den Vordergrund geholt oder geladen. Der Cursor der Suchausdruck wird hierbei markiert und der Cursor an die entsprechende Stelle gesetzt. Es werden Struktur-, union-, class-, typedef-, Preprozessor-, externe Variablen- und Funktionsdefinitionen erkannt. Durchsucht wird die Datei im aktuellen Fenster sowie alle Projekt-Dateien, wenn ein Projekt geoeffnet wurde. Hierbei werden alle ueber #include eingefuegten Dateien rekursiv durchsucht, soweit sie ueber den in Optionen/Programming eingestellten System-Include- Path gefunden wurden. Ist ein gesuchter Name mehrmals definiert worden (z.B. als Name einer Struktur und als Name einer externen Variablen) kann die naechste Definition mit ^O N (Show next Definition) gesucht werden. Zugehoerige Klammer (Matching Bracket ^O K): Wird dieser Menue-Punkt aufgerufen, wird der Cursor, wenn er sich auf einer Klammer befindet auf die dazu gehoerige gesetzt. Befindet sich der Cursor auf keiner Klammer wird zurueck zur naechsten oeffnenden gesprungen. Es werden geschweifte {}, eckige [] und runde () Klammern beruecksichtigt. Text verschoenern (Beautify ^O B): Wird dieser Menue-Punkt aufgerufen werden die einzelnen Bloecke gleichmaessig eingerueckt. Hierbei entspricht der Grad der Einrueckung der Tiefe der Blockverschachtelung.  Projekt-Datei Mit Hilfe der Projekt-Datei koennen Programme, die aus mehreren Modulen bestehen interaktiv bearbeitet werden. Die Projekt-Datei kann ueber den Menue - Punkt Run/Options/Project-Options (siehe Projekt-Optionen) erstellt werden oder aber direkt ediert werden. Die Syntax der Projekt-Datei ist kompatibel zu der von Makefiles. (dies gilt ab der Version 1.1.0 und ist nicht kompatibel zu frueheren Versionen). Fuer die Projekt-Datei sind nur Variablen-Definitionen und die Definition des 'install' - Targets von Bedeutung. Syntax fuer Variablen-Defintionen ist: Variablenname = Zeichenkette Auf diese Weise koennen beliebige Variablen definiert wer- den. Die Variablen werden ueber $(Variablenname) in der Reihenfolge ausgewertet, dass erst nach einer Umgebungsvari- able dieses Namens gesucht wird. Ist diese nicht vorhanden, wird nach einer Definition in der Projekt- Datei gesucht. Ist diese auch nicht vorhanden, wird eine leere Zeichenkette fuer $(Variablenname) eingesetzt. Folgende Variablen haben feste Bedeutungen: FILES Eine beliebige Anzahl zu uebersetzender Programm-Code Module, die zu einem Executable zusammengebunden werden sollen. CMP Compiler-Pfad CMPFLAGS Compiler-Optionen CMPSWTCH Fehlerinterpretation (Voreinstellung ist 'GNU', es kann LDFLAGS Loader-Optionen EXENAME Name des Executables (Voreinstellung ist a.out) LIBNAME Name der Bibliothek. Wenn angegeben, werden die Objektdateien in der Bibliothek gespeichert und diese beim Binden des Programms beruecksichtigt. Aus einem Makefile kann also einfach eine Projekt-Datei gemacht werden, in dem am Ende z.B. die folgenden Zeilen eingefuegt werden (fuer C) : FILES=$(CFILES) CMP=$(CC) LDFLAGS=$(LIBFLAGS) EXENAME='Targetname' Beim Aufruf der Compile- bzw. Make-Anwendung: Die Dateien werden nach einander in der angegebenen Reihenfolge bearbeitet. Wenn eine Datei seit der letzten Uebersetzung veraendert wurde, wird diese neu uebersetzt. Tritt ein Fehler auf, wird die Bearbeitung der Projekt-Datei abgebrochen und eine Fehlerausgabe durchgefuehrt (siehe Message-Fenster). Ist kein Fehler aufgetreten, werden alle Objektdateien unter Beruecksichtigung der Loader-Optionen zu einem Executable mit dem unter name: angegebenen Namen zusam- mengebunden. In der Projekt-Datei kann ein 'install'-Target angege- ben werden. Dieses beginnt mit install: In der gleichen Zeile eventuell folgende Abhaengig- keiten wie in einem Makefile werden ignoriert. Die Abhaengigkeiten der install-Anwendung sind stattdessen durch die oben beschriebene Variable FILES gegeben. Nach diesem Targetnamen werden alle folgenden Zeilen die mit einem beginnen als UNIX-Kommandos inter- pretiert und ausgefuehrt. Hiebei wird die Auswertung eventuell auftretender Variablen berueck- sichtigt: Kommando1 Kommando2 koennen alle UNIX-Kommandos benutzt werden (das Kom- mando 'cd' bleibt ohne Wirkung). Das Install-Target wird ueber den Menuepunkt Run/Install (oder Alt-L) aus- gefuehrt (siehe Run-Menue).  Der Message-String: Der 'Message-String' wird zur Interpretation der Compiler- Ausgabe verwendet, wenn der 'Compiler-Style' 'Other' eingeschaltet ist. Der 'Message-String' muss normalerweise an den verwendeten Compiler angepasst werden. Er wird mit der Compiler-Ausgabe wie folgt verglichen: '*' steht fuer eine beliebige Zeichenkette. '?' steht fuer ein beliebiges Zeichen. '[ ]' steht fuer ein Zeichen aus der Liste zwischen den eckigen Klammern. (Es gilt die gleiche Syntax wie beim File-Manager.) ${FILE} wirkt wie '*', aber die Zeichen werden als Name der Datei, in der der Fehler aufgetreten ist gespeichert. ${LINE[+-N]} wirkt wie '*', aber die Zeichen werden als Zeilennummer interpretiert. Es kann eine Zahl N addiert oder subtrahiert werden. ${FILE} und ${LINE} muessen in dem Message-String angegeben werden. Kann eine Compiler- Ausgabezeile so interpretiert werden, dass ein gueltiger Dateiname und eine gueltige Zeilennummer erhalten werden, wird diese als Fehlerausgabe gewertet. Optional ist die Interpretation der Spaltenangabe. Hier gibt es mehrere Moeglichkeiten: ${COLUMN[+-N]} - die Zeichenkette ${COLUMN} wird als Zahl interpretiert. ${COLUMN=BEFORE[+-N]} - die Zeichenkette ${COLUMN} wird als Suchausdruck interpre- tiert und die Spalte ist die vor dem gefundenen Ausdruck. ${COLUMN=AFTER[+-N]} - die Zeichenkette ${COLUMN} wird als Suchausdruck interpretiert und die Spalte ist die hinter dem gefundenen Ausdruck. In allen drei Faellen kann eine Zahl N addiert oder subtrhiert werden. Erstrecken sich Fehlerangaben ueber mehrere Zeilen (z.B. Sun-Pascal: pc) kann dies dadurch beruecksichtigt werden, dass im Message-String CR's (^M) angegeben werden, mit Hilfe derer die Interpretation auf mehrere Zeilen aufgeteilt wer- den kann. Fuer diese Faelle gibt es die Vergleichszeichenk- ette ${CMPSTR}, mit Hilfe derer die Angabe ${COLUMN=PREVIOUS?STR[+-N]} in der folgenden Zeile ausgewer- tet werden kann. STR ist eine Suchzeichenkette, die mit ${CMPSTR} verglichen wird. Warnungen: Warnungen werden durch Vergleich mit einer Zeichenkette STR wie folgt erkannt: ${?N:STR} - N kann eine Zahl oder ein '*' sein. Ist N eine Zahl gibt sie die Spalte an, an der die Warnung beginnen soll. Ist ein '*' angegeben, kann STR irgendwo im Text auftreten. Es koennen beliebig viele Warnumgszeichenketten angegeben werden. Beispiele: gcc: ${?*:warning:}${FILE}:${LINE}:* before \ `${COLUMN=BEFORE}' cc(Sun): ${?*:warning:}"${FILE}", line ${LINE}:* \ at or near * "${COLUMN=AFTER}" cc(HP): ${?*:warning:}cc: "${FILE}", line ${LINE}:* \ at or near * "${COLUMN=AFTER}" pc(Sun): ${?0:e}${?0:w}${?0:s}*:*:* * ${FILE}:^M^M* \ ${LINE} ${CMPTXT}^M*-------${COLUMN=PREVIOUS?^}  Syntax-Unterstuetzung: xwpe bietet eine Syntax-Unterstuetzung, die darin besteht, dass die Schluesselworte und Operatoren einer Sprache unter- schieden werden von den Konstanten, den Preprozessor- Anweisungen und dem Rest des Textes. Voreingestellt ist die Unterstuetzung der Programmiersprachen C, C++, FORTRAN. Durch die Initialisierungsdatei we_synt_defs koennen aber weitere Sprachen hinzugefuegt bzw. die voreingestellten ueberschrieben werden. Die zu benutzende Sprache wird anhand der Dateiendung festgestellt. Die Datei we_synt_defs ist eine ASCII-Datei und kann im Verzeichnis ../lib/wpe relativ zum Verzeichnis der xwpe oder im persoen- lichen Heimatverzeichnis unter .wpe abgelegt werden. Sie muss fuer jede Sprache wie folgt aufgebaut sein: "Zeichenkette: Endung des Dateinamen" "Integer: Anzahl der Schluesselworte" "Zeichenketten: Schluesselworte" "Integer: Anzahl der Mehrzeichen-Operatoren" "Zeichenketten: Mehrzeichenoperatoren" "Zeichenkette: Alle Einzeichen-Operatoren" "Zeichenkette: Beginn-Kommentar" "Zeichenkette: Ende-Kommentar" "Zeichenkette: Beginn-Kommentar bis zum Ende der Zeile" "Zeichenkette: alle Zeichen fuer Spaltenabhaengigen Kommentar" "Zeichenkette: speziellen Einzelzeichen" "Integer: Spalte fuer Kommentar (-1 kein spaltenabhaengiger Kommentar)" "Integer: Spalte fuer Anschlusszeile (-1 keine spaltenabhaengige Anschlusszeile)" "Integer: Spalte Kommentar bis zum Ende (1000 kein spaltenabhaengiger Kommentar)" Die Zeichenketten und Integer muessen durch Blanks oder CR getrennt werden. Die Zeichenketten aus Einzeichenoperatoren und Zeichen fuer Spaltenabhaengige Kommentare duerfen keine Leerzeichen enthalten. Alle Zeichenketten fuer Kommentare koennen durch NULL auf 'nicht vorhanden' gesetzt werden. Die Anzahl-Integer duerfen auf 0 gesetzt werden, wenn keine Schluesselworte bzw. Mehrzeichen Operatoren existieren. Die Zeichenkette 'spezielle Zeichen' setzt sich wie folgt zusam- men: Zeichen fuer String-Konstante Zeichen fuer Character-Konstante Zeichen fuer Preprozessor-Anweisung Zeichen fuer naechstes Zeichen uninterpretiert Zeichen fuer naechste Zeile ist Anschlusszeile (wenn am Ende der Zeile) Zeichen (zur Zeit keine Bedeutung) Zeichen fuer naechste Zeile ist Anschlusszeile (an beliebiger Stelle) Zeichen (wenn nicht leer wird Gross/Kleinschreibung bei Schluesselworten nicht unterschieden.) Ein Leerzeichen innerhalb dieser Zeichenkette steht fuer das Fehlen des entsprechenden Zeichens. Beispiele: .c 33 NULL auto break case char const continue default do double else enum extern float for goto if int long register return short signed sizeof static struct switch typedef union unsigned void volatile while 0 ()[]{}<>+-/*%=|&!.?:,; /* */ NULL NULL "'#\ -1 -1 1000 .f 64 ACCESS ASSIGN BACKSPACE BLANK BLOCKDATA CALL CHARACTER CLOSE COMMON COMPLEX CONTINUE DATA DIMENSION DIRECT DO DOUBLE PRECISION ELSE END ENDFILE ENTRY EQUIVALENCE ERR EXIST EXTERNAL FILE FMT FORM FORMAT FORMATTED FUNCTION GOTO IF IMPLICIT INQUIRE INTEGER INTRINSIC IOSTAT LOGICAL NAME NAMED NEXTREC NUMBER OPEN OPENED PARAMETER PAUSE PRINT PROGRAM READ REAL REC RECL RETURN REWIND SAVE SEQUENTIAL STATUS STOP SUBROUTINE TO UNFORMATED UNIT WRITE 13 .AND. .EQ. .EQV. .FALSE. .GE. .GT. .LE. .LT. .NE. .NEQV. .NOT. .OR. .TRUE. ()+-/*=$.:, NULL NULL ! C* ' 1 0 5 72  Automatischer Zeileneinzug Der automatische Zeileneinzug kann unter Editor-Optionen eingestellt werden. Er betieht sich auf folgende Tasten: Die neue Zeile wird bis zum Beginn der vorheri- gen Zeile eingerueckt. Vor dem ersten sichtbaren Zeichen einer Zeile eingegeben bewirkt ein Einruecken der Zeile bis zum Beginn der vorherigen. Ist die Cursor- Position hinter dieser Spalte wird um die Anzahl von Spalten gegenueber der vorherigen Zeile eingerueckt, die unter Editor-Optionen eingestellt ist. Befindet sich der Cursor auch hinter dieser Position, wird ein Tabulator- zeichen eingefuegt. Letzteres geschieht auch wenn der Cursor sich zwischen sichtbaren Zeichen befindet. Vor dem ersten sichtbaren Zeichen einer Zeile eingegeben bewirkt ein Einruecken der Zeile bis zum Beginn der naechsten vorhergehenden Zeile, deren Beginn vor der Cursor-Position liegt.  Installations-Hinweise Das XWindow Programming Environment ist als eine System V kompatible Anwendung geschrieben, die fuer den UNIX - Teil mit der Curses-Library unter Benutzung der Terminfo- Terminal-Informationen arbeitet. Sollte keine Terminfo- Informationen auf dem ensprechenden System zur Verfuegung stehen, kann ueber die Definition der Pre-Prozessor-Varia- blen TERMCAP, bei der Installation, ersatzweise die Verwen- dung von termcap-Informationen vorgegeben werden. Fuer Sys- teme wie Sunos 4, die System V Erweiterungen in zusaetzlichen Pfaden abgelegt haben, muessen diese in die ensprechenden Include- und Library-Pfade eingebunden werden. Fuer den XWindow-Teil wird die X-Library ab X11R3 voraus- gesetzt. Die ensprechenden Pfade muesssen ebenfalls eingebunden werden. Ein wichtiger Punkt ist, dass die ALT- Taste unter XWindow als mod4 interpretiert wird (wie unter Sun ueblich). gegeben falls muss diese Taste mit xmodmap -e "add mod4 = Alt_L" dem XWindow-System hinzugefuegt werden. Um die Hilfestellung 'Funktions-Index' benutzen zu koennen muss eine Umgebungsvariable MANPATH gesetzt sein, die die Pfade zu allen gewuenschten Dokumentationen enthaelt. Bei der Installation sollte entschieden werden, welche Pro- grammiersprachen unterstuetzt werden sollen, und die Datei .wpe_pr_opt fuer die Syntax-Unterstuetzung, sowie der Message-String fuer die entsprechenden Compiler angepasst werden. Bei einigen Rechnern (z.B.: S400) muessen fuer den XWindow Teil auch Netz-Bibliotheken beim Binden beruecksichtigt wer- den.  GNU General Public License Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 675 Mass Ave, Cambridge, MA 02139, USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free pro- grams; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to cer- tain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any prob- lems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redis- tributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licen- see is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents con- stitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, pro- vided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or pub- lish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a war- ranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Pro- gram itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface defini- tion files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include any- thing that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the execut- able. If distribution of executable or object code is made by offering access to copy from a designated place, then offer- ing equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distri- bute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you per- mission to modify or distribute the Program or its deriva- tive works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distri- buting the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modi- fying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the reci- pients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforce- able under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contribu- tions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is wil- ling to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is res- tricted in certain countries either by patents or by copy- righted interfaces, the original copyright holder who places the Program under this License may add an explicit geograph- ical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foun- dation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are dif- ferent, write to the author to ask for permission. For software which is copyrighted by the Free Software Founda- tion, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all deriva- tives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRAN- TIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PUR- POSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFEC- TIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS Appendix: How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redis- tribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) 19yy This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foun- dation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Pub- lic License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cam- bridge, MA 02139, USA. Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) 19yy name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a program- mer) or your school, if any, to sign a "copyright disclai- mer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Library General Public License instead of this License.