[Allegro] Globale Ersetzung in Indexparametern gestoert?

Bernhard Eversberg ev at biblio.tu-bs.de
Mi Jul 8 08:10:47 CEST 2015



Die Betreffzeile könnte Befürchtungen auslösen, daher sei
hinzugefügt: In den Standardparametern kommt sowas nicht vor,
noch ist es damit reproduzibel.


Am 08.07.2015 um 00:19 schrieb Thomas Berger:
>
> In einer HANS-hpi-Datei habe ich vor kurzem (als einzige globale
> Ersetzung) die folgende Zeile eingebaut:
>
> *#806w_; _^P_
>
> (^P das einzelne Zeichen 16 "►")
>
> Dies fuehrt u.U. dazu, dass in *keinem* Satz mehr Kategorien #541 oder
> #700 sichtbar sind.
Nicht mehr "sichtbar"? Also einfach weg?

(In einem anderen Aufrufszenario - gleiche
> Verzeichnisse, gleiche Parameterdateien, nur etwas anderes Environment
> bei Umgebungsvariablen ohne Bezug zu allegro) sind diese da, dafuer
> fehlen insgesamt mehr Schluessel, ~15% der Gesamtzahl).
Erstaunlich.

> Ich konnte
> anhand der II-Dateien vor dem qrix-Aufruf verifizieren, dass die
> vermissten Schluessel bereits in den von index.exe produzierten,
> "kleinen" ii-Dateien fehlen.
>
Das ist weniger erstaunlich.

> ... Es gibt also eine kleine Chance,
> dass die Daten boese sind und die Ersetzung nur besonders allergisch
> darauf reagiert (es gibt ein paar Saetze, die nicht ganz sauber
> sind, ...
Das wäre sehr erstaunlich.

>
> Der Fehler bleibt unveraendert, wenn ich den Ersetzungsbefehl auf
>
> *#806x_; _^P_
>
> aendere, wobei ich ueberprueft habe, dass #806x in der Datenbank
> in keinem Datensatz vorkommt: Bereits der (stets erfolglose) Test
> auf die Anwendbarkeit der Ersetzung ist also problematisch.
Aha!

>...
> Leider verstehe ich nicht wirklich, was in acore.c nri cmd_ast
> und cmd_y passiert (do you really need to redefine NULL?),
Sie blicken da auf früheste Schriftzeugnisse der C-Kultur, man könnte
sagen AlthochC, da muß man sich über nichts wundern.

> mir scheint an einer Stelle in den Suchbegriff im Phrasenspeicher
> eine ASCII 0 hineingeschrieben zu werden,
An welcher? In cmd_y()m wo steht
       a[j]=NL;
?
Das wäre nur bedenklich, wenn man einen oder zwei _ in dem Befehl
vergessen hätte, was hier nicht der Fall ist. Gleichwohl sollten wir
diese Stelle mal absichern. (Da wird in der Tat in den Phrasenspeicher
direkt geschrieben, was aber bei Vorhandensein von 3x '_' egal ist,
also auch im vorliegenden Fall.)

> so dass er evtl. ab dem
> zweiten Datensatz nicht mehr wirklich brauchbar ist (koennte er
> dann ganz unerwartet wirken?)
Nein, könnte er nicht.
>
> Mit der Demo-Datenbank zu $A.CFG kann ich das Verhalten leider nicht
> reproduzieren, aber vielleicht gibt Ihnen das Fehlerbild eine
> Idee, wenn Sie als Kundiger auf den Code gucken?
>
Bis jetzt noch nicht wirklich.

B.E.





Mehr Informationen über die Mailingliste Allegro