diff --git a/pd/src/g_all_guis.c b/pd/src/g_all_guis.c index f6b53ac3b42db80092455d2e4bcbc78b6d2583f2..89e8d3382849e0f316b86f1989e39b1fbf9a1d59 100644 --- a/pd/src/g_all_guis.c +++ b/pd/src/g_all_guis.c @@ -572,6 +572,19 @@ int iemgui_dialog(t_iemgui *x, int argc, t_atom *argv) if(iemgui_has_rcv(x)) oldsndrcvable |= IEM_GUI_OLD_RCV_FLAG; if(iemgui_has_snd(x)) oldsndrcvable |= IEM_GUI_OLD_SND_FLAG; iemgui_all_raute2dollar(srl); + + // replace ascii code 11 (\v or vertical tab) with spaces + // we do this so that the string with spaces can survive argc,argv + // conversion when coming from dialog side of things where it is parsed + char *c; + for(c = srl[2]->s_name; c != NULL && *c != '\0'; c++) + { + if(*c == '\v') + { + *c = ' '; + } + } + x->x_snd_unexpanded=srl[0]; srl[0]=canvas_realizedollar(x->x_glist, srl[0]); x->x_rcv_unexpanded=srl[1]; srl[1]=canvas_realizedollar(x->x_glist, srl[1]); x->x_lab_unexpanded=srl[2]; srl[2]=canvas_realizedollar(x->x_glist, srl[2]); diff --git a/pd/src/g_numbox.c b/pd/src/g_numbox.c index 86e267293a61d3c591304f443f062a183e30b401..d69ef2f4ab609e27554f94207d2d5d74a21e1697 100644 --- a/pd/src/g_numbox.c +++ b/pd/src/g_numbox.c @@ -473,10 +473,7 @@ static void my_numbox_dialog(t_my_numbox *x, t_symbol *s, int argc, //iemgui_draw_config(&x->x_gui); scalehandle_draw(&x->x_gui); if (x->x_gui.x_selected) - { - scalehandle_draw(&x->x_gui); iemgui_select((t_gobj *)x,x->x_gui.x_glist,1); - } //canvas_restore_original_position(x->x_gui.x_glist, (t_gobj *)x,"bogus",-1); scrollbar_update(x->x_gui.x_glist); } diff --git a/pd/src/pd.tk b/pd/src/pd.tk index aca861e9031a57c06bda9c5b77f7b5c0a4398435..5c740e9818d3125a1a7bb1db0f3ce33cecee69ec 100644 --- a/pd/src/pd.tk +++ b/pd/src/pd.tk @@ -1088,10 +1088,13 @@ proc pdtk_enquote {x} { concat $foo2 } -#enquote a string to send it to Pd. Blow off semi and comma; alias spaces +interp alias {} chr {} format %c + +#enquote a string to send it to Pd. Blow off semi and comma; replace spaces with VT (ascii dec. 11) #we also blow off "{", "}", "\" because they'll just cause bad trouble later. proc pdtk_unspace {x} { - set y [string map {" " "_" ";" "" "," "" "{" "" "}" "" "\\" ""} $x] + set space [chr 11] + set y [string map [list " " $space ";" "" "," "" "{" "" "}" "" "\\" ""] $x] if {$y == ""} {set y "empty"} concat $y }