aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/lfs.c3
-rw-r--r--tests/test.lua11
2 files changed, 13 insertions, 1 deletions
diff --git a/src/lfs.c b/src/lfs.c
index 93c1419..8154a46 100644
--- a/src/lfs.c
+++ b/src/lfs.c
@@ -827,7 +827,8 @@ static int _file_info_ (lua_State *L, int (*st)(const char*, STAT_STRUCT*)) {
827 /* member not found */ 827 /* member not found */
828 return luaL_error(L, "invalid attribute name '%s'", member); 828 return luaL_error(L, "invalid attribute name '%s'", member);
829 } 829 }
830 /* creates a table if none is given */ 830 /* creates a table if none is given, removes extra arguments */
831 lua_settop(L, 2);
831 if (!lua_istable (L, 2)) { 832 if (!lua_istable (L, 2)) {
832 lua_newtable (L); 833 lua_newtable (L);
833 } 834 }
diff --git a/tests/test.lua b/tests/test.lua
index 2331eec..10810fe 100644
--- a/tests/test.lua
+++ b/tests/test.lua
@@ -132,6 +132,17 @@ for key, value in pairs(attr) do
132 "lfs.attributes values not consistent") 132 "lfs.attributes values not consistent")
133end 133end
134 134
135-- Check that lfs.attributes accepts a table as second argument
136local attr2 = {}
137lfs.attributes(tmpfile, attr2)
138for key, value in pairs(attr2) do
139 assert (value == lfs.attributes (tmpfile, key),
140 "lfs.attributes values with table argument not consistent")
141end
142
143-- Check that extra arguments are ignored
144lfs.attributes(tmpfile, attr2, nil)
145
135-- Remove new file and directory 146-- Remove new file and directory
136assert (os.remove (tmpfile), "could not remove new file") 147assert (os.remove (tmpfile), "could not remove new file")
137assert (lfs.rmdir (tmpdir), "could not remove new directory") 148assert (lfs.rmdir (tmpdir), "could not remove new directory")