diff options
author | Reuben Thomas <rrt@sc3d.org> | 2011-06-09 14:01:37 +0100 |
---|---|---|
committer | Reuben Thomas <rrt@sc3d.org> | 2011-06-09 19:53:41 +0100 |
commit | 530c9140c7628f7062e2caff73c94e547ea0c45f (patch) | |
tree | ef6cb15541530ea6cea22999769132f43c80c70e | |
parent | d292b3243f90ba21450c0599b42aa89e999524ee (diff) | |
download | luafilesystem-530c9140c7628f7062e2caff73c94e547ea0c45f.tar.gz luafilesystem-530c9140c7628f7062e2caff73c94e547ea0c45f.tar.bz2 luafilesystem-530c9140c7628f7062e2caff73c94e547ea0c45f.zip |
Add trivial link_info support on Windows (using STAT_FUNC).
-rw-r--r-- | doc/us/manual.html | 4 | ||||
-rw-r--r-- | src/lfs.c | 9 | ||||
-rw-r--r-- | tests/test.lua | 12 |
3 files changed, 8 insertions, 17 deletions
diff --git a/doc/us/manual.html b/doc/us/manual.html index 217c249..a5843ed 100644 --- a/doc/us/manual.html +++ b/doc/us/manual.html | |||
@@ -228,8 +228,8 @@ LuaFileSystem offers the following functions: | |||
228 | <dt><a name="symlinkattributes"></a><strong><code>lfs.symlinkattributes (filepath [, aname])</code></strong></dt> | 228 | <dt><a name="symlinkattributes"></a><strong><code>lfs.symlinkattributes (filepath [, aname])</code></strong></dt> |
229 | <dd>Identical to <a href="#attributes">lfs.attributes</a> except that | 229 | <dd>Identical to <a href="#attributes">lfs.attributes</a> except that |
230 | it obtains information about the link itself (not the file it refers to). | 230 | it obtains information about the link itself (not the file it refers to). |
231 | This function is not available in Windows so you may want to make sure that | 231 | On Windows this function does not yet support links, and is identical to |
232 | <code>lfs.symlinkattributes</code> exists before using it. | 232 | <code>lfs.attributes</code>. |
233 | </dd> | 233 | </dd> |
234 | 234 | ||
235 | <dt><a name="touch"></a><strong><code>lfs.touch (filepath [, atime [, mtime]])</code></strong></dt> | 235 | <dt><a name="touch"></a><strong><code>lfs.touch (filepath [, atime [, mtime]])</code></strong></dt> |
@@ -96,6 +96,7 @@ typedef struct dir_data { | |||
96 | #define STAT_STRUCT struct _stati64 | 96 | #define STAT_STRUCT struct _stati64 |
97 | #endif | 97 | #endif |
98 | #define STAT_FUNC _stati64 | 98 | #define STAT_FUNC _stati64 |
99 | #define LSTAT_FUNC STAT_FUNC | ||
99 | #else | 100 | #else |
100 | #define _O_TEXT 0 | 101 | #define _O_TEXT 0 |
101 | #define _O_BINARY 0 | 102 | #define _O_BINARY 0 |
@@ -743,17 +744,9 @@ static int file_info (lua_State *L) { | |||
743 | /* | 744 | /* |
744 | ** Get symbolic link information using lstat. | 745 | ** Get symbolic link information using lstat. |
745 | */ | 746 | */ |
746 | #ifndef _WIN32 | ||
747 | static int link_info (lua_State *L) { | 747 | static int link_info (lua_State *L) { |
748 | return _file_info_ (L, LSTAT_FUNC); | 748 | return _file_info_ (L, LSTAT_FUNC); |
749 | } | 749 | } |
750 | #else | ||
751 | static int link_info (lua_State *L) { | ||
752 | lua_pushboolean(L, 0); | ||
753 | lua_pushliteral(L, "symlinkattributes not supported on this platform"); | ||
754 | return 2; | ||
755 | } | ||
756 | #endif | ||
757 | 750 | ||
758 | 751 | ||
759 | /* | 752 | /* |
diff --git a/tests/test.lua b/tests/test.lua index 7111074..6af7e9b 100644 --- a/tests/test.lua +++ b/tests/test.lua | |||
@@ -69,13 +69,11 @@ local new_att = assert (lfs.attributes (tmpfile)) | |||
69 | assert (new_att.access == testdate2, "could not set access time") | 69 | assert (new_att.access == testdate2, "could not set access time") |
70 | assert (new_att.modification == testdate1, "could not set modification time") | 70 | assert (new_att.modification == testdate1, "could not set modification time") |
71 | 71 | ||
72 | local res, err = lfs.symlinkattributes(tmpfile) | 72 | -- Checking symbolic link information (does not work in Windows) |
73 | if err ~= "symlinkattributes not supported on this platform" then | 73 | if (os.execute ("ln -s "..tmpfile.." _a_link_for_test_")) then |
74 | -- Checking symbolic link information (does not work in Windows) | 74 | assert (lfs.attributes"_a_link_for_test_".mode == "file") |
75 | assert (os.execute ("ln -s "..tmpfile.." _a_link_for_test_")) | 75 | assert (lfs.symlinkattributes"_a_link_for_test_".mode == "link") |
76 | assert (lfs.attributes"_a_link_for_test_".mode == "file") | 76 | assert (os.remove"_a_link_for_test_") |
77 | assert (lfs.symlinkattributes"_a_link_for_test_".mode == "link") | ||
78 | assert (os.remove"_a_link_for_test_") | ||
79 | end | 77 | end |
80 | 78 | ||
81 | if lfs.setmode then | 79 | if lfs.setmode then |