diff options
| author | Ez Diy <ezdiy@outlook.com> | 2020-09-17 00:43:27 +0200 |
|---|---|---|
| committer | Ez Diy <ezdiy@outlook.com> | 2020-09-17 00:43:27 +0200 |
| commit | daf4b8d3894cca25b3015d35e9168b7b2569d43b (patch) | |
| tree | 46845a28fab402fb91ec4409a00684e048133eb3 /vis-lua.c | |
| parent | 1b9d70eafc24eaa82c2796fa6d72a482bb09dba9 (diff) | |
| download | vis-daf4b8d3894cca25b3015d35e9168b7b2569d43b.tar.gz vis-daf4b8d3894cca25b3015d35e9168b7b2569d43b.tar.xz | |
Pass up terminal CSI as events to Lua.
Diffstat (limited to 'vis-lua.c')
| -rw-r--r-- | vis-lua.c | 21 |
1 files changed, 21 insertions, 0 deletions
@@ -161,6 +161,7 @@ void vis_lua_win_open(Vis *vis, Win *win) { } void vis_lua_win_close(Vis *vis, Win *win) { } void vis_lua_win_highlight(Vis *vis, Win *win) { } void vis_lua_win_status(Vis *vis, Win *win) { window_status_update(vis, win); } +void vis_lua_term_csi(Vis *vis, const long *csi) { } #else @@ -3075,4 +3076,24 @@ void vis_lua_win_status(Vis *vis, Win *win) { lua_pop(L, 1); } +/*** + * CSI command received from terminal. + * @function term_csi + * @param List of CSI parameters + */ +void vis_lua_term_csi(Vis *vis, const long *csi) { + lua_State *L = vis->lua; + if (!L) + return; + vis_lua_event_get(L, "term_csi"); + if (lua_isfunction(L, -1)) { + int nargs = csi[1]; + lua_pushinteger(L, csi[0]); + for (int i = 0; i < nargs; i++) + lua_pushinteger(L, csi[2 + i]); + pcall(vis, L, 1 + nargs, 0); + } + lua_pop(L, 1); +} + #endif |
