From a0ff5b10f1307c12ffd464850eeec3ec66e2770f Mon Sep 17 00:00:00 2001 From: BanceDev Date: Tue, 10 Sep 2024 11:29:43 -0400 Subject: lua api functions for getting terminal width and height --- src/lua_api.c | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'src/lua_api.c') diff --git a/src/lua_api.c b/src/lua_api.c index 21f5d39..93fee31 100644 --- a/src/lua_api.c +++ b/src/lua_api.c @@ -26,6 +26,7 @@ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. #include #include #include +#include #include #include @@ -332,6 +333,26 @@ static int l_alias(lua_State *L) { return 0; } +static int l_terminal_cols(lua_State *L) { + struct winsize w; + if (ioctl(STDOUT_FILENO, TIOCGWINSZ, &w) == -1) { + perror("ioctl"); + return 0; + } + lua_pushnumber(L, w.ws_col); + return 1; +} + +static int l_terminal_rows(lua_State *L) { + struct winsize w; + if (ioctl(STDOUT_FILENO, TIOCGWINSZ, &w) == -1) { + perror("ioctl"); + return 0; + } + lua_pushnumber(L, w.ws_row); + return 1; +} + // -- register Lua functions -- void lua_register_api(lua_State *L) { @@ -370,6 +391,10 @@ void lua_register_api(lua_State *L) { lua_setfield(L, -2, "setPrompt"); lua_pushcfunction(L, l_alias); lua_setfield(L, -2, "alias"); + lua_pushcfunction(L, l_terminal_cols); + lua_setfield(L, -2, "termCols"); + lua_pushcfunction(L, l_terminal_rows); + lua_setfield(L, -2, "termRows"); // set the table as global lua_setglobal(L, "lush"); } -- cgit v1.2.3-59-g8ed1b .h'>stats
Commit message (Collapse)AuthorFilesLines
2024-09-25Update README.mdGravatar Lance Borden 1-0/+3
2024-09-23fixed lua api exit status issueGravatar BanceDev 1-1/+1
2024-09-23fixed splitting within quoted stringGravatar BanceDev 1-5/+10
2024-09-23made and operator actually conditionalGravatar BanceDev 2-17/+27
2024-09-23fixed operator chaining to handle commands terminating with an operatorGravatar BanceDev 1-14/+5
2024-09-23implemented background process operatorGravatar BanceDev 6-154/+238
2024-09-23implemented piping into new chaining methodGravatar BanceDev 1-10/+30
2024-09-18fixed && chaining for builtinsGravatar BanceDev 2-23/+31
2024-09-18added basic && chainingGravatar BanceDev 2-8/+73
2024-09-17changed tokenizer to handle all the chaining operatorsGravatar BanceDev 3-20/+78
2024-09-17Update README.mdGravatar Lance Borden 1-0/+1
2024-09-13added better clarification to help menuGravatar BanceDev 1-1/+2
2024-09-13improved installation instructionsGravatar BanceDev 1-3/+3
2024-09-12v0.1.1Gravatar BanceDev 1-1/+1
2024-09-12fixed bug in input buffer handling due to misplaced printGravatar BanceDev 2-5/+8
2024-09-12Update build.yml checkout v4Gravatar Lance Borden 1-1/+1
2024-09-12Update build.yml to artifact v4Gravatar Lance Borden 1-1/+1
2024-09-12fixed exit status issue with non interative modeGravatar BanceDev 1-1/+1
2024-09-12added non interative mode for running lua scriptsGravatar BanceDev 2-4/+28
2024-09-12temporary github action fix until non-interactive mode is implementedGravatar BanceDev 1-2/+2
2024-09-12attempt to update build script to accept input into lush shellGravatar BanceDev 2-4/+6
2024-09-12prevent lush workflow from getting stuck in testsGravatar Lance Borden 1-1/+4
2024-09-12removed chsh in workflowGravatar Lance Borden 1-4/+1