-
- luaL_checktype(L, 1, LUA_TTABLE);
- lua_settop(L, 1);
- nixio_splice_flags__w(L, &flags, SPLICE_F_MOVE, "move");
- nixio_splice_flags__w(L, &flags, SPLICE_F_NONBLOCK, "nonblock");
- nixio_splice_flags__w(L, &flags, SPLICE_F_MORE, "more");
+ for (int i=1; i<=j; i++) {
+ const char *flag = luaL_checkstring(L, i);
+ if (!strcmp(flag, "move")) {
+ flags |= SPLICE_F_MOVE;
+ } else if (!strcmp(flag, "nonblock")) {
+ flags |= SPLICE_F_NONBLOCK;
+ } else if (!strcmp(flag, "more")) {
+ flags |= SPLICE_F_MORE;
+ } else {
+ return luaL_argerror(L, i, "supported values: "
+ "move, nonblock, more");
+ }
+ }