Mercurial > pidgin
comparison plugins/tcl/tcl_gaim.h @ 10597:0e886a234d92
[gaim-migrate @ 12012]
This is a nontrivial change to the way signal handlers are implemented
and used in Tcl. This changes signal handlers to being standard Tcl
functions by way of a little bit of namespace glue. In addition,
in/out arguments to signals are now implemented via variables which
should be upvar'd; this is a little more verbose than the old method,
but it should fit people's Tcl expectations a little better, since
normally Tcl function arguments are not call-by-reference.
This still isn't 64-bit safe, and the documentation wasn't updated. I
expect there will be more nontrivial changes to Tcl before 2.0, so
those things are pending.
Ethan
committer: Tailor Script <tailor@pidgin.im>
author | Ethan Blanton <elb@pidgin.im> |
---|---|
date | Mon, 14 Feb 2005 03:11:23 +0000 |
parents | 2d2f04c5c7d2 |
children | fc464a0abccc |
comparison
equal
deleted
inserted
replaced
10596:913ec44675c3 | 10597:0e886a234d92 |
---|---|
28 #include "internal.h" | 28 #include "internal.h" |
29 #include "plugin.h" | 29 #include "plugin.h" |
30 #include "value.h" | 30 #include "value.h" |
31 | 31 |
32 struct tcl_signal_handler { | 32 struct tcl_signal_handler { |
33 char *signal; | 33 Tcl_Obj *signal; |
34 Tcl_Interp *interp; | 34 Tcl_Interp *interp; |
35 | 35 |
36 void *instance; | 36 void *instance; |
37 Tcl_Obj *namespace; | |
38 /* These following two are temporary during setup */ | |
39 Tcl_Obj *args; | |
37 Tcl_Obj *proc; | 40 Tcl_Obj *proc; |
38 int nnames; | |
39 char **argnames; | |
40 | 41 |
41 GaimValue *returntype; | 42 GaimValue *returntype; |
42 int nargs; | 43 int nargs; |
43 GaimValue **argtypes; | 44 GaimValue **argtypes; |
44 }; | 45 }; |