chicken-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Chicken-users] Possible bug in posixwin.scm?


From: Alden Dima
Subject: [Chicken-users] Possible bug in posixwin.scm?
Date: Thu, 18 May 2006 15:50:53 -0400


I think that I discovered a bug in posixwin.scm. 

I'm building a filesystem crawler that visits each file in an NTFS filesystem and hashes it. I've noticed that the crawler fails to hash files with read-only permissions. I debugged my code and I noticed that file-read-access? returned #f for read-only files in Windows XP while returning #t for similar files in Mac OS X. I noticed similar issues with file-write-access?.

To reproduce the bug in Windows: Create a test file, say "bogus.txt" and use attrib to make it read-only: "attrib +R bogus.txt". Invoke csi and use the posix extension. Invoking (file-read-access? "bogus.txt") returns #f instead of the expected #t.

I looked at posixwin.scm and consulted some Windows references and came to the conclusion that the foreign variables _r_ok, _w_ok, _x_ok are set to the wrong values in posixwin.scm. I then patched posixwin.scm with what I believe are the correct values:

1074,1076c1074,1076
< (define-foreign-variable _r_ok int "2")
< (define-foreign-variable _w_ok int "4")
< (define-foreign-variable _x_ok int "2")
---
> (define-foreign-variable _r_ok int "1")
> (define-foreign-variable _w_ok int "2")
> (define-foreign-variable _x_ok int "1")

and rebuilt chicken in Windows using Visual C++. Things are now working as I would expect them. Anybody else experienced this with Chicken Scheme and Windows?

Alden
-----
Alden Dima  - address@hidden
Computer Scientist,
Information Technology Laboratory
National Institute of Standards and Technology
Gaithersburg, MD USA


reply via email to

[Prev in Thread] Current Thread [Next in Thread]