summaryrefslogtreecommitdiff
path: root/rtl/watcom
diff options
context:
space:
mode:
Diffstat (limited to 'rtl/watcom')
-rw-r--r--rtl/watcom/sysutils.pp19
1 files changed, 11 insertions, 8 deletions
diff --git a/rtl/watcom/sysutils.pp b/rtl/watcom/sysutils.pp
index 20c7e8e1f5..d5f8b48bf8 100644
--- a/rtl/watcom/sysutils.pp
+++ b/rtl/watcom/sysutils.pp
@@ -277,7 +277,7 @@ begin
end;
-Function FileAge (Const FileName : String): Longint;
+Function FileAge (Const FileName : RawByteString): Longint;
var Handle: longint;
begin
Handle := FileOpen(FileName, 0);
@@ -335,7 +335,7 @@ begin
end;
-Function FindFirst (Const Path : String; Attr : Longint; out Rslt : TSearchRec) : Longint;
+Function InternalFindFirst (Const Path : RawByteString; Attr : Longint; out Rslt : TAbstractSearchRec; var Name: RawByteString) : Longint;
Var Sr : PSearchrec;
@@ -343,6 +343,7 @@ begin
//!! Sr := New(PSearchRec);
getmem(sr,sizeof(searchrec));
Rslt.FindHandle := longint(Sr);
+ { FIXME: Dos version has shortstring interface -> discards encoding }
DOS.FindFirst(Path, Attr, Sr^);
result := -DosError;
if result = 0 then
@@ -351,12 +352,13 @@ begin
Rslt.Size := Sr^.Size;
Rslt.Attr := Sr^.Attr;
Rslt.ExcludeAttr := 0;
- Rslt.Name := Sr^.Name;
+ Name := Sr^.Name;
+ SetCodePage(Name,DefaultFileSystemCodePage,False);
end ;
end;
-Function FindNext (Var Rslt : TSearchRec) : Longint;
+Function InternalFindNext (var Rslt : TAbstractSearchRec; var Name : RawByteString) : Longint;
var
Sr: PSearchRec;
begin
@@ -371,17 +373,18 @@ begin
Rslt.Size := Sr^.Size;
Rslt.Attr := Sr^.Attr;
Rslt.ExcludeAttr := 0;
- Rslt.Name := Sr^.Name;
+ Name := Sr^.Name;
+ SetCodePage(Name,DefaultFileSystemCodePage,False);
end;
end;
end;
-Procedure FindClose (Var F : TSearchrec);
+Procedure InternalFindClose(var Handle: Pointer);
var
Sr: PSearchRec;
begin
- Sr := PSearchRec(F.FindHandle);
+ Sr := PSearchRec(Handle);
if Sr <> nil then
begin
//!! Dispose(Sr);
@@ -389,7 +392,7 @@ begin
DOS.FindClose(SR^);
freemem(sr,sizeof(searchrec));
end;
- F.FindHandle := 0;
+ Handle := 0;
end;