[Allegro] jenseits von offline
Thomas Berger
ThB at Gymel.com
Mo Nov 23 14:50:30 CET 2015
Am 23.11.2015 um 11:04 schrieb Bernhard Eversberg:
> Gibt es eine konkrete Quintessenz, eine notwendige Korrektur, die dem
> Übelstande abhelfen könnte? Oder wäre das der letzte Absatz?
Im Zusammenhang mit nextnum.flx gibt es mysterioese Faerbeprobleme,
zum Teil liegt es an der Implementierung (statt sich den Satz zu
merken, wird sein Inhalt kopiert, das macht natuerlich auch einen
unmodifizierten Satz "gelb"), zum Teil aber wohl tiefer (warum
ist ein Satz unmittelbar nach dem Abspeichern immer noch blau?).
Da nextnum.flx ein Konstrukt verwendet, das die Flexsprache gar
nicht kennt, sondern nur die Jobsprache, ist auch nicht wirklich
klar, wie es funktionieren soll, nur dass es wohl nie getestet
wurde.
Von mir noch nicht erwaehnt, da in dem Zusammenhang irrelevant:
Im Fehlerfall wird die .tbl ein zweites Mal freigegeben.
> Eine Bemerkung zu selbigem: Wenn man an einem Satz arbeitet, gelangt
> dieser erst dann in die Offline-Liste, wenn man zu einem anderen
> wechselt (auf welche Weise auch immer), aber auch, wenn man mit Alt+w
> zur unveränderten Form rückschaltet. Nur "set obj ..." gilt nicht als
> Wechsel zu einem anderen Satz, nur zum anderen (parallel existierenden)
> Objekt. Dies transparent zu machen und damit Verwirrung auszuschalten
> ist natürlich schwer.
Die von Ihnen im April durchgefuehrte Ueberarbeitung von nextnum.flx
will ja ohne set obj 1/2 auskommen, muss aber u.U. per f1nd einen
anderen Satz konsultieren. Der zu dem Zeitpunkt in Bearbeitung (durch
den Flex) befindliche Satz muss anschliessend wiedergefunden werden.
Das geht mit var i ... find #<gemerktes i> nur dann, wenn der Satz
bereits einmal gespeichert worden war. Bei der typischen Nutzung
von nextnum (man will ja eindeutige Nummern bereits bei der Entstehung
neuer Saetze vergeben, nicht erst irgendwann spaeter) ist gerade
das aber nicht gegeben, es muss also ein anderer Mechanismus her,
der den Satz zurueckholt.
Allerdings verstehe ich die Implentierung von "var oq" so, dass der
Satz in die Offline-Datei gezwungen wird, wenn er noch nicht drin
ist. Entweder irre ich mich da oder es gibt genau an der Stelle einen
Fehler in der Implementierung.
Meine aktuelle private Korrektur von nextnum.flx besteht darin,
bei Offline-Saetzen mit var oq die Position zu merken und anschliessend
wieder einzustellen, existiert die nicht, wird ziemlich verzweifelt
unterstellt, dass es sich vorher (und hinterher) um den letzten
Offline-Satz handelt. Ausserdem wird nach dem Speichern die
Satznummer mit var i ermittelt und der Satz mit find # noch einmal
pleonastisch herbeigeholt, damit die Faerbung stimmt.
http://svn.gymel.com/viewvc/allegro/tao/trunk/nummer/nextnum.flx?r1=25882&r2=26295
viele Gruesse
Thomas Berger
Mehr Informationen über die Mailingliste Allegro