| 141 return GaimTclRefAccount; |
141 return GaimTclRefAccount; |
| 142 case GAIM_SUBTYPE_CONNECTION: |
142 case GAIM_SUBTYPE_CONNECTION: |
| 143 return GaimTclRefConnection; |
143 return GaimTclRefConnection; |
| 144 case GAIM_SUBTYPE_CONVERSATION: |
144 case GAIM_SUBTYPE_CONVERSATION: |
| 145 return GaimTclRefConversation; |
145 return GaimTclRefConversation; |
| |
146 case GAIM_SUBTYPE_PLUGIN: |
| |
147 return GaimTclRefPlugin; |
| 146 case GAIM_SUBTYPE_STATUS: |
148 case GAIM_SUBTYPE_STATUS: |
| 147 return GaimTclRefStatus; |
149 return GaimTclRefStatus; |
| |
150 case GAIM_SUBTYPE_XFER: |
| |
151 return GaimTclRefXfer; |
| 148 default: |
152 default: |
| 149 return NULL; |
153 return NULL; |
| 150 } |
154 } |
| 151 } |
155 } |
| 152 |
156 |
| 268 gaim_debug(GAIM_DEBUG_ERROR, "tcl", "subtype unknown\n"); |
272 gaim_debug(GAIM_DEBUG_ERROR, "tcl", "subtype unknown\n"); |
| 269 case GAIM_SUBTYPE_ACCOUNT: |
273 case GAIM_SUBTYPE_ACCOUNT: |
| 270 case GAIM_SUBTYPE_CONNECTION: |
274 case GAIM_SUBTYPE_CONNECTION: |
| 271 case GAIM_SUBTYPE_CONVERSATION: |
275 case GAIM_SUBTYPE_CONVERSATION: |
| 272 case GAIM_SUBTYPE_STATUS: |
276 case GAIM_SUBTYPE_STATUS: |
| |
277 case GAIM_SUBTYPE_PLUGIN: |
| |
278 case GAIM_SUBTYPE_XFER: |
| 273 if (gaim_value_is_outgoing(handler->argtypes[i])) |
279 if (gaim_value_is_outgoing(handler->argtypes[i])) |
| 274 gaim_debug_error("tcl", "pointer subtypes do not currently support outgoing arguments\n"); |
280 gaim_debug_error("tcl", "pointer subtypes do not currently support outgoing arguments\n"); |
| 275 arg = gaim_tcl_ref_new(ref_type(gaim_value_get_subtype(handler->argtypes[i])), va_arg(args, void *)); |
281 arg = gaim_tcl_ref_new(ref_type(gaim_value_get_subtype(handler->argtypes[i])), va_arg(args, void *)); |
| 276 break; |
|
| 277 case GAIM_SUBTYPE_PLUGIN: |
|
| 278 case GAIM_SUBTYPE_XFER: |
|
| 279 /* pointers again */ |
|
| 280 if (gaim_value_is_outgoing(handler->argtypes[i])) { |
|
| 281 vals[i] = va_arg(args, void **); |
|
| 282 Tcl_LinkVar(handler->interp, name->str, |
|
| 283 vals[i], TCL_LINK_INT); |
|
| 284 arg = Tcl_NewStringObj(name->str, -1); |
|
| 285 } else { |
|
| 286 arg = Tcl_NewIntObj((int)va_arg(args, void *)); |
|
| 287 } |
|
| 288 break; |
282 break; |
| 289 case GAIM_SUBTYPE_BLIST: |
283 case GAIM_SUBTYPE_BLIST: |
| 290 case GAIM_SUBTYPE_BLIST_BUDDY: |
284 case GAIM_SUBTYPE_BLIST_BUDDY: |
| 291 case GAIM_SUBTYPE_BLIST_GROUP: |
285 case GAIM_SUBTYPE_BLIST_GROUP: |
| 292 case GAIM_SUBTYPE_BLIST_CHAT: |
286 case GAIM_SUBTYPE_BLIST_CHAT: |