[Allegro] acon-Uneinheitlichkeiten

Thomas Berger ThB at Gymel.com
Do Jun 10 13:27:50 CEST 2010


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Lieber Herr Eversberg,

(alles zu acon.exe vom 7.6.10)

1. koennte acon nicht auch auf die Existenz von freien
Variablen testen duerfen:

if $abc command   [ab V26]
	Wenn die Variable  $abc  belegt ist, wird command ausgeführt.


2. relative Pfade:
[allegro-Installation in g:\otto, dort auch Arbeitsverzeichnis:]

>acon -j test.job -b.\demo\cat               OK
ProgDir=

>acon -j test.job -bdemo\cat                 OK
ProgDir=

>acon -j test.job -bG:demo\cat                 OK
ProgDir=

Vorwaerts-Slashes jedoch ein Problem:

>acon -j test.job -bdemo/cat
ProgDir=
Directory for DB=avdemo is c:\allegro\demo2
Database : cat ; User : opac ; Access : 0

cat.adx not found in c:\allegro\demo2


>acon -j test.job -b./demo/cat
ProgDir=
Directory for DB=avdemo is c:\allegro\demo2
Database : cat ; User : opac ; Access : 0

cat.adx not found in c:\allegro\demo2


>acon -j test.job -bG:demo/cat
ProgDir=
Directory for DB=avdemo is c:\allegro\demo2
Database : cat ; User : opac ; Access : 0

cat.adx not found in c:\allegro\demo2


3. die in 2. offensichtliche Existenz eines Standard-Pfads
"c:\allegro\demo2" fuer Datenbanken geht ja wohl gar nicht!


4. Ein acon-Job moechte ja manchmal bei "Fehler" sich so beenden,
dass die aufrufende Anwendung darauf reagieren kann (SRCH.EXE liefert
z.B. errorlevel 10, wenn es 0 Treffer zum Suchbegriff gab). Derzeit
liefert acon Errorlevel 1, wenn etwas mit dem Aufruf nicht geklappt
hat, sonst ist es aber immer Errolevel 0. Koennte nicht "nur avanti"
eingefuehrt werden, dass bei "end" der Inhalt der iV (oder iz/iZ?)
als Zahl den Errorlevel von acon bildet?


5.
var "$OPTS" $ARGV (0,2)
liefert "$O" und nicht "$OPTS" plus zwei Zeichen


6. variable Zuweisung an freie Variable ist gar nicht moeglich:

6a
var "$ABC hallo"
ins
write "$ABC now >" $ABC "<" n

=>
J:<E111> $ABC hallo fehlerhaft

$ABC now ><

6b
var "$XYZ=hallo"
ins
write "$XYZ now >" $XYZ "<" n

=>
$XYZ now ><



7. Der include-Mechanismus (und eigentlich auch exec) ist m.E. auch fuer acon
sehr interessant. Ich entwickle gerade ein bischen Job/Flex-code, der die
Kommandozeilenschalter in eine freie Variable ueberfuehrt, die dann wie ein
assoziatives Array nutzbar ist, das waere ein idealer Kandidat fuer ein per
include einzubindendes ausgelagertes Unterprogramm.

Im Hinblick auf die Nutzung in Avanti-Kontexten muss allerdings sichergestellt
werden, dass nur gewisse (Vorschlag: relative, nur unterhalb des aktuellen
oder Daten- Verzeichnisses, welches war das noch gleich?) Pfade fuer die
einzubindenden / anzuschliessenden Dateien erlaubt sind.


8. Will man vorhandene Aufrufe von srch.exe in acon -j srch.job umwandeln,
so geht folgendes schief:
a. acon beruecksichtigt nicht die Umgebungsvariable -P
b. typische Aufrufe waren srch ... -d*(Datenverz)\(Name)_*
   das "*" zwischen "-d" und dem Pfad stoert das "dir" in srch.job,
   es werden keine Dateien gefunden
c. [desgleichen verhindert das "*", dass der Aufrufschalter -d fuer -b
   eintreten kann, wenn acon beim Start die Datenbank initialisieren will.
   man wird aber wohl stets schematisch "-b" setzen, wenn es um SRCH-
   Kompatiblitaet geht]
d. typische Aufrufe waren auch  srch ... -d(Dateiname)
   fuer eine .alg-Datei (implizite Extension also!) im Daten- oder
   Aufrufverzeichnis. Die funktionieren derzeit auch nicht.
e. Nachfrage: srch.job erbastelt sich fehlende Inputdateien aus env -d,
   env -b und env -k1 (unueblich), wenn -d nicht angegeben ist. Sollte
   es nicht besser auf die beim Initialisieren fixierten cstrings
   D, B und K1 zurueckgreifen, die im Zweifel aus dem Aufrufschalter -b
   abgeleitet wurden?

9. ist eine .alg-Datei leer (0 Bytes) so geraet acon -j srch.job in eine
   Endlosschleife
J:<E111> -1 fehlerhaft

viele Gruesse
Thomas Berger
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (Cygwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iJwEAQECAAYFAkwQzDYACgkQYhMlmJ6W47PzEgQAp3tf99Xb/RIL0Z29jhfVtDXL
p6fYwYCSFLggk9qX4tuHKl+YGSoZZWFp7H8MU8at7Ic5pAKNXU1VgZTxTTSn0qXw
E+FRdyVlGII43zE1az90Jnt8SCdK/LCkvdH3sg4BpdWxCa8qV4RSzcSs+llT1E0p
MmtQpGxSa8srR8cY0K0=
=n3TD
-----END PGP SIGNATURE-----



Mehr Informationen über die Mailingliste Allegro