home *** CD-ROM | disk | FTP | other *** search
-
- =====================================================
-
- @(#) OKAMI SHELL - KOMPATIBILITÄT
-
- =====================================================
- Stand: 1.12.91
-
-
- BITTE ERST DIE DATEIN README UND OKAMI.DOC LESEN!
-
-
- Diese Datei vermerkt alle Änderungen der Shell, die im weitesten Sinne zu
- Inkompatibilität zu älteren Versionen führen können. Zu jeder Änderung ist
- ein Datum angegeben. Es bedeutet, daß alle nach diesem Datum erstellten Ver-
- sionen der Shell in dem betreffenden Punkt zu allen vor diesem Datum erstell-
- ten Versionen inkompatibel sind bzw. sich anders verhalten, was Anpassungen
- an Shellscripts o.ä. notwendig macht. Das Erstellungsdatum einer Shell kann
- durch Eingabe von "ver -c" ermittelt werden.
-
-
- ========
- @(#) 15.11.90
- ========
-
- Das Kommando grep hat bisher nur feste Strings ohne Rücksicht auf Wildcards
- gesucht und entsprach daher dem Unix-fgrep. Ab jetzt gibt es fgrep für die
- Suche nach festen Strings und grep, das erweiterte Wildcards berücksichtigt.
- Shellscripts, die grep zum Suchen von Strings, die Wildcards (Sterne, Frage-
- zeichen und eckige Klammern) beinhalten, benutzen, sollten statt grep fgrep
- benutzen. Die notwendigen Änderungen beschränken sich also auf das Hinzufügen
- des "f".
-
-
- ========
- @(#) 23.11.90
- ========
-
- Ab diesem Tag betrachtet die Shell das doppelte Anführungszeichen (") als
- Gruppierungssymbol, was sie in den vorigen Versionen nicht getan hat. Das
- hat folgende Konsequenzen:
-
- * Das doppelte Anführungszeichen muß, wenn es ausgegeben werden soll, mit
- einem davorstehenden Dach gequotet werden. Beispiel: das Kommando
- echo 3.5"-Diskette
- erzeugte in früheren Versionen die Ausgabe 3.5"-Diskette. In der neueren
- Version muß es heißen:
- echo 3.5^"-Diskette
- ABHILFE: vor jedes Anführungszeichen ein Dach setzen.
-
- * Wenn mit dem Fluchtsymbol (^) Steuerzeichen in eine Eingabezeile aufgenommen
- werden, müssen diese ebenfalls in doppelten Anführungszeichen stehen, da sie
- sonst als Wort-Trennzeichen gelten. Beispiel: in
- echo hallo ^n wie gehts
- ist das Zeilenend-Zeichen (^n) ein Worttrenner und wird daher nicht wie in
- den älteren Versionen als Zeilenvorschub ausgegeben.
- ABHILFE: solche Fälle in doppelte Anführungszeichen setzen:
- echo "hallo ^n wie gehts"
-
- * Mehrere hintereinanderstehende Whitespace-Zeichen werden zu einem Leerzeichen
- zusammengefaßt, wenn sie nicht in doppelten Anführungszeichen stehen. Die
- älteren Versionen der Shell taten das nicht. Beispiel:
- echo a b c
- erzeugte in früheren Versionen die Ausgabe
- a b c
- , in der aktuellen Version jedoch
- a b c
- . Das gilt auch für die Deklaration von Shellfunktionen.
- ABHILFE: auch hier in doppelte Anführungszeichen setzen:
- echo "a b c"
-
-
-
-
- ========
- @(#) 27.12.90
- ========
-
- Die Umleitung der Ein- und Ausgabe erfolgt ab jetzt vollständig auf Gemdos-
- Ebene mit Hilfe der Funktion Fforce. In allen älteren Versionen wurde die
- Umleitung nur von der Shell selber durchgeführt.
- Der Vorteil der neuen Lösung ist
- 1) daß sich jetzt alle externen Programme umleiten lassen, die ihre Ein- und
- Ausgabe über Gemdos abwickeln, und
- 2) daß sich auch externe Programme, die in Shellscripts stehen, zusammen mit
- den Shellscripts umleiten lassen, was vorher nicht möglich war.
-
- Bedauerlicherweise ergeben sich dadurch auch zwei Nachteile:
-
- *) Wenn ein Kommando eine Tastatureingabe entgegennimmt, wird das Echo der
- Tasten zur Standardausgabe geschrieben. Wenn diese dabei umgeleitet wird,
- kommt das Tastenecho nicht auf den Bildschirm, sondern mit in die Umlei-
- tung. Beispiel: "cat >datei.txt" diente vorher dazu, die Tastatureingabe
- in die Datei datei.txt umzuleiten. Jetzt kommt allerdings auch das Tasten-
- echo in diese Datei.
- ABHILFE: Keine, dieses Problem ist bis jetzt nicht lösbar.
-
- *) Das Betriebssystem stellt keine Standard-Fehlerausgabe zur Verfügung, da es
- die reichlich starre Organisation der "Standard-File-Handles" von MS-DOS
- übernommen hat. Es gibt also eine Standard-Eingabe, eine Standard-Ausgabe,
- eine Standard-serielle Schnittstelle usw. Unter Unix wird File-Deskriptor
- Nr. 2 für Fehlerausgaben benutzt, diese werden mit "2>" umgeleitet. Um
- dazu konform zu bleiben, benutzt die Okami-Shell ebenfalls File-Deskriptor
- Nr. 2 für die Fehlerausgaben. Dies ist aber normalerweise die serielle
- Schnittstelle. Die Okami-Shell biegt also zu Beginn alle Ausgaben, die auf
- die Standard-serielle Schnittstelle gehen sollten, auf die Standard-Ausgabe
- um. Das ist nicht allzu schlimm, da Programme, die diese Schnittstelle be-
- nutzen, das sowieso über die nicht umleitbaren Xbios-Funktionen tun sollten.
- Es ist aber aus einem anderen Grund schlimm: die serielle Schnittstelle
- wurde bisher als NULL-Gerät benutzt. (Ein richtiges Null-Gerät hat man von
- MS-DOS natürlich nicht übernommen.) Diese Möglichkeit fällt jetzt natürlich
- weg, denn "rm datei 2>NULL:", womit die Fehlerausgabe von rm zum Null-Gerät
- umgeleitet werden soll, schickt bei NULL=AUX: die Fehlerausgabe über die
- serielle Schnittstelle (die auf den Bildschirm umgebogen wurde) genau
- dahin, wo sie nicht hinsoll, nämlich auf den Bildschirm.
- Um dieses Problem zu umgehen, lautet die Defaulteinstellung von NULL ab
- jetzt PRN:, es wird also die paralelle Schnittstelle benutzt. Wer hier
- einen Drucker angeschlossen hat, dem bringt das natürlich nicht allzu viel.
- ABHILFE: wer keinen Drucker hat, kann NULL auf PRN: stehen lassen.
- Wer wohl einen Drucker hat, sollte NULL auf eine Datei z.B. auf der Ram-
- disk einstellen, z.B. durch die Zeile
- NULL=$PIPDIR/nullfile
- im Profile.
-
-
- ======
- @(#) 2.2.91
- ======
-
- Alle Funktionen, die direkt auf den Bildschirmspeicher zugreifen, arbeiten
- von jetzt an mit der logischen (Logbase) anstelle mit der physikalischen
- (Physbase) Bildschirmadresse. Diese sind normalerweise beide gleich, aber
- die logische Adresse ist zuverlässiger, und die Benutzung der physikalischen
- Adresse kann zu eigenartigen Effekten führen, wie ich bei der Arbeit am
- Okami-Font-Editor festgestellt habe.
- Betroffen sind die Funktionen:
- fsel
- getscr
- putscr
- sowie die Anzeige der Fileselect-Box in der Tastatureingabe mit Ctrl-F.
- Dadurch sollte der eigenartige Effekt, daß putscr einen Bildschirm nicht
- oder nicht vollständig wiederherstellt, behoben sein.
- Probleme gibt es höchstens mit Programmen, die logische und physikalische
- Adresse auf verschiedene Werte einstellen, z.B. um auf einen Bildschirm zu
- zeichnen, während ein anderer angezeigt wird. Das ist aber sehr unwahrschein-
- lich.
-
- =======
- @(#) 16.2.91
- =======
-
- Das Ausgabeformat von ls wurde z.T. geändert. Ab jetzt gibt ls immer relative
- Dateinamen aus (früher wurden nur die Basisnamen ausgegeben). Beispiel:
- "ls ../*.c" lieferte früher
-
- sh.c
- cmds.c
- utl.c
-
- und liefer jetzt
-
- ..\sh.c
- ..\cmds.c
- ..\utl.c
-
- Daraus folgt, daß die Ausgabe eines Dateinamens nicht immer genau 14 Zeichen
- (incl. Leerzeichen am Ende) lang ist, sondern beliebig variiert. Die spalten-
- weise Ausgabe mit ls -C paßt sich automatisch der Dateinamenlänge an.
- Programme, die auf das bisherige Ausgabeformat rechnen, müssen angepaßt werden,
- wenn Dateilisten von anderen als dem aktuellen Directory verlangt werden.
- Eine Möglichkeit ist das Pipen der ls-Ausgabe zu dem basename-Kommando:
- ls | xargs basename
- Dies funktioniert allerdings nicht mit ls -C. Um Probleme mit den Dateityp-
- merkern [] (Directory) und <> (ausführbar) zu vermeiden, sollte hier auch
- ls -k benutzt werden.
-
-
- ======
- @(#) 1.3.91
- ======
-
- Für den Pfad, auf dem Hilfsdateien u.ä. liegen, gibt es jetzt eine neue Shell-
- variable: ETC. Dies entspricht /etc unter Unix. Die Änderung bewirkt, daß die
- Datei help, die nach Eingabe des gleichnamigen Kommandos angezeigt wird,
- jetzt nicht mehr auf $HOME, sondern auf $ETC erwartet wird.
- ABHILFE: keine, da ETC beim Start der Shell auf denselben Wert wie HOME ge-
- setzt wird. Wer allerdings ETC ändert, muß dafür sorgen, daß auch die Datei
- help in das neue Verzeichnis kopiert wird.
-
-
- =======
- @(#) 18.4.91
- =======
-
- Die Syntax des exec-Kommandos wurde verändert: wenn mit dem Flag -x ein
- zuvor geladenes Programm gestartet wird, muß jetzt der Dateiname nicht mehr
- angegeben werden. Dafür können solchen Programmen ab jetzt aber auch Parameter
- übergeben werden.
- ABHILFE: Überall, wo `exec -x file.prg 0xabc' steht, `file.prg' streichen.
-
-
- =======
- @(#) 20.4.91
- =======
-
- P O R T I E R U N G
-
- Ab heute wird die Shell mit einem neuen Compiler (Laser-C) erstellt. Erste
- Versuche ergaben, daß dieser sich in Spezialfällen anders verhält als das
- vorher benutzte Megamax-C. Wenn irgendwelche Dinge nicht oder nicht mehr
- so wie gewohnt funktionieren, so ist das mit großer Wahrscheinlichkeit auf
- solche Fälle zurückzuführen. BITTE SOFORT MELDEN!!!! Sie erhalten dann um-
- gehend eine korrigierte Version.
-
-
-
- ======
- @(#) 9.8.91
- ======
-
- Die Shellvariablen LOGNAME und VERSION werden von der Shell nicht mehr
- gesetzt. Stattdessen enthält jetzt OKAMISHELL die Versionsnummer der
- Shell.
- Shellscripts, die diese beiden Variablen benutzen, müssen umgeschrieben
- werden: statt $LOGNAME schreibt man "Okami Shell", statt $VERSION
- schreibt man $OKAMISHELL. Für beides zusammen kann man auch `ver -o`
- benutzen.
-
-
-
- =======
- @(#) 31.8.91
- =======
-
- schon wieder P O R T I E R U N G
-
- Und zwar diesmal auf Pure-C, den Nachfolger von Turbo-C.
- Auch hier bitte alle Eigenartigkeiten sofort melden.
-
-
-
- ========
- @(#) 27.10.91
- ========
-
- Ab heute bearbeitet die Okami-Shell ihre Kommandozeile wie die Original-
- Bourne-Shell, d.h. einzelne Parameter stellen die Namen von zu startenden
- Shellscripts dar, es können set-Flags eingestellt werden, und ein auszu-
- führendes Kommando muß nach -c stehen. Das bedeutet, daß Programme, die
- die Shell auf die bisherige Weise mit Pexec aufrufen, angepaßt werden
- müssen. Programme, die die Shell über _shell_p (mit der system-Funktion)
- aufrufen, brauchen nicht angepaßt zu werden.
-
- Anpassung: Vor das von der Shell auszuführende Kommando -c schreiben.
- Wenn also vorher die Shell mit der Kommandozeile "ver ; read" aufge-
- rufen wurde, so muß jetzt "-c ver ; read" benutzt werden.
-