B. Bogart wrote:
I'm not sure if this should stay on gem-dev or what...
Anyhow I've traced the issue and here is where the problem lies. My original code outputted the symbol like so:
sys_vgui("pd [concat entry%p output [.x%x.c.s%x get 0.0 end] \;]\n", x, x->x_glist, x);
Johannes made the valiant effort to escape "," and ";" so that are not seperated into descrete messages in PD. Basically meaning you can't type a message for the entry widget containing messages for it, and you can't send to a receive directly from the widget. I think this is ok, but I did not see much reason to change it. His change looks like this:
sys_vgui("pd [concat entry%p output [string map {"," "\\," ";" "\\;} [.x%x.c.s%x get 0.0 end]]" \;]\n", x, x->x_glist, x);
very weird. now that i looked at it, i can confirm that it doesn't work here either! my first thought was that i probably used a patched pd-version, but looking a bit closer it revealed that the quoting was really just wrong. it should read:
sys_vgui("pd [concat entry%p output [string map {"," "\\," ";" "\\;"} [.x%x.c.s%x get 0.0 end]] \;]\n", x, x->x_glist, x);
(so the escaped quote at after "end]]" should really be before "}")
i have no idea how this happened.
attached is a unified diff for my changes (or should i simply commit them?)
mfg.asd.r IOhannes
ps: i moved this to pd-dev (even though it might be a bit late)
Index: entry.c =================================================================== RCS file: /cvsroot/pure-data/externals/bbogart/entry/entry.c,v retrieving revision 1.5 diff -u -r1.5 entry.c --- entry.c 11 Dec 2005 17:06:58 -0000 1.5 +++ entry.c 12 Dec 2005 14:55:42 -0000 @@ -320,11 +320,15 @@ /* Pass the contents of the text widget onto the entry_output fuction above */ static void entry_bang_output(t_entry* x) { -/* This code is not functional, all OS's return "unmatches quote in string" removed until someone has time to look more closely. - sys_vgui("pd [concat entry%p output [string map {"," "\\," ";" "\\;} [.x%x.c.s%x get 0.0 end]]" \;]\n", x, x->x_glist, x); */ +#if 1 + /* + JMZ: i desperately need "," and ";" to not be treated special by pd + */ + sys_vgui("pd [concat entry%p output [string map {"," "\\," ";" "\\;"} [.x%x.c.s%x get 0.0 end]] \;]\n", x, x->x_glist, x);
+#else sys_vgui("pd [concat entry%p output [.x%x.c.s%x get 0.0 end] \;]\n", x, x->x_glist, x); - +#endif sys_vgui("bind .x%x.c.s%x <Leave> {focus [winfo parent .x%x.c.s%x]} \n", x->x_glist, x, x->x_glist, x); }