diff options
| author | Marc André Tanner <mat@brain-dump.org> | 2016-09-19 14:20:28 +0200 |
|---|---|---|
| committer | Marc André Tanner <mat@brain-dump.org> | 2016-09-19 14:20:28 +0200 |
| commit | 478b86451c7896b5dc7f18962975a42549686b8e (patch) | |
| tree | 4226a5f7c98b7929471ce22efc8616869e460064 | |
| parent | cea4400702eb0eeba57598540388d98a5104cb2d (diff) | |
| download | vis-478b86451c7896b5dc7f18962975a42549686b8e.tar.gz vis-478b86451c7896b5dc7f18962975a42549686b8e.tar.xz | |
vis-lua: expose file open event to lua
The event is only triggerred for new files read from disk (e.g.
splitting an existing window will not cause an event to be emitted).
| -rw-r--r-- | README.md | 1 | ||||
| -rw-r--r-- | vis-lua.c | 7 |
2 files changed, 8 insertions, 0 deletions
@@ -585,6 +585,7 @@ At this time there exists no API stability guarantees. - `events` hooks - `start()` - `quit()` + - `file_open(file)` - `win_open(win)` - `win_close(win)` - `theme_change(name)` @@ -1503,6 +1503,13 @@ void vis_lua_quit(Vis *vis) { void vis_lua_file_open(Vis *vis, File *file) { debug("event: file-open: %s %p %p\n", file->name ? file->name : "unnamed", (void*)file, (void*)file->text); + lua_State *L = vis->lua; + vis_lua_event_get(L, "file_open"); + if (lua_isfunction(L, -1)) { + obj_ref_new(L, file, "vis.file"); + pcall(vis, L, 1, 0); + } + lua_pop(L, 1); } void vis_lua_file_save(Vis *vis, File *file) { |
