[Allegro] a99 Multix - #ax

Thomas Berger ThB at Gymel.com
Mo Mär 12 22:22:09 CET 2012


Lieber Herr Eversberg,

Bislang hatte ich Multix-Register zur "unterstuetzenden" Verstichwortung
eingesetzt, etwa so wie in den neueren cat.api der ALL-Index in eine
eigene Datei ausgelagert ist: Nicht weil die .adx sonst zu gross
waere, sondern weil es laestig ist, sich staendig Praefixe auszudenken.

Jetzt stelle ich aber fest, dass die Sonderkategorie #ax nicht
funktioniert, mittels derer man in den Umcodierungsabschnitteb darauf
reagieren kann, bzw. es funktioniert (lt. Code und Experiment) nur
in alcarta, nicht jedoch in a99 oder acon.

Die Funktion ixc kenne ich leider nicht, sie scheint zu a99 zu
gehoeren, ich meine mich an fruehere Versionen zu erinnern, wo
das zweite Zeichen von #ax die konkrete Indexnummer ist, die zu
ermitteln ist mir leider auch nicht gelungen, aber folgender Patch
liefert immerhin die versprochene Funktionalitaet fuer den
Indexbuchstaben:

Index: exet.cpp
===================================================================
--- exet.cpp    (Revision 28)
+++ exet.cpp    (Arbeitskopie)
@@ -2683,14 +2683,14 @@
         }
         else sprintf((char *)ax1,"%ld%c",xrn,0);   // write rec# to ax1
         break;
-#ifdef ALCA
     case 247:  // #ax : (MultiX) index file, default "d"
     {
-        extern void ixc(int,char *);
-        ixc(rec->Adn,(char *)ax1);
+        if (Adn==-1)
+               ax=0;
+        else
+               sprintf((char *)ax1,"%c", ((ABASE *)Abase[Adn])->aix);
     }
     break;
-#endif
     case 249:  /* #hi : hierarchy in multivol work */
         if (xri==2) i=1;
         else i=0;



viele Gruesse
Thomas Berger


P.S.:

Herr Lehmann hatte ja den Parameter  ix=... in Erinnerung gerufen,
mit dem man die dem Benutzer gegenueber behaupteten "Standardregister"
1-11 anderswoher als aus der .cDX-Datei beziehen kann. Beim testen
fuers obige Problem hatte ich das auch erstmalig eingesetzt und
dabei dann prompt

ix="ddddddddedd"

geschrieben, damit war dann alles verschoben. Koennten Sie das an
der Stelle toleranter machen bzw. umstellen (Zeichenketten ohne
Anfuehrungszeichen sind doch etwas ueberraschend).




Mehr Informationen über die Mailingliste Allegro