(FILECREATED "31-Jul-86 14:09:19" {QV}<NOTECARDS>1.3K>KIRKPATCH023.;1 5298 changes to: (VARS KIRKPATCH023COMS) (FNS NC.AskTraversalSpecs NC.CollectCards)) (* Copyright (c) 1986 by Xerox Corporation. All rights reserved.) (PRETTYCOMPRINT KIRKPATCH023COMS) (RPAQQ KIRKPATCH023COMS ((* * adds backlinks to traversal specs) (* * changes for NCDATABASE) (VARS (NC.TraversalSpecsStylesheet (CREATE.STYLE (QUOTE ITEMS) (LIST (create MENU ITEMS ← T) (create MENU ITEMS ← T)) (QUOTE SELECTIONS) (QUOTE (T T)) (QUOTE ITEM.TITLES) (QUOTE (Forward% Links Backward% Links Depth)) (QUOTE ITEM.TITLE.FONT) (FONTCOPY MENUFONT (QUOTE WEIGHT) (QUOTE BOLD)) (QUOTE NEED.NOT.FILL.IN) (QUOTE (MULTI MULTI NIL NIL)) (QUOTE TITLE) "Include cards at:"))) (FNS NC.AskTraversalSpecs NC.CollectCards))) (* * adds backlinks to traversal specs) (* * changes for NCDATABASE) (RPAQ NC.TraversalSpecsStylesheet (CREATE.STYLE (QUOTE ITEMS) (LIST (create MENU ITEMS ← T) (create MENU ITEMS ← T)) (QUOTE SELECTIONS) (QUOTE (T T)) (QUOTE ITEM.TITLES) (QUOTE (Forward% Links Backward% Links Depth)) (QUOTE ITEM.TITLE.FONT) (FONTCOPY MENUFONT (QUOTE WEIGHT) (QUOTE BOLD)) (QUOTE NEED.NOT.FILL.IN) (QUOTE (MULTI MULTI NIL NIL)) (QUOTE TITLE) "Include cards at:")) (DEFINEQ (NC.AskTraversalSpecs (LAMBDA (SourceCard OldLinkLabels OldDepth Don'tAskFlg) (* kirk: "31-Jul-86 10:55") (* * Get a traversal specification from the user.) (* * kirk 7/29/86 changed to allow backlinks and position specs above source card) (PROG ((LinkLabels (NC.RetrieveLinkLabels (fetch (Card NoteFile) of SourceCard) T)) Choices Position MainWindow) (OR OldLinkLabels (SETQ OldLinkLabels LinkLabels)) (if Don'tAskFlg then (RETURN (LIST OldLinkLabels OldDepth))) (SETQ MainWindow (NC.FetchWindow SourceCard)) (SETQ Position (AND (WINDOWP MainWindow) (create POSITION XCOORD ← (fetch (REGION LEFT) of (WINDOWPROP MainWindow (QUOTE REGION))) YCOORD ← (fetch (REGION TOP) of (WINDOWREGION MainWindow))))) (OR OldDepth (SETQ OldDepth 99999)) (RESETFORM (CURSOR (QUOTE WAITINGCURSOR)) (* The stylesheet is in a global var. We only need to provide its position, items, and selections.) (STYLE.PROP NC.TraversalSpecsStylesheet (QUOTE POSITION) Position) (STYLE.PROP NC.TraversalSpecsStylesheet (QUOTE ITEMS) (LIST (create MENU ITEMS ← LinkLabels) (create MENU ITEMS ← (for Link in LinkLabels collect (PACK* (QUOTE ←) Link))) (create MENU ITEMS ← (QUOTE (0 1 2 3 4 5 6 7 8 9 INF))))) (STYLE.PROP NC.TraversalSpecsStylesheet (QUOTE SELECTIONS) (LIST (for Label in OldLinkLabels when (NEQ (NTHCHAR Label 1) (QUOTE ←)) collect Label) (for Label in OldLinkLabels when (EQ (NTHCHAR Label 1) (QUOTE ←)) collect Label) (if (OR (NOT (FIXP OldDepth)) (IGREATERP OldDepth 9) (ILESSP OldDepth 0)) then (QUOTE INF) else OldDepth)))) (SETQ Choices (STYLESHEET NC.TraversalSpecsStylesheet)) (RETURN (COND (Choices (create TRAVERSALSPECS LinkTypes ← (APPEND (CAR Choices) (CADR Choices)) Depth ← (OR (FIXP (CAADR Choices)) MAX.FIXP))) (T NIL)))))) (NC.CollectCards (LAMBDA (RootCards TraversalSpec) (* kirk: "31-Jul-86 10:57") (* * converts from a simple traversal spec to FSM path to enumerate cards.) (* * kirk changed to use NCP.TransitiveClosure until path stuff is ready) (* * kirk 7/29/86 added backlinks) (* * (LET (node FSM) (SETQ node (create NCPathFSMNode Predicate ← (NC.MakePredFromTraversalSpec TraversalSpec))) (replace (NCPathFSMNode NextNodes) of node with (LIST NIL node)) (SETQ FSM (create NCPathFSM InitialState ← node CurrentState ← node)) (NCPath.GetCardPathListsFromPathCollection (NCPath.FSM.PathCollect FSM FromCard)))) (NCP.ComputeTransitiveClosure RootCards (fetch (TRAVERSALSPECS LinkTypes) of TraversalSpec) (fetch (TRAVERSALSPECS Depth) of TraversalSpec)))) ) (PUTPROPS KIRKPATCH023 COPYRIGHT ("Xerox Corporation" 1986)) (DECLARE: DONTCOPY (FILEMAP (NIL (1656 5215 (NC.AskTraversalSpecs 1666 . 4322) (NC.CollectCards 4324 . 5213))))) STOP