<HTML><BODY style="word-wrap: break-word; -khtml-nbsp-mode: space; -khtml-line-break: after-white-space; "><DIV><BR class="khtml-block-placeholder"></DIV><DIV>I think this should be part of the standard save mechanism, so I just committed the change to a bunch of externals.  I didn't touch externals/iem since I know you guys like to handle stuff yourself.  It actually makes sense like this (from entry.c):</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>static void entry_save(t_gobj *z, t_binbuf *b)</DIV><DIV>{</DIV><DIV>    t_entry *x = (t_entry *)z;</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>    binbuf_addv(b, "ssiisiiss", gensym("#X"),gensym("obj"),</DIV><DIV>                    x-&gt;x_obj.te_xpix, x-&gt;x_obj.te_ypix, </DIV><DIV>                   atom_getsymbol(binbuf_getvec(x-&gt;x_obj.te_binbuf)),</DIV><DIV>                   x-&gt;x_width, x-&gt;x_height, x-&gt;x_bgcolour, x-&gt;x_fgcolour);</DIV><DIV>    binbuf_addv(b, ";");</DIV><DIV>}</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>Perhaps atom_getsymbol(binbuf_getvec(x-&gt;x_obj.te_binbuf)) could be defined in m_pd.h as something like "class_getclassname"</DIV><DIV><BR class="khtml-block-placeholder"></DIV>.hc<BR><DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>On Oct 29, 2007, at 2:12 PM, IOhannes m zmoelnig wrote:</DIV><BR class="Apple-interchange-newline"><BLOCKQUOTE type="cite"><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">Hans-Christoph Steiner wrote:</DIV> <BLOCKQUOTE type="cite"><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">We have a winner! :D</DIV> </BLOCKQUOTE><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">darn, i just finished an example that works as well....</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">fmasdr.</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">IOhannes</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Monaco; min-height: 16px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="3" style="font: 12.0px Monaco">/******************************************************</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="3" style="font: 12.0px Monaco"><SPAN class="Apple-converted-space"> </SPAN>*</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="3" style="font: 12.0px Monaco"><SPAN class="Apple-converted-space"> </SPAN>* myname - implementation file</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="3" style="font: 12.0px Monaco"><SPAN class="Apple-converted-space"> </SPAN>*</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="3" style="font: 12.0px Monaco"><SPAN class="Apple-converted-space"> </SPAN>* copyleft (c) IOhannes m zm-bölnig-A</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="3" style="font: 12.0px Monaco"><SPAN class="Apple-converted-space"> </SPAN>*</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="3" style="font: 12.0px Monaco"><SPAN class="Apple-converted-space"> </SPAN>* <SPAN class="Apple-converted-space">  </SPAN>2007:forum::f-bür::umläute:2007-A</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="3" style="font: 12.0px Monaco"><SPAN class="Apple-converted-space"> </SPAN>*</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="3" style="font: 12.0px Monaco"><SPAN class="Apple-converted-space"> </SPAN>* <SPAN class="Apple-converted-space">  </SPAN>institute of electronic music and acoustics (iem)</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="3" style="font: 12.0px Monaco"><SPAN class="Apple-converted-space"> </SPAN>*</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="3" style="font: 12.0px Monaco"><SPAN class="Apple-converted-space"> </SPAN>******************************************************</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="3" style="font: 12.0px Monaco"><SPAN class="Apple-converted-space"> </SPAN>*</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="3" style="font: 12.0px Monaco"><SPAN class="Apple-converted-space"> </SPAN>* license: GNU General Public License v.2</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="3" style="font: 12.0px Monaco"><SPAN class="Apple-converted-space"> </SPAN>*</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="3" style="font: 12.0px Monaco"><SPAN class="Apple-converted-space"> </SPAN>******************************************************/</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Monaco; min-height: 16px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Monaco; min-height: 16px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="3" style="font: 12.0px Monaco">/*<SPAN class="Apple-converted-space"> </SPAN></FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="3" style="font: 12.0px Monaco"><SPAN class="Apple-converted-space"> </SPAN>* this object is an example on how to retrieve the object's own name</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="3" style="font: 12.0px Monaco"><SPAN class="Apple-converted-space"> </SPAN>* usage:</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="3" style="font: 12.0px Monaco"><SPAN class="Apple-converted-space"> </SPAN>* <SPAN class="Apple-converted-space">  </SPAN>+ bang to print the object's name to the console</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="3" style="font: 12.0px Monaco"><SPAN class="Apple-converted-space"> </SPAN>*/</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Monaco; min-height: 16px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="3" style="font: 12.0px Monaco">#include "m_pd.h"</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Monaco; min-height: 16px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="3" style="font: 12.0px Monaco">/* ------------------------- myname ---------------------------- */</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Monaco; min-height: 16px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="3" style="font: 12.0px Monaco">static t_class *myname_class;</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Monaco; min-height: 16px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="3" style="font: 12.0px Monaco">typedef struct _myname</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="3" style="font: 12.0px Monaco">{</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="3" style="font: 12.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>t_object<SPAN class="Apple-converted-space">  </SPAN>x_obj;</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="3" style="font: 12.0px Monaco">} t_myname;</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Monaco; min-height: 16px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="3" style="font: 12.0px Monaco">static void myname_bang(t_myname *x) {</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="3" style="font: 12.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>t_text t=(t_text)x-&gt;x_obj;</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="3" style="font: 12.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>t_binbuf*b=t.te_binbuf;</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="3" style="font: 12.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>if(b!=0) {</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="3" style="font: 12.0px Monaco"><SPAN class="Apple-converted-space">    </SPAN>t_atom*ap=binbuf_getvec(b);</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="3" style="font: 12.0px Monaco"><SPAN class="Apple-converted-space">    </SPAN>post("my name is '%s'", atom_getsymbol(ap)-&gt;s_name);</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="3" style="font: 12.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>} else {</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="3" style="font: 12.0px Monaco"><SPAN class="Apple-converted-space">    </SPAN>post("hmm, i don't know my name");</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="3" style="font: 12.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>}</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="3" style="font: 12.0px Monaco">}</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Monaco; min-height: 16px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Monaco; min-height: 16px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="3" style="font: 12.0px Monaco">static void *myname_new(void)</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="3" style="font: 12.0px Monaco">{</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="3" style="font: 12.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>t_myname *x = (t_myname *)pd_new(myname_class);</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Monaco; min-height: 16px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="3" style="font: 12.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>t_text t=(t_text)x-&gt;x_obj;</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="3" style="font: 12.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>t_binbuf*b=t.te_binbuf;</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="3" style="font: 12.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>if(b!=0) {</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="3" style="font: 12.0px Monaco"><SPAN class="Apple-converted-space">    </SPAN>t_atom*ap=binbuf_getvec(b);</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="3" style="font: 12.0px Monaco"><SPAN class="Apple-converted-space">    </SPAN>post("my name is '%s'", atom_getsymbol(ap)-&gt;s_name);</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="3" style="font: 12.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>} else {</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="3" style="font: 12.0px Monaco"><SPAN class="Apple-converted-space">    </SPAN>post("i don't know my name yet...");</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="3" style="font: 12.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>}</FONT></DIV><P style="margin: 0.0px 0.0px 0.0px 0.0px; min-height: 14.0px"><FONT face="Monaco" size="3" style="font: 12.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN></FONT><BR class="khtml-block-placeholder"></P><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="3" style="font: 12.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>return (x);</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="3" style="font: 12.0px Monaco">}</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Monaco; min-height: 16px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="3" style="font: 12.0px Monaco">void myname_setup(void)</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="3" style="font: 12.0px Monaco">{</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="3" style="font: 12.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>myname_class = class_new(gensym("myname"), (t_newmethod)myname_new,</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="3" style="font: 12.0px Monaco"><SPAN class="Apple-converted-space">    </SPAN>0, sizeof(t_myname), 0, 0);</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="3" style="font: 12.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>class_addbang(myname_class, myname_bang);</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="3" style="font: 12.0px Monaco">}</FONT></DIV> </BLOCKQUOTE></DIV><BR><DIV> <SPAN class="Apple-style-span" style="border-collapse: separate; border-spacing: 0px 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: auto; -khtml-text-decorations-in-effect: none; text-indent: 0px; -apple-text-size-adjust: auto; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; "><BR class="Apple-interchange-newline"><DIV><BR></DIV><DIV>----------------------------------------------------------------------------</DIV><DIV><BR></DIV><DIV>Terrorism is not an enemy.  It cannot be defeated.  It's a tactic.  It's about as sensible to say we declare war on night attacks and expect we're going to win that war.  We're not going to win the war on terrorism.        - retired U.S. Army general, William Odom</DIV><BR class="Apple-interchange-newline"></SPAN> </DIV><BR></BODY></HTML>