Browse Source

+ misising part of r30759 (commit of sysstrh.inc shouldn't have gone in r30759):
slightly modified patch by lelekx to implement plugable file routines for the embedded target, resolves issue #22918

git-svn-id: trunk@30764 -

florian 10 years ago
parent
commit
8ee9550d22
1 changed files with 41 additions and 6 deletions
  1. 41 6
      rtl/embedded/sysfile.inc

+ 41 - 6
rtl/embedded/sysfile.inc

@@ -24,57 +24,92 @@
 { close a file from the handle value }
 procedure do_close(handle : longint);
 begin
-
 end;
 
+
 procedure do_erase(p : pchar; pchangeable: boolean);
 begin
+  if assigned (@rtl_do_erase) then
+    rtl_do_erase(p);
 end;
 
+
 procedure do_rename(p1,p2 : pchar; p1changeable, p2changeable: boolean);
 begin
+  if assigned (@rtl_do_rename) then
+    rtl_do_rename(p1, p2);
 end;
 
+
 function do_write(h: longint; addr: pointer; len: longint) : longint;
 begin
-  result := -1;
+  if assigned (rtl_do_write) then
+    result := rtl_do_write(h, addr, len)
+  else
+    result := -1;
 end;
 
+
 function do_read(h: longint; addr: pointer; len: longint) : longint;
 begin
-  result := -1;
+  if assigned (rtl_do_read) then
+    result := rtl_do_read(h, addr, len)
+  else
+    result := -1;
 end;
 
+
 function do_filepos(handle: longint) : longint;
 begin
-  result := -1;
+  if assigned (rtl_do_filepos) then
+    result := rtl_do_filepos(handle)
+  else
+    result := -1;
 end;
 
+
 procedure do_seek(handle, pos: longint);
 begin
+  if assigned (rtl_do_seek) then
+    rtl_do_seek(handle, pos);
 end;
 
+
 function do_seekend(handle: longint):longint;
 begin
-  result := -1;
+  if assigned (rtl_do_seekend) then
+    result := rtl_do_seekend(handle)
+  else
+    result := -1;
 end;
 
+
 function do_filesize(handle : longint) : longint;
 begin
   result := -1;
+  if assigned (@rtl_do_filesize) then
+    result := rtl_do_filesize(handle);
 end;
 
+
 { truncate at a given position }
 procedure do_truncate(handle, pos: longint);
 begin
+  if assigned (@rtl_do_truncate) then
+    rtl_do_truncate(handle, pos);
 end;
 
+
 procedure do_open(var f;p:PFileTextRecChar;flags:longint; pchangeable: boolean);
 begin
+  if assigned (@rtl_do_open) then
+    rtl_do_open(f, p, flags);
 end;
 
+
 function do_isdevice(handle: longint): boolean;
 begin
   result := false;
+  if assigned (@rtl_do_isdevice) then
+    result := rtl_do_isdevice(handle);
 end;
-