DEADSOFTWARE

added cygwin support (only via cpfront)
[cpc.git] / src / posix / generic / Host / Mod / Files.cp
index c7026a2b80c675e5f91bf7b457f1d94b1cad450d..e9a1e496f58ce8722786070a171718757c3aaa55 100644 (file)
@@ -6,6 +6,7 @@ MODULE HostFiles;
     macro := PosixCmacro, libgen := PosixClibgen, time := PosixCtime;
 
   (* !!! add buffer cache *)
     macro := PosixCmacro, libgen := PosixClibgen, time := PosixCtime;
 
   (* !!! add buffer cache *)
+  (* !!! HostFiles64 must be base for HostFiles *)
 
   CONST
     closed = 0; new = 1; temp = 2; shared = 3; exclusive = 4;
 
   CONST
     closed = 0; new = 1; temp = 2; shared = 3; exclusive = 4;
@@ -22,7 +23,7 @@ MODULE HostFiles;
 
     File = POINTER TO RECORD (Files.File)
       state: INTEGER;
 
     File = POINTER TO RECORD (Files.File)
       state: INTEGER;
-      len: INTEGER;
+      len: INTEGER; (* !!! must be sysstat.off_t *)
       fd: unistd.int;
       ino: sysstat.ino_t;
       pathname: FullName
       fd: unistd.int;
       ino: sysstat.ino_t;
       pathname: FullName
@@ -445,7 +446,7 @@ MODULE HostFiles;
                   IF res # -1 THEN
                     NEW(f); HostLang.HostToString(pathname, f.pathname, HostLang.pep383, err);
                     IF err = 0 THEN
                   IF res # -1 THEN
                     NEW(f); HostLang.HostToString(pathname, f.pathname, HostLang.pep383, err);
                     IF err = 0 THEN
-                      f.fd := fd; f.len := s.st_size; f.ino := s.st_ino;
+                      f.fd := fd; f.len := S.VAL((*!!!*)INTEGER, s.st_size); f.ino := s.st_ino;
                       IF isShared THEN f.state := shared
                       ELSE f.state := exclusive
                       END;
                       IF isShared THEN f.state := shared
                       ELSE f.state := exclusive
                       END;
@@ -638,7 +639,7 @@ MODULE HostFiles;
                   END;
                   t.name := name$;
                   t.type := ""; (* ??? *)
                   END;
                   t.name := name$;
                   t.type := ""; (* ??? *)
-                  t.length := s.st_size;
+                  t.length := S.VAL((*!!!*)INTEGER, s.st_size);
                   tm := time.localtime(s.st_mtim.tv_sec);
                   IF tm # NIL THEN
                     t.modified.year := tm.tm_year + 1900;
                   tm := time.localtime(s.st_mtim.tv_sec);
                   IF tm # NIL THEN
                     t.modified.year := tm.tm_year + 1900;