From 68f1b9432f67d49c7c8127adbac8d56ffb78126d Mon Sep 17 00:00:00 2001 From: Doug Coleman <doug.coleman@gmail.com> Date: Thu, 6 Mar 2008 17:55:18 -0600 Subject: [PATCH] load file-info on windows by default fix the file type add commented out file times --- extra/io/windows/ce/ce.factor | 1 + extra/io/windows/files/files.factor | 20 +++++++++++--------- extra/io/windows/nt/nt.factor | 1 + 3 files changed, 13 insertions(+), 9 deletions(-) diff --git a/extra/io/windows/ce/ce.factor b/extra/io/windows/ce/ce.factor index a5e0cb6b4a..878f5899f6 100755 --- a/extra/io/windows/ce/ce.factor +++ b/extra/io/windows/ce/ce.factor @@ -3,4 +3,5 @@ io.windows.ce.files io.windows.ce.sockets io.windows.ce.launcher namespaces io.windows.mmap ; IN: io.windows.ce +USE: io.windows.files T{ windows-ce-io } set-io-backend diff --git a/extra/io/windows/files/files.factor b/extra/io/windows/files/files.factor index fdd574d00e..d107f80723 100644 --- a/extra/io/windows/files/files.factor +++ b/extra/io/windows/files/files.factor @@ -50,17 +50,20 @@ SYMBOL: +encrypted+ { +encrypted+ FILE_ATTRIBUTE_ENCRYPTED } } get-flags ; +: win32-file-type ( n -- symbol ) + FILE_ATTRIBUTE_DIRECTORY mask? +directory+ +regular-file+ ? ; + : WIN32_FIND_DATA>file-info { - [ WIN32_FIND_DATA-dwFileAttributes win32-file-attributes ] + [ WIN32_FIND_DATA-dwFileAttributes win32-file-type ] [ [ WIN32_FIND_DATA-nFileSizeLow ] [ WIN32_FIND_DATA-nFileSizeHigh ] bi >64bit ] [ WIN32_FIND_DATA-dwFileAttributes ] - [ - WIN32_FIND_DATA-ftLastWriteTime FILETIME>timestamp - ] + ! [ WIN32_FIND_DATA-ftCreationTime FILETIME>timestamp ] + [ WIN32_FIND_DATA-ftLastWriteTime FILETIME>timestamp ] + ! [ WIN32_FIND_DATA-ftLastAccessTime FILETIME>timestamp ] } cleave \ file-info construct-boa ; @@ -73,16 +76,15 @@ SYMBOL: +encrypted+ : BY_HANDLE_FILE_INFORMATION>file-info { - [ BY_HANDLE_FILE_INFORMATION-dwFileAttributes win32-file-attributes ] + [ BY_HANDLE_FILE_INFORMATION-dwFileAttributes win32-file-type ] [ [ BY_HANDLE_FILE_INFORMATION-nFileSizeLow ] [ BY_HANDLE_FILE_INFORMATION-nFileSizeHigh ] bi >64bit ] [ BY_HANDLE_FILE_INFORMATION-dwFileAttributes ] - [ - BY_HANDLE_FILE_INFORMATION-ftLastWriteTime - FILETIME>timestamp - ] + ! [ BY_HANDLE_FILE_INFORMATION-ftCreationTime FILETIME>timestamp ] + [ BY_HANDLE_FILE_INFORMATION-ftLastWriteTime FILETIME>timestamp ] + ! [ BY_HANDLE_FILE_INFORMATION-ftLastAccessTime FILETIME>timestamp ] } cleave \ file-info construct-boa ; diff --git a/extra/io/windows/nt/nt.factor b/extra/io/windows/nt/nt.factor index be57a398a2..9bc587e00e 100755 --- a/extra/io/windows/nt/nt.factor +++ b/extra/io/windows/nt/nt.factor @@ -9,6 +9,7 @@ USE: io.windows.nt.launcher USE: io.windows.nt.monitors USE: io.windows.nt.sockets USE: io.windows.mmap +USE: io.windows.files USE: io.backend T{ windows-nt-io } set-io-backend