Monday, November 08, 2010 at 12:04 AM.
system.verbs.builtins.mainResponder.discuss.getCheckSum
on getCheckSum (msgnum, adrmemberinfo) {
if not defined (adrmemberinfo^.randomnumber) {
adrmemberinfo^.randomNumber = random (0, 1000);
filemenu.savemyroot (adrmemberinfo)};
local (checksum = 0);
on addtochecksum (s) {
local (i);
for i = 1 to sizeof (s) {
checksum = checksum + number (s [i])}};
addtochecksum (string (msgnum));
addtochecksum (string (adrmemberinfo^.password));
addtochecksum (string (adrmemberinfo));
addtochecksum (string (adrmemberinfo^.randomNumber));
<<bundle //debugging code
<<if not defined (scratchpad.checksums)
<<new (tabletype, @scratchpad.checksums)
<<local (adrtable = @scratchpad.checksums.[string (clock.now ())])
<<new (tabletype, adrtable)
<<adrtable^.msgnum = string (msgnum)
<<adrtable^.password = string (adrmemberinfo^.password)
<<adrtable^.adrmemberinfo = string (adrmemberinfo)
<<adrtable^.randomnumber = string (adrmemberinfo^.randomNumber)
<<adrtable^.checksum = checksum
return (checksum)}
<<bundle //test code
<<local (adr = @["C:\\Palm Springs\\Nirvana Server\\ops\\members.root"].scriptingNews.users.["aduncan@webwerks.co.nz"])
<<dialog.alert (getchecksum (902, "ABCDEFG", adr))
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.