Monday, November 08, 2010 at 12:04 AM.
system.verbs.builtins.odbServer.commandDecode
on commandDecode (s, atts) {
<<scratchpad.encodedCommand = s
on popline () {
local (line1 = string.nthField (s, '\r', 1));
s = string.delete (s, 1, sizeof (line1) + 1);
return (line1)};
new (tableType, atts);
local (commandname = popline (), line1);
loop { <<over all the lines in the string
line1 = popline ();
if (line1 beginsWith '#') and (line1 contains '"') {
line1 = string.delete (line1, 1, 1); <<pop off the #
name = string.nthField (line1, ' ', 1);
val = string.nthField (line1, '"', 2);
atts^.[name] = base64.decode (val)};
if s == "" {
break}};
odbServer.addToLog ("incoming", commandname, atts);
return (commandname)};
bundle { <<test code
local (commandname);
commandname = commandDecode (scratchpad.encodedCommand, @scratchpad.atts);
edit (@scratchpad.atts);
dialog.alert (commandname)}
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.