X-Git-Url: http://deadsoftware.ru/gitweb?a=blobdiff_plain;f=src%2Fengine%2Fe_res.pas;h=69adb6e6eb5faa6b5e4fd98c0d919b270cb50501;hb=5016bf24701d6c6b10c483a6c122afc0fecb3a9a;hp=a6d4bd5349806af849ef63eb4bcb27015e4dc808;hpb=9107de6d97b88518cdfbaf4e4a9a4487a5030f6a;p=d2df-sdl.git diff --git a/src/engine/e_res.pas b/src/engine/e_res.pas index a6d4bd5..69adb6e 100644 --- a/src/engine/e_res.pas +++ b/src/engine/e_res.pas @@ -63,6 +63,8 @@ interface {--- creates all necessary subdirs, if it can ---} function e_GetWriteableDir (dirs: SSArray; required: Boolean=true): AnsiString; + function e_CanCreateFilesAt (dir: AnsiString): Boolean; + implementation uses WadReader, e_log, hashtable; @@ -77,9 +79,9 @@ implementation function e_UpperDir (path: AnsiString): AnsiString; var i: Integer; begin - i := High(path); + i := High(path); // consider possible cases: '\a\', '\a', '\abc\' while (i >= 1) and (path[i] <> '/') and (path[i] <> '\') do Dec(i); - result := Copy(path, 1, i) + result := Copy(path, 1, i-1) // exclude the trailing separator end; function HasRelativeDirs (name: AnsiString): Boolean; @@ -280,7 +282,7 @@ implementation end; // k8: sorry. i know that this sux, but checking directory access rights is unreliable (unportable). - function canCreateFiles (dir: AnsiString): Boolean; + function e_CanCreateFilesAt (dir: AnsiString): Boolean; var f: Integer; st: TStream = nil; @@ -337,7 +339,7 @@ implementation result := dirs[f]; if (findFileCI(result, true)) then begin - if canCreateFiles(result) then + if e_CanCreateFilesAt(result) then begin if not assigned(writeableDirs) then writeableDirs := THashStrCIStr.Create(); writeableDirs.put(dirs[f], result);