# HG changeset patch # User Andreas Monitzer # Date 1194573615 0 # Node ID d1da36099088fffab27e8848cea0739725a98a69 # Parent 726f91be55ed7a9eeae069051e511de3264b54c0 Fixed cancelling ad-hoc commands diff -r 726f91be55ed -r d1da36099088 libpurple/protocols/jabber/adhoccommands.c --- a/libpurple/protocols/jabber/adhoccommands.c Thu Nov 08 19:50:22 2007 +0000 +++ b/libpurple/protocols/jabber/adhoccommands.c Fri Nov 09 02:00:15 2007 +0000 @@ -109,9 +109,15 @@ xmlnode_set_namespace(command,"http://jabber.org/protocol/commands"); xmlnode_set_attrib(command,"sessionid",actionInfo->sessionid); xmlnode_set_attrib(command,"node",actionInfo->node); - if(actionhandle) - xmlnode_set_attrib(command,"action",actionhandle); - xmlnode_insert_child(command,result); + + /* cancel is handled differently on ad-hoc commands than regular forms */ + if(!strcmp(xmlnode_get_namespace(result),"jabber:x:data") && !strcmp(xmlnode_get_attrib(result, "type"),"cancel")) { + xmlnode_set_attrib(command,"action","cancel"); + } else { + if(actionhandle) + xmlnode_set_attrib(command,"action",actionhandle); + xmlnode_insert_child(command,result); + } for(action = actionInfo->actionslist; action; action = g_list_next(action)) { char *handle = action->data;