Monday, November 08, 2010 at 12:03 AM.
system.verbs.builtins.html.runDirective
on runDirective (linetext, adrPageTable=@websites.["#data"]) { <<4.2 -- extracted from renderObject macro if html.getPref ("useKernelCode", adrPageTable) { on kernelcall (linetext, adrPageTable) { kernel (html.runDirective)}; return (kernelcall (linetext, adrPageTable))} else { <<linetext contains a #directive line <<Process the directive and return the name of the directive <<11/12/97 at 8:44:54 AM by DW -- adrPageTable is an optional param <<Had to change the implementation. <<Old method: build a script that's an assignment statement. <<New method: evaluate the expression and assign into the pagetable field. <<The old method for constructing an address won't work for non-global tables. <<I don't believe this will break anything. local (s = string.commentDelete (linetext)); local (fieldname = string.nthField (s, ' ', 1)); s = string.delete (s, 1, sizeof (fieldname) + 1); <<delete name and space try {delete (@adrPageTable^.[fieldname])}; <<avoid Can't Assign Over error try { adrPageTable^.[fieldname] = evaluate (s)} else { scriptError ("Error evaluating #" + linetext + ": " + tryError)}; local (lastdirective = string.lower (fieldname)); <<4.2 if lastdirective == "template" { <<4.0.2 adrPageTable^.indirectTemplate = true}; return (lastdirective)}}
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.