libpurple/plugins/tcl/tcl_cmds.c

changeset 26824
c7ba07f9ca42
parent 25913
3d5e1dfea10a
child 31294
73607ab89c6f
equal deleted inserted replaced
26817:ad7e50663cb4 26824:c7ba07f9ca42
681 } 681 }
682 682
683 int tcl_cmd_connection(ClientData unused, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) 683 int tcl_cmd_connection(ClientData unused, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])
684 { 684 {
685 Tcl_Obj *list, *elem; 685 Tcl_Obj *list, *elem;
686 const char *cmds[] = { "account", "displayname", "handle", "list", NULL }; 686 const char *cmds[] = { "account", "displayname", "handle", "list", "state", NULL };
687 enum { CMD_CONN_ACCOUNT, CMD_CONN_DISPLAYNAME, CMD_CONN_HANDLE, CMD_CONN_LIST } cmd; 687 enum { CMD_CONN_ACCOUNT, CMD_CONN_DISPLAYNAME, CMD_CONN_HANDLE,
688 CMD_CONN_LIST, CMD_CONN_STATE } cmd;
688 int error; 689 int error;
689 GList *cur; 690 GList *cur;
690 PurpleConnection *gc; 691 PurpleConnection *gc;
691 692
692 if (objc < 2) { 693 if (objc < 2) {
736 for (cur = purple_connections_get_all(); cur != NULL; cur = g_list_next(cur)) { 737 for (cur = purple_connections_get_all(); cur != NULL; cur = g_list_next(cur)) {
737 elem = purple_tcl_ref_new(PurpleTclRefConnection, cur->data); 738 elem = purple_tcl_ref_new(PurpleTclRefConnection, cur->data);
738 Tcl_ListObjAppendElement(interp, list, elem); 739 Tcl_ListObjAppendElement(interp, list, elem);
739 } 740 }
740 Tcl_SetObjResult(interp, list); 741 Tcl_SetObjResult(interp, list);
742 break;
743 case CMD_CONN_STATE:
744 if (objc != 3) {
745 Tcl_WrongNumArgs(interp, 2, objv, "gc");
746 return TCL_ERROR;
747 }
748 if ((gc = tcl_validate_gc(objv[2], interp)) == NULL)
749 return TCL_ERROR;
750 switch (purple_connection_get_state(gc)) {
751 case PURPLE_DISCONNECTED:
752 Tcl_SetObjResult(interp, Tcl_NewStringObj("disconnected", -1));
753 break;
754 case PURPLE_CONNECTED:
755 Tcl_SetObjResult(interp, Tcl_NewStringObj("connected", -1));
756 break;
757 case PURPLE_CONNECTING:
758 Tcl_SetObjResult(interp, Tcl_NewStringObj("connecting", -1));
759 break;
760 }
741 break; 761 break;
742 } 762 }
743 763
744 return TCL_OK; 764 return TCL_OK;
745 } 765 }

mercurial