Hi m0n0,
es gibt neben den Bäumen eben auch noch freie Strings, freie Images etc. deren Adressen mit diesem Befehl direkt zu besorgen sind.
Der Ansatz für Objekte war halt scheinbar
eine durchlaufende Nummerierung ohne Gruppierung, was jedoch sowohl im Resource-Construction-Set (hierarchischer Objektaufbau, Sortierbarkeit etc.) problematisch wäre als auch im Programm (Erkennbarkeit der Baum<->Objektzuteilung, einfache lückenlose Ansprache aller Objekte eines Baumes von '0' bis zum 'Last_Ob'-Flag) stets recht komplizierte und zeitaufwändigere Routinen erfordert hätte bis das korrekte Objekt erkannt/angesprochen wäre.
Deshalb und der Übersichtlichkeit wegen haben die RCS-Programme schon immer die Indizes in den Header-Dateien der RSC-Dateien mit Baumbezug ausgegeben. Dieses System funktioniert halt in rsrc_gaddr() mit dem nötigen durchgängigen und bezugsfreien Index bei Objekten nicht.
Durch die fehlende Doku und den anderen Denkansatz beim Implementieren der rsrc_gadr()-Funktion ist das ganze halt etwas unglücklich implementiert und hat schon zu vielen Stunden sinnlosem Rumprogrammieren geführt.
Der Grund für diese Implementierung: Auch Systemprogrammierer dürfen Fehler machen
wie wir alle, nur sollen's weniger sein. Auf Deutsch: Ich weiß es nicht, vielleicht andere!
Viele Bibliotheken rüsten halt bei Bedarf eine eigene Funktion für Objektadressen nach. Es ist aber nicht wirklich nötig, da sich auf Baumadressenbasis wirklich prima und übersichltich arbeiten läßt.
Gruß Charly