AW: [Allegro] J-Befehle

Thomas Fischer fischer at sub.uni-goettingen.de
Mo Aug 24 14:34:36 CEST 2009


Hallo Herr Eversberg! 

> Thomas Fischer schrieb:
> > 
> > bei der Beschreibung des Befehls (der Variable?) J... (h xcstring) 
> > wäre vielleicht eine Warnung angebracht.
> > Bei mir führt
> > x var 'abc'\Jd\mes
> > zum sofortigen Absturz von A99, und aus der Beschreibung geht nicht 
> > hervor, dass es x var 'abc' Jd\mes heißen muss.
> > x var 'abc'\var Jd\mes liefert hingegen ein leeres Ergebnis.
> > 
> > Vorschlag:
> > Die mit J beginnenden Sondercodes fallen aus dem Rahmen: 
> sie verändern 
> > den iV-Inhalt als Ganzes, dürfen aber nicht als eigener 
> Befehl stehen, 
> > also x var m Jd\mes, nicht x var m\Jd\mes.
> > 
> 
> Leider liegt hier ein schlichtes Verständnisfehler vor:
> 
> J ist kein Befehl, sondern eine "interne Sondervariable", die 
> bei einem "var" oder "write" verwendet werden kann. Und man 
> liest in xcstring.rtf:
> "Ein cstring  ist eine Kette von Code-Elementen, beliebig
>   zusammengesetzt, wobei die Elemente aus sechs Typen 
> bestehen, getrennt
>   durch Leerzeichen"
> Zu den 6 Typen gehören auch die internen Sondervariablen.
> Der \ trennt FLEX-Befehle, sonst nichts!

In xcstring.rtf steht aber auch:

Hier die Liste der internen Sondervariablen (s.o. Punkt 4). Es handelt sich
um Einstellungen oder Eigenschaften des momentanen Zustands, in dem sich das
System befindet. Alle diese Werte kann  man im FLEX auswerten. Das geht
immer nach dem Schema dieses Beispiels: 
var L 
if ="GER" jump deutsch

Und das führt zum sofortigen Absturz, wenn die "interne Sondervariable"
zufälligerweise J heißt, das "beliebig" in Ihrem Zitat führt also in die
Irre.
Das hat damit zu tun, dass J eben keine "normale" interne Sondervariable
ist, sondern ein Operator, darum schrieb ich "des Befehls (der Variable?)",
darum fehlen die J-Befehle auch in cstring.flx.
Wie Sie das genau ausdrücken wollen, und welche Funktion genau
dahintersteckt, wissen Sie natürlich besser als ich.

> > (Wenn sie direkt hinter dem Befehl stehen müssen, der die iV 
> > verändert, sollte das stattdessen erwähnt werden. Wenn A99 nicht 
> > abstürzen, sondern eine Fehlermeldung ausgeben oder einfach 
> die iV wie 
> > angegeben verändern würde, wäre das natürlich noch schöner...)
> > 
> Soweit reicht unser zugegeben begrenzter 
> Entwicklersachverstand schon noch selber, da können Sie Ihren 
> strapazierten Zeigefinger unten lassen.
> Oder kennt man uns als säumig im Beheben aufgetretener 
> Mißhelligkeiten sowie im Ausräumen von Unklarheiten und 
> Fehlverständnissen?

Eigentlich bin ich der Ansicht, dass moderne Programme keinen Absturz
verursachen sollten. Schlimmer ist es noch, wenn es explizit Befehle gibt,
mit denen man ein Programm garantiert abschießen kann.
Meine Forderung, dass davor zumindest gewarnt wird, kommt mir da recht milde
vor.

Mit freundlichen Grüßen
Thomas Fischer 




Mehr Informationen über die Mailingliste Allegro