diff options
context:
space:
mode:
authorBryce Kwon <bryce@brycekwon.com>
committerBryce Kwon <bryce@brycekwon.com>
commit
parent
tree
download
Trim the comments and dead code across the tree
Diffstat (limited to '')
-rw-r--r--source/filter.c53
1 file changed, 17 insertions, 36 deletions
diff --git a/source/filter.c b/source/filter.c
index 3c0c7e4..f5f971c 100644
--- a/source/filter.c
+++ b/source/filter.c
@@ -78,14 +78,10 @@ static void fprintf_exec_filter(struct cgit_filter *base, FILE *f,
static void cleanup_exec_filter(struct cgit_filter *base)
{
struct cgit_exec_filter *filter = (struct cgit_exec_filter *)base;
- if (filter->argv) {
- free(filter->argv);
- filter->argv = NULL;
- }
- if (filter->cmd) {
- free(filter->cmd);
- filter->cmd = NULL;
- }
+ free(filter->argv);
+ filter->argv = NULL;
+ free(filter->cmd);
+ filter->cmd = NULL;
}
static struct cgit_filter *new_exec_filter(const char *cmd, int argument_count)
@@ -175,11 +171,10 @@ static inline void unhook_write(void)
current_write_filter = NULL;
}
-static void die_lua_error(struct lua_filter *filter)
+static NORETURN void die_lua_error(struct lua_filter *filter)
{
die("Lua error in %s: %s", filter->script_file,
lua_tostring(filter->lua_state, -1));
- lua_pop(filter->lua_state, 1);
}
static ssize_t write_lua_filter(struct cgit_filter *base, const void *buf,
@@ -189,18 +184,15 @@ static ssize_t write_lua_filter(struct cgit_filter *base, const void *buf,
lua_getglobal(filter->lua_state, "filter_write");
lua_pushlstring(filter->lua_state, buf, count);
- if (lua_pcall(filter->lua_state, 1, 0, 0)) {
+ if (lua_pcall(filter->lua_state, 1, 0, 0))
die_lua_error(filter);
- errno = EIO;
- return -1;
- }
return count;
}
/*
- * Output a script asks for belongs on the page and not back in its own filter,
- * so the hook comes off around the call. The zero returned is Lua's count of
- * values pushed for the script, not a success code.
+ * Output a script asks for belongs on the page, not back in its own filter,
+ * so the hook comes off around the call. The zero returned is Lua's count
+ * of values pushed, not a success code.
*/
static inline int emit_unfiltered(lua_State *lua_state,
void (*emit)(const char *text))
@@ -295,12 +287,8 @@ static int init_lua_filter(struct lua_filter *filter)
lua_setglobal(filter->lua_state, script_globals[i].name);
}
- if (luaL_dofile(filter->lua_state, filter->script_file)) {
+ if (luaL_dofile(filter->lua_state, filter->script_file))
die_lua_error(filter);
- lua_close(filter->lua_state);
- filter->lua_state = NULL;
- return 1;
- }
return 0;
}
@@ -317,26 +305,21 @@ static int open_lua_filter(struct cgit_filter *base, va_list ap)
lua_getglobal(filter->lua_state, "filter_open");
for (i = 0; i < filter->base.argument_count; ++i)
lua_pushstring(filter->lua_state, va_arg(ap, char *));
- if (lua_pcall(filter->lua_state, filter->base.argument_count, 0, 0)) {
+ if (lua_pcall(filter->lua_state, filter->base.argument_count, 0, 0))
die_lua_error(filter);
- return 1;
- }
return 0;
}
static int close_lua_filter(struct cgit_filter *base)
{
struct lua_filter *filter = (struct lua_filter *)base;
- int ret = 0;
+ int ret;
lua_getglobal(filter->lua_state, "filter_close");
- if (lua_pcall(filter->lua_state, 0, 1, 0)) {
+ if (lua_pcall(filter->lua_state, 0, 1, 0))
die_lua_error(filter);
- ret = -1;
- } else {
- ret = lua_tonumber(filter->lua_state, -1);
- lua_pop(filter->lua_state, 1);
- }
+ ret = lua_tonumber(filter->lua_state, -1);
+ lua_pop(filter->lua_state, 1);
unhook_write();
return ret;
@@ -358,10 +341,8 @@ static void cleanup_lua_filter(struct cgit_filter *base)
lua_close(filter->lua_state);
filter->lua_state = NULL;
- if (filter->script_file) {
- free(filter->script_file);
- filter->script_file = NULL;
- }
+ free(filter->script_file);
+ filter->script_file = NULL;
}
static struct cgit_filter *new_lua_filter(const char *cmd, int argument_count)