Monday, November 08, 2010 at 12:06 AM.

on start_log_in(adrSelf) {
	local {
		ep =;
		msgStr = ""};
	adrSelf^._normnick =^._nick);
	<<UNDONE  This is goign to be interesting...
	<<msg = struct.pack("!HHHH",0,1,1,len(self._normnick)) + self._normnick
		<<H is a short. Integers are longs on our platform, so we're doing 0000 0001 0001 sizeOf().  Essentially.
	local {
	pack(1, @c1);
	pack(65536+sizeOf(adrSelf^._normnick), @c2);
	msgStr = string(c1) +string(c2) + adrSelf^._normnick;, 1,msgStr);
	<<#now, login
	msgStr = "toc_signon";
	for str in {adrSelf^.TOC_SERV_AUTH[1], adrSelf^.TOC_SERV_AUTH[2], adrSelf^._normnick, ep,"english",^._agent)} {
		msgStr = msgStr +" " + str;
		};, 2, msgStr  );

This listing is for code that runs in the OPML Editor environment. I created these listings because I wanted the search engines to index it, so that when I want to look up something in my codebase I don't have to use the much slower search functionality in my object database. Dave Winer.