[PD-dev] [ pure-data-Patches-2947822 ] space character in gui labels causes disaster

SourceForge.net noreply at sourceforge.net
Fri Feb 1 17:19:24 CET 2013

Patches item #2947822, was opened at 2010-02-08 05:12
Message generated for change (Comment added) made by eighthave
You can respond by visiting: 

Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: puredata
Group: None
Status: Open
Resolution: Fixed
Priority: 5
Private: No
Submitted By: Matteo Sisti Sette (sistisette)
Assigned to: Miller Puckette (millerpuckette)
Summary: space character in gui labels causes disaster

Initial Comment:
Steps to reproduce:

1 - Open the attached patch

Note the size of the radio and toggle. Note also they have "send" symbols set to "xxx" and "yyy" respectively

2 - Click on the big bang at the top

This composes a symbol containing space characters and sends it as a label to both the radio and the toggle.

This seems to work: the label is actually set with spaces, and the radio and toggle still work.

However, if you right-click on any of them and try to select "properties", the properties dialog won't open

3 - Now save the patch and close it

4 - Open the patch again. The radio and toggle properties have been completely "reset": their size have been reset to default, and also the "number" property of the radio. They have lost their "send" symbol too: you can see the outlet and if you use them, the "r" objects won't receive anything.

However, if you open the properties dialog of the radio or toggle, you'll see that the "send" property is still there (not the same can be said for the size and number); if you now do Apply or Ok, the send symbol will be restored.

So, spaces in the label of a gui object cause weirdnesses and potential disaster. Note that data is lost (the properties of the gui objects) if the patch is saved after assigning such a label, and i is lost silently with no error message at any moment.

There are ather "forbidden" characters ithat don't behave properly n labels, such as the open square bracket "[" (as reported in another bug report). However the space character is more disatrous as it causes data loss. 
Object should either accept ALL characters for a label, or properly detect and refuse forbidden characters, which should be documented, avoiding unexpected consequences.


>Comment By: Hans-Christoph Steiner (eighthave)
Date: 2013-02-01 08:19

I applied IOhannes' patch #0002 to Pd-extended 0.44.0


Comment By: Hans-Christoph Steiner (eighthave)
Date: 2012-12-04 11:31

Patch #0001 should be applied regardless.  Its a simple fix that also
address having characters like " [ ] in labels.

As for patch #0002 , the iemguis also replace spaces with _ when you enter
the name in the Properies panel.  Symbols can have spaces, and you can set
the label with a [label symbol( message, so as IOhannes pointed out, the
missing piece of the puzzle is saving properly. Since patch #0002 makes Pd
write out the file format that is already supported, I think it would be
good to include it.

Then strnescape() will also have to change when we implement proper
escaping support throughout Pd.  Unless you have plans to implement that in
0.44, I think its definitely worth including incremental solutions like
patch #0002


Comment By: Miller Puckette (millerpuckette)
Date: 2012-12-03 19:27

Note the much simpler way the "number box" finesses this problem.  I'm
scared of adding
code to m_binbuf.c to escape spaces (what will happen when we later allow
into the mix?).  But without the binbuf patch the fix to the IEM guis
doesn't work - so I'm
tempted for now just to do as in the number box - it's not incompatible to
"do it right" at
some ater date when we can thonk the whole thing through (it's all over the
Pd code and all
needs to be figured out together).


Comment By: IOhannes m zmölnig (zmoelnig)
Date: 2012-11-13 16:45

added another patch (0002_*) that implements escaping spaces and tabs when
saving the files to disk.

i  guess both patches should be applied for full fun.


Comment By: IOhannes m zmölnig (zmoelnig)
Date: 2012-11-13 15:36

the bug.pd file does not correctly show the labels with blanks after
reloading but it doesn't throw any warnings)

however, the bugfix-patch doesn't work for me.

nevertheless the problem is known and is not in the pd->gui communication,
but rather in the way the label is stored on disk (and then interpreted on
afaict, blanks (and other special chars) really must be escaped with
backslash (e.g. "A\ A\ A") when saved to disk


Comment By: Hans-Christoph Steiner (eighthave)
Date: 2012-11-13 12:52

the values were not quoted, so just quoting them with {} fixes it.  The
patch is attached.


You can respond by visiting: 

More information about the Pd-dev mailing list