|
@@ -149,55 +149,55 @@ TYPE
|
|
SELF.fs := winFS; useprefix := TRUE; INCL( flags, Files.NeedsPrefix );
|
|
SELF.fs := winFS; useprefix := TRUE; INCL( flags, Files.NeedsPrefix );
|
|
END Init;
|
|
END Init;
|
|
|
|
|
|
- PROCEDURE New0( name: ARRAY OF CHAR ): Files.File;
|
|
|
|
|
|
+ PROCEDURE New0*( name: ARRAY OF CHAR ): Files.File;
|
|
VAR fname: FileName; f: Files.File;
|
|
VAR fname: FileName; f: Files.File;
|
|
BEGIN
|
|
BEGIN
|
|
Prefix( name, fname ); f := fs.New0( fname ); IF f # NIL THEN f.fs := SELF; END; RETURN f;
|
|
Prefix( name, fname ); f := fs.New0( fname ); IF f # NIL THEN f.fs := SELF; END; RETURN f;
|
|
END New0;
|
|
END New0;
|
|
|
|
|
|
- PROCEDURE Old0( name: ARRAY OF CHAR ): Files.File;
|
|
|
|
|
|
+ PROCEDURE Old0*( name: ARRAY OF CHAR ): Files.File;
|
|
VAR fname: FileName; f: Files.File;
|
|
VAR fname: FileName; f: Files.File;
|
|
BEGIN
|
|
BEGIN
|
|
Prefix( name, fname ); f := fs.Old0( fname ); IF f # NIL THEN f.fs := SELF; END; RETURN f;
|
|
Prefix( name, fname ); f := fs.Old0( fname ); IF f # NIL THEN f.fs := SELF; END; RETURN f;
|
|
END Old0;
|
|
END Old0;
|
|
|
|
|
|
- PROCEDURE Delete0( name: ARRAY OF CHAR; VAR key, res: LONGINT );
|
|
|
|
|
|
+ PROCEDURE Delete0*( name: ARRAY OF CHAR; VAR key, res: LONGINT );
|
|
VAR fname: FileName;
|
|
VAR fname: FileName;
|
|
BEGIN
|
|
BEGIN
|
|
Prefix( name, fname ); fs.Delete0( fname, key, res );
|
|
Prefix( name, fname ); fs.Delete0( fname, key, res );
|
|
END Delete0;
|
|
END Delete0;
|
|
|
|
|
|
- PROCEDURE Rename0( old, new: ARRAY OF CHAR; fold: Files.File; VAR res: LONGINT );
|
|
|
|
|
|
+ PROCEDURE Rename0*( old, new: ARRAY OF CHAR; fold: Files.File; VAR res: LONGINT );
|
|
VAR old0, new0: FileName;
|
|
VAR old0, new0: FileName;
|
|
BEGIN
|
|
BEGIN
|
|
Prefix( old, old0 ); Prefix( new, new0 ); fs.Rename0( old0, new0, fold, res );
|
|
Prefix( old, old0 ); Prefix( new, new0 ); fs.Rename0( old0, new0, fold, res );
|
|
END Rename0;
|
|
END Rename0;
|
|
|
|
|
|
- PROCEDURE Enumerate0( mask: ARRAY OF CHAR; flags: SET; enum: Files.Enumerator );
|
|
|
|
|
|
+ PROCEDURE Enumerate0*( mask: ARRAY OF CHAR; flags: SET; enum: Files.Enumerator );
|
|
VAR fmask: FileName;
|
|
VAR fmask: FileName;
|
|
BEGIN
|
|
BEGIN
|
|
Prefix( mask, fmask ); fs.Enumerate1( fmask, flags, enum, useprefix );
|
|
Prefix( mask, fmask ); fs.Enumerate1( fmask, flags, enum, useprefix );
|
|
END Enumerate0;
|
|
END Enumerate0;
|
|
|
|
|
|
- PROCEDURE FileKey( name: ARRAY OF CHAR ): LONGINT;
|
|
|
|
|
|
+ PROCEDURE FileKey*( name: ARRAY OF CHAR ): LONGINT;
|
|
VAR fname: FileName;
|
|
VAR fname: FileName;
|
|
BEGIN
|
|
BEGIN
|
|
Prefix( name, fname ); RETURN fs.FileKey( fname );
|
|
Prefix( name, fname ); RETURN fs.FileKey( fname );
|
|
END FileKey;
|
|
END FileKey;
|
|
|
|
|
|
- PROCEDURE CreateDirectory0( name: ARRAY OF CHAR; VAR res: LONGINT );
|
|
|
|
|
|
+ PROCEDURE CreateDirectory0*( name: ARRAY OF CHAR; VAR res: LONGINT );
|
|
VAR fname: FileName;
|
|
VAR fname: FileName;
|
|
BEGIN
|
|
BEGIN
|
|
Prefix( name, fname ); fs.CreateDirectory0( fname, res );
|
|
Prefix( name, fname ); fs.CreateDirectory0( fname, res );
|
|
END CreateDirectory0;
|
|
END CreateDirectory0;
|
|
|
|
|
|
- PROCEDURE RemoveDirectory0( name: ARRAY OF CHAR; force: BOOLEAN; VAR key, res: LONGINT );
|
|
|
|
|
|
+ PROCEDURE RemoveDirectory0*( name: ARRAY OF CHAR; force: BOOLEAN; VAR key, res: LONGINT );
|
|
VAR fname: FileName;
|
|
VAR fname: FileName;
|
|
BEGIN
|
|
BEGIN
|
|
Prefix( name, fname ); fs.RemoveDirectory0( fname, force, key, res );
|
|
Prefix( name, fname ); fs.RemoveDirectory0( fname, force, key, res );
|
|
END RemoveDirectory0;
|
|
END RemoveDirectory0;
|
|
|
|
|
|
- PROCEDURE Has(CONST name: ARRAY OF CHAR; VAR fullName: ARRAY OF CHAR; VAR flags: SET): BOOLEAN;
|
|
|
|
|
|
+ PROCEDURE Has*(CONST name: ARRAY OF CHAR; VAR fullName: ARRAY OF CHAR; VAR flags: SET): BOOLEAN;
|
|
VAR fname: FileName;
|
|
VAR fname: FileName;
|
|
BEGIN
|
|
BEGIN
|
|
Prefix(name, fname ); RETURN fs.Has(fname, fullName, flags);
|
|
Prefix(name, fname ); RETURN fs.Has(fname, fullName, flags);
|
|
@@ -463,7 +463,7 @@ TYPE
|
|
fileSystem := fs
|
|
fileSystem := fs
|
|
END Init;
|
|
END Init;
|
|
|
|
|
|
- PROCEDURE Set( VAR r: Files.Rider; pos: HUGEINT );
|
|
|
|
|
|
+ PROCEDURE Set*( VAR r: Files.Rider; pos: HUGEINT );
|
|
VAR size: HUGEINT;
|
|
VAR size: HUGEINT;
|
|
BEGIN {EXCLUSIVE}
|
|
BEGIN {EXCLUSIVE}
|
|
IF hfile # Kernel32.InvalidHandleValue THEN
|
|
IF hfile # Kernel32.InvalidHandleValue THEN
|
|
@@ -477,7 +477,7 @@ TYPE
|
|
r.apos := pos DIV BufferSize; r.bpos := LONGINT( pos MOD BufferSize )
|
|
r.apos := pos DIV BufferSize; r.bpos := LONGINT( pos MOD BufferSize )
|
|
END Set;
|
|
END Set;
|
|
|
|
|
|
- PROCEDURE Pos( VAR r: Files.Rider ): HUGEINT;
|
|
|
|
|
|
+ PROCEDURE Pos*( VAR r: Files.Rider ): HUGEINT;
|
|
BEGIN
|
|
BEGIN
|
|
RETURN r.apos * BufferSize + r.bpos
|
|
RETURN r.apos * BufferSize + r.bpos
|
|
END Pos;
|
|
END Pos;
|
|
@@ -523,7 +523,7 @@ TYPE
|
|
ASSERT( res # 0 ); INC( fpos, n ); buffer.apos := apos; buffer.len := n
|
|
ASSERT( res # 0 ); INC( fpos, n ); buffer.apos := apos; buffer.len := n
|
|
END ReadBuffer;
|
|
END ReadBuffer;
|
|
|
|
|
|
- PROCEDURE Read( VAR r: Files.Rider; VAR x: CHAR );
|
|
|
|
|
|
+ PROCEDURE Read*( VAR r: Files.Rider; VAR x: CHAR );
|
|
VAR pos: HUGEINT;
|
|
VAR pos: HUGEINT;
|
|
BEGIN {EXCLUSIVE}
|
|
BEGIN {EXCLUSIVE}
|
|
pos := r.apos * BufferSize + r.bpos;
|
|
pos := r.apos * BufferSize + r.bpos;
|
|
@@ -535,7 +535,7 @@ TYPE
|
|
END
|
|
END
|
|
END Read;
|
|
END Read;
|
|
|
|
|
|
- PROCEDURE ReadBytes( VAR r: Files.Rider; VAR x: ARRAY OF CHAR; ofs, len: LONGINT );
|
|
|
|
|
|
+ PROCEDURE ReadBytes*( VAR r: Files.Rider; VAR x: ARRAY OF CHAR; ofs, len: LONGINT );
|
|
VAR pos: HUGEINT; n: LONGINT;
|
|
VAR pos: HUGEINT; n: LONGINT;
|
|
BEGIN {EXCLUSIVE}
|
|
BEGIN {EXCLUSIVE}
|
|
ASSERT( (ofs + len) <= LEN( x ) );
|
|
ASSERT( (ofs + len) <= LEN( x ) );
|
|
@@ -555,7 +555,7 @@ TYPE
|
|
r.res := len; r.eof := (pos > fsize) OR ((pos = fsize) & (len > 0));
|
|
r.res := len; r.eof := (pos > fsize) OR ((pos = fsize) & (len > 0));
|
|
END ReadBytes;
|
|
END ReadBytes;
|
|
|
|
|
|
- PROCEDURE Write( VAR r: Files.Rider; x: CHAR );
|
|
|
|
|
|
+ PROCEDURE Write*( VAR r: Files.Rider; x: CHAR );
|
|
VAR pos: HUGEINT;
|
|
VAR pos: HUGEINT;
|
|
BEGIN {EXCLUSIVE}
|
|
BEGIN {EXCLUSIVE}
|
|
pos := r.apos * BufferSize + r.bpos;
|
|
pos := r.apos * BufferSize + r.bpos;
|
|
@@ -567,7 +567,7 @@ TYPE
|
|
buffer.dirty := TRUE;
|
|
buffer.dirty := TRUE;
|
|
END Write;
|
|
END Write;
|
|
|
|
|
|
- PROCEDURE WriteBytes( VAR r: Files.Rider; CONST x: ARRAY OF CHAR; ofs, len: LONGINT );
|
|
|
|
|
|
+ PROCEDURE WriteBytes*( VAR r: Files.Rider; CONST x: ARRAY OF CHAR; ofs, len: LONGINT );
|
|
VAR pos: HUGEINT; n: LONGINT;
|
|
VAR pos: HUGEINT; n: LONGINT;
|
|
BEGIN {EXCLUSIVE}
|
|
BEGIN {EXCLUSIVE}
|
|
IF len = 0 THEN RETURN END;
|
|
IF len = 0 THEN RETURN END;
|
|
@@ -584,12 +584,12 @@ TYPE
|
|
END
|
|
END
|
|
END WriteBytes;
|
|
END WriteBytes;
|
|
|
|
|
|
- PROCEDURE Length( ): HUGEINT;
|
|
|
|
|
|
+ PROCEDURE Length*( ): HUGEINT;
|
|
BEGIN {EXCLUSIVE}
|
|
BEGIN {EXCLUSIVE}
|
|
RETURN fsize
|
|
RETURN fsize
|
|
END Length;
|
|
END Length;
|
|
|
|
|
|
- PROCEDURE GetDate( VAR t, d: LONGINT );
|
|
|
|
|
|
+ PROCEDURE GetDate*( VAR t, d: LONGINT );
|
|
VAR ft, lft: Kernel32.FileTime; st: Kernel32.SystemTime; res: Kernel32.BOOL;
|
|
VAR ft, lft: Kernel32.FileTime; st: Kernel32.SystemTime; res: Kernel32.BOOL;
|
|
BEGIN {EXCLUSIVE}
|
|
BEGIN {EXCLUSIVE}
|
|
res := Kernel32.GetFileTime( hfile, NIL , NIL , ft );
|
|
res := Kernel32.GetFileTime( hfile, NIL , NIL , ft );
|
|
@@ -600,7 +600,7 @@ TYPE
|
|
t := LONG( st.wHour ) * 1000H + LONG( st.wMinute ) * 40H + LONG( st.wSecond )
|
|
t := LONG( st.wHour ) * 1000H + LONG( st.wMinute ) * 40H + LONG( st.wSecond )
|
|
END GetDate;
|
|
END GetDate;
|
|
|
|
|
|
- PROCEDURE SetDate( t, d: LONGINT );
|
|
|
|
|
|
+ PROCEDURE SetDate*( t, d: LONGINT );
|
|
VAR ft, lft: Kernel32.FileTime; st: Kernel32.SystemTime; res: Kernel32.BOOL; err: LONGINT;
|
|
VAR ft, lft: Kernel32.FileTime; st: Kernel32.SystemTime; res: Kernel32.BOOL; err: LONGINT;
|
|
BEGIN {EXCLUSIVE}
|
|
BEGIN {EXCLUSIVE}
|
|
st.wDay := SHORT( d MOD 20H ); d := ASH( d, -5 ); st.wMonth := SHORT( d MOD 10H ); d := ASH( d, -4 ); st.wYear := SHORT( d MOD 80H ) + 1900; st.wMilliseconds := 0;
|
|
st.wDay := SHORT( d MOD 20H ); d := ASH( d, -5 ); st.wMonth := SHORT( d MOD 10H ); d := ASH( d, -4 ); st.wYear := SHORT( d MOD 80H ) + 1900; st.wMilliseconds := 0;
|
|
@@ -610,21 +610,21 @@ TYPE
|
|
ASSERT( res # 0 )
|
|
ASSERT( res # 0 )
|
|
END SetDate;
|
|
END SetDate;
|
|
|
|
|
|
- PROCEDURE GetAttributes(): SET;
|
|
|
|
|
|
+ PROCEDURE GetAttributes*(): SET;
|
|
VAR s: SET;
|
|
VAR s: SET;
|
|
BEGIN
|
|
BEGIN
|
|
s := ToSet(Kernel32.GetFileAttributes( fname ));
|
|
s := ToSet(Kernel32.GetFileAttributes( fname ));
|
|
RETURN FileFlags(s);
|
|
RETURN FileFlags(s);
|
|
END GetAttributes;
|
|
END GetAttributes;
|
|
|
|
|
|
- PROCEDURE SetAttributes(a: SET);
|
|
|
|
|
|
+ PROCEDURE SetAttributes*(a: SET);
|
|
VAR s: SET;
|
|
VAR s: SET;
|
|
BEGIN
|
|
BEGIN
|
|
s:= WindowsFlags(a);
|
|
s:= WindowsFlags(a);
|
|
SetFileAttributes(fname,s);
|
|
SetFileAttributes(fname,s);
|
|
END SetAttributes;
|
|
END SetAttributes;
|
|
|
|
|
|
- PROCEDURE GetName( VAR name: ARRAY OF CHAR );
|
|
|
|
|
|
+ PROCEDURE GetName*( VAR name: ARRAY OF CHAR );
|
|
VAR i: LONGINT; ch: CHAR;
|
|
VAR i: LONGINT; ch: CHAR;
|
|
BEGIN {EXCLUSIVE}
|
|
BEGIN {EXCLUSIVE}
|
|
COPY( fname, name ); i := 0; ch := name[0];
|
|
COPY( fname, name ); i := 0; ch := name[0];
|
|
@@ -670,7 +670,7 @@ TYPE
|
|
RETURN TRUE;
|
|
RETURN TRUE;
|
|
END ToTemp;
|
|
END ToTemp;
|
|
|
|
|
|
- PROCEDURE Register0( VAR res: LONGINT );
|
|
|
|
|
|
+ PROCEDURE Register0*( VAR res: LONGINT );
|
|
VAR F: File; ret: Kernel32.BOOL;
|
|
VAR F: File; ret: Kernel32.BOOL;
|
|
from, to: ARRAY 256 OF CHAR;
|
|
from, to: ARRAY 256 OF CHAR;
|
|
BEGIN {EXCLUSIVE}
|
|
BEGIN {EXCLUSIVE}
|
|
@@ -698,7 +698,7 @@ TYPE
|
|
ASSERT( hfile # Kernel32.InvalidHandleValue ); winFS.collection.Register( SELF ); res := 0
|
|
ASSERT( hfile # Kernel32.InvalidHandleValue ); winFS.collection.Register( SELF ); res := 0
|
|
END Register0;
|
|
END Register0;
|
|
|
|
|
|
- PROCEDURE Update;
|
|
|
|
|
|
+ PROCEDURE Update*;
|
|
BEGIN {EXCLUSIVE}
|
|
BEGIN {EXCLUSIVE}
|
|
IF buffer.dirty THEN WriteBuffer() END
|
|
IF buffer.dirty THEN WriteBuffer() END
|
|
END Update;
|
|
END Update;
|
|
@@ -724,7 +724,7 @@ TYPE
|
|
END
|
|
END
|
|
END Finalize;
|
|
END Finalize;
|
|
|
|
|
|
- PROCEDURE Close;
|
|
|
|
|
|
+ PROCEDURE Close*;
|
|
BEGIN
|
|
BEGIN
|
|
Finalize;
|
|
Finalize;
|
|
fileSystem.collection.oldFiles.Remove(SELF);
|
|
fileSystem.collection.oldFiles.Remove(SELF);
|