|
@@ -237,7 +237,7 @@ TYPE
|
|
IF TraceFileSystem IN Trace THEN KernelLog.String( "Old0 " ); KernelLog.String( name ); KernelLog.Ln; END;
|
|
IF TraceFileSystem IN Trace THEN KernelLog.String( "Old0 " ); KernelLog.String( name ); KernelLog.Ln; END;
|
|
|
|
|
|
IF (name # "") & FindFile( name, fname ) THEN
|
|
IF (name # "") & FindFile( name, fname ) THEN
|
|
- hfile := Kernel32.CreateFile( fname, Kernel32.SetToDW({Kernel32.GenericRead}), Kernel32.SetToDW({Kernel32.FileShareRead, Kernel32.FileShareWrite}), NIL , Kernel32.OpenExisting, Kernel32.SetToDW({Kernel32.FileAttributeNormal}), 0 );
|
|
|
|
|
|
+ hfile := Kernel32.CreateFile( fname, {Kernel32.GenericRead}, {Kernel32.FileShareRead, Kernel32.FileShareWrite}, NIL , Kernel32.OpenExisting, {Kernel32.FileAttributeNormal}, 0 );
|
|
IF hfile # Kernel32.InvalidHandleValue THEN NEW( F, fname, hfile, collection.GetNextFileKey() , SELF); collection.AddOld( F ); RETURN F END
|
|
IF hfile # Kernel32.InvalidHandleValue THEN NEW( F, fname, hfile, collection.GetNextFileKey() , SELF); collection.AddOld( F ); RETURN F END
|
|
END;
|
|
END;
|
|
IF TraceFileSystem IN Trace THEN KernelLog.String( "failed" ); KernelLog.Ln; END;
|
|
IF TraceFileSystem IN Trace THEN KernelLog.String( "failed" ); KernelLog.Ln; END;
|
|
@@ -274,7 +274,7 @@ TYPE
|
|
Fo := fold( File );
|
|
Fo := fold( File );
|
|
IF ~Fo.ToTemp() THEN RETURN END;
|
|
IF ~Fo.ToTemp() THEN RETURN END;
|
|
ret := Kernel32.CopyFile( Fo.tfname^, fnnew, 0 )
|
|
ret := Kernel32.CopyFile( Fo.tfname^, fnnew, 0 )
|
|
- ELSE ret := Kernel32.MoveFileEx( fnold, fnnew, Kernel32.SetToDW({Kernel32.MoveFileReplaceExisting, Kernel32.MoveFileCopyAllowed}) )
|
|
|
|
|
|
+ ELSE ret := Kernel32.MoveFileEx( fnold, fnnew, {Kernel32.MoveFileReplaceExisting, Kernel32.MoveFileCopyAllowed} )
|
|
END;
|
|
END;
|
|
IF ret # 0 THEN res := 0 END
|
|
IF ret # 0 THEN res := 0 END
|
|
ELSIF TraceFileSystem IN Trace THEN KernelLog.String( "Rename failed :" ); KernelLog.String( fnold ); KernelLog.String( " => " ); KernelLog.String( fnnew ); KernelLog.Ln;
|
|
ELSIF TraceFileSystem IN Trace THEN KernelLog.String( "Rename failed :" ); KernelLog.String( fnold ); KernelLog.String( " => " ); KernelLog.String( fnnew ); KernelLog.Ln;
|
|
@@ -306,7 +306,7 @@ TYPE
|
|
d := LONG( st.wYear - 1900 ) * 200H + LONG( st.wMonth ) * 20H + LONG( st.wDay ); t := LONG( st.wHour ) * 1000H + LONG( st.wMinute ) * 40H + LONG( st.wSecond );
|
|
d := LONG( st.wYear - 1900 ) * 200H + LONG( st.wMonth ) * 20H + LONG( st.wDay ); t := LONG( st.wHour ) * 1000H + LONG( st.wMinute ) * 40H + LONG( st.wSecond );
|
|
END;
|
|
END;
|
|
Join( curPath, "/", FD.cFileName, longname );
|
|
Join( curPath, "/", FD.cFileName, longname );
|
|
- IF ~(Kernel32.FileAttributeDirectory IN Kernel32.DWToSet(FD.dwFileAttributes)) THEN
|
|
|
|
|
|
+ IF ~(Kernel32.FileAttributeDirectory IN FD.dwFileAttributes) THEN
|
|
enum.PutEntry( longname, {}, t, d, FD.nFileSizeLow )
|
|
enum.PutEntry( longname, {}, t, d, FD.nFileSizeLow )
|
|
ELSIF (FD.cFileName # ".") & ((FD.cFileName # "..")) THEN
|
|
ELSIF (FD.cFileName # ".") & ((FD.cFileName # "..")) THEN
|
|
enum.PutEntry( longname, {Files.Directory}, t, d, FD.nFileSizeLow )
|
|
enum.PutEntry( longname, {Files.Directory}, t, d, FD.nFileSizeLow )
|
|
@@ -317,7 +317,7 @@ TYPE
|
|
END EnumeratePath;
|
|
END EnumeratePath;
|
|
|
|
|
|
BEGIN {EXCLUSIVE}
|
|
BEGIN {EXCLUSIVE}
|
|
- COPY( mask, path ); ConvertChar( path, Files.PathDelimiter, PathDelimiter ); attr := ToSet(Kernel32.GetFileAttributes( path )); path := "";
|
|
|
|
|
|
+ COPY( mask, path ); ConvertChar( path, Files.PathDelimiter, PathDelimiter ); attr := Kernel32.GetFileAttributes( path ); path := "";
|
|
IF (Kernel32.FileAttributeDirectory IN attr) & (~(Kernel32.FileAttributeTemporary IN attr)) THEN COPY( mask, path ); COPY( "*", pattern ); ELSE Files.SplitPath( mask, path, pattern ); END;
|
|
IF (Kernel32.FileAttributeDirectory IN attr) & (~(Kernel32.FileAttributeTemporary IN attr)) THEN COPY( mask, path ); COPY( "*", pattern ); ELSE Files.SplitPath( mask, path, pattern ); END;
|
|
IF TraceFileSystem IN Trace THEN
|
|
IF TraceFileSystem IN Trace THEN
|
|
KernelLog.String( "Enumerate0: " ); KernelLog.String( mask ); KernelLog.String( " :: " ); KernelLog.String( path ); KernelLog.String( " :: " ); KernelLog.String( pattern ); KernelLog.Ln;
|
|
KernelLog.String( "Enumerate0: " ); KernelLog.String( mask ); KernelLog.String( " :: " ); KernelLog.String( path ); KernelLog.String( " :: " ); KernelLog.String( pattern ); KernelLog.Ln;
|
|
@@ -419,7 +419,7 @@ TYPE
|
|
COPY(fileName, name);
|
|
COPY(fileName, name);
|
|
ConvertChar(name, Files.PathDelimiter, PathDelimiter );
|
|
ConvertChar(name, Files.PathDelimiter, PathDelimiter );
|
|
IF FindFile(fileName, fullName) THEN
|
|
IF FindFile(fileName, fullName) THEN
|
|
- flags := FileFlags(ToSet(Kernel32.GetFileAttributes(fullName)));
|
|
|
|
|
|
+ flags := FileFlags(Kernel32.GetFileAttributes(fullName));
|
|
ConvertChar(fullName, PathDelimiter,Files.PathDelimiter);
|
|
ConvertChar(fullName, PathDelimiter,Files.PathDelimiter);
|
|
RETURN TRUE
|
|
RETURN TRUE
|
|
ELSE
|
|
ELSE
|
|
@@ -444,13 +444,13 @@ TYPE
|
|
fileSystem: WinFileSystem;
|
|
fileSystem: WinFileSystem;
|
|
|
|
|
|
PROCEDURE & Init*( VAR name: ARRAY OF CHAR; hfile: Kernel32.HANDLE; key: LONGINT ; fs: WinFileSystem);
|
|
PROCEDURE & Init*( VAR name: ARRAY OF CHAR; hfile: Kernel32.HANDLE; key: LONGINT ; fs: WinFileSystem);
|
|
- VAR s: SET; res: Kernel32.BOOL;
|
|
|
|
|
|
+ VAR s: WORDSET; res: Kernel32.BOOL;
|
|
BEGIN
|
|
BEGIN
|
|
IF TraceFile IN Trace THEN KernelLog.String( "Init: " ); KernelLog.String( name ); KernelLog.String( " (" ); KernelLog.Int( key, 1 ); KernelLog.String( ")" ); KernelLog.Ln; END;
|
|
IF TraceFile IN Trace THEN KernelLog.String( "Init: " ); KernelLog.String( name ); KernelLog.String( " (" ); KernelLog.Int( key, 1 ); KernelLog.String( ")" ); KernelLog.Ln; END;
|
|
SELF.key := key; fpos := 0; SELF.hfile := hfile; COPY( name, SELF.fname ); tfname := NIL;
|
|
SELF.key := key; fpos := 0; SELF.hfile := hfile; COPY( name, SELF.fname ); tfname := NIL;
|
|
IF hfile # Kernel32.InvalidHandleValue THEN
|
|
IF hfile # Kernel32.InvalidHandleValue THEN
|
|
- fsize := Kernel32.GetFileSize( hfile, NIL ); ASSERT( fsize >= 0 ); s := ToSet(Kernel32.GetFileAttributes( name ));
|
|
|
|
- IF Kernel32.FileAttributeTemporary IN s THEN EXCL( s, Kernel32.FileAttributeTemporary ); res := Kernel32.SetFileAttributes( name, Kernel32.SetToDW(s) ); ASSERT( res # 0 ); s := ToSet(Kernel32.GetFileAttributes( name )) END;
|
|
|
|
|
|
+ fsize := Kernel32.GetFileSize( hfile, NIL ); ASSERT( fsize >= 0 ); s := Kernel32.GetFileAttributes( name );
|
|
|
|
+ IF Kernel32.FileAttributeTemporary IN s THEN EXCL( s, Kernel32.FileAttributeTemporary ); res := Kernel32.SetFileAttributes( name, s ); ASSERT( res # 0 ); s := Kernel32.GetFileAttributes( name ) END;
|
|
flags := FileFlags( s )
|
|
flags := FileFlags( s )
|
|
ELSE flags := {Temporary}; fsize := 0
|
|
ELSE flags := {Temporary}; fsize := 0
|
|
END;
|
|
END;
|
|
@@ -484,7 +484,7 @@ TYPE
|
|
ASSERT( buffer.dirty ); ASSERT( buffer.len > 0 ); pos := buffer.apos * BufferSize;
|
|
ASSERT( buffer.dirty ); ASSERT( buffer.len > 0 ); pos := buffer.apos * BufferSize;
|
|
IF hfile = Kernel32.InvalidHandleValue THEN
|
|
IF hfile = Kernel32.InvalidHandleValue THEN
|
|
ASSERT( Temporary IN flags ); NEW( tfname ); TempName( tfname^ );
|
|
ASSERT( Temporary IN flags ); NEW( tfname ); TempName( tfname^ );
|
|
- hfile := Kernel32.CreateFile( tfname^, Kernel32.SetToDW({Kernel32.GenericRead, Kernel32.GenericWrite}), Kernel32.SetToDW({Kernel32.FileShareRead}), NIL , Kernel32.CreateAlways, Kernel32.SetToDW({Kernel32.FileAttributeTemporary}), 0 );
|
|
|
|
|
|
+ hfile := Kernel32.CreateFile( tfname^, {Kernel32.GenericRead, Kernel32.GenericWrite}, {Kernel32.FileShareRead}, NIL , Kernel32.CreateAlways, {Kernel32.FileAttributeTemporary}, 0 );
|
|
ASSERT( hfile # Kernel32.InvalidHandleValue ); fpos := 0
|
|
ASSERT( hfile # Kernel32.InvalidHandleValue ); fpos := 0
|
|
END;
|
|
END;
|
|
IF fpos # pos THEN fpos := Kernel32.SetFilePointer( hfile, pos, NIL , Kernel32.FileBegin ); ASSERT( fpos = pos ) END;
|
|
IF fpos # pos THEN fpos := Kernel32.SetFilePointer( hfile, pos, NIL , Kernel32.FileBegin ); ASSERT( fpos = pos ) END;
|
|
@@ -493,7 +493,7 @@ TYPE
|
|
res := Kernel32.CloseHandle( hfile );
|
|
res := Kernel32.CloseHandle( hfile );
|
|
IF TraceFile IN Trace THEN KernelLog.String( "closed handle of " ); KernelLog.String( fname ); KernelLog.Ln; END;
|
|
IF TraceFile IN Trace THEN KernelLog.String( "closed handle of " ); KernelLog.String( fname ); KernelLog.Ln; END;
|
|
hfile :=
|
|
hfile :=
|
|
- Kernel32.CreateFile( fname, Kernel32.SetToDW({Kernel32.GenericRead, Kernel32.GenericWrite}), Kernel32.SetToDW({Kernel32.FileShareRead, Kernel32.FileShareWrite}), NIL , Kernel32.OpenExisting, Kernel32.SetToDW({Kernel32.FileAttributeNormal}), 0 );
|
|
|
|
|
|
+ Kernel32.CreateFile( fname, {Kernel32.GenericRead, Kernel32.GenericWrite}, {Kernel32.FileShareRead, Kernel32.FileShareWrite}, NIL , Kernel32.OpenExisting, {Kernel32.FileAttributeNormal}, 0 );
|
|
ASSERT( hfile # Kernel32.InvalidHandleValue ); fpos := Kernel32.SetFilePointer( hfile, pos, NIL , Kernel32.FileBegin ); ASSERT( fpos = pos );
|
|
ASSERT( hfile # Kernel32.InvalidHandleValue ); fpos := Kernel32.SetFilePointer( hfile, pos, NIL , Kernel32.FileBegin ); ASSERT( fpos = pos );
|
|
res := Kernel32.WriteFile( hfile, buffer.data, buffer.len, n, NIL )
|
|
res := Kernel32.WriteFile( hfile, buffer.data, buffer.len, n, NIL )
|
|
END;
|
|
END;
|
|
@@ -604,14 +604,14 @@ TYPE
|
|
END SetDate;
|
|
END SetDate;
|
|
|
|
|
|
PROCEDURE GetAttributes*(): SET;
|
|
PROCEDURE GetAttributes*(): SET;
|
|
- VAR s: SET;
|
|
|
|
|
|
+ VAR s: WORDSET;
|
|
BEGIN
|
|
BEGIN
|
|
- s := ToSet(Kernel32.GetFileAttributes( fname ));
|
|
|
|
|
|
+ s := 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: WORDSET;
|
|
BEGIN
|
|
BEGIN
|
|
s:= WindowsFlags(a);
|
|
s:= WindowsFlags(a);
|
|
SetFileAttributes(fname,s);
|
|
SetFileAttributes(fname,s);
|
|
@@ -634,10 +634,10 @@ TYPE
|
|
ASSERT( ~(Temporary IN flags) );
|
|
ASSERT( ~(Temporary IN flags) );
|
|
(*ALEX 2005.12.08*)
|
|
(*ALEX 2005.12.08*)
|
|
IF hfile = Kernel32.InvalidHandleValue THEN
|
|
IF hfile = Kernel32.InvalidHandleValue THEN
|
|
- hfile := Kernel32.CreateFile( fname, Kernel32.SetToDW({Kernel32.GenericRead}), Kernel32.SetToDW({Kernel32.FileShareRead, Kernel32.FileShareWrite}), NIL , Kernel32.CreateAlways, Kernel32.SetToDW({Kernel32.FileAttributeNormal}), 0 );
|
|
|
|
|
|
+ hfile := Kernel32.CreateFile( fname, {Kernel32.GenericRead}, {Kernel32.FileShareRead, Kernel32.FileShareWrite}, NIL , Kernel32.CreateAlways, {Kernel32.FileAttributeNormal}, 0 );
|
|
END;
|
|
END;
|
|
IF hfile = Kernel32.InvalidHandleValue THEN
|
|
IF hfile = Kernel32.InvalidHandleValue THEN
|
|
- hfile := Kernel32.CreateFile( fname, Kernel32.SetToDW({Kernel32.GenericRead}), Kernel32.SetToDW({Kernel32.FileShareRead, Kernel32.FileShareWrite}), NIL , Kernel32.OpenExisting, Kernel32.SetToDW({Kernel32.FileAttributeNormal}), 0 );
|
|
|
|
|
|
+ hfile := Kernel32.CreateFile( fname, {Kernel32.GenericRead}, {Kernel32.FileShareRead, Kernel32.FileShareWrite}, NIL , Kernel32.OpenExisting, {Kernel32.FileAttributeNormal}, 0 );
|
|
END;
|
|
END;
|
|
IF buffer.dirty THEN WriteBuffer() END;
|
|
IF buffer.dirty THEN WriteBuffer() END;
|
|
(*
|
|
(*
|
|
@@ -651,7 +651,7 @@ TYPE
|
|
IF TraceFile IN Trace THEN KernelLog.String( "toTemp: " ); KernelLog.String( fname ); KernelLog.String( " => " ); KernelLog.String( tfname^ ); KernelLog.Ln; END;
|
|
IF TraceFile IN Trace THEN KernelLog.String( "toTemp: " ); KernelLog.String( fname ); KernelLog.String( " => " ); KernelLog.String( tfname^ ); KernelLog.Ln; END;
|
|
IF ~MoveFile( fname, tfname^ ) THEN HALT( 1241 ) (* RETURN FALSE *) END;
|
|
IF ~MoveFile( fname, tfname^ ) THEN HALT( 1241 ) (* RETURN FALSE *) END;
|
|
winFS.collection.Unregister( SELF );
|
|
winFS.collection.Unregister( SELF );
|
|
- hfile := Kernel32.CreateFile( tfname^, Kernel32.SetToDW({Kernel32.GenericRead, Kernel32.GenericWrite}), Kernel32.SetToDW({Kernel32.FileShareRead}), NIL , Kernel32.OpenExisting, Kernel32.SetToDW({Kernel32.FileAttributeTemporary}), 0 );
|
|
|
|
|
|
+ hfile := Kernel32.CreateFile( tfname^, {Kernel32.GenericRead, Kernel32.GenericWrite}, {Kernel32.FileShareRead}, NIL , Kernel32.OpenExisting, {Kernel32.FileAttributeTemporary}, 0 );
|
|
(* IF hfile = Kernel32.InvalidHandleValue THEN RETURN FALSE END; *)
|
|
(* IF hfile = Kernel32.InvalidHandleValue THEN RETURN FALSE END; *)
|
|
ASSERT( hfile # Kernel32.InvalidHandleValue ); fsize := Kernel32.GetFileSize( hfile, NIL ); ASSERT( fsize >= 0 ); SELF.tfname := tfname; COPY( tfname^, fname ); RETURN TRUE;
|
|
ASSERT( hfile # Kernel32.InvalidHandleValue ); fsize := Kernel32.GetFileSize( hfile, NIL ); ASSERT( fsize >= 0 ); SELF.tfname := tfname; COPY( tfname^, fname ); RETURN TRUE;
|
|
END ToTemp;
|
|
END ToTemp;
|
|
@@ -677,8 +677,8 @@ TYPE
|
|
res := 1; RETURN;
|
|
res := 1; RETURN;
|
|
(* HALT( 1242 )*)
|
|
(* HALT( 1242 )*)
|
|
END;
|
|
END;
|
|
- hfile := Kernel32.CreateFile( fname, Kernel32.SetToDW({Kernel32.GenericRead, Kernel32.GenericWrite}), Kernel32.SetToDW({Kernel32.FileShareRead, Kernel32.FileShareWrite}), NIL , Kernel32.OpenExisting, Kernel32.SetToDW({Kernel32.FileAttributeNormal}), 0 )
|
|
|
|
- ELSE hfile := Kernel32.CreateFile( fname, Kernel32.SetToDW({Kernel32.GenericRead, Kernel32.GenericWrite}),Kernel32.SetToDW({Kernel32.FileShareRead, Kernel32.FileShareWrite}), NIL , Kernel32.CreateAlways, Kernel32.SetToDW({Kernel32.FileAttributeNormal}), 0 )
|
|
|
|
|
|
+ hfile := Kernel32.CreateFile( fname, {Kernel32.GenericRead, Kernel32.GenericWrite}, {Kernel32.FileShareRead, Kernel32.FileShareWrite}, NIL , Kernel32.OpenExisting, {Kernel32.FileAttributeNormal}, 0 )
|
|
|
|
+ ELSE hfile := Kernel32.CreateFile( fname, {Kernel32.GenericRead, Kernel32.GenericWrite}, {Kernel32.FileShareRead, Kernel32.FileShareWrite}, NIL, Kernel32.CreateAlways, {Kernel32.FileAttributeNormal}, 0 )
|
|
END;
|
|
END;
|
|
IF hfile = Kernel32.InvalidHandleValue THEN res := 1; RETURN END;
|
|
IF hfile = Kernel32.InvalidHandleValue THEN res := 1; RETURN END;
|
|
ASSERT( hfile # Kernel32.InvalidHandleValue ); winFS.collection.Register( SELF ); res := 0
|
|
ASSERT( hfile # Kernel32.InvalidHandleValue ); winFS.collection.Register( SELF ); res := 0
|
|
@@ -722,12 +722,6 @@ VAR
|
|
winFS: WinFileSystem; (* must be unique *)
|
|
winFS: WinFileSystem; (* must be unique *)
|
|
|
|
|
|
|
|
|
|
- PROCEDURE ToSet(d: UNSIGNED32): SET;
|
|
|
|
- BEGIN
|
|
|
|
- RETURN SYSTEM.VAL(SET, ADDRESS(d));
|
|
|
|
- END ToSet;
|
|
|
|
-
|
|
|
|
-
|
|
|
|
PROCEDURE DebugFile(f: File);
|
|
PROCEDURE DebugFile(f: File);
|
|
BEGIN
|
|
BEGIN
|
|
KernelLog.String("fname = "); KernelLog.String(f.fname); KernelLog.Ln;
|
|
KernelLog.String("fname = "); KernelLog.String(f.fname); KernelLog.Ln;
|
|
@@ -756,7 +750,7 @@ VAR
|
|
|
|
|
|
PROCEDURE MoveFile( VAR from, to: ARRAY OF CHAR ): BOOLEAN;
|
|
PROCEDURE MoveFile( VAR from, to: ARRAY OF CHAR ): BOOLEAN;
|
|
BEGIN
|
|
BEGIN
|
|
- IF Kernel32.MoveFileEx( from, to, Kernel32.SetToDW({Kernel32.MoveFileReplaceExisting, Kernel32.MoveFileCopyAllowed}) ) = Kernel32.False THEN
|
|
|
|
|
|
+ IF Kernel32.MoveFileEx( from, to, {Kernel32.MoveFileReplaceExisting, Kernel32.MoveFileCopyAllowed} ) = Kernel32.False THEN
|
|
IF Kernel32.CopyFile( from, to, Kernel32.False ) = Kernel32.False THEN
|
|
IF Kernel32.CopyFile( from, to, Kernel32.False ) = Kernel32.False THEN
|
|
IF TraceFile IN Trace THEN KernelLog.String( "could not copy" ); KernelLog.Ln; END;
|
|
IF TraceFile IN Trace THEN KernelLog.String( "could not copy" ); KernelLog.Ln; END;
|
|
RETURN FALSE
|
|
RETURN FALSE
|
|
@@ -796,7 +790,7 @@ VAR
|
|
END FullPathName;
|
|
END FullPathName;
|
|
|
|
|
|
(* convert flags from windows file flags to A2 file flags *)
|
|
(* convert flags from windows file flags to A2 file flags *)
|
|
- PROCEDURE FileFlags( flags: SET ): SET;
|
|
|
|
|
|
+ PROCEDURE FileFlags( flags: WORDSET ): SET;
|
|
VAR s: SET;
|
|
VAR s: SET;
|
|
BEGIN
|
|
BEGIN
|
|
s := {};
|
|
s := {};
|
|
@@ -810,8 +804,8 @@ VAR
|
|
END FileFlags;
|
|
END FileFlags;
|
|
|
|
|
|
(* convert flags from A2 file flags to windows file flags *)
|
|
(* convert flags from A2 file flags to windows file flags *)
|
|
- PROCEDURE WindowsFlags(flags: SET): SET;
|
|
|
|
- VAR s: SET;
|
|
|
|
|
|
+ PROCEDURE WindowsFlags(flags: SET): WORDSET;
|
|
|
|
+ VAR s: WORDSET;
|
|
BEGIN
|
|
BEGIN
|
|
s := {};
|
|
s := {};
|
|
IF Directory IN flags THEN INCL( s, Kernel32.FileAttributeDirectory) END;
|
|
IF Directory IN flags THEN INCL( s, Kernel32.FileAttributeDirectory) END;
|
|
@@ -1088,21 +1082,21 @@ VAR
|
|
RETURN ok
|
|
RETURN ok
|
|
END CheckName;
|
|
END CheckName;
|
|
|
|
|
|
- PROCEDURE GetAttributes*( file: ARRAY OF CHAR ): SET; (** non-portable *)
|
|
|
|
- VAR attrs: SET;
|
|
|
|
|
|
+ PROCEDURE GetAttributes*( file: ARRAY OF CHAR ): WORDSET; (** non-portable *)
|
|
|
|
+ VAR attrs: WORDSET;
|
|
BEGIN
|
|
BEGIN
|
|
- ConvertChar( file, Files.PathDelimiter, PathDelimiter ); attrs := ToSet(Kernel32.GetFileAttributes( file ));
|
|
|
|
|
|
+ ConvertChar( file, Files.PathDelimiter, PathDelimiter ); attrs := Kernel32.GetFileAttributes( file );
|
|
IF attrs = {0..31} THEN RETURN {} ELSE RETURN attrs END
|
|
IF attrs = {0..31} THEN RETURN {} ELSE RETURN attrs END
|
|
END GetAttributes;
|
|
END GetAttributes;
|
|
|
|
|
|
- PROCEDURE SetAttributes*( file: ARRAY OF CHAR; attrs: SET ); (** non-portable *)
|
|
|
|
|
|
+ PROCEDURE SetAttributes*( file: ARRAY OF CHAR; attrs: WORDSET ); (** non-portable *)
|
|
BEGIN
|
|
BEGIN
|
|
- ConvertChar( file, Files.PathDelimiter, PathDelimiter ); Kernel32.SetFileAttributes( file, Kernel32.SetToDW(attrs) )
|
|
|
|
|
|
+ ConvertChar( file, Files.PathDelimiter, PathDelimiter ); Kernel32.SetFileAttributes( file, attrs )
|
|
END SetAttributes;
|
|
END SetAttributes;
|
|
|
|
|
|
- PROCEDURE SetFileAttributes*( file: ARRAY OF CHAR; attrs: SET ); (** non-portable *)
|
|
|
|
|
|
+ PROCEDURE SetFileAttributes*( file: ARRAY OF CHAR; attrs: WORDSET ); (** non-portable *)
|
|
BEGIN
|
|
BEGIN
|
|
- ConvertChar( file, Files.PathDelimiter, PathDelimiter ); Kernel32.SetFileAttributes( file, Kernel32.SetToDW(attrs) )
|
|
|
|
|
|
+ ConvertChar( file, Files.PathDelimiter, PathDelimiter ); Kernel32.SetFileAttributes( file, attrs )
|
|
END SetFileAttributes;
|
|
END SetFileAttributes;
|
|
|
|
|
|
|
|
|
|
@@ -1202,7 +1196,7 @@ VAR
|
|
|
|
|
|
(* now the file system is installed *)
|
|
(* now the file system is installed *)
|
|
|
|
|
|
- drives := ToSet(Kernel32.GetLogicalDrives());
|
|
|
|
|
|
+ drives := Kernel32.GetLogicalDrives();
|
|
drives := drives - {0,1}; (* do not scan for diskettes *)
|
|
drives := drives - {0,1}; (* do not scan for diskettes *)
|
|
AutoMountWindowsLogicalDrives( drives );
|
|
AutoMountWindowsLogicalDrives( drives );
|
|
|
|
|