diff options
| author | ame <[email protected]> | 2023-12-24 20:42:53 -0600 |
|---|---|---|
| committer | ame <[email protected]> | 2023-12-24 20:42:53 -0600 |
| commit | effd4b3cb361cd5f977704e06fc8c9954a5c0379 (patch) | |
| tree | 71c5d25f82a74b5aea439bb0fa0b53dcde4b62a9 /src | |
| parent | 2125ee40a74fad6d9c92f835dda590e35ffae0e5 (diff) | |
no newline option
Diffstat (limited to 'src')
| -rw-r--r-- | src/config.c | 20 | ||||
| -rw-r--r-- | src/config.h | 3 | ||||
| -rw-r--r-- | src/io.c | 2 |
3 files changed, 17 insertions, 8 deletions
diff --git a/src/config.c b/src/config.c index 2fd4455..25919d1 100644 --- a/src/config.c +++ b/src/config.c @@ -1,9 +1,12 @@ #include "config.h" +#include "io.h" #include <string.h> int _print_type = 0; int _max_depth = 2; int _start_nl_at = 3; +int _collapse_all = 0; + int _file_malloc_chunk = 512; int get_config_map(const char* key){ @@ -17,13 +20,16 @@ int l_set(lua_State* L) { luaL_checktype(L, 1, LUA_TTABLE); get_config_map("print_type"); lua_pushnil(L); - for(;lua_next(L,1) != 0;){ - int ind = get_config_map(lua_tostring(L,-2)); + for(;lua_next(L,1) != 0;){ + int ind = get_config_map(lua_tostring(L,-2)); - if(ind != -1) { - *config_map[ind].value = lua_tonumber(L,-1); - } - lua_pop(L,1); + if(ind != -1) { + *config_map[ind].value = lua_tonumber(L,-1); + lua_pushnumber(L, 1); + return 1; } - return 0; + lua_pop(L,1); + } + lua_pushnumber(L, 0); + return 1; } diff --git a/src/config.h b/src/config.h index 15a4342..d50774d 100644 --- a/src/config.h +++ b/src/config.h @@ -4,6 +4,8 @@ extern int _print_type; extern int _max_depth; extern int _start_nl_at; +extern int _collapse_all; + extern int _file_malloc_chunk; struct str_to_int { @@ -15,6 +17,7 @@ static struct str_to_int config_map[] = { {"file_chunksize", &_file_malloc_chunk}, {"print_type", &_print_type}, {"max_depth", &_max_depth}, + {"collapse_all", &_collapse_all}, {"start_nl_at", &_start_nl_at}, {NULL,NULL} }; @@ -95,7 +95,7 @@ void i_pprint(lua_State* L, int indent){ case LUA_TTABLE: print_indentation(indent); if(indent >= _max_depth && _max_depth >= 0) {printf("{"color_gray"..."color_reset"}"); break;} - int skip = i_len(L,last_idx) < _start_nl_at; + int skip = i_len(L,last_idx) < _start_nl_at || _collapse_all; printf("{"); if(!skip) printf("\n"); lua_pushnil(L); |
