diff --git a/core/io/files/files.factor b/core/io/files/files.factor index 8a81bb1972..3ab489739b 100755 --- a/core/io/files/files.factor +++ b/core/io/files/files.factor @@ -86,11 +86,11 @@ SYMBOL: +unknown+ : stat ( path -- directory? permissions length modified ) normalize-pathname (stat) ; -: file-length ( path -- n ) stat drop 2nip ; +! : file-length ( path -- n ) stat drop 2nip ; : file-modified ( path -- n ) stat >r 3drop r> ; -: file-permissions ( path -- perm ) stat 2drop nip ; +! : file-permissions ( path -- perm ) stat 2drop nip ; : exists? ( path -- ? ) file-modified >boolean ; @@ -219,11 +219,11 @@ M: pathname <=> [ pathname-string ] compare ; : with-file-reader ( path encoding quot -- ) >r r> with-stream ; inline -! : file-contents ( path encoding -- str ) -! dupd [ file-info file-info-size read ] with-file-reader ; - : file-contents ( path encoding -- str ) - dupd [ file-length read ] with-file-reader ; + dupd [ file-info file-info-size read ] with-file-reader ; + +! : file-contents ( path encoding -- str ) +! dupd [ file-length read ] with-file-reader ; : with-file-writer ( path encoding quot -- ) >r r> with-stream ; inline diff --git a/extra/http/server/static/static.factor b/extra/http/server/static/static.factor index 18870a993f..9c05b87a71 100755 --- a/extra/http/server/static/static.factor +++ b/extra/http/server/static/static.factor @@ -14,7 +14,8 @@ TUPLE: file-responder root hook special ; >r unix-1970 r> seconds time+ ; : file-http-date ( filename -- string ) - file-modified unix-time>timestamp timestamp>http-string ; + file-info file-info-modified + unix-time>timestamp timestamp>http-string ; : last-modified-matches? ( filename -- ? ) file-http-date dup [ @@ -31,7 +32,7 @@ TUPLE: file-responder root hook special ; [ swap - [ file-length "content-length" set-header ] + [ file-info file-info-size "content-length" set-header ] [ file-http-date "last-modified" set-header ] [ '[ , binary stdio get stream-copy ] >>body ] tri