Monday, November 08, 2010 at 12:04 AM.
system.verbs.builtins.op.outlineToList
on outlineToList (adroutline, flWholeOutline=false, flPreserveBlanks=false) { <<4.2
<<10/31/97 at 12:16:09 PM by DW -- moved from toys.outlineToList
local (oldtarget = target.get (), theList, linetext);
on getList () {
local (myList = {});
loop {
linetext = op.getLineText ();
if linetext == "" and flPreserveBlanks {
<<PBS: flPreserveBlanks is an optional parameter, default is false.
linetext = "\r"};
if op.countSubs (1) > 0 { <<has subheads
op.expand (1);
op.go (right, 1);
myList [sizeOf (myList) + 1] = lineText;
myList [sizeOf (myList) + 1] = getList ();
op.go (left, 1)}
else {
myList [sizeOf (myList) + 1] = lineText};
if not op.go (down, 1) {
break}};
return (myList)};
target.set (adroutline);
op.setDisplay (false); //3/31/97 -- small performance enhancement
local (oldcursor = op.getCursor ());
if flWholeOutline { //5.0 optional param allows a whole outline to turn into a list 11/29/97 DW
op.firstSummit ()};
theList = getList ();
op.setCursor (oldcursor);
op.setDisplay (true);
target.set (oldtarget);
return (theList)}
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.