Commit Graph

140 Commits

Author SHA1 Message Date
Stefan Hoffmann
4437e19455 Fix lfs.attributes(file, 'blksize')
fs.attributes(file, 'blksize') and fs.attributes(file, 'blocks) return
the wrong values.
Compare the whole attribute name instead of the first char and remove
buggy special casing with wrong indexes into the member array.
2014-08-09 12:33:33 +02:00
Alexey Melnichuk
cc6007171b Fix. Prevents double close the same handle (#24)
lfs_unlock_dir can be called multiple times for the same object.
For example if lock:free is called manually.
Then lfs_unlock_dir will be called always
again, as soon as the LOCK_METATABLE is collected by GC.
This can lead to strange file errors later on, like closing
another file, which now has been assigned the same handle...
2014-01-08 16:18:31 +03:00
Alexey Melnichuk
ab8348e9bc Fix. Use intptr_t to file handle on Windows (#26)
Tested on MS VS2008(x32) MinGW(x32) and MS VS2012(x64)
2014-01-04 10:02:16 +03:00
Mikhael-Danilov
b21e375840 Update src/lfs.c
Fix Windows build: make_link now returns int as it should
2013-02-20 22:19:05 +04:00
Fabio Mascarenhas
9c2679f9d7 Merge pull request #19 from devurandom/fix/warnings
Fix some warnings GCC produced on Linux
2012-10-04 07:25:54 -07:00
Dennis Schridde
a0d6f9d239 Fix warnings: unused variable
On non-win32 lfs_setmode was defined to 0, ignoring all parameters.
Now the parameters are explicitly discarded.

Fixes:
src/lfs.c: In function ‘lfs_g_setmode’:
src/lfs.c:324:7: warning: unused variable ‘op’ [-Wunused-variable]
src/lfs.c:321:47: warning: unused parameter ‘f’ [-Wunused-parameter]
2012-10-04 10:55:13 +02:00
Dennis Schridde
b35607e8a4 Fix warning: C++ style comments are not allowed in ISO C90 2012-10-04 10:51:44 +02:00
Dennis Schridde
f42c1a1a38 Set global "lfs" when opening module
* Ensures backward compatibility with LFS 1.5
* Module name is defined as LFS_LIBNAME, similar to how Lua standard libraries are defined
2012-10-04 10:48:07 +02:00
Dennis Schridde
5e55437028 Bump version to 1.6.2 and set version via define in src/lfs.c to make it better visible 2012-10-03 02:58:57 +02:00
Dennis Schridde
8e7217e74f Full Lua 5.2 compatibility and adherance to modules-create-no-globals 2012-10-03 02:54:08 +02:00
Reuben Thomas
584066ee86 lfs.c: use Lua 5.2's own luaL_register 2012-10-01 19:44:00 +01:00
Fabio Mascarenhas
d71c63cdb7 luafilesystem 1.6.0 2012-10-01 11:11:48 -03:00
Fabio Mascarenhas
4a299c53b6 Merge pull request #15 from ewmailing/master
Improvements to use of getcwd() for using the correct max path length
2012-09-26 06:49:35 -07:00
Fabio Mascarenhas
420db54f1e Merge pull request #14 from icgood/master
5.2 compatibility
2012-08-31 12:09:14 -07:00
Eric Wing
37c2309a40 Due to Android (and apparently Sun) not supporting getcwd(NULL, 0), I've changed to call to getcwd to specify a buffer and explicit size which successfully works around the problem. One minor performance advantage is that one less malloc/free is needed since the buffer is now created on the stack. Apparently, this was already changed in a prior commit I didn't see initially, but I think the use of an invented/arbitrary PATH_MAX is incorrect. Platforms should generally provide a constant for this and PATH_MAX itself is already defined on some systems like Linux which can cause collisions. This commit improves on those changes by leveraging the constants provided by the compiler/system.
To help keep the code consistent but still correct, new platform specific code needed to be introduced for the max length. On POSIX I am assuming it is that <sys/param.h> provides MAXPATHLEN. This is what the Mac/BSD man page says to use and verified this is also defined on Ubuntu Linux and Android. On Windows, MAX_PATH is used. MAX_PATH seems to still be 260 which seems kind of small; is there a different constant we are supposed to use? In both cases, the respective constants are mapped to a new #define for LFS_MAXPATHLEN to allow the code to refer to one constant and avoid any potential name collisions in case MAXPATHLEN is defined already by something else on Windows (e.g. Cygwin).
2012-05-01 14:38:02 -07:00
Fabio Mascarenhas
84f1af5eef applied debian patches from enrico tassi 2012-04-08 20:25:40 -03:00
Ian Good
f634765b26 implements fake luaL_register in Lua 5.2+ 2012-02-28 03:37:14 +00:00
Reuben Thomas
83faa7e05d Simplify and clarify metatable creation functions. 2011-06-09 20:35:12 +01:00
Reuben Thomas
3cea6c6e96 Add lfs.link. 2011-06-09 19:53:41 +01:00
Reuben Thomas
de03ad370c Add a comment for make_dir. 2011-06-09 19:53:41 +01:00
Reuben Thomas
f42e7e3543 Simplify dir_iter_factory slightly. 2011-06-09 19:53:41 +01:00
Reuben Thomas
d61eb8078d Add .gitignore for *.o and *.so. 2011-06-09 19:53:41 +01:00
Reuben Thomas
361cede4d0 Add trivial implementation of setmode on non-Windows platforms. 2011-06-09 19:53:41 +01:00
Reuben Thomas
530c9140c7 Add trivial link_info support on Windows (using STAT_FUNC). 2011-06-09 19:53:41 +01:00
Fabio Mascarenhas
2f55c33b0c change to build with lua 5.2 alpha, issue #5 2011-06-06 10:49:39 -03:00
Fabio Mascarenhas
ae5a05deec fixed dir length bug in windows directory iterator 2010-06-09 14:14:25 -03:00
Fabio Mascarenhas
fd028d3257 removed umask calls in lfs.mkdir, see kepler-list message from Enrico at 2009-12-27 2009-12-29 17:06:25 -02:00
Fabio Mascarenhas
8ff20138af packaging for version 1.5.0 - changing _VERSION 2009-10-20 18:54:35 -02:00
mascarenhas
c293392539 overhaul of lock_dir to remove staleness checks (due to race condition) and simplify the function 2009-07-04 02:10:16 +00:00
mascarenhas
375d009d89 added explicit next and close methods to second return value of lfs.dir (the directory object), for explicit iteration or explicit closing 2009-06-03 20:49:18 +00:00
mascarenhas
c1eff3de6b fixing lfs.lock_dir on windows to return "File exists" instead of looping, plus
documenting lfs.lock_dir
2009-04-24 22:24:06 +00:00
mascarenhas
b80d2baacc added lfs.lock_dir (directory locking) for Windows. On Windows the timeout
parameter is ignored, as killing the process removes the lock automatically
2009-04-24 22:11:12 +00:00
mascarenhas
d21c4ae194 locking via lockfiles in posix systems. API:
lock, err = lfs.lock_dir(path, [seconds_stale])
  Creates a lockfile (called lockfile.lfs) in <path> if it does not
  exist and returns the lock. If the lock already exists checks it
  it's stale, using the second parameter (default for the second
  parameter is INT_MAX, which in practice means the lock will never
  be stale. To free the the lock call lock:free().
  In case of any errors it returns nil and the error message. In
  particular, if the lock exists and is not stale it returns the
  "File exists" message.
2009-03-25 19:14:17 +00:00
carregal
657faad984 Packaging version 1.4.2 2009-02-03 22:05:48 +00:00
mascarenhas
16961a6c2c compiling with borland c 2008-12-15 16:13:55 +00:00
carregal
b8acd4ca54 Fixing bug [#13198] lfs.attributes(filename, 'size') overflow on files > 2 Gb again
(bug report and patch by KUBO Takehiro)
2008-07-31 19:34:22 +00:00
carregal
d4bfd537a8 Packaging version 1.4.1 2008-05-07 19:06:37 +00:00
mascarenhas
d7a5679fb8 fixed bug 2293 2008-04-24 17:27:18 +00:00
mascarenhas
baf658a721 large file support in Linux needs STAT64=-DHAVE_STAT64 in LuaRocks
config
2008-03-25 18:20:29 +00:00
mascarenhas
ca8efaa8e7 large file support in lfs.attributes (bug #2185) 2008-03-25 16:58:29 +00:00
mascarenhas
c5bfbb1bd2 fixed windows compile problem 2008-02-19 20:08:23 +00:00
mascarenhas
640265aee7 removed warnings 2008-02-18 03:13:50 +00:00
carregal
b66ab2cae9 Preparing the 1.4.0 release.
Added documentation for lfs.setmode
2008-02-11 22:42:21 +00:00
mascarenhas
78f28b6468 lfs.attributes raises an error if attribute does not exist 2008-01-25 17:09:56 +00:00
mascarenhas
ed97af80fb *** empty log message *** 2008-01-16 22:33:24 +00:00
mascarenhas
895e9daf27 getcwd no longer passes a buffer 2008-01-16 22:29:26 +00:00
mascarenhas
50f17597b3 Added lfs.setmode for changing file's mode (only for Windows) 2007-12-22 17:19:45 +00:00
carregal
8432017680 Version 1.3.0 (final) 2007-10-26 21:01:07 +00:00
carregal
6756befeff Changing version to LuaFileSystem 1.3.0 (work) 2007-10-05 02:06:58 +00:00
tomas
aeca787ff3 Improving conditional compilation for Windows version (thanks to Varol Kaptan) 2007-08-30 14:39:45 +00:00