<html><head></head><body><div style="color:#000; background-color:#fff; font-family:HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif;font-size:16px">> The character is not invisible. In an editor it manifests with an
endline plus an indentation in the following line which actually
visually helps parse things out inside a plaintext file like .pd.<br clear="none">
<div class="qtdSeparateBR"><br><br></div><div class="yahoo_quoted" id="yui_3_16_0_ym19_1_1480887325881_43335" style="display: block;"><div style="font-family: HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif; font-size: 16px;" id="yui_3_16_0_ym19_1_1480887325881_43334"><div style="font-family: HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif; font-size: 16px;" id="yui_3_16_0_ym19_1_1480887325881_43333"><div class="y_msg_container" id="yui_3_16_0_ym19_1_1480887325881_43339"><div id="yiv8973179852"><div id="yui_3_16_0_ym19_1_1480887325881_43342">
<div id="yui_3_16_0_ym19_1_1480887325881_43344">I think the example you mentioned, while possible, is contrived
because if a user is reading a config, they are likely already
inside Pd with the intention of using such a config to configure
their patch state. If this is the case, and the config is stored
inside a patch in a form of a comment, then this is a non-issue
because all \v chars are replaced with \n at runtime which IIRC
regexp and similar methodologies can recognize as a separation
between args.</div>
<div id="yui_3_16_0_ym19_1_1480887325881_43372">Now, the only reason I can imagine someone parsing a pd file
without actually loading it would be your pd META example for
tooltips which is a one-off example that can be easily addressed
in a number of ways. Other examples seem to me like academic
exercises--why would you store config inside a comments inside a
pd patch, just to parse a comment which would require you to
circumnavigate all the other syntax inside the file when you could
do the same in a plaintext file or a coll object, or better yet,
use preset_hub/node system?</div>
<div dir="ltr" id="yui_3_16_0_ym19_1_1480887325881_43629"><br></div><div dir="ltr">I agree that '\v' is a small inconsistency, but it's an inconsistency nonetheless. <br></div><div dir="ltr">I worry about it getting used a model more than anything else.</div><div dir="ltr" id="yui_3_16_0_ym19_1_1480887325881_43631"><br></div><div dir="ltr">This mostly comes after seeing the warnings in core Pd, and noticing that the <br></div><div dir="ltr" id="yui_3_16_0_ym19_1_1480887325881_43633">same class of warnings is replicated throughout nearly all of the external libraries.<br> </div><div><br></div><div id="yui_3_16_0_ym19_1_1480887325881_43635">-Jonathan<br></div><div><br></div><div id="yui_3_16_0_ym19_1_1480887325881_43373">> Best,</div>
<div id="yui_3_16_0_ym19_1_1480887325881_43374">Ico<br clear="none">
</div>
<br clear="none">
<div class="yiv8973179852yqt5380289744" id="yiv8973179852yqt80276"><div class="yiv8973179852moz-cite-prefix">On 12/4/2016 2:38 PM, Jonathan Wilkes
wrote:<br clear="none">
</div>
<blockquote type="cite" id="yui_3_16_0_ym19_1_1480887325881_43377">
<div style="color:#000;background-color:#fff;font-family:HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif;font-size:16px;" id="yui_3_16_0_ym19_1_1480887325881_43376">
<div id="yiv8973179852">
<div class="yiv8973179852qtdSeparateBR" id="yui_3_16_0_ym19_1_1480887325881_43375"><br clear="none">
<br clear="none">
</div>
<div>
<div style="color:#000;background-color:#fff;font-family:HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif;font-size:16px;">
<div class="yiv8973179852yqt0670964594" id="yiv8973179852yqtfd25529">> What about people
parsing Pd files in Pd? If they're searching for symbol
"foo", are they going to have to deal with the edge case
of symbol "foo\v"?</div>
<div class="yiv8973179852qtdSeparateBR"><br clear="none">
</div>
</div>
</div>
</div>
<div id="yiv8973179852yui_3_16_0_ym19_1_1480879099506_16330">
<div id="yiv8973179852yui_3_16_0_ym19_1_1480879099506_7309" style="font-family:HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif;font-size:16px;">
<div id="yiv8973179852yui_3_16_0_ym19_1_1480879099506_7308" style="font-family:HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif;font-size:16px;">
<div class="yiv8973179852y_msg_container" id="yiv8973179852yui_3_16_0_ym19_1_1480879099506_7314">
<div id="yiv8973179852">
<div id="yiv8973179852yui_3_16_0_ym19_1_1480879099506_7313">
<div id="yiv8973179852yui_3_16_0_ym19_1_1480879099506_7312" style="color:#000;background-color:#fff;font-family:HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif;font-size:16px;">
<div class="yiv8973179852yahoo_quoted" id="yiv8973179852yui_3_16_0_ym19_1_1480873294076_4760" style="display:block;">
<div id="yiv8973179852yui_3_16_0_ym19_1_1480873294076_4759" style="font-family:HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif;font-size:16px;">
<div id="yiv8973179852yui_3_16_0_ym19_1_1480873294076_4758" style="font-family:HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif;font-size:16px;">
<div class="yiv8973179852y_msg_container" id="yiv8973179852yui_3_16_0_ym19_1_1480873294076_4794">
<div id="yiv8973179852">
<div id="yiv8973179852yui_3_16_0_ym19_1_1480873294076_4793">
<div id="yiv8973179852yui_3_16_0_ym19_1_1480879099506_16520">Ivica,</div>
<div id="yiv8973179852yui_3_16_0_ym19_1_1480879099506_16329">Just
to give an example-- suppose someone
is using a patch to store
configuration data for their
project. They type the config data
as comments in the <br clear="none">
</div>
<div dir="ltr" id="yiv8973179852yui_3_16_0_ym19_1_1480879099506_16518">patch,
much like [pd META]. Then they
parse their patch from within Pd,
using [textfile], or [text] or
whatever.<br clear="none">
</div>
<div dir="ltr" id="yiv8973179852yui_3_16_0_ym19_1_1480879099506_16517"><br clear="none">
</div>
<div dir="ltr" id="yiv8973179852yui_3_16_0_ym19_1_1480879099506_16331">Now,
if they decide to insert some
newlines into the comments to make
their config prettier, as far as I
understand this ends up appending an
invisible <br clear="none">
</div>
<div dir="ltr" id="yiv8973179852yui_3_16_0_ym19_1_1480879099506_16332">'\v'
character to the last atom of each
line. So the next time they read
their config they will get corrupted
data that's hard to debug because
the <br clear="none">
</div>
<div dir="ltr" id="yiv8973179852yui_3_16_0_ym19_1_1480879099506_18798">character
doing the corruption is
non-printable.</div>
<div dir="ltr" id="yiv8973179852yui_3_16_0_ym19_1_1480879099506_18799"><br clear="none">
</div>
<div dir="ltr" id="yiv8973179852yui_3_16_0_ym19_1_1480879099506_18801">
<div id="yiv8973179852yui_3_16_0_ym19_1_1480879099506_18804">That's
the only direct downside I can
see. But as a design pattern it's
problematic-- there are other
places in Pd where a dev tried to
use an <br clear="none">
</div>
<div dir="ltr" id="yiv8973179852yui_3_16_0_ym19_1_1480879099506_18800">"obscure"
character as a placeholder for
something else. That approach
usually ends up creating more
bugs.</div>
<div dir="ltr" id="yiv8973179852yui_3_16_0_ym19_1_1480879099506_18802"><br clear="none">
</div>
<div dir="ltr" id="yiv8973179852yui_3_16_0_ym19_1_1480879099506_18803">-Jonathan<br clear="none">
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="yiv8973179852yqt0670964594" id="yiv8973179852yqtfd93407"> </div>
</div>
<div class="yiv8973179852yqt0670964594" id="yiv8973179852yqtfd71751"> </div>
</div>
<div class="yiv8973179852yqt0670964594" id="yiv8973179852yqtfd92650"> </div>
</div>
</div>
</blockquote></div>
<br clear="none">
</div></div><br><br></div> </div> </div> </div></div></body></html>