<html><head><meta http-equiv="Content-Type" content="text/html charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">Howdy again Miller,<div><br></div><div>I manually applied your last 2 commits to the libpd pd_0.45-4 branch. Hopefully people with the actual hardware will give it a test and chime in.<div><br></div><div>I also put together a <a href="https://gist.github.com/danomatika/9173240">little script to check for string patterns in source files</a> and ran it on the externals in the sourceforge svn for the mess* functions and t_got_fn. It doesn't look that bad overall.</div><div><br></div><div>Here's the output:</div><div><br></div><div><div>--------------------------------------------------------------------------------</div><div>Checking for " mess1(" ...</div><div><br></div><div>./algocomp/m_pd.h:</div><div>231:#define mess1(x, s, a) ((*getfn((x), (s)))((x), (a)))</div><div><br></div><div>./grill/dynext/src/main.cpp:</div><div>952: mess1((t_pd *)canvas,const_cast<t_symbol *>(sym_dsp),NULL);</div><div><br></div><div>--------------------------------------------------------------------------------</div><div>Checking for " mess2(" ...</div><div><br></div><div>./algocomp/m_pd.h:</div><div>232:#define mess2(x, s, a,b) ((*getfn((x), (s)))((x), (a),(b)))</div><div><br></div><div>--------------------------------------------------------------------------------</div><div>Checking for " mess3(" ...</div><div><br></div><div>./algocomp/m_pd.h:</div><div>233:#define mess3(x, s, a,b,c) ((*getfn((x), (s)))((x), (a),(b),(c)))</div><div><br></div><div>--------------------------------------------------------------------------------</div><div>Checking for " mess4(" ...</div><div><br></div><div>./algocomp/m_pd.h:</div><div>234:#define mess4(x, s, a,b,c,d) ((*getfn((x), (s)))((x), (a),(b),(c),(d)))</div><div><br></div><div>--------------------------------------------------------------------------------</div><div>Checking for " mess5(" ...</div><div><br></div><div>./algocomp/m_pd.h:</div><div>235:#define mess5(x, s, a,b,c,d,e) ((*getfn((x), (s)))((x), (a),(b),(c),(d),(e)))</div><div><br></div><div>--------------------------------------------------------------------------------</div><div>Checking for "t_gotfn" ...</div><div><br></div><div>./algocomp/m_pd.h:</div><div>204:typedef void (*t_gotfn)(void *x, ...); 226:EXTERN t_gotfn getfn(t_pd *x, t_symbol *s); 227:EXTERN t_gotfn zgetfn(t_pd *x, t_symbol *s);</div><div><br></div><div>./chaos/attract1.c:</div><div>168:<span class="Apple-tab-span" style="white-space:pre">        </span>if (lyapunov_full((void *) attract1, (t_gotfn) calc, M_var_count, attract1 -> vars, results) != NULL) { 297:<span class="Apple-tab-span" style="white-space:pre">                </span>attract1 -> lyap_exp = lyapunov((void *) attract1, (t_gotfn) calc, M_var_count, (double *) attract1 -> vars);</div><div><br></div><div>./chaos/base.c:</div><div>135:<span class="Apple-tab-span" style="white-space:pre">        </span>if (lyapunov_full((void *) base, (t_gotfn) calc, M_var_count, base -> vars, results) != NULL) { 212:<span class="Apple-tab-span" style="white-space:pre">                </span>base -> lyap_exp = lyapunov((void *) base, (t_gotfn) calc, M_var_count, (double *) base -> vars);</div><div><br></div><div>./chaos/base3.c:</div><div>135:<span class="Apple-tab-span" style="white-space:pre">        </span>if (lyapunov_full((void *) base3, (t_gotfn) calc, M_var_count, base3 -> vars, results) != NULL) { 212:<span class="Apple-tab-span" style="white-space:pre">                </span>base3 -> lyap_exp = lyapunov((void *) base3, (t_gotfn) calc, M_var_count, (double *) base3 -> vars);</div><div><br></div><div>./chaos/chaos.h:</div><div>17:double lyapunov(void *fractal, t_gotfn calc, int var_count, double *vars); 25:double *lyapunov_full(void *fractal, t_gotfn calc, int var_count, double *vars, double *results);</div><div><br></div><div>./chaos/dejong.c:</div><div>156:<span class="Apple-tab-span" style="white-space:pre">        </span>if (lyapunov_full((void *) dejong, (t_gotfn) calc, M_var_count, dejong -> vars, results) != NULL) { 259:<span class="Apple-tab-span" style="white-space:pre">                </span>dejong -> lyap_exp = lyapunov((void *) dejong, (t_gotfn) calc, M_var_count, (double *) dejong -> vars);</div><div><br></div><div>./chaos/henon.c:</div><div>144:<span class="Apple-tab-span" style="white-space:pre">        </span>if (lyapunov_full((void *) henon, (t_gotfn) calc, M_var_count, henon -> vars, results) != NULL) { 221:<span class="Apple-tab-span" style="white-space:pre">                </span>henon -> lyap_exp = lyapunov((void *) henon, (t_gotfn) calc, M_var_count, (double *) henon -> vars);</div><div><br></div><div>./chaos/hopalong.c:</div><div>150:<span class="Apple-tab-span" style="white-space:pre">        </span>if (lyapunov_full((void *) hopalong, (t_gotfn) calc, M_var_count, hopalong -> vars, results) != NULL) { 240:<span class="Apple-tab-span" style="white-space:pre">                </span>hopalong -> lyap_exp = lyapunov((void *) hopalong, (t_gotfn) calc, M_var_count, (double *) hopalong -> vars);</div><div><br></div><div>./chaos/ikeda.c:</div><div>159:<span class="Apple-tab-span" style="white-space:pre">        </span>if (lyapunov_full((void *) ikeda, (t_gotfn) calc, M_var_count, ikeda -> vars, results) != NULL) { 262:<span class="Apple-tab-span" style="white-space:pre">                </span>ikeda -> lyap_exp = lyapunov((void *) ikeda, (t_gotfn) calc, M_var_count, (double *) ikeda -> vars);</div><div><br></div><div>./chaos/latoocarfian.c:</div><div>156:<span class="Apple-tab-span" style="white-space:pre">        </span>if (lyapunov_full((void *) latoocarfian, (t_gotfn) calc, M_var_count, latoocarfian -> vars, results) != NULL) { 259:<span class="Apple-tab-span" style="white-space:pre">                </span>latoocarfian -> lyap_exp = lyapunov((void *) latoocarfian, (t_gotfn) calc, M_var_count, (double *) latoocarfian -> vars);</div><div><br></div><div>./chaos/latoomutalpha.c:</div><div>156:<span class="Apple-tab-span" style="white-space:pre">        </span>if (lyapunov_full((void *) latoomutalpha, (t_gotfn) calc, M_var_count, latoomutalpha -> vars, results) != NULL) { 259:<span class="Apple-tab-span" style="white-space:pre">                </span>latoomutalpha -> lyap_exp = lyapunov((void *) latoomutalpha, (t_gotfn) calc, M_var_count, (double *) latoomutalpha -> vars);</div><div><br></div><div>./chaos/latoomutbeta.c:</div><div>156:<span class="Apple-tab-span" style="white-space:pre">        </span>if (lyapunov_full((void *) latoomutbeta, (t_gotfn) calc, M_var_count, latoomutbeta -> vars, results) != NULL) { 259:<span class="Apple-tab-span" style="white-space:pre">                </span>latoomutbeta -> lyap_exp = lyapunov((void *) latoomutbeta, (t_gotfn) calc, M_var_count, (double *) latoomutbeta -> vars);</div><div><br></div><div>./chaos/latoomutgamma.c:</div><div>156:<span class="Apple-tab-span" style="white-space:pre">        </span>if (lyapunov_full((void *) latoomutgamma, (t_gotfn) calc, M_var_count, latoomutgamma -> vars, results) != NULL) { 259:<span class="Apple-tab-span" style="white-space:pre">                </span>latoomutgamma -> lyap_exp = lyapunov((void *) latoomutgamma, (t_gotfn) calc, M_var_count, (double *) latoomutgamma -> vars);</div><div><br></div><div>./chaos/libchaos.c:</div><div>22:double lyapunov_eval(void *fractal, t_gotfn calc, int var_count, double *vars, double *test) { 53:double lyapunov(void *fractal, t_gotfn calc, int var_count, double *vars) { 65:double *lyapunov_full(void *fractal, t_gotfn calc, int var_count, double *vars, double *results) {</div><div><br></div><div>./chaos/logistic.c:</div><div>129:<span class="Apple-tab-span" style="white-space:pre">        </span>if (lyapunov_full((void *) logistic, (t_gotfn) calc, M_var_count, logistic -> vars, results) != NULL) { 193:<span class="Apple-tab-span" style="white-space:pre">                </span>logistic -> lyap_exp = lyapunov((void *) logistic, (t_gotfn) calc, M_var_count, (double *) logistic -> vars);</div><div><br></div><div>./chaos/lorenz.c:</div><div>163:<span class="Apple-tab-span" style="white-space:pre">        </span>if (lyapunov_full((void *) lorenz, (t_gotfn) calc, M_var_count, lorenz -> vars, results) != NULL) { 266:<span class="Apple-tab-span" style="white-space:pre">                </span>lorenz -> lyap_exp = lyapunov((void *) lorenz, (t_gotfn) calc, M_var_count, (double *) lorenz -> vars);</div><div><br></div><div>./chaos/lotkavolterra.c:</div><div>156:<span class="Apple-tab-span" style="white-space:pre">        </span>if (lyapunov_full((void *) lotkavolterra, (t_gotfn) calc, M_var_count, lotkavolterra -> vars, results) != NULL) { 259:<span class="Apple-tab-span" style="white-space:pre">                </span>lotkavolterra -> lyap_exp = lyapunov((void *) lotkavolterra, (t_gotfn) calc, M_var_count, (double *) lotkavolterra -> vars);</div><div><br></div><div>./chaos/martin.c:</div><div>138:<span class="Apple-tab-span" style="white-space:pre">        </span>if (lyapunov_full((void *) martin, (t_gotfn) calc, M_var_count, martin -> vars, results) != NULL) { 202:<span class="Apple-tab-span" style="white-space:pre">                </span>martin -> lyap_exp = lyapunov((void *) martin, (t_gotfn) calc, M_var_count, (double *) martin -> vars);</div><div><br></div><div>./chaos/mlogistic.c:</div><div>129:<span class="Apple-tab-span" style="white-space:pre">        </span>if (lyapunov_full((void *) mlogistic, (t_gotfn) calc, M_var_count, mlogistic -> vars, results) != NULL) { 193:<span class="Apple-tab-span" style="white-space:pre">                </span>mlogistic -> lyap_exp = lyapunov((void *) mlogistic, (t_gotfn) calc, M_var_count, (double *) mlogistic -> vars);</div><div><br></div><div>./chaos/pickover.c:</div><div>163:<span class="Apple-tab-span" style="white-space:pre">        </span>if (lyapunov_full((void *) pickover, (t_gotfn) calc, M_var_count, pickover -> vars, results) != NULL) { 266:<span class="Apple-tab-span" style="white-space:pre">                </span>pickover -> lyap_exp = lyapunov((void *) pickover, (t_gotfn) calc, M_var_count, (double *) pickover -> vars);</div><div><br></div><div>./chaos/popcorn.c:</div><div>138:<span class="Apple-tab-span" style="white-space:pre">        </span>if (lyapunov_full((void *) popcorn, (t_gotfn) calc, M_var_count, popcorn -> vars, results) != NULL) { 202:<span class="Apple-tab-span" style="white-space:pre">                </span>popcorn -> lyap_exp = lyapunov((void *) popcorn, (t_gotfn) calc, M_var_count, (double *) popcorn -> vars);</div><div><br></div><div>./chaos/quadruptwo.c:</div><div>150:<span class="Apple-tab-span" style="white-space:pre">        </span>if (lyapunov_full((void *) quadruptwo, (t_gotfn) calc, M_var_count, quadruptwo -> vars, results) != NULL) { 240:<span class="Apple-tab-span" style="white-space:pre">                </span>quadruptwo -> lyap_exp = lyapunov((void *) quadruptwo, (t_gotfn) calc, M_var_count, (double *) quadruptwo -> vars);</div><div><br></div><div>./chaos/rossler.c:</div><div>163:<span class="Apple-tab-span" style="white-space:pre">        </span>if (lyapunov_full((void *) rossler, (t_gotfn) calc, M_var_count, rossler -> vars, results) != NULL) { 266:<span class="Apple-tab-span" style="white-space:pre">                </span>rossler -> lyap_exp = lyapunov((void *) rossler, (t_gotfn) calc, M_var_count, (double *) rossler -> vars);</div><div><br></div><div>./chaos/standardmap.c:</div><div>138:<span class="Apple-tab-span" style="white-space:pre">        </span>if (lyapunov_full((void *) standardmap, (t_gotfn) calc, M_var_count, standardmap -> vars, results) != NULL) { 202:<span class="Apple-tab-span" style="white-space:pre">                </span>standardmap -> lyap_exp = lyapunov((void *) standardmap, (t_gotfn) calc, M_var_count, (double *) standardmap -> vars);</div><div><br></div><div>./chaos/strange1.c:</div><div>204:<span class="Apple-tab-span" style="white-space:pre">        </span>if (lyapunov_full((void *) strange1, (t_gotfn) calc, M_var_count, strange1 -> vars, results) != NULL) { 411:<span class="Apple-tab-span" style="white-space:pre">                </span>strange1 -> lyap_exp = lyapunov((void *) strange1, (t_gotfn) calc, M_var_count, (double *) strange1 -> vars);</div><div><br></div><div>./chaos/tent.c:</div><div>129:<span class="Apple-tab-span" style="white-space:pre">        </span>if (lyapunov_full((void *) tent, (t_gotfn) calc, M_var_count, tent -> vars, results) != NULL) { 193:<span class="Apple-tab-span" style="white-space:pre">                </span>tent -> lyap_exp = lyapunov((void *) tent, (t_gotfn) calc, M_var_count, (double *) tent -> vars);</div><div><br></div><div>./chaos/three_d.c:</div><div>169:<span class="Apple-tab-span" style="white-space:pre">        </span>if (lyapunov_full((void *) three_d, (t_gotfn) calc, M_var_count, three_d -> vars, results) != NULL) { 285:<span class="Apple-tab-span" style="white-space:pre">                </span>three_d -> lyap_exp = lyapunov((void *) three_d, (t_gotfn) calc, M_var_count, (double *) three_d -> vars);</div><div><br></div><div>./chaos/threeply.c:</div><div>150:<span class="Apple-tab-span" style="white-space:pre">        </span>if (lyapunov_full((void *) threeply, (t_gotfn) calc, M_var_count, threeply -> vars, results) != NULL) { 240:<span class="Apple-tab-span" style="white-space:pre">                </span>threeply -> lyap_exp = lyapunov((void *) threeply, (t_gotfn) calc, M_var_count, (double *) threeply -> vars);</div><div><br></div><div>./chaos/tinkerbell.c:</div><div>156:<span class="Apple-tab-span" style="white-space:pre">        </span>if (lyapunov_full((void *) tinkerbell, (t_gotfn) calc, M_var_count, tinkerbell -> vars, results) != NULL) { 259:<span class="Apple-tab-span" style="white-space:pre">                </span>tinkerbell -> lyap_exp = lyapunov((void *) tinkerbell, (t_gotfn) calc, M_var_count, (double *) tinkerbell -> vars);</div><div><br></div><div>./miXed/riddle/riddle.c:</div><div>873: t_gotfn freefn = zgetfn((t_pd *)rd, gensym("_free"));</div><div><br></div><div>./miXed/shared/unstable/fragile.c:</div><div>54:<span class="Apple-tab-span" style="white-space:pre">        </span> if (mp->me_fun == (t_gotfn)thiscall) 102:<span class="Apple-tab-span" style="white-space:pre">        </span>if (mp->me_name == cname && mp->me_fun != (t_gotfn)thiscall)</div><div><br></div><div>./miXed/shared/unstable/pd_imp.h:</div><div>17: t_gotfn me_fun;</div><div><br></div><div>--------------------------------------------------------------------------------</div></div><div><br><div><div>On Feb 22, 2014, at 6:00 AM, <a href="mailto:pd-dev-request@iem.at">pd-dev-request@iem.at</a> wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; margin: 0px;"><span style="font-family: Helvetica; color: rgb(127, 127, 127);"><b>From:<span class="Apple-converted-space"> </span></b></span><span style="font-family: Helvetica;">Dan Wilcox <<a href="mailto:danomatika@gmail.com">danomatika@gmail.com</a>><br></span></div><div style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; margin: 0px;"><span style="font-family: Helvetica; color: rgb(127, 127, 127);"><b>Subject:<span class="Apple-converted-space"> </span></b></span><span style="font-family: Helvetica;"><b>Re: [PD-dev] libpd iOS 64 bit crash with variadic function pointers</b><br></span></div><div style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; margin: 0px;"><span style="font-family: Helvetica; color: rgb(127, 127, 127);"><b>Date:<span class="Apple-converted-space"> </span></b></span><span style="font-family: Helvetica;">February 21, 2014 at 8:58:25 AM EST<br></span></div><div style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; margin: 0px;"><span style="font-family: Helvetica; color: rgb(127, 127, 127);"><b>To:<span class="Apple-converted-space"> </span></b></span><span style="font-family: Helvetica;">Miller Puckette <<a href="mailto:msp@ucsd.edu">msp@ucsd.edu</a>><br></span></div><div style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; margin: 0px;"><span style="font-family: Helvetica; color: rgb(127, 127, 127);"><b>Cc:<span class="Apple-converted-space"> </span></b></span><span style="font-family: Helvetica;"><a href="mailto:pd-dev@iem.at">pd-dev@iem.at</a><br></span></div><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;">Thanks Miller. Is that to the Sourceforge git or some other place? I'll pull it down into libpd and get people to test it.</span><div style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><br><div><div>On Feb 21, 2014, at 6:00 AM,<span class="Apple-converted-space"> </span><a href="mailto:pd-dev-request@iem.at">pd-dev-request@iem.at</a><span class="Apple-converted-space"> </span>wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;">It looks like the whole mess1() (etc) macro system is going to fail on</span><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;">64-bit ARM - I can't see how to patch that. I can fix the local problems in</span><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;">the Pd vanilla source but I don't know whether it's better to take out the</span><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;">"mess()" macros altogether, or to take them out only for ARM64. (The</span><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;">former would be source incompatible but object compatible, but I'm thinking</span><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;">source compatibilty with a non-working feature is maybe actually worse than</span><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;">simply being source incompatible.)</span><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;">I've gone ahead and git-pushed an attempted fix (changing mess1() etc,<span class="Apple-converted-space"> </span></span><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;">potentially source-incompatibly) but am open to other ideas how to fix this.</span></blockquote></div><br><div><span class="Apple-style-span" style="border-collapse: separate; font-family: Helvetica; border-spacing: 0px;"><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><span class="Apple-style-span" style="border-collapse: separate; font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; border-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-stroke-width: 0px;"><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><div>--------</div><div>Dan Wilcox</div><div>@danomatika</div><div><a href="http://danomatika.com/">danomatika.com</a></div><div><a href="http://robotcowboy.com/">robotcowboy.com</a></div></div></span></div></span></div></div></blockquote></div><br><div>
<span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; border-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; "><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; border-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; "><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div>--------</div><div>Dan Wilcox</div><div>@danomatika</div><div><a href="http://danomatika.com">danomatika.com</a></div><div><a href="http://robotcowboy.com">robotcowboy.com</a></div><div><br></div></div></span><br class="Apple-interchange-newline"></div></span><br class="Apple-interchange-newline"><br class="Apple-interchange-newline">
</div>
<br></div></div></body></html>