Hi,
schon immer hat es mich bei schnellen Tests mit dem UUZ auf der RamDisk
genervt, dass ein Aufruf wie ...
uuz -zu -client .\
... zwar funktionierte, wenn man sich in einem Unterverzeichnis befand,
aber die Fehlermeldung "Fehler: ungueltiges Zielverzeichnis: .\"
ausgegeben wurde, wenn man dasselbe im Root der RamDisk gemacht hat.
Dasselbe Problem bestand, wenn man in einem Unterverzeichnis einen
relativen Pfad wie "..\" angegeben hat.
Ich hab' mir das jetzt mal angesehen, Ursache ist die Funktion
'IsPath()' in fileio.pas, die folgende Pruefung enthaelt:
----------8<----------
> if (name='\') or (name[length(name)]=':') or (right(name,2)=':\')
> then begin
[...]
----------8<----------
Das ergibt bei ".\" false und daher wird im else-Block anschliessend
geprueft, ob das Verzeichnis "." vorhanden ist (was im Root nicht der
Fall ist und daher zur Fehlermeldung fuehrt).
Wenn ich das aendere in ...
----------8<----------
> if (name='\') or (name[length(name)]=':') or (right(name,2)=':\') or
> (right(name,2)='.\') then
^^^^^^^^^^^^^^^^^^^^
> begin
[...]
----------8<----------
... dann funktioniert es bei meinen Tests sowohl mit ".\" im Root als
auch mit "..\" in einem Unterverzeichnis eine Ebene unterhalb des Roots,
und auch ein bei diesem Szenario ungueltiges "..\..\" wird korrekt mit
der bekannten Fehlermeldung abgefangen.
Sieht irgendjemand etwas, was ich uebersehen habe und warum das in
bestimmten anderen Faellen nicht funktionieren sollte oder zu
irgendwelchen problemen fuehren koennte?
'IsPath()' ist eine ziemlich zentrale Routine, da will ich nix
verbasteln.
Michael
------------------------------------------------------------------------
FreeXP Entwickler-Mailingliste
[EMAIL PROTECTED]
http://www.freexp.de/cgi-bin/mailman/listinfo/dev-list