svn commit: r329649 - head/stand/liblua
Conrad Meyer
cem at FreeBSD.org
Tue Feb 20 18:21:31 UTC 2018
Author: cem
Date: Tue Feb 20 18:21:30 2018
New Revision: 329649
URL: https://svnweb.freebsd.org/changeset/base/329649
Log:
Lua lfs.attributes: Provide a more consistent error return
In the remaining error case, return a 3-tuple consistent with the other
error return case.
Document how to invoke lfs.attributes() and detect/decode error return in
example comments.
Reviewed by: kevans
Sponsored by: Dell EMC Isilon
Differential Revision: https://reviews.freebsd.org/D14451
Modified:
head/stand/liblua/lfs.c
Modified: head/stand/liblua/lfs.c
==============================================================================
--- head/stand/liblua/lfs.c Tue Feb 20 18:12:07 2018 (r329648)
+++ head/stand/liblua/lfs.c Tue Feb 20 18:21:30 2018 (r329649)
@@ -80,13 +80,20 @@ __FBSDID("$FreeBSD$");
* (etc.)
*
* The other available API is lfs.attributes(), which functions somewhat like
- * stat(2) and returns a table of values:
+ * stat(2) and returns a table of values. Example code:
*
- * for k, v in pairs(lfs.attributes("/boot")) do
+ * attrs, errormsg, errorcode = lfs.attributes("/boot")
+ * if attrs == nil then
+ * print(errormsg)
+ * return errorcode
+ * end
+ *
+ * for k, v in pairs(attrs) do
* print(k .. ":\t" .. v)
* end
+ * return 0
*
- * Prints:
+ * Prints (on success):
* gid: 0
* change: 140737488342640
* mode: directory
@@ -277,7 +284,9 @@ lua_attributes(lua_State *L)
path = luaL_checkstring(L, 1);
if (path == NULL) {
lua_pushnil(L);
- return 1;
+ lua_pushfstring(L, "cannot convert first argument to string");
+ lua_pushinteger(L, EINVAL);
+ return 3;
}
rc = stat(path, &sb);
More information about the svn-src-all
mailing list