comparison plugins/tcl/tcl_cmds.c @ 6700:57161e3abbb5

[gaim-migrate @ 7226] This certainly doesn't work, and possibly doesn't load, but it *does* compile, which means I can now fix it in my own sweet time. committer: Tailor Script <tailor@pidgin.im>
author Ethan Blanton <elb@pidgin.im>
date Tue, 02 Sep 2003 04:28:34 +0000
parents 2d2f04c5c7d2
children 05098da416bb
comparison
equal deleted inserted replaced
6699:12169973c663 6700:57161e3abbb5
26 #include "conversation.h" 26 #include "conversation.h"
27 #include "connection.h" 27 #include "connection.h"
28 #include "account.h" 28 #include "account.h"
29 #include "server.h" 29 #include "server.h"
30 #include "notify.h" 30 #include "notify.h"
31 #include "blist.h"
31 #include "debug.h" 32 #include "debug.h"
32 #include "prefs.h" 33 #include "prefs.h"
33 #include "core.h" 34 #include "core.h"
34 35
35 #include "tcl_gaim.h" 36 #include "tcl_gaim.h"
246 char *cmds[] = { "alias", "handle", "info", "list", NULL }; 247 char *cmds[] = { "alias", "handle", "info", "list", NULL };
247 enum { CMD_BUDDY_ALIAS, CMD_BUDDY_HANDLE, CMD_BUDDY_INFO, CMD_BUDDY_LIST } cmd; 248 enum { CMD_BUDDY_ALIAS, CMD_BUDDY_HANDLE, CMD_BUDDY_INFO, CMD_BUDDY_LIST } cmd;
248 struct gaim_buddy_list *blist; 249 struct gaim_buddy_list *blist;
249 GaimBlistNode *node, *gnode; 250 GaimBlistNode *node, *gnode;
250 GaimAccount *account; 251 GaimAccount *account;
251 struct buddy *bnode; 252 GaimBuddy *bnode;
252 struct chat *cnode; 253 GaimBlistChat *cnode;
253 int error, all = 0, count; 254 int error, all = 0, count;
254 255
255 if (objc < 2) { 256 if (objc < 2) {
256 Tcl_WrongNumArgs(interp, 1, objv, "subcommand ?args?"); 257 Tcl_WrongNumArgs(interp, 1, objv, "subcommand ?args?");
257 return TCL_ERROR; 258 return TCL_ERROR;
270 if ((error = Tcl_ListObjGetElements(interp, objv[2], &count, &elems)) != TCL_OK) 271 if ((error = Tcl_ListObjGetElements(interp, objv[2], &count, &elems)) != TCL_OK)
271 return error; 272 return error;
272 if ((node = tcl_list_to_buddy(interp, count, elems)) == NULL) 273 if ((node = tcl_list_to_buddy(interp, count, elems)) == NULL)
273 return TCL_ERROR; 274 return TCL_ERROR;
274 if (node->type == GAIM_BLIST_CHAT_NODE) 275 if (node->type == GAIM_BLIST_CHAT_NODE)
275 Tcl_SetStringObj(result, ((struct chat *)node)->alias, -1); 276 Tcl_SetStringObj(result, ((GaimBlistChat *)node)->alias, -1);
276 else if (node->type == GAIM_BLIST_BUDDY_NODE) 277 else if (node->type == GAIM_BLIST_BUDDY_NODE)
277 Tcl_SetStringObj(result, gaim_get_buddy_alias((struct buddy *)node), -1); 278 Tcl_SetStringObj(result, (char *)gaim_get_buddy_alias((GaimBuddy *)node), -1);
278 return TCL_OK; 279 return TCL_OK;
279 break; 280 break;
280 case CMD_BUDDY_HANDLE: 281 case CMD_BUDDY_HANDLE:
281 if (objc != 2) { 282 if (objc != 2) {
282 Tcl_WrongNumArgs(interp, 2, objv, ""); 283 Tcl_WrongNumArgs(interp, 2, objv, "");
327 blist = gaim_get_blist(); 328 blist = gaim_get_blist();
328 for (gnode = blist->root; gnode != NULL; gnode = gnode->next) { 329 for (gnode = blist->root; gnode != NULL; gnode = gnode->next) {
329 tclgroup = Tcl_NewListObj(0, NULL); 330 tclgroup = Tcl_NewListObj(0, NULL);
330 Tcl_ListObjAppendElement(interp, tclgroup, Tcl_NewStringObj("group", -1)); 331 Tcl_ListObjAppendElement(interp, tclgroup, Tcl_NewStringObj("group", -1));
331 Tcl_ListObjAppendElement(interp, tclgroup, 332 Tcl_ListObjAppendElement(interp, tclgroup,
332 Tcl_NewStringObj(((struct group *)gnode)->name, -1)); 333 Tcl_NewStringObj(((GaimGroup *)gnode)->name, -1));
333 tclgrouplist = Tcl_NewListObj(0, NULL); 334 tclgrouplist = Tcl_NewListObj(0, NULL);
334 for (node = gnode->child; node != NULL; node = node->next) { 335 for (node = gnode->child; node != NULL; node = node->next) {
335 switch (node->type) { 336 switch (node->type) {
336 case GAIM_BLIST_BUDDY_NODE: 337 case GAIM_BLIST_BUDDY_NODE:
337 bnode = (struct buddy *)node; 338 bnode = (GaimBuddy *)node;
338 if (!all && !gaim_account_is_connected(bnode->account)) 339 if (!all && !gaim_account_is_connected(bnode->account))
339 continue; 340 continue;
340 tclbud = Tcl_NewListObj(0, NULL); 341 tclbud = Tcl_NewListObj(0, NULL);
341 Tcl_ListObjAppendElement(interp, tclbud, Tcl_NewStringObj("buddy", -1)); 342 Tcl_ListObjAppendElement(interp, tclbud, Tcl_NewStringObj("buddy", -1));
342 Tcl_ListObjAppendElement(interp, tclbud, Tcl_NewStringObj(bnode->name, -1)); 343 Tcl_ListObjAppendElement(interp, tclbud, Tcl_NewStringObj(bnode->name, -1));
343 Tcl_ListObjAppendElement(interp, tclbud, Tcl_NewIntObj((int)bnode->account)); 344 Tcl_ListObjAppendElement(interp, tclbud, Tcl_NewIntObj((int)bnode->account));
344 break; 345 break;
345 case GAIM_BLIST_CHAT_NODE: 346 case GAIM_BLIST_CHAT_NODE:
346 cnode = (struct chat *)node; 347 cnode = (GaimBlistChat *)node;
347 if (!all && !gaim_account_is_connected(cnode->account)) 348 if (!all && !gaim_account_is_connected(cnode->account))
348 continue; 349 continue;
349 tclbud = Tcl_NewListObj(0, NULL); 350 tclbud = Tcl_NewListObj(0, NULL);
350 Tcl_ListObjAppendElement(interp, tclbud, Tcl_NewStringObj("chat", -1)); 351 Tcl_ListObjAppendElement(interp, tclbud, Tcl_NewStringObj("chat", -1));
351 Tcl_ListObjAppendElement(interp, tclbud, Tcl_NewStringObj(cnode->alias, -1)); 352 Tcl_ListObjAppendElement(interp, tclbud, Tcl_NewStringObj(cnode->alias, -1));