-- @param val Variable content (string).
-- @param overwrite True to overwrite existing variable of same name.
-- @return True on success, false on error.
+-- @return Error object on failure.
function e2lib.setenv(var, val, overwrite)
- -- used in only once, questionable
- return le2lib.setenv(var, val, overwrite)
+ local rc, errstring
+
+ rc, errstring = le2lib.setenv(var, val, overwrite)
+ if not rc then
+ return false,
+ err.new("setting environmenv variable %q to $q failed: %s",
+ var, val, errstring)
+ end
+
+ return true
end
--- Reset signal handlers back to their default.
const char *val = luaL_checkstring(lua, 2);
int overwrite = lua_toboolean(lua, 3);
int rc;
- rc = setenv(var, val, overwrite != 0);
- lua_pushboolean(lua, rc == 0);
- return 1;
+ rc = setenv(var, val, overwrite);
+ if (rc != 0) {
+ lua_pushboolean(lua, 0);
+ lua_pushstring(lua, strerror(errno));
+ return 2;
+ }
+ lua_pushboolean(lua, 1);
+ return 1;
}
#if 0