examples/marking.lua
changeset 34 8206d7cb1447
parent 9 c2517f8bf647
child 58 aa3376776cf2
--- a/examples/marking.lua	Mon Mar 16 06:12:55 2009 +0200
+++ b/examples/marking.lua	Mon Mar 16 18:54:16 2009 +0200
@@ -44,11 +44,11 @@
 
 main.command ( 'marked',
 	function ( args )
-		local cmd = args:match ( "^%s*(%w+)" )
+		local cmd = args[1]
 		if cmd == 'clear' then
 			marked_clear ()
 		elseif cmd == 'do' then
-			local command = args:match ( "^%s*%w+%s+(.+)" )
+			local command = args[2]
 			foreach_marked (
 				function ( jid )
 					main.run ( string.format ( command, jid ) )
@@ -60,17 +60,23 @@
 					print ( ' - ' .. jid )
 				end )
 		end
-	end, { 'clear', 'do' } )
+	end, true, { 'clear', 'do' } )
 
 commands_help['marked'] = "[clear | do mcabber_command]\n\nOperates on marked buddies. Without arguments prints list of marked jids.\nCommand should contain %s in place, where jid should be inserted."
 
+mark_ins_bound = false
+
 -- Ins
--- TODO: check if ins already bound
-main.run ( 'bind 331 = lua mark_toggle ()' )
+if not main.binding ( '331' ) then
+	main.binding ( '331', 'lua mark_toggle ()' )
+	mark_ins_bound = true
+end
 
 hooks_d['hook-quit'].mark =
 	function ( args )
-		main.run ( 'bind 331 =' )
+		if mark_ins_bound then
+			main.binding ( '331', nil )
+		end
 	end
 
 -- vim: se ts=4: --