Fix refcount logic & duplicate unhook checking.
[screen-lua.git] / src / scripts / cmdcallback.lua
blob9d92d62b88866e2678f41af573a515d56ee2df7b
1 --[[ For now, this sample function will simply record all the commands executed ]]--
3 function cmd1(name, args)
4 os.execute('mkdir -p /tmp/debug')
5 local f = io.open('/tmp/debug/22', 'a')
6 f:write("Command executed: " .. name)
8 for i, c in pairs(args) do
9 f:write(" " .. c)
10 end
12 f:write("\n")
13 f:close()
14 return 0
15 end
17 function cmd2(name, args)
18 os.execute('mkdir -p /tmp/debug')
19 local f = io.open('/tmp/debug/11', 'a')
20 f:write("Command executed: " .. name)
22 for i, c in pairs(args) do
23 f:write(" " .. c)
24 end
26 f:write("\n")
27 f:close()
28 return 0
29 end
31 ticket1 = screen.hook("cmdexecuted", cmd1)
32 ticket2 = screen.hook("cmdexecuted", "cmd2")
34 function unhook()
35 if ticket1 ~= nil then
36 screen.unhook(ticket1, cmd1)
37 ticket1 = nil
38 end
40 if ticket2 ~= nil then
41 screen.unhook(ticket2, "cmd2")
42 ticket2 = nil
43 end
44 end
46 --A second unhook should faild
47 function debug_unhook()
48 if screen.unhook(ticket1, "cmd1") == false then
49 error("unhook failed")
50 end
51 end
53 --A second hook should faild
54 function debug_hook()
55 ticket1=screen.hook("cmdexecuted", "cmd1")
56 end